??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品国产亚洲爽啪在线影院,亚洲AV电影天堂男人的天堂,亚洲高清在线视频http://m.tkk7.com/badboyryan/category/13391.html<hr color=red> <marquee direction=left bgcolor= aaaaee behavior=scroll scrollamount=2 onmouseover="this.stop();" onmouseout="this.start();" width=500> <font color=green> 在恰当的旉、地点以恰当的方式表辄恰当的h...</font>&nbsp;&nbsp;<font color=blue>阅读的时候请注意分类Q佛曰我日里面是谈笑文章Q其他是各个分类的文章,U极的热情投入到写博的队伍中来,支持blogjava做大做强Q向dudu站长致敬>> > <a href=http://t.qq.com/badboyryan>我的微博敬请收听</a> </font> </marquee> <hr color=blue>zh-cnThu, 17 Dec 2015 13:09:49 GMTThu, 17 Dec 2015 13:09:49 GMT60RAC的RMAN备䆾需要连接两个实例吗http://m.tkk7.com/badboyryan/archive/2015/12/17/428699.html坏男?/dc:creator>坏男?/author>Thu, 17 Dec 2015 01:18:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/12/17/428699.htmlhttp://m.tkk7.com/badboyryan/comments/428699.htmlhttp://m.tkk7.com/badboyryan/archive/2015/12/17/428699.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/428699.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/428699.html归档日志攑֜ASM上,rman脚本中不用连?个实例,归档攑֜ASM上是׃n存储Q只需要在一个实例备份即可?/div>

]]>
AIX修改旉http://m.tkk7.com/badboyryan/archive/2015/12/11/428607.html坏男?/dc:creator>坏男?/author>Thu, 10 Dec 2015 21:18:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/12/11/428607.htmlhttp://m.tkk7.com/badboyryan/comments/428607.htmlhttp://m.tkk7.com/badboyryan/archive/2015/12/11/428607.html#Feedback1http://m.tkk7.com/badboyryan/comments/commentRss/428607.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/428607.htmllinux下用date -s "YYYYmmdd HH:MM:SS"

AIX  date -n mmddHHMMYYQmm表示月分Qdd表示日期QHH表示时QMM表示分钟QYY表示q䆾?/p>




]]>
While inserting a large BLOB using JDBC, the application fails withQORA-22990http://m.tkk7.com/badboyryan/archive/2015/08/25/426974.html坏男?/dc:creator>坏男?/author>Tue, 25 Aug 2015 05:56:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/08/25/426974.htmlhttp://m.tkk7.com/badboyryan/comments/426974.htmlhttp://m.tkk7.com/badboyryan/archive/2015/08/25/426974.html#Feedback1http://m.tkk7.com/badboyryan/comments/commentRss/426974.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/426974.html

CAUSE

The Oracle oracle.sql.BLOB OutputStream writes the data in chunks. Since autocommit defaults to true, the first chunk is committed. This results in the write operation for the next chunk of the Blob to fail since it appears to be in the next transaction.
In those conditions, the ORA-22990 exception will occur with any version of Oracle JDBC driver.

SOLUTION


Issue the setAutoCommit(false) command. Then, explicitly commit the transaction after all of the Blob chunks have been written to the row and the stream.close() method has been executed.

If using the Oracle 10g JDBC driver (or greater version), a second solution consists of using the standard JDBC api (setBinaryStream method of java.sql.PreparedStatement interface). And in this case, AutoCommit can be set to true.

Here is an example:

PreparedStatement stmt = conn.prepareStatement("INSERT INTO blobTest VALUES (?,?)"); 
File fd = new File(testFile); 
fis = new FileInputStream(fd); 
stmt.setInt(1,1); 
stmt.setBinaryStream(2,fis,(int)fd.length());



where blobTest is a table defined as the following:

SQL> create table blobTest (id number (4), data blob);


]]>
enq: TX - row lock contention {待事ghttp://m.tkk7.com/badboyryan/archive/2015/03/20/423679.html坏男?/dc:creator>坏男?/author>Fri, 20 Mar 2015 07:20:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/03/20/423679.htmlhttp://m.tkk7.com/badboyryan/comments/423679.htmlhttp://m.tkk7.com/badboyryan/archive/2015/03/20/423679.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/423679.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/423679.htmlOS环境Qwindows server 2008 64?/span>

数据库版本:11.2.0

 

今天在用rman备䆾的时候随意的查看了一下等待事Ӟ除了了我们现在系l遇到的IO瓉外,q额外的发了enq: TX - row lock contention?/span>{待事g

 

1Q查询当前系l的{待事g

 

select event,sid,p1,p2,p3 from v$session_wait where event not like 'SQL*%' and event not like 'rdbms%';


EVENT                                   SID         P1              P2             P3
----------------------------------     ----      ----------       ----------    ----------
enq: TX - row lock contention     4    1415053318     196638        55836
RMAN backup & recovery I/O      5            1               256       2147483647
enq: TX - row lock contention    12    1415053318     524293        51153
RMAN backup & recovery I/O     25           1                256      2147483647
db file sequential read             27          16             2876703         1
pmon timer                             33         300                0               0
db file scattered read               39          33              790536         128
VKTM Logical Idle Wait            49           0                   0               0
Streams AQ: qmn slave idle wait         50          1          0          0
asynch descriptor resize           53          1              4294967295    1237
jobq slave wait                       54          0                     0          0

 

EVENT                                   SID         P1           P2                 P3
-------------------------------------------    -------       ----------          ----------
db file sequential read             170         33         1100519            1
direct path read                      181         44          469892           124
enq: TX - row lock contention    212 1415053318     524293         51153
smon timer                             225        300          0       0
enq: TX - row lock contention    232 1415053318     524293         51153
direct path read                      234         16           1099776         128
Streams AQ: qmn coordinator idle wait  242          0          0         0

 

 

上面的等待事件说明session4Q?2Q?12Q?32惛_锁,但是有别的session占着Q所以等待?/span>

 

 

enq是一U保护共享资源的锁定机制Q一个排队机Ӟ先进先出(FIFO)

发生TX锁的原因一般有几个

1.不同的session更新或删除同一个记录?br />
2.唯一索引有重复烦?br />
3.位图索引多次更新

4.同时对同一个数据块更新

5.{待索引块分?/span>

 

 

2Q下面我们通过enq: TX - row lock contention来看看这些session都在{什?/span>

 

select ROW_WAIT_OBJ#,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW# from v$session where event='enq: TX - row lock contention';

 

ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#
------------- -------------- --------------- -------------
        87556             57             395            88
        87564             57             435             0
        87564             57             435             0
        87564             57             435             0
        87564             57             435             0

 

 

 


3Q通过上面sql查找出来的对象编h到对应的对象名称

 

SQL> select object_name from dba_objects where object_id in (87564);

OBJECT_NAME
-----------
QRTZ_LOCKS

 

 

4Q通过对象名称扑և该对象的对应属性,对象属性ؓTABLE

 

SQL> select OWNER,OBJECT_NAME,OBJECT_ID,DATA_OBJECT_ID, OBJECT_TYPE from all_objects where object_name='QRTZ_LOCKS';

 

OWNER      OBJECT_NAME  OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE

SCHEDULE   QRTZ_LOCKS     87564          87564               TABLE 

 

5Q通过正在{待的SID查看它们都在执行什么操?/span>

SQL> select sid,sql_text from v$session a,v$sql b where sid in(4,12,41,212,232) and (b.sql_id=a.sql_id or b.sql_id=a.prev_sql_id);

 SID SQL_TEXT
---- ----------------------------------------------------------------------------------------------------
   4 UPDATE QRTZ_CRON_TRIGGERS SET CRON_EXPRESSION = :1 WHERE TRIGGER_NAME = :2 AND TRIGGER_GROUP = :3
  12 SELECT * FROM QRTZ_LOCKS WHERE LOCK_NAME = :1 FOR UPDATE
  41 SELECT * FROM QRTZ_LOCKS WHERE LOCK_NAME = :1 FOR UPDATE
 212 SELECT * FROM QRTZ_LOCKS WHERE LOCK_NAME = :1 FOR UPDATE
 232 SELECT * FROM QRTZ_LOCKS WHERE LOCK_NAME = :1 FOR UPDATE

 

从上面的l果可以看出QSCHEDULE用户下的五个session同时在执行一条相同的sql语句Q对应的对象则是QRTZ_LOCKS q个?/span>Q?nbsp;所以发生了锁,从而生等待,通过和同事的交流Q得知这个一个ETLE序要访问的表,里面只有五条数据Q但是却要时时调度?nbsp; 

6Q下面我们去找一下对应sid产生的锁

 

SQL> select SID,TY,ID1,ID2,LMODE,REQUEST,CTIME,BLOCK from V$lock where block=1 or request<>0;
         SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
 ---------------- ---- -- ---------- ---------- ---------- ---------- ---------- ----------
         41  TX     524293      51153          0          6       3846             0
         12  TX     524293      51153          0          6       4190             0
         232 TX     524293      51153          0          6       4626             0
         212 TX     524293      51153          0          6       4749             0
      
    4  TX     196638      55836          0          6       4755              1
         44  TX     196638      55836          6          0       4765              1

 

由此可以查看QBLOCK=1的sid是该{待事g的根源,其他session则等待该锁被释放?/span>

解决ҎQ?/span>

1Q通过v$session扑ֈBLOCK=1的用P告知用户提交事务

2Q通过sid扑ֈpidQkill掉该q程

3Q更改sql语句QSELECT * FROM QRTZ_LOCKS WHERE LOCK_NAME = :1 FOR UPDATE no wait

加nowait的意思是得到或者得不到Q不会等?/span>



]]>
ORA-39097http://m.tkk7.com/badboyryan/archive/2015/03/20/423678.html坏男?/dc:creator>坏男?/author>Fri, 20 Mar 2015 07:14:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/03/20/423678.htmlhttp://m.tkk7.com/badboyryan/comments/423678.htmlhttp://m.tkk7.com/badboyryan/archive/2015/03/20/423678.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/423678.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/423678.html该报错我q没有查扑ֈҎ的原因,去metalink上看到有解决办法Q则是加大streams_pool_size卛_Q导出恢复正?nbsp;alter system set streams_pool_size = 48M;

]]>
ORA-39095http://m.tkk7.com/badboyryan/archive/2015/03/20/423677.html坏男?/dc:creator>坏男?/author>Fri, 20 Mar 2015 07:13:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/03/20/423677.htmlhttp://m.tkk7.com/badboyryan/comments/423677.htmlhttp://m.tkk7.com/badboyryan/archive/2015/03/20/423677.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/423677.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/423677.html出现该报错的原因一般分ZU情c?/span>
W一U情冉|因ؓ在expdp的时候给才{储空间太,数据无法写入转储文g内,所以报错,q种报错很好解决Q只需要进入交互模式下Q可以用add_file来增加{储文Ӟ然后restart该job卛_?/span>
W二U情况则是因|参数parallel大于转储文g数目引v的,官方文档的解释是parallel io server processes写文件不能同时写一个,如果只有一个dumpfile(或少于parallel)׃影响性能。不但如此,当一个io server process在等待从而不能写dumpfile的时候就会报ORA-39095
解决该问题一׃U办?/span>
1Q进入到交互模式Q减parallel的数量,使其{于dmp文g的数量或增加dmp文gQ其与parallel数量相等?/span>
2Q在写导句的时候指定dumpfile中用变?%u(大小写均?Q让其自由分配{储文件即可?/span>


]]>
ORA-00600http://m.tkk7.com/badboyryan/archive/2015/03/20/423676.html坏男?/dc:creator>坏男?/author>Fri, 20 Mar 2015 07:08:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/03/20/423676.htmlhttp://m.tkk7.com/badboyryan/comments/423676.htmlhttp://m.tkk7.com/badboyryan/archive/2015/03/20/423676.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/423676.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/423676.html机房环境Q?/div>
OSQwindows 2008
数据库版本:oracle 11g

事g起因Q?/p>

昨天公司q维说机房的HP服务器磁盘坏了,我当时冷汗一下子出来了Q因是测试库Q没有备份,没有归档Q但是里面可是有1.5T的数据啊Q?img title="解决ORA-00600: <wbr>internal <wbr>error <wbr>code, <wbr>arguments: <wbr>[kcratr_nab_less_than_odr]错误" src="http://www.sinaimg.cn/uc/myshow/blog/misc/gif/E___6692EN00SIGG.gif" alt="解决ORA-00600: <wbr>internal <wbr>error <wbr>code, <wbr>arguments: <wbr>[kcratr_nab_less_than_odr]错误" style="border: none; max-width: 100%;" />下午他们修了一下午Q系l可以进MQ但是数据库在启动到OPEN的时候报错SYSTEM01数据文g~失一千多个数据块Q由于没有备份和归档Q所以这个数据库是挂掉了?img title="解决ORA-00600: <wbr>internal <wbr>error <wbr>code, <wbr>arguments: <wbr>[kcratr_nab_less_than_odr]错误" src="http://www.sinaimg.cn/uc/myshow/blog/misc/gif/E___6706EN00SIGG.gif" alt="解决ORA-00600: <wbr>internal <wbr>error <wbr>code, <wbr>arguments: <wbr>[kcratr_nab_less_than_odr]错误" style="border: none; max-width: 100%;" />QDBA们一定要做好备䆾Q否则最后全是自q事情Q,q好我们q有一个一周前的冷备库Q所以我直接物理q移Q把数据库恢复到一周以前了Q恢复的q程非常单,因ؓ数据库必ȝ那些文g路径都已存在Q如参数文g内的DUMP文g{)Q我只是把参数文Ӟ密码文gQ控制文Ӟ数据文g恢复到指定的目录Q然后直接STARTUPQ在nomount和mount阶段都是比较利的,而到open阶段的时候,则报错了让我闹心的ORA-600ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]的错误,因ؓ大家都知道,ORA-600是数据库自己内部的BUGQ我也是W一ơ遇刎ͼ问了很多人大安不会Q所以只能自己去摸烦解决Q值得庆幸的是在摸索了一个小时后Q我l于把数据库OPEN了,以下是我恢复的步骤Q如果感觉对您有所帮助Q那么请支持我一下?img title="解决ORA-00600: <wbr>internal <wbr>error <wbr>code, <wbr>arguments: <wbr>[kcratr_nab_less_than_odr]错误" src="http://www.sinaimg.cn/uc/myshow/blog/misc/gif/E___7392ZH00SIGG.gif" alt="解决ORA-00600: <wbr>internal <wbr>error <wbr>code, <wbr>arguments: <wbr>[kcratr_nab_less_than_odr]错误" style="border: none; max-width: 100%;" />
//报错QORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1770], [779181], [779205], [], [], [], [], [], [], []
//因ؓORA-600的错误没有具体提C,所以很多h无从下手Q别着急,我们可以先去告警日志ȝ看,以下是我的告警日志信息:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1770], [779181], [779205], [], [], [], [], [], [], [ 

Incident details in: d:/app/administrator/diag/rdbms/ccxe/ccxe/incident/incdir_2570/ccxe_ora_2164_i2570.trc
Aborting crash recovery due to error 600
Errors in file d:/app/administrator/diag/rdbms/ccxe/ccxe/trace/ccxe_ora_2164.trc:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1770], [779181], [779205], [], [], [], [], [], [], []
Errors in file d:/app/administrator/diag/rdbms/ccxe/ccxe/trace/ccxe_ora_2164.trc:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1770], [779181], [779205], [], [], [], [], [], [], []
ORA-600 signalled during: alter database open...
Tue May 10 10:13:10 2011
Trace dumping is performing id=[cdmp_20110510101310]
Tue May 10 10:13:11 2011
Sweep [inc][2570]: completed
Sweep [inc2][2570]: completed
Tue May 10 10:29:52 2011
Shutting down instance (immediate)
Shutting down instance: further logons disabled

//我们通过告警日志文g好像也没查到什么有用的信息Q别着急,我们q可以再查找对应的TRC文gQ我的对应TRC文g则是ccxe_ora_2788_i2164.trcQ以下是我的TRC信息

WARNING! Crash recovery of thread 1 seq 1770 is

ending at redo block 779181 but should not have ended before

redo block 779205

//看,有警告了Q意思是我在恢复的时候,丢失了redo日志Q当时我很纳P怎么会丢失redo呢?最后我把这个问题定位在传输redo的时候可能造成数据块的丢失Q因为我以前发生q这cM情,所以我重新拯redo日志Q再ơ将数据库启动?/p>

Incident 3771 created, dump file: d:/app/administrator/diag/rdbms/ccxe/ccxe/incident/incdir_3771/ccxe_ora_2164_i3771.trc

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1770], [779181], [779205], [], [], [], [], [], [], []

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1770], [779181], [779205], [], [], [], [], [], [], []

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1770], [779181], [779205], [], [], [], [], [], [], []

*** 2011-05-10 10:47:11.138

Stopping background process MMNL

*** 2011-05-10 10:47:12.139

Stopping background process MMON

*** 2011-05-10 10:47:13.259

ksukia: Starting kill, flags = 1

ksukia: killed 0 out of 0 processes.

*** 2011-05-10 10:47:14.652

*** 2011-05-10 10:47:14.652 4132 krsh.c

ARCH: Archival disabled due to shutdown: 1089

*** 2011-05-10 10:47:15.653

*** 2011-05-10 10:47:15.653 4132 krsh.c

ARCH: Archival disabled due to shutdown: 1089

//重新拯redo日志到指定目录,再次启动数据库?/span>

Total System Global Area 6413680640 bytes

Fixed Size                  2187728 bytes

Variable Size             754978352 bytes

Database Buffers         5637144576 bytes

Redo Buffers               19369984 bytes

Database mounted.

ORA-00338: log 4 of thread 1 is more recent than control file

ORA-00312: online log 4 thread 1:

'D:/APP/ADMINISTRATOR/ORADATA/CCXE/REDO04.LOG'

//报错果然不一样了Q这ơ报错的意思是我的日志比我的控制文件新Q要我恢复控制文件?/span>
SQL>  recover database using backup controlfile until cancel; 指定日志文g恢复

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

D:/app/Administrator/oradata/CCXE/redo04.log

ORA-00279: change 128488612 generated at 05/10/2011 11:13:52 needed for thread

ORA-00289: suggestion :

D:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/CCXE/ARCHIVELOG/2011_05_10/O1_MF_1_1771_%U_.ARC

ORA-00280: change 128488612 for thread 1 is in sequence #1771

ORA-00278: log file 'D:/app/Administrator/oradata/CCXE/redo04.log' no longer

needed for this recovery

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

D:/app/Administrator/oradata/CCXE/redo05.log

Log applied.

Media recovery complete.

SQL> alter database open; -必须?/span>RESETLOGS方式打开数据?/span>

alter database open

ERROR at line 1:

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

SQL> alter database open RESETLOGS ;

Database altered.


OKQ现在数据库h了,通过q次出错我ȝ了几点,希望对大家有帮助

1Q数据库不管是不是测试,都尽量备份,否则出问题哭都来不及?/p>

2Q数据库量归档Q这样就可以恢复数据库在M时刻?/p>

3Q出错时不要慌,要仔l查看报错信息,分析报错Q根据自己所掌握的知识一步一步解冻I当你把问题解?/p>

Ӟ你会发现排错的过E真的是一个非常提升自qq程?/p>

4Q^怸定要有几个在q方面很强的朋友Q因为有的时候ƈ不是自己查资料就能查到的Q更多的是需要朋友的

l验与帮助?/p>

注:以上是q次错误的全部过E,q段旉我会把近期所遇到的错误都整理一下,都分享给大家Q通过q期的工作我感觉数据库真的是一个非常庞大的pȝQ每ơ遇到新错的时候我都会很郁L解决Q因为我发现我的懂的q是太少了,学习毕竟是一个由点到U,q到网的过E,一个问题由模糊到清晎ͼ由清晰再模糊Q反复来几遍最l都会很明白的。我们要有清晰的理论知识Q出错的时候才会找到出题所在,作ؓ一个DBA冷静Q清晰的头脑也很重要Q通过DBA的这个行业,也是非常ȝ自己的性格Q希望大安可以在DBA的这条职Z路,走远Q祝大家好运?/p>



]]>
解决ORA-01555报错http://m.tkk7.com/badboyryan/archive/2015/03/20/423675.html坏男?/dc:creator>坏男?/author>Fri, 20 Mar 2015 07:03:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/03/20/423675.htmlhttp://m.tkk7.com/badboyryan/comments/423675.htmlhttp://m.tkk7.com/badboyryan/archive/2015/03/20/423675.html#Feedback1http://m.tkk7.com/badboyryan/comments/commentRss/423675.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/423675.htmlOS环境Qwindows2008

数据库版本:oracle 11.2.0

 

今天同事需要执行一个拥有大扚wq算的存储过E,当执行的时候报错,报错信息如下Q?/span>

 

ERROR at line 1:
ORA-01555: snapshot too old: rollback segment number 18 with name
"_SYSSMU18_671080725$" too small
ORA-06512: at "TRANUSER.TRAN_ETL_LOAD_J2S_MAIN", line 22
ORA-06512: at "TRANUSER.TRAN_ETL_LOAD_JST_PRE", line 5
ORA-06512: at line 2

 

--_ֽ解释

不知道是从哪里{的了, 假设有张表,叫table1Q里面有5000万行数据Q假N计全表扫?ơ需?个小Ӟ我们从过E来看: 

1、在1炚wQ有个用户A发出了select * from table1;此时不管来table1怎么变化Q正的l果应该是用户A会看到在1炚wq个时刻的内宏V这个是没有疑问的?nbsp;
2、在1?0分,有个用户B执行了update命oQ更Ctable1表中的第4000万行的这条记录,q时Q用户A的全表扫描还没有到达W?000万条。毫无疑问,q个时候,W?000万行的这条记录是被写C回滚D里M的,我假设是回滚DRBS1Q如果用户A的全表扫描到达了W?000万行Q是应该会正的从回滚段RBS1中读取出1炚w时刻的内容的?nbsp;
3、这Ӟ用户B他刚才做的操作commit了,但是q时Q系l仍然可以给用户A提供正确的数据,因ؓ那第4000万行记录的内容仍然还在回滚段RBS1里,pȝ可以ҎSCN来到回滚D里扑ֈ正确的数据,但是大家注意刎ͼq时记录在RBS1里的W?000万行记录已经发生了一炚w大的改变Q就是这个第4000万行的在回滚DRBS1里的数据有可能随时被覆盖掉,因ؓq条记录已经被提交了Q!Q?nbsp;
4、由于用户A的查询时间O长,而业务在一直不断的q行QRBS1回滚D在被多个不同的tracnsaction使用着Q这个回滚段里的extent循环CW?000万行数据所在的extentQ由于这条记录已l被标记提交了,所以这个extent是可以被其他transaction覆盖掉的Q?nbsp;
5、到??0分,用户A的查询终于到了第4000万行Q而这时已l出CW?条说的情况,需要到回滚DRBS1L数据Q但是已l被覆盖掉了Q于?1555出C?/span>

--错误提示

数据库报?ORA-01555 什么回滚段 '_SYSSMU168' is too small.很明?是可用的回滚D太了 满不了那个大事物的需?具体的sql我就不提供了

q有一U可?一般伴随着ORA-22924出现是LOB上的问题

辨别ORA-01555是不是发生在LOB上的,一般来?普通的01555错误会指明发?1555的rollback segment,而LOB的则没有,而是伴随着ORA-22924出现
http://www.dbafan.com/blog/?p=11

辨别ORA-01555是不是发生在LOB上的,一般来?普通的01555错误会指明发?1555的rollback segment,而LOB的则没有,而是伴随着ORA-22924出现http://www.dbafan.com/blog/?p=11

 

--回滚原理

回退D中存放的信息被UCؓ“前照”(pre-image)Q也是说当一个进E对某个表进行了DML操作以后Q?br />更改前的U录信息被存放于回滚D,其作用有两个Q?/span>

1、当q程要求回滚QROLLBACKQ的时候,使用回滚D中信息是纪录复原;

2、保持数据读的一致性,当一个进E从某个表中ȝ录的时候,ORACLEq回的是当读开始或者进E开始时的纪录,如果在读取过E中有其他进E更改了表纪录,ORACLE׃从回滚段中读取当L作开始时的数据。回滚段中信息ƈ不是持久有效的,当进E提交(COMMITQ或者回滚(ROLLBACKQ的时候,回滚D就被释放了。当一个进E在执行一个大查询的时候,如果在查询的q程中所d得的表被更改而且更改COMMIT太久Q那回滚D中?#8220;前照”有可能会被其他的进E覆盖,从而导致ORA-01555错误?/span>

 

--解决Ҏ

1、增加回滚段的大,因ؓORACLEL覆盖最旧的回滚D,所以大的回滚段能有效的降低数据被覆盖的可能性?br />2、检查你的程序,避免在一个大查询的过E中Ҏ查询的表执行太多更新操作?/span>

下面回顾下关于ora-01555的解x?10g默认是用AUM q里׃说了. 下面是几个解x式来?/span>hellodba ȝ的很不错 大家可用参考下Q?/span>

1、扩大回滚段: 因ؓ回滚D|循环使用的,如果回滚D够大Q那么那些被提交的数据信息就能保存够长的时间是那些大事务完成一致性读?/span>?/span>

2、增加undo_retention旉:在undo_retention规定的时间内QQ何其他事务都不能覆盖q些数据?/span>

3、优化相x询语句,减少一致性读:减少查询语句的一致性读Q就降低d不到回滚D|据的风险。这一炚w帔R要!

4、减不必要的事务提?提交的事务越,产生的回滚段信息p?/span>

5、对大事务指定回滚段,通过以下语句可以指定事务的回滚段Q?span style="color: #0000ff;">SET TRANSACTION USE ROLLBACK SEGMENT rollback_segment; l大事务指定回滚D,即降低大事务回滚信息覆盖其他事务的回滚信息的几率Q又降低了他自n的回滚信息被覆盖的几率。大事务的存在,往往?555错误产生的诱因?/span>

6、用游标时量使用昑ּ游标Qƈ且只在需要的时候打开游标Q同时将所有可以在游标外做的操作从游标循环中拿出。当游标打开Ӟ查询开始了Q直到游标关闭。减游标的打开旉Q就减少?555错误发生的几率?/span>http://hi.baidu.com/xu521huan/blog/item/0903ec9b62d85ebec8eaf442.html

 

--一些实?/span>

我的回答是先看看到底是哪个SQL有这个问题,再确定不是因为SQL本n太糟p导致SNAPSHOT TOO OLD?span style="color: #ff0000;">再跟他们说我不相信把UNDO_RETENTION加大会有效地解决问题。最后给几个CASES来支持我的观炏V?br />(1)reduce the frequency of commit
(2)set initialization paramter undo_retention(9i)
(3)alter system set retention guarrantee (10g)
(4)increase the size of the undo tablespace
(5)assign a large rollback segment for the large transaction
(6)tuning the long run sql
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
the root cause of the error ora-01555:the long run query can not find a consistent image, because the undo blocks that used to construct the consistent image were wrapped by other active transaction.

遇到q个问题Q首先可以看是维护需要执行的SQL或者应用执行的SQL报的

1、如果^时不报,只是l护人员执行的SQL报的Q一般是SQL写得不好Q运行执行过长,过了参?redo_retention所讄的时间造成的。这U情况可以协助他们进行SQL分析和优化,减少q行旉Q这个情况下pȝ不需要对pȝq行调整

2、如果是应用E序报的Q比如批量程序,则需要通知相关人员q行重做Q否则批量运行失败,业务可能会因为数据遗漏出现问题。如果出现的频率较多Q则需要在优化应用E序Q优化的手段有SQL优化、适当增加commit的次数等Q。在应用新版本上U前Q可通过调整pȝ配置临时解决问题Ҏ如:

1Q增大undo表空?/span>

2Q增大redo_retention

3)为此大事物指定专门的undo D?/span>

http://www.itpub.net/viewthread.php?tid=1021888&extra=&highlight=DBA%C3%E6%CA%D4&page=3

新鲜出炉的案例:APPS的h下午回馈说今天一个DB的JOB一直报SNAPSHOT TOO OLD。这是过d个月q个数据库第一ơ有q种回馈。到ALERT LOG中看看,有好多这UERRORQWed Jul 16 10:30:44 2008 ORA-01555 caused by SQL statement below (Query Duration=884 sec, SCN: 0x0018.bef62785):Wed Jul 16 10:30:44 2008

Wed Jul 16 10:57:29 2008 ORA-01555 caused by SQL statement below (Query Duration=149 sec, SCN: 0x0018.bf0d3e47):Wed Jul 16 10:57:29 2008

嗯,884SQ?49SQ不可能吧?看看UNDO SETTINGSQ很大啊Q?/span>

SQL> show parameter undo
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     10800
undo_suppress_errors                 boolean     FALSE
undo_tablespace                      string      UNDOTBS2

SQL> select sum(bytes)/(1024*1024*1024) as gbytes from dba_data_files;
    GBYTES
----------
300.654297

SQL> select sum(bytes)/(1024*1024*1024) as gbytes from dba_data_files where tablespace_name='UNDOTBS2';
    GBYTES
----------
  9.765625

自己试试Q?br />create table mytab as <the select statement> where 1=0
16:12:14 SQL> insert into mytab <the select statement>
insert into mytab
            *

ERROR at line 1:
ORA-01555: snapshot too old: rollback segment number 27 with name "_SYSSMU27$"
too small
Elapsed: 00:10:08.83

奇怪了。看看今天这个UNTOTBS2 UTILIZATION怎样?/span>

SQL> select snap_time, free_mb from tbs_usage_hist where database='<DB Name>' and tbs='UNDOTBS2' and snap_time>sysdate-1 order by snap_time;
SNAP_TIME              FREE_MB
------------------- ----------
2008-07-15 18:00:00    9172.56
2008-07-15 19:00:00    9172.56
2008-07-15 20:00:00    9156.56
2008-07-15 21:00:00    9188.56
2008-07-15 22:00:00    9204.56
2008-07-15 23:00:00    9212.56
2008-07-16 00:00:00    9228.56
2008-07-16 01:00:00    9228.56
2008-07-16 02:00:00    9236.56
2008-07-16 03:00:00    9228.56
2008-07-16 04:00:00    9252.56
2008-07-16 05:00:00    9252.56
2008-07-16 06:00:00    9252.56
2008-07-16 07:00:00    9260.56
2008-07-16 08:00:00    9244.56
2008-07-16 09:00:00    8486.56
2008-07-16 10:00:00    1683.56
2008-07-16 11:00:00       2.31
2008-07-16 12:00:00       1.94
2008-07-16 13:00:00       2.44
2008-07-16 14:00:00       2.44
2008-07-16 15:00:00       1.25
2008-07-16 16:00:00      17.75

?问题应当是很明了了,自今天十点多UNDOTBS2一直是HIGHLY UTILIZED。打个电话给APP OWNERQ原来他今天早上十点左右做了一个很大的DELETE。即然这个报错的APP只要在二十四时内能再执行完可以,而OLTP APP没报错,那就再等{吧。在四点半时QUNDOTBS2差不多?5% FREE。再试试Q?br />16:37:49 SQL> insert into mytab <the select statement>
182 rows created.
Elapsed: 00:34:47.39
17:12:37 SQL>
现在的UNDOTBS2 UTILIZATIONQ?br />SNAP_TIME              FREE_MB
------------------- ----------
2008-07-16 17:00:00    8523.63
问题解决。SNAPSHOT TOO OLD从来׃是一个过时的题目,也没有一个简单的{案?/span>



]]>
ORA--27100http://m.tkk7.com/badboyryan/archive/2015/03/20/423674.html坏男?/dc:creator>坏男?/author>Fri, 20 Mar 2015 06:58:00 GMThttp://m.tkk7.com/badboyryan/archive/2015/03/20/423674.htmlhttp://m.tkk7.com/badboyryan/comments/423674.htmlhttp://m.tkk7.com/badboyryan/archive/2015/03/20/423674.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/423674.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/423674.html

决ORA--27100 shared memory realm already exists报错

分类Q?nbsp;各种ORA-报错2011-05-19 15:49 1220人阅?/span> 评论(0) 收藏 举报

OS环境Qwindows PC

数据库版本:oracle 10.0.2.1

 

q是一ơ小打小闹的报错Q原因是帮同事改他自q的测试库sgaQ原sga_max_size大小?00MQ我修改?GQ重启时报错?/span>

 

ORA-27100 shared memory realm already exists

 

通过查询官方文档Q解释该原因是因为windows pc 32位机最大支持分配oracle内存?.7GQ所以导致报错,q是一ơ缺经验的教训?/span>

 

解决案例Q?/span>

  

1QSQL> show parameter sga

     NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
     lock_sga                             boolean     FALSE
     pre_page_sga                    boolean     FALSE
     sga_max_size                    big integer 568M
     sga_target                         big integer 568M

 

2QSQL> alter system set sga_max_size=2048m scope=spfile; -SGA讄?G

     SQL> alter system set sga_target=2048m scope=spfile;

 

3QSQL> shutdown immediate  -重启数据库报?/span>

     SQL> startup

 

     ORA-27100 shared memory realm already exists

     OSD-00029: ????????????
     O/S-Error: (OS 8) ??????????????????????????????     

 

4QSQL> create pfile from spfile; -使用spfile生成pfileQ修改参数文件内的以下两个参敎ͼ

    参数调?/span>

     *.sga_max_size=600000000
     *.sga_target=600000000

 

5QSQL> startup pfile='E:/oracle/product/10.2.0/db_1/database/INITorcl.ORA' -q时候启?/span>

     依然报错Q这是因为windows机器需要重启后台服务,否则无法生效Q郁P
     ORA-27100 shared memory realm already exists

     OSD-00029: ????????????
     O/S-Error: (OS 8) ??????????????????????????????

 

7Q找到管?服务/OracleServiceORCL 重启

 

8QSQL> startup pfile='E:/oracle/product/10.2.0/db_1/database/INITorcl.ORA'
     ORACLE 例程已经启动?/span>

     Total System Global Area  603979776 bytes
     Fixed Size                  1250428 bytes
     Variable Size             163580804 bytes
     Database Buffers          432013312 bytes
     Redo Buffers                7135232 bytes
     数据库装载完毕?br />     数据库已l打开?/span>

 

9QSQL> create spfile from pfile; -Ҏ启动的pfile生成spfileQ下ơ启动时候则ddspfile

     参数文g

     SQL> startup force
     SQL> show parameter spfile

     NAME                                 TYPE        VALUE
     ------------------------------------ ----------- ------------------------------
     spfile                               string      E:/ORACLE/PRODUCT/10.2.0/DB_1/
                                                 DATABASE/SPFILEORCL.ORA
     SQL> show parameter sga;

     NAME                                 TYPE        VALUE
     ----------------------------------- ----------- ------------------------------
     lock_sga                             boolean     FALSE
     pre_page_sga                      boolean     FALSE
     sga_max_size                      big integer 576M
     sga_target                          big integer 576M



]]>
用exp无法导出I解决Ҏhttp://m.tkk7.com/badboyryan/archive/2012/06/11/380485.html坏男?/dc:creator>坏男?/author>Mon, 11 Jun 2012 02:29:00 GMThttp://m.tkk7.com/badboyryan/archive/2012/06/11/380485.htmlhttp://m.tkk7.com/badboyryan/comments/380485.htmlhttp://m.tkk7.com/badboyryan/archive/2012/06/11/380485.html#Feedback1http://m.tkk7.com/badboyryan/comments/commentRss/380485.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/380485.html

最早的一ơ用oracle 11g导出数据发现有的表丢׃Q感觉莫名其妙的Q后来终于找到原因了?br />扑ֈ问题以后Q再看看解决Ҏ?br />
11GR2中有个新Ҏ,当表无数据时Q不分配segmentQ以节省I间Q可是在?/span>EXPORT导出ӞI也不能导出,q就Dq移时候丢׃一些表Q存储过E也失效了。本以ؓEXP能有相应的控制开养I可以切换是否导出IQ看了下帮助Q没有太大的改变。有些奇怪,N11GR2不更新EXP的功能了Q还看有的帖子说11GR1作ؓ客户端去卸蝲11GR2的,都会出现ora-1455d的错误,得换?/span>11GR2的exp才没事了Q心中感慨阿Q怎么版本间的兼容q么脆弱了!

  解决ҎQ?/span>

一?insert一行,?/span>rollback׃?/span>segment了?/span>

  该方法是在在I中插入数据,再删除,则?/span>segment。导出时则可导出I?/span>

二?deferred_segment_creation参数

该参数值默认是TRUEQ当改ؓFALSEӞ无论是空表还是非IQ都分配segment。修?/span>SQL语句Q?/span>

alter system set deferred_segment_creation=false scope=both;

  需注意的是Q该D|后对以前导入的I不生作用,仍不能导出,只能对后面新增的表生作用。如需导出之前的空表,只能用第一U方法?/span>

三?用以下这句查扄表ƈ分配I间

  select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

  ?/span>SQL查询的结果导出,然后执行导出的语句,分配I间修改segment|然后再导出即可导出空表了?/span>





]]>
解决web应用和数据库在一P应用服务启动报错http://m.tkk7.com/badboyryan/archive/2012/06/05/380071.html坏男?/dc:creator>坏男?/author>Tue, 05 Jun 2012 14:20:00 GMThttp://m.tkk7.com/badboyryan/archive/2012/06/05/380071.htmlhttp://m.tkk7.com/badboyryan/comments/380071.htmlhttp://m.tkk7.com/badboyryan/archive/2012/06/05/380071.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/380071.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/380071.htmlnet stop tomcat
rem ping 20个包Q实现g?br />ping 127.0.0.1 -n 20
net start tomcat

做成bat文gQ开机的时候运行这个批处理Q这样oracle有_的时间启动了

]]>
囄上传怎么变慢?/title><link>http://m.tkk7.com/badboyryan/archive/2011/05/06/349657.html</link><dc:creator>坏男?/dc:creator><author>坏男?/author><pubDate>Fri, 06 May 2011 01:45:00 GMT</pubDate><guid>http://m.tkk7.com/badboyryan/archive/2011/05/06/349657.html</guid><wfw:comment>http://m.tkk7.com/badboyryan/comments/349657.html</wfw:comment><comments>http://m.tkk7.com/badboyryan/archive/2011/05/06/349657.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/badboyryan/comments/commentRss/349657.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/badboyryan/services/trackbacks/349657.html</trackback:ping><description><![CDATA[<p>1、第一张图片传的慢Q第二张囄传的?br /> 2、上传仅仅有0.6k的速度<br /> 3、第二张54k的速度<br /> 4、解军_法:清理一下时表QBLOG字段的事</p> <img src ="http://m.tkk7.com/badboyryan/aggbug/349657.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/badboyryan/" target="_blank">坏男?/a> 2011-05-06 09:45 <a href="http://m.tkk7.com/badboyryan/archive/2011/05/06/349657.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>区分你的oracle?4位还?2?/title><link>http://m.tkk7.com/badboyryan/archive/2010/01/09/308810.html</link><dc:creator>坏男?/dc:creator><author>坏男?/author><pubDate>Sat, 09 Jan 2010 03:18:00 GMT</pubDate><guid>http://m.tkk7.com/badboyryan/archive/2010/01/09/308810.html</guid><wfw:comment>http://m.tkk7.com/badboyryan/comments/308810.html</wfw:comment><comments>http://m.tkk7.com/badboyryan/archive/2010/01/09/308810.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/badboyryan/comments/commentRss/308810.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/badboyryan/services/trackbacks/308810.html</trackback:ping><description><![CDATA[<p>sqlplus / as sysdba;<br /> <br /> SQL> desc x$ksmmem<br />  Name                                                 Type<br />  ----------------------------------------- -------- ------------------<br />  ADDR                                                        RAW(8)<br />  INDX                                                         NUMBER<br />  INST_ID                                                    NUMBER<br />  KSMMMVAL                                           RAW(8)</p> <p><br /> RAW(8)  64 ?br /> raw(4)  32?/p> <p><br />  </p> <img src ="http://m.tkk7.com/badboyryan/aggbug/308810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/badboyryan/" target="_blank">坏男?/a> 2010-01-09 11:18 <a href="http://m.tkk7.com/badboyryan/archive/2010/01/09/308810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux 下卸载oracle10Ghttp://m.tkk7.com/badboyryan/archive/2009/12/18/306610.html坏男?/dc:creator>坏男?/author>Fri, 18 Dec 2009 12:45:00 GMThttp://m.tkk7.com/badboyryan/archive/2009/12/18/306610.htmlhttp://m.tkk7.com/badboyryan/comments/306610.htmlhttp://m.tkk7.com/badboyryan/archive/2009/12/18/306610.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/306610.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/306610.html 

1. q行 $ORACLE_HOME/bin/localconfig delete
2. rm -rf $ORACLE_BASE/*
3. rm -f /etc/oraInst.loc /etc/oratab
4. rm -rf /etc/oracle
5. rm -f /etc/inittab.cssd
6. rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv

]]>
oracle服务器上的链?/title><link>http://m.tkk7.com/badboyryan/archive/2009/10/14/298262.html</link><dc:creator>坏男?/dc:creator><author>坏男?/author><pubDate>Wed, 14 Oct 2009 09:42:00 GMT</pubDate><guid>http://m.tkk7.com/badboyryan/archive/2009/10/14/298262.html</guid><wfw:comment>http://m.tkk7.com/badboyryan/comments/298262.html</wfw:comment><comments>http://m.tkk7.com/badboyryan/archive/2009/10/14/298262.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/badboyryan/comments/commentRss/298262.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/badboyryan/services/trackbacks/298262.html</trackback:ping><description><![CDATA[<p>Enterprise Manager Database Control URL - (orcl) :</p> <p>http://badboyryan:1158/em</p> <p> </p> <p>数据库配|文件已l安装到 D:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装?D:\oracle\product\10.2.0\db_1?/p> <p>iSQL*Plus URL ?</p> <p>http://badboyryan:5560/isqlplus</p> <p> </p> <p>iSQL*Plus DBA URL ?</p> <p>http://badboyryan:5560/isqlplus/dba<br /> </p> <img src ="http://m.tkk7.com/badboyryan/aggbug/298262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/badboyryan/" target="_blank">坏男?/a> 2009-10-14 17:42 <a href="http://m.tkk7.com/badboyryan/archive/2009/10/14/298262.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle中忘记System和Sys密码后的处理Ҏ http://m.tkk7.com/badboyryan/archive/2009/10/11/297735.html坏男?/dc:creator>坏男?/author>Sat, 10 Oct 2009 16:56:00 GMThttp://m.tkk7.com/badboyryan/archive/2009/10/11/297735.htmlhttp://m.tkk7.com/badboyryan/comments/297735.htmlhttp://m.tkk7.com/badboyryan/archive/2009/10/11/297735.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/297735.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/297735.html
        sqlplus /nolog;
  connect / as sysdba
  alter user sys identified by newpassword ;
  alter user system identified by newpassword  ;

W二U方法用以下Ҏ修改密码Q?

orapwd file=pwdxxx.ora password=newpassword entries=10

  讑֮完后Q重新启动服务,再次登陆可以了



]]>
Tomcat 与oracle做成服务启动序的问题解?/title><link>http://m.tkk7.com/badboyryan/archive/2009/06/17/282939.html</link><dc:creator>坏男?/dc:creator><author>坏男?/author><pubDate>Wed, 17 Jun 2009 15:06:00 GMT</pubDate><guid>http://m.tkk7.com/badboyryan/archive/2009/06/17/282939.html</guid><wfw:comment>http://m.tkk7.com/badboyryan/comments/282939.html</wfw:comment><comments>http://m.tkk7.com/badboyryan/archive/2009/06/17/282939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/badboyryan/comments/commentRss/282939.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/badboyryan/services/trackbacks/282939.html</trackback:ping><description><![CDATA[<p>Z么tomcat和oracle都做成服务了Q但是tomcat的应用无效呢Q?br /> <br /> <br /> 解决办法Q?br /> 打开bin/service.bat文gQ?/p> <p>echo Using JVM:              %PR_JVM%<br /> "%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop</p> <p>一句后面加?--DependsOn   oracle侦听服务Qoracledatabse<br /> 注意用;号隔开依赖的服?br /> 再执行bin/service.bat install jnszcg Q即可安?span class="hilite1">Tomcat</span>服务Qƈ且依赖oracle<br /> <br /> 其实很简单就是制定服务的依赖关系Q?br /> <br /> 最后采取的Ҏ成功了:<br /> <br /> 1、把tomcat做到服务里面Q手工启动;<br /> 2、新Z个批处理net start tomcat <br /> 3、新Z个Q务,在计机启动的时候执行批处理ok<br /> 是不是问题已l解决了<br /> <br /> </p> <img src ="http://m.tkk7.com/badboyryan/aggbug/282939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/badboyryan/" target="_blank">坏男?/a> 2009-06-17 23:06 <a href="http://m.tkk7.com/badboyryan/archive/2009/06/17/282939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最q在linux以及hp-ux下面又折腾了一下oracle自动启动http://m.tkk7.com/badboyryan/archive/2009/06/15/282476.html坏男?/dc:creator>坏男?/author>Mon, 15 Jun 2009 15:22:00 GMThttp://m.tkk7.com/badboyryan/archive/2009/06/15/282476.htmlhttp://m.tkk7.com/badboyryan/comments/282476.htmlhttp://m.tkk7.com/badboyryan/archive/2009/06/15/282476.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/282476.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/282476.html 1、oracle10g在linux as5下面的自动启动脚本以及文?/a>
2、tomcat5527在linux as5下面的自动启动脚本以及文?/a>

]]>
oracle安装完成后ؓ什么每一ơ都需要startuphttp://m.tkk7.com/badboyryan/archive/2009/05/04/268837.html坏男?/dc:creator>坏男?/author>Mon, 04 May 2009 08:38:00 GMThttp://m.tkk7.com/badboyryan/archive/2009/05/04/268837.htmlhttp://m.tkk7.com/badboyryan/comments/268837.htmlhttp://m.tkk7.com/badboyryan/archive/2009/05/04/268837.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/268837.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/268837.html   1.~辑此实例,启动方式改ؓ自动
   oradim -EDIT -SID test -STARTMODE auto
  2.~辑此实例,启动方式改ؓ手动
   oradim -EDIT -SID test -STARTMODE manual


]]>
重徏密码文g--解决ORA-01991错误http://m.tkk7.com/badboyryan/archive/2009/03/16/260002.html坏男?/dc:creator>坏男?/author>Mon, 16 Mar 2009 05:59:00 GMThttp://m.tkk7.com/badboyryan/archive/2009/03/16/260002.htmlhttp://m.tkk7.com/badboyryan/comments/260002.htmlhttp://m.tkk7.com/badboyryan/archive/2009/03/16/260002.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/260002.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/260002.htmlSQL>conn / as sysdba

 SQL>  shutdown   immediate

SQL> startup
ORACLE 例程已经启动?

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
 ORA-01991: ???????'E:\oracle\ora92\DATABASE\PWDsdnt.ORA'

解决ҎQ由于未q行在归档模式下Q用orapwd重徏oracle的密码文Ӟ

host del E:\oracle\ora92\DATABASE\PWDsdnt.ORA

host orapwd file=E:\oracle\ora92\DATABASE\PWDsdnt.ORA password=system entries=10

alter database open
SQL>conn / as sysdba

 SQL>  shutdown   immediate
重启tomcat问题解决Q又可以正常的访问数据库?br />

]]>
oracle 优化(1)?http://m.tkk7.com/badboyryan/archive/2009/02/26/256776.html坏男?/dc:creator>坏男?/author>Thu, 26 Feb 2009 03:31:00 GMThttp://m.tkk7.com/badboyryan/archive/2009/02/26/256776.htmlhttp://m.tkk7.com/badboyryan/comments/256776.htmlhttp://m.tkk7.com/badboyryan/archive/2009/02/26/256776.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/256776.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/256776.html

转自:http://blog.csdn.net/yxc369/archive/2006/12/26/1461206.aspx

1 前言 2
2 ȝ 2
3 降龙十八?3
W一?避免对列的操?3
W二?避免不必要的cd转换 4
W三?增加查询的范围限?4
W四?量L”IN”?#8221;OR” 4
W五?量L “<>” 5
W六?LWhere子句中的IS NULL和IS NOT NULL 5
W七?索引提高数据分布不均匀时查询效?5
W八?利用HINT强制指定索引 6
W九?屏蔽无用索引 6
W十?分解复杂查询Q用帔R代替变量 7
W十一?like子句量前端匚w 7
W十二掌 用Case语句合ƈ多重扫描 7
W十三掌 使用nls_date_format 8
W十四掌 使用Z函数的烦?8
W十五掌 Z函数的烦引要求等式匹?9
W十六掌 使用分区索引 9
W十七掌 使用位图索引 9
W十八掌 军_使用全表扫描q是使用索引 9
4 ȝ 10

1 前言
客服业务受到SQL语句的媄响非常大Q在规模比较大的局点,往往因ؓ一个小的SQL语句不够优化Q导致数据库性能急剧下降Q小型机idle所剩无几,应用 服务器断q、超Ӟ严重影响业务的正常运行。因此,UC效的SQL语句为客服业务的‘恉’q不q分。数据库的优化方法有很多U,在应用层来说Q主要是?于烦引的优化。本ơ秘W根据实际的工作l验Q在研发原来已有的方法的基础上,q行了一些扩充,ȝ了基于烦引的SQL语句优化的降龙十八掌Q希望有一天你 能用其中一掌来驯服客服业务中横行的‘恉’?br /> 2 ȝ
l 建立必要的烦?br /> q次传授的降龙十八掌Qȝ只有一句话Q徏立必要的索引Q这是后面降龙十八掌的内功基础。这一点看似容易实际却很难。难难在如何判断哪些烦引是必要 的,哪些又是不必要的。判断的最l标准是看这些烦引是否对我们的数据库性能有所帮助。具体到Ҏ上,必ȝ悉数据库应用E序中的所有SQL语句Q从中统 计出常用的可能对性能有媄响的部分SQLQ分析、归U_作ؓWhere条g子句的字D及其组合方式;在这一基础上可以初步判断出哪些表的哪些字段应该建立 索引。其ơ,必须熟悉应用E序。必M解哪些表是数据操作频J的表;哪些表经怸其他表进行连接;哪些表中的数据量可能很大Q对于数据量大的表,其中各个 字段的数据分布情况如何;{等。对于满以上条件的q些表,必须重点xQ因为在q些表上的烦引,对SQL语句的性能产生举轻重的媄响。不q下面还?ȝ了一下降龙十八掌内功的入门基Q徏立烦引常用的规则如下Q?br /> 1、表的主键、外键必L索引Q?br /> 2、数据量过300的表应该有烦引;
3、经怸其他表进行连接的表,在连接字D上应该建立索引Q?br /> 4、经常出现在Where子句中的字段Q特别是大表的字D,应该建立索引Q?br /> 5、烦引应该徏在选择性高的字D上Q?br /> 6、烦引应该徏在小字段上,对于大的文本字段甚至长字段Q不要徏索引Q?br /> 7、复合烦引的建立需要进行仔l分析;量考虑用单字段索引代替Q?br /> A、正选择复合索引中的d字段Q一般是选择性较好的字段Q?br /> B、复合烦引的几个字段是否l常同时以AND方式出现在Where子句中?单字D|询是否极甚x有?如果是,则可以徏立复合烦引;否则考虑单字D늃引;
C、如果复合烦引中包含的字D늻常单独出现在Where子句中,则分解ؓ多个单字D늃引;
D、如果复合烦引所包含的字D超q?个,那么仔细考虑其必要性,考虑减少复合的字D;
E、如果既有单字段索引Q又有这几个字段上的复合索引Q一般可以删除复合烦引;
8、频J进行数据操作的表,不要建立太多的烦引;
9、删除无用的索引Q避免对执行计划造成负面影响Q?br /> 以上是一些普遍的建立索引时的判断依据。一a以蔽之,索引的徏立必L重,Ҏ个烦引的必要性都应该l过仔细分析Q要有徏立的依据。因为太多的索引与不?分、不正确的烦引对性能都毫无益处:在表上徏立的每个索引都会增加存储开销Q烦引对于插入、删除、更新操作也会增加处理上的开销?另外Q过多的复合索引Q在有单字段索引的情况下Q一般都是没有存在h值的Q相反,q会降低数据增加删除时的性能Q特别是寚wJ更新的表来_负面影响?大?br /> 3 降龙十八?/div>
W一?避免对列的操?br /> M对列的操作都可能D全表扫描Q这里所谓的操作包括数据库函数、计表辑ּ{等Q查询时要尽可能操作移至等式的双Q甚臛_掉函数?br /> ?Q下列SQL条g语句中的列都建有恰当的烦引,?0万行数据情况下执行速度却非常慢Q?br /> select * from record where substrb(CardNo,1,4)=’5378′(13U?
select * from record where amount/30< 1000Q?1U)
select * from record where to_char(ActionTime,’yyyymmdd’)=’19991201′Q?0U)
׃where子句中对列的M操作l果都是在SQLq行旉行计算得到的,因此它不得不q行表扫描,而没有用该列上面的索引Q如果这些结果在查询~译时就能得刎ͼ那么可以被SQL优化器优化,使用索引Q避免表扫描Q因此将SQL重写如下Q?br /> select * from record where CardNo like ‘5378%’Q?lt; 1U)
select * from record where amount < 1000*30Q?lt; 1U)
select * from record where ActionTime= to_date (’19991201′ ,’yyyymmdd’)Q?lt; 1U)
差别是很明显的!
W二?避免不必要的cd转换
需要注意的是,量避免潜在的数据类型{换。如字W型数据与数值型数据比较QORACLE会自动将字符型用to_number()函数q行转换Q从而导致全表扫描?br /> ?Q表tab1中的列col1是字W型Qchar)Q则以下语句存在cd转换Q?br /> select col1,col2 from tab1 where col1>10Q?br /> 应该写ؓQ?select col1,col2 from tab1 where col1>’10′?/div>
W三?增加查询的范围限?br /> 增加查询的范围限Ӟ避免全范围的搜烦?br /> ?Q以下查询表record 中时间ActionTime于2001q??日的数据Q?br /> select * from record where ActionTime < to_date (’20010301′ ,’yyyymm’)
查询计划表明Q上面的查询对表q行全表扫描Q如果我们知道表中的最早的数据?001q??日,那么Q可以增加一个最时_使查询在一个完整的范围之内。修改如下: select * from record where
ActionTime < to_date (’20010301′ ,’yyyymm’)
and ActionTime > to_date (’20010101′ ,’yyyymm’)
后一USQL语句利用上ActionTime字段上的索引Q从而提高查询效率。把’20010301′换成一个变量,Ҏ取值的机率Q可以有一半以上的 Z提高效率。同理,对于大于某个值的查询Q如果知道当前可能的最大|也可以在Where子句中加?“AND 列名< MAX(最大?”?/div>
W四?量L”IN”?#8221;OR”
含有”IN”?#8221;OR”的Where子句怼使用工作表,使烦引失效;如果不生大量重复|可以考虑把子句拆开Q拆开的子句中应该包含索引?br /> ?Q?select count(*) from stuff where id_no in(’0′,’1′)Q?3U)
可以考虑or子句分开Q?br /> select count(*) from stuff where id_no=’0′
select count(*) from stuff where id_no=’1′
然后再做一个简单的加法Q与原来的SQL语句相比Q查询速度更快?/div>
W五?量L “<>”
量L “<>”Q避免全表扫描,如果数据是枚丑ր|且取D围固定,则修改ؓ”OR”方式?br /> ?Q?br /> UPDATE SERVICEINFO SET STATE=0 WHERE STATE<>0;
以上语句׃其中包含?#8221;<>”Q执行计划中用了全表扫描QTABLE ACCESS FULLQ,没有用到state字段上的索引。实际应用中Q由于业务逻辑的限Ӟ字段state为枚丑ր|只能{于0Q??Q而且Q值等?1Q?的很 ,因此可以L”<>”Q利用烦引来提高效率?br /> 修改为:UPDATE SERVICEINFO SET STATE=0 WHERE STATE = 1 OR STATE = 2 。进一步的修改可以参考第4U方法?br /> W六?LWhere子句中的IS NULL和IS NOT NULL
Where字句中的IS NULL和IS NOT NULL不会用烦引而是q行全表搜烦Q因此需要通过改变查询方式Q分情况讨论{方法,LWhere子句中的IS NULL和IS NOT NULL?/div>
W七?索引提高数据分布不均匀时查询效?br /> 索引的选择性低Q但数据的值分布差异很大时Q仍然可以利用烦引提高效率。A、数据分布不均匀的特D情况下Q选择性不高的索引也要创徏?br /> 表ServiceInfo中数据量很大Q假设有一百万行,其中有一个字DDisposalCourseFlagQ取D围ؓ枚D|[0Q?Q?Q?Q?4Q?Q?Q?]。按照前面说的烦引徏立的规则Q?#8220;选择性不高的字段不应该徏立烦引,该字D只?U取|索引值的重复率很高,索引选择性明昑־低,因此 不徏索引。然而,׃该字D上数据值的分布情况非常ҎQ具体如下表Q?br /> 取D?1~5 6 7
占L据量的百分比 1% 98% 1%
而且Q常用的查询中,查询DisposalCourseFlag<6 的情冉|多又频繁Q毫无疑问,如果能够建立索引Qƈ且被应用Q那么将大大提高q种情况的查询效率。因此,我们需要在该字D上建立索引?/div>
W八?利用HINT强制指定索引
在ORACLE优化器无法用上合理烦引的情况下,利用HINT强制指定索引?br /> l箋上面7的例子,ORACLE~省认定Q表中列的值是在所有数据行中均匀分布的,也就是说Q在一百万数据量下Q每U?DisposalCourseFlag值各?2.5万数据行与之对应。假设SQL搜烦条gDisposalCourseFlag=2Q利?DisposalCourseFlag列上的烦引进行数据搜索效率,往往不比全表扫描的高QORACLE因此对烦?#8220;视而不?#8221;Q从而在查询路径的选择 中,用其他字D上的烦引甚臛_表扫描。根据我们上面的分析Q数据值的分布很特D,严重的不均匀。ؓ了利用烦引提高效率,此时Q一斚w可以单独对该字段或该 表用analyze语句q行分析Q对该列搜集_的统计数据,使ORACLE在查询选择性较高的值时能用上烦引;另一斚wQ可以利用HINT提示Q在 SELECT关键字后面,加上“/*+ INDEX(表名Uͼ索引名称Q?/”的方式,强制ORACLE优化器用上该索引?br /> 比如Q?select * from serviceinfo where DisposalCourseFlag=1 ;
上面的语句,实际执行中ORACLE用了全表扫描Q加上蓝色提C部分后Q用到烦引查询。如下:
select /*+ INDEX(SERVICEINFO,IX_S_DISPOSALCOURSEFLAG) */ *
from serviceinfo where DisposalCourseFlag=1;
h意,q种Ҏ会加大代码维护的隑ֺQ而且该字D上索引的名U被改变之后Q必要同步所有指定烦引的HINT代码Q否则HINT提示被ORACLE忽略掉?/div>
W九?屏蔽无用索引
l箋上面8的例子,׃实际查询中,q有涉及到DisposalCourseFlag=6的查询,而此时如果用上该字段上的索引Q将是非怸明智的,效率 也极低。因此这U情况下Q我们需要用Ҏ的方法屏蔽该索引Q以便ORACLE选择其他字段上的索引。比如,如果字段为数值型的就在表辑ּ的字D名后,d “+ 0”Qؓ字符型的ƈ上空Ԍ“||”"”
如: select * from serviceinfo where DisposalCourseFlag+ 0 = 6 and workNo = ‘36′ ?br /> 不过Q不要把该用的烦引屏蔽掉了,否则同样会生低效率的全表扫描?/div>
W十?分解复杂查询Q用帔R代替变量
对于复杂的Where条gl合QWhere中含有多个带索引的字D,考虑用IF语句分情况进行讨论;同时Q去掉不必要的外来参数条Ӟ减低复杂度,以便在不同情况下用不同字D上的烦引?br /> l箋上面9的例子,对于包含
Where (DisposalCourseFlag < v_DisPosalCourseFlag) or (v_DisPosalCourseFlag is null) and ….的查询,(q里v_DisPosalCourseFlagZ个输入变量,取D围可能ؓ[NULLQ?Q?Q?Q?Q?Q?Q?Q?])Q可?考虑分情는IF语句q行讨论Q类|
IF v_DisPosalCourseFlag =1 THEN
Where DisposalCourseFlag = 1 and ….
ELSIF v_DisPosalCourseFlag =2 THEN
Where DisposalCourseFlag = 2 and ….
。。。。。?/div>
W十一?like子句量前端匚w
因ؓlike参数使用的非帔RJ,因此如果能够对like子句使用索引Q将很高的提高查询的效率?br /> ?Qselect * from city where name like ‘%S%’
以上查询的执行计划用了全表扫描(TABLE ACCESS FULLQ,如果能够修改为:
select * from city where name like ‘S%’
那么查询的执行计划将会变成(INDEX RANGE SCANQ,成功的利用了name字段的烦引。这意味着Oracle SQL优化器会识别出用于烦引的like子句Q只要该查询的匹配端是具体倹{因此我们在做like查询Ӟ应该量使查询的匚w端是具体|即?like ‘S%’?/div>
W十二掌 用Case语句合ƈ多重扫描
我们常常必须Z多组数据表计不同的聚集。例如下例通过三个独立查询Q?br /> ?Q?Qselect count(*) from emp where sal<1000;
2Qselect count(*) from emp where sal between 1000 and 5000;
3Qselect count(*) from emp where sal>5000;
q样我们需要进行三ơ全表查询,但是如果我们使用case语句Q?br /> select
count (sale when sal <1000
then 1 else null end) count_poor,
count (sale when between 1000 and 5000
then 1 else null end) count_blue_collar,
count (sale when sal >5000
then 1 else null end) count_poor
from emp;
q样查询的结果一P但是执行计划只进行了一ơ全表查询?/div>
W十三掌 使用nls_date_format
?Q?br /> select * from record where to_char(ActionTime,’mm’)=’12′
q个查询的执行计划将是全表查询,如果我们改变nls_date_formatQ?br /> SQL>alert session set nls_date_formate=’MM’;
现在重新修改上面的查询:
select * from record where ActionTime=’12′
q样p使用actiontime上的索引了,它的执行计划是QINDEX RANGE SCANQ?/div>
W十四掌 使用Z函数的烦?br /> 前面谈到M对列的操作都可能D全表扫描Q例如:
select * from emp where substr(ename,1,2)=’SM’;
但是q种查询在客服系l又l常使用Q我们可以创Z个带有substr函数的基于函数的索引Q?br /> create index emp_ename_substr on eemp ( substr(ename,1,2) );
q样在执行上面的查询语句Ӟq个Z函数的烦引将排上用场Q执行计划将是(INDEX RANGE SCANQ?/div>
W十五掌 Z函数的烦引要求等式匹?br /> 上面的例子中Q我们创ZZ函数的烦引,但是如果执行下面的查询:
select * from emp where substr(ename,1,1)=’S’
得到的执行计划将q是QTABLE ACCESS FULLQ,因ؓ只有当数据列能够{式匚wӞZ函数的烦引才能生效,q样对于q种索引的计划和l护的要求都很高。请注意Q向表中d索引是非常危险的 操作Q因导致许多查询执行计划的变更。然而,如果我们使用Z函数的烦引就不会产生q样的问题,因ؓOracle只有在查询用了匚w的内|函数时 才会使用q种cd的烦引?/div>
W十六掌 使用分区索引
在用分析命o对分区烦引进行分析时Q每一个分区的数据值的范围信息会放入Oracle的数据字怸。Oracle可以利用q个信息来提取出那些只与SQL查询相关的数据分区?br /> 例如Q假设你已经定义了一个分区烦引,q且某个SQL语句需要在一个烦引分Zq行一ơ烦引扫描。Oracle会仅仅访问这个烦引分区,而且会在q个分区上调用一个此索引范围的快速全扫描。因Z需要访问整个烦引,所以提高了查询的速度?/div>
W十七掌 使用位图索引
位图索引可以从本质上提高使用了小?000个唯一数据值的数据列的查询速度Q因为在位图索引中进行的索是在RAM中完成的Q而且也L比传l的B树烦引的速度要快。对于那些少?000个唯一数据值的数据列徏立位囄引,可以使执行效率更快?/div>
W十八掌 军_使用全表扫描q是使用索引
和所有的U笈一P最后一招都会又回到LQ最后我们来讨论一下是否需要徏立烦引,也许q行全表扫描更快。在大多数情况下Q全表扫描可能会D更多的物?盘输入输出Q但是全表扫描有时又可能会因为高度ƈ行化的存在而执行的更快。如果查询的表完全没有顺序,那么一个要q回记录数小?0Q的查询可能会读?表中大部分的数据块,q样使用索引会查询效率提高很多。但是如果表非常有顺序,那么如果查询的记录数大于40Q时Q可能用全表扫描更快。因此,有一?索引范围扫描的M原则是:
1Q对于原始排序的?仅读取少于表记录?0Q的查询应该使用索引范围扫描。反之,d记录数目多于表记录数?0Q的查询应该使用全表扫描?br /> 2Q对于未排序的表 仅读取少于表记录?Q的查询应该使用索引范围扫描。反之,d记录数目多于表记录数?Q的查询应该使用全表扫描?/div>
4 ȝ
以上的招式,是完全可以相互结合同时运用的。而且各种Ҏ之间怺影响Q紧密联pR这U联pL存在一致性,也可能带来冲H,当冲H发生时Q需要根据实际情况进行选择Q没有固定的模式。最后决定SQL优化功力的因素就是对ORACLE内功的掌握程度了?br /> 另外Q值得注意的是Q随着旉的推Ud数据的篏计与变化QORACLE对SQL语句的执行计划也会改变,比如Q基于代L优化ҎQ随着数据量的增大Q优 化器可能错误的不选择索引而采用全表扫描。这U情况可能是因ؓl计信息已经q时Q在数据量变化很大后没有及时分析表;但如果对表进行分析之后,仍然没有?上合理的索引Q那么就有必要对SQL语句用HINT提示Q强制用合理的烦引。但q种HINT提示也不能滥用,因ؓq种Ҏq于复杂Q缺乏通用性和应变?力,同时也增加了l护上的代hQ相Ҏ_Z函数右移、去?#8220;IN QOR Q?lt;> QIS NOT NULL ”、分解复杂的SQL语句{等ҎQ却?#8220;放之四v皆准”的,可以攑ֿ大胆的用?br /> 同时Q优化也不是“一x?#8221;的,必须随着情况的改变进行相应的调整。当数据库设计发生变化,包括更改表结构:字段和烦引的增加、删除或改名{;业务逻辑发生变化Q如查询方式、取D围发生改变等{。在q种情况下,也必d原有的优化进行调_以适应效率上的需求?/div>


]]>解决weblogic9.2q接oracle10G数据源创建慢的问?/title><link>http://m.tkk7.com/badboyryan/archive/2009/02/26/256774.html</link><dc:creator>坏男?/dc:creator><author>坏男?/author><pubDate>Thu, 26 Feb 2009 03:25:00 GMT</pubDate><guid>http://m.tkk7.com/badboyryan/archive/2009/02/26/256774.html</guid><wfw:comment>http://m.tkk7.com/badboyryan/comments/256774.html</wfw:comment><comments>http://m.tkk7.com/badboyryan/archive/2009/02/26/256774.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/badboyryan/comments/commentRss/256774.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/badboyryan/services/trackbacks/256774.html</trackback:ping><description><![CDATA[问题描述Q?br /> <br />        数据库配|:     oracle 10g数据库内存有8GQ操作系l是windows2003Server<br />       weblogic 9.2启动服务的时候需要初始化甌70个连?br />      需要时间接q?5U一个连接。所以接q?7分钟才启动服务器Q?br /> <br /> 问题解决Q?br />            在weblogic所在的机器上编?br />             C:\WINDOWS\system32\drivers\etc\hosts<br />            加入服务器的IP地址和计机名;<br /> <br /> q样p决问题了Q修改后启动weblogic的服务时间也十几秒了;Q?br /> <img src ="http://m.tkk7.com/badboyryan/aggbug/256774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/badboyryan/" target="_blank">坏男?/a> 2009-02-26 11:25 <a href="http://m.tkk7.com/badboyryan/archive/2009/02/26/256774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle数据库自动备份的批处?/title><link>http://m.tkk7.com/badboyryan/archive/2008/10/06/232632.html</link><dc:creator>坏男?/dc:creator><author>坏男?/author><pubDate>Mon, 06 Oct 2008 04:07:00 GMT</pubDate><guid>http://m.tkk7.com/badboyryan/archive/2008/10/06/232632.html</guid><wfw:comment>http://m.tkk7.com/badboyryan/comments/232632.html</wfw:comment><comments>http://m.tkk7.com/badboyryan/archive/2008/10/06/232632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/badboyryan/comments/commentRss/232632.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/badboyryan/services/trackbacks/232632.html</trackback:ping><description><![CDATA[@echo off <br /> set /a Hyear=%date:~0,4%<br /> set /a Hmonth1=%date:~5,1%<br /> set /a Hmonth2=%date:~6,1%<br /> set /a Hmonth=%Hmonth1%*10+%Hmonth2%<br /> set /a Hdate1=%date:~8,1%<br /> set /a Hdate2=%date:~9,1%<br /> set /a Hdate=%Hdate1%*10+%Hdate2%<br /> exp userid=sdfdafs/sdfdafs file=scf%Hdate%.dmp <br /> q样的话只保存一个月的数? <img src ="http://m.tkk7.com/badboyryan/aggbug/232632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/badboyryan/" target="_blank">坏男?/a> 2008-10-06 12:07 <a href="http://m.tkk7.com/badboyryan/archive/2008/10/06/232632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux上面安装oracle11g的全q程http://m.tkk7.com/badboyryan/archive/2008/05/28/203558.html坏男?/dc:creator>坏男?/author>Wed, 28 May 2008 08:36:00 GMThttp://m.tkk7.com/badboyryan/archive/2008/05/28/203558.htmlhttp://m.tkk7.com/badboyryan/comments/203558.htmlhttp://m.tkk7.com/badboyryan/archive/2008/05/28/203558.html#Feedback3http://m.tkk7.com/badboyryan/comments/commentRss/203558.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/203558.html   Linux上面安装oracle11g的全q程

Ua技术与政治无关Q小布老师的视频讲的真不错Qȝ一下供以后参?/p>

   -------------------------------------------------------------------------

一、安装centos4.4版本
    1、安装centos的时候开始输入i586应用一些新功能Q?br />     2、分区swap分区是内存的2?br />        / ext3 选择fill to maximum allowable size
    3、设|一个固定的IP地址
    4、不要启用防火墙
    5、注意在选择lg的时候选择上develop tools 和legacy software develop
       安装oracle需要安装开发环?br />     6、图形声韟뀁打印等不要选择
二、查看linux里面的包是否全支持oracle11g?br />     binutils-2.15.92.0.2-18
    compat-libstdc++-33.2.3-47.3
    glibc-2.3.4-2.19
    glibc-common-2.3.4-2.19
    glibc-devel-2.3.4-2.19
    glibc-headers-2.3.4-2.19
    gcc-3.4.5-2
    gcc-c++-3.4.5-2
    libgcc-3.4.5
    libstdc++-3.4.5-2
    libstdc++-devel-3.4.5-2
    make-3.80-5
    sysstat-5.0.5
    ----------------------------
    unixODBC-2.2.11
    unixODBC-devel-2.2.11
    libaio-devel-0.3.105-2
    libaio-0.3.105-2
    elfutils-libelf-0.97-5
    elfutils-libelf-devel-0.97-5
    必须的rpm
    用这个命令查?nbsp;  rpm -qa | grep
    没有׃安装包里面找发现下面?个默认没有装好需要自己安装;
    有一个包里面都是从centos里面取出来的
    把这些包攑ֈroot的目录下面进行安?br />     了我把包整理了一下上传到csdnQ不q是Z增加点积分而已d1.7M左右?br />     下蝲地址Qhttp://download.csdn.net/source/471808
三、修改内核的参数

    参照oracle在linux下的安装文档q行大体如下Q?br />     1、vi /etc/sysctl.conf
      kernel.shmall = 2097152
      kernel.shmmax = 2147483648
      kernel.shmmni = 4096
      kernel.sem = 250 32000 100 128
      fs.file-max = 65536
      net.ipv4.ip_local_port_range = 1024 65000
      net.core.rmem_default = 4194304
      net.core.rmem_max = 4194304
      net.core.wmem_default = 262144
      net.core.wmem_max = 262144
      执行q个使生效;
      /sbin/sysctl -p
    2、vi /etc/security/limits.conf
      oracle           soft    nproc   2047
      oracle           hard    nproc   16384
      oracle           soft    nofile  1024
      oracle           hard    nofile  65536
    3、vi /etc/pam.d/login
      session    required     /lib/security/pam_limits.so
      session    required     pam_limits.so
    4、vi /etc/profile
        if [ $USER = "oracle" ]; then
                if [ $SHELL = "/bin/ksh" ]; then
                      ulimit -p 16384
                      ulimit -n 65536
                else
                      ulimit -u 16384 -n 65536
                fi
        fi
四、创建ORACLE安装的组和用?br />     groupadd oinstall
    groupadd dba
    mkdir /u01/oracle
    useradd -g oinstall -G dba -d /u01/oracle oracle
    passwd oracle
    chown -R oracle:oinstall u01
    id nobody认nobody用户存在

五、设|ORACLE的环境变?/p>

   用oracle的用L录系l,然后
   vi  .bash_profile
  加入
  oracle_base=/u01
  oracle_home=$oracle_base/bin
  oracle_sid=chinantn
  path=$path:$oracle_home/bin
  export oracle_base oracle_home oracle_sid path
  注意=号两边不要有I格Q?br /> 六、开始安?br />    1、unzip linux oracle11.zip
   2、mv database /u01
   3、chown -R oracle:oinstall database/
   4、startx
   5?用oracle用户d
   6、进入终端,cd database
   7?/runInstaller
   8、vi /etc/hosts 加入ip 你的计算机名
   9、安装完后root执行两个脚本
   10、只安装软g
   11、netca  dbca讄侦听和创建数据库注意选择unicode字符集?nbsp; 
上面的过E亲自试验成功。oracle11g+centos 4.4
实在不行qqQ?47863130 吧山东济南的ORACLE用户多联pd
记得转蝲的时候写上来?http://blogjava.net/badboyryan
安装的时候第一步弹Z个错误,点确认后修改一下目?u01/

 



]]>
oracle 11g ?windows xp 上启动不了dbconsolehttp://m.tkk7.com/badboyryan/archive/2008/05/27/203236.html坏男?/dc:creator>坏男?/author>Tue, 27 May 2008 07:31:00 GMThttp://m.tkk7.com/badboyryan/archive/2008/05/27/203236.htmlhttp://m.tkk7.com/badboyryan/comments/203236.htmlhttp://m.tkk7.com/badboyryan/archive/2008/05/27/203236.html#Feedback3http://m.tkk7.com/badboyryan/comments/commentRss/203236.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/203236.htmlC:\Documents and Settings\scf>set oracle_sid
环境变量 oracle_sid 没有定义

C:\Documents and Settings\scf>set ORACLE_SID=chinantn

C:\Documents and Settings\scf>set oracle_sid
ORACLE_SID=chinantn

C:\Documents and Settings\scf>emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.1.0.6.0
Copyright (c) 1996, 2007 Oracle Corporation.  All rights reserved.
https://ntscf:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ...OracleDBConsolechinan
tn 服务正在启动 ................................................................
...
OracleDBConsolechinantn 服务已经启动成功?/p>

https://ntscf:1158/em

可以使用web版本的oem了;支持web理比较好用?/p>

 



]]>
oracle oemLw䆾证明http://m.tkk7.com/badboyryan/archive/2008/05/06/198759.html坏男?/dc:creator>坏男?/author>Tue, 06 May 2008 09:31:00 GMThttp://m.tkk7.com/badboyryan/archive/2008/05/06/198759.htmlhttp://m.tkk7.com/badboyryan/comments/198759.htmlhttp://m.tkk7.com/badboyryan/archive/2008/05/06/198759.html#Feedback2http://m.tkk7.com/badboyryan/comments/commentRss/198759.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/198759.htmloracle 11g的web database control中,q行一些操作需要主n份证?比如q行数据备䆾、数据的导出导入{?
q样对于数据库的安全增强了一定的保证。如果我们有q行适当的配|,可以W一ơ会遇到一些错误:
验证错误
h查ƈ更正以下错误, 然后重试该操?
Error - 错误: 用户名和/或口令无?br />    所以此时我们需要进行简单的配置Q?br />    1、从开始设|——控刉李쀔—管理工?扑ֈ本地安全{略
   2、打开本地安全{略,扑ֈ本地{略
   3、打开其中的用h限分配(user rights assignmentQ?br />    4、在双的列表中扑ֈ“以批量Q务登?#8221;Qlog on as a batch jobQ?br />    5、选中Q点d键,选择属性,数据库安装的所在操作系l用Pd其中卛_
   6、然后应用、确定?br />    7、下ơ就使用安装oracle的os用户及相应的口oq行Lw䆾证明?br />
另外注意Qoracle11g里面的创I间用system用户登陆后找到服务器标签Q?br />           
                    创徏用户也在服务器标{;

转蝲Qhttp://hi.baidu.com/eng21/blog/item/f2265430edb0449aa9018ed3.html

]]>
应用E序后台抛错ORA-01536 出表空?ts'的空间限?http://m.tkk7.com/badboyryan/archive/2008/03/20/187438.html坏男?/dc:creator>坏男?/author>Thu, 20 Mar 2008 03:24:00 GMThttp://m.tkk7.com/badboyryan/archive/2008/03/20/187438.htmlhttp://m.tkk7.com/badboyryan/comments/187438.htmlhttp://m.tkk7.com/badboyryan/archive/2008/03/20/187438.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/187438.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/187438.html感觉q个是oracle对用户在表空间上做的一个限Ӟ需要把q个限制L可以了?br />
SQL> conn sys/pwd@con as sysdba;
已连接?br /> SQL> alter user user QUOTA UNLIMITED  ON  ts;

用户已更攏V?/p>

SQL> commit;

提交完成?/p>

SQL>



]]>
ORACLE 默认~码 GBK -UTF8~码http://m.tkk7.com/badboyryan/archive/2008/02/03/179122.html坏男?/dc:creator>坏男?/author>Sun, 03 Feb 2008 02:28:00 GMThttp://m.tkk7.com/badboyryan/archive/2008/02/03/179122.htmlhttp://m.tkk7.com/badboyryan/comments/179122.htmlhttp://m.tkk7.com/badboyryan/archive/2008/02/03/179122.html#Feedback1http://m.tkk7.com/badboyryan/comments/commentRss/179122.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/179122.html查看oracle数据库字W集Q?br /> select userenv('language') from dual;

 

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  135337420 bytes
Fixed Size                   452044 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
Database mounted.

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

System altered.

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

System altered.

SQL> ALTER DATABASE OPEN;

Database altered.

SQL>alter database character set INTERNAL_USE UTF8


或?br /> SQL> alter database character set zhs16gbk
  2  ;
alter database character set zhs16gbk
*
W?1 行出现错?
ORA-12716: ??? CLOB ???, ?? ALTER DATABASE CHARACTER SET
 alter database character set internal_convert zhs16gbk;



]]>
?囄 文g存储?Oracle 的存储过E用的外部BLOB的方?/title><link>http://m.tkk7.com/badboyryan/archive/2007/08/19/137896.html</link><dc:creator>坏男?/dc:creator><author>坏男?/author><pubDate>Sat, 18 Aug 2007 22:29:00 GMT</pubDate><guid>http://m.tkk7.com/badboyryan/archive/2007/08/19/137896.html</guid><wfw:comment>http://m.tkk7.com/badboyryan/comments/137896.html</wfw:comment><comments>http://m.tkk7.com/badboyryan/archive/2007/08/19/137896.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/badboyryan/comments/commentRss/137896.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/badboyryan/services/trackbacks/137896.html</trackback:ping><description><![CDATA[试环境: Win2000 + Oracle92<br /><br />        一个存储图片文件的q程QQ何开发工具都可以通过调用q程把图片文存储到数据库中?br />详细步骤Q?br />SQL> connect <a href="mailto:chanet/chanet@oradb">chanet/chanet@oradb</a>;<br />已连接?br /><br />SQL> CREATE TABLE IMAGE_LOB (T_ID VARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL);<br />表已创徏?br />SQL> CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\Oracle'; --囄目录<br />目录已创建?br />SQL> CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS<br />  2    F_LOB BFILE;<br />  3    B_LOB BLOB;<br />  4  BEGIN<br />  5    INSERT INTO IMAGE_LOB (T_ID, T_IMAGE)<br />  6      VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB;<br />  7    F_LOB:= BFILENAME ('IMAGES', FILENAME);<br />  8    DBMS_LOB.FILEOPEN (F_LOB, DBMS_LOB.FILE_READONLY);<br />  9    DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,<br /> 10    DBMS_LOB.GETLENGTH (F_LOB));<br /> 11    DBMS_LOB.FILECLOSE (F_LOB);<br /> 12    COMMIT;<br /> 13  END;<br /> 14  /<br />q程已创建?br />SQL> EXEC IMG_INSERT('1','f_TEST.jpg');<br />PL/SQL q程已成功完成?img src ="http://m.tkk7.com/badboyryan/aggbug/137896.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/badboyryan/" target="_blank">坏男?/a> 2007-08-19 06:29 <a href="http://m.tkk7.com/badboyryan/archive/2007/08/19/137896.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ODAC 应用技?Q二Q?BLOB ?CLOB 数据cd http://m.tkk7.com/badboyryan/archive/2007/08/18/137817.html坏男?/dc:creator>坏男?/author>Sat, 18 Aug 2007 07:07:00 GMThttp://m.tkk7.com/badboyryan/archive/2007/08/18/137817.htmlhttp://m.tkk7.com/badboyryan/comments/137817.htmlhttp://m.tkk7.com/badboyryan/archive/2007/08/18/137817.html#Feedback0http://m.tkk7.com/badboyryan/comments/commentRss/137817.htmlhttp://m.tkk7.com/badboyryan/services/trackbacks/137817.html 使用 BLOB ?CLOB 数据cd

转:http://blog.csdn.net/nxyc_twz/archive/2004/06/16/16061.aspx
ODAC lg支持 Oracle 8 ?BLOB ?CLOB 数据cd。你可以使用 TOraQuery lg来获?LOB 字段的|使用同样的方法,你也可以获取  LONG ?LONG ROW 字段?当你需要?SQL DML ?PL/SQL 语句存取q些字段Ӟ你就会发?LOB 数据cd的用法有明显的不同?br />BLOB ?CLOB 数据cd通过 LOB 定位?指定数据地址) 存储在表列中Q实际的 BLOB ?CLOB 数据存储在独立的表空间中。与之不同的是,LONG ?LONG RAW cd存储在数据库中,表中存放着它们的实际倹{?br />
当存?LOB 列时Q返回的是定位器Q而不?LONG ?LONG RAW 数据cd那样q回它的实际倹{?
例如Q分析这个表的定义:

CREATE TABLE ClobTable (
Id NUMBER,
Name VARCHAR2(30),
Value CLOB
)

如果我们不通过值参数初始化 LOB 定位器, Oracle 不允许使用下面的语句来更新数据表:

UPDATE ClobTable
SET
Name = :Name,
Value = :Value

WHERE
Id = :Id

要初始化 LOB 定位器,你必M?EMPTY_BLOB ?EMPTY_CLOB Oracle 函数。要q回初始化后的定位器Q应在同L语句中?RETURNING 子句。例如:

UPDATE ClobTable
SET
Name = :Name,
Value = EMPTY_CLOB()
WHERE
Id = :Id
RETURNING
Value
INTO
:Value

ODAC ?LOB 数据?Oracle 且返回初始值字D,需使用Q值参数?br />存储q程允许自动初始?LOB |Ҏ如下Q?br />
CREATE OR REPLACE
PROCEDURE ClobTableUpdate (p_Id NUMBER, p_Name VARCHAR2,
p_Value OUT CLOB)
is
begin
UPDATE ClobTable
SET 
Name = p_Name,
Value = EMPTY_CLOB()
WHERE
Id = p_Id
RETURNING
Value
INTO
p_Value;
end;

注意Q值参数被声明?OUT。同Ӟ讄 LOB 数据cd的参数的 ParamType 属性ؓ ptInput Q且指定它到所需的数据前来实际调用存储过E。我们可以这栯用前面声明的存储q程Q?br />
OraStroredProc1.StoredProcName := 'ClobTableUpdate';
OraStroredProc1.Prepare;
OraStroredProc1.ParamByName('p_Id').AsInteger := Id;
OraStroredProc1.ParamByName('p_Name').AsString := Name;
OraStroredProc1.ParamByName('Value').ParamType := ptInput;
OraStroredProc1.ParamByName('Value').AsCLOBLocator.
LoadFromFile(FileName);
OraStroredProc1.Execute;

?ODAC 来说Q在 LOB 操作中?ParamType 属性是非常重要的。如?ParamType ?ptInput Q?ODAC 写数据到服务器,如果 ParamType ?ptOutputQ它则读取数据?br />
你可以?LOB 参数?dtBlob ?dtMemo 数据cd来编写普通的 DML 语句。在q种情况下, Oracle 自动?LONG ?LONG ROW cd的D{换ؓ CLOB ?BLOB 数据?br />
http://support.microsoft.com/kb/322796/en-us



]]>
վ֩ģ壺 һ붫| ߹ۿȤƵ | ɫĻ߹ۿ| vavaպ߹ۿ| ߹ۿר| һ߲߲| ҹAVëƬþ| 2018Ƶѹۿ| ɫaѿ| ޹Ʒþþ| 벻޳?Ƭ| ƷƵ| òѸ| ˳δʮ˽վ| ޹һվƷѿ| ɫƬѹۿ| Ƶ߹ۿ| ɫƨƨ߹ۿƵ| ŷ޾Ʒ| ˳Ļ߹ۿ| Ʒv߹ۿ | պٸѲ| һƵ| AVר߲| һ| þþþþþ91Ʒѹۿ| ֻƬ| ߹ۿƵ| ޺ݺݳۺ| 91Ʒˬž߹ۿ| һ| һƬѲ| ˬˬˬƵ| ҹվ߹ۿۿ | ŷݵһղsuv| þþƷƷëƬ| ĻһƷһ| ԲƵ | ŷ˳| һ| ŮƵվa|