客户有个环境是10g的RAC,由于一次偶尔的需求,需要将一个11g的数据库临时在上面启动,当我们mount了11g的软件卷和datafile 卷之后,11g的数据库能正常启动,但是当11g的数据库shutdown时,导致了10g的crsd进程重启。 在10g的crsd的log中,可以看到: [cra […]
ORA-06553: PLS-801: internal error [56327]
今天收到一个客户的问题,数据库中的alertlog中报错ORA-06553: PLS-801: internal error [56327],
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Errors in file /mydb/db/oradata01/dbsepus/diag/rdbms/dbsepus/dbsepus/trace/dbsepus_cjq0_11056.trc: ORA-00604: error occurred at recursive SQL level 1 ORA-06544: PL/SQL: internal error, arguments: [56327], [], [], [], [], [], [], [] ORA-06553: PLS-801: internal error [56327] Mon Nov 17 14:11:04 2014 Errors in file /mydb/db/oradata01/dbsepus/diag/rdbms/dbsepus/dbsepus/trace/dbsepus_cjq0_11056.trc: ORA-00604: error occurred at recursive SQL level 1 ORA-06544: PL/SQL: internal error, arguments: [56327], [], [], [], [], [], [], [] ORA-06553: PLS-801: internal error [56327] Errors in file /mydb/db/oradata01/dbsepus/diag/rdbms/dbsepus/dbsepus/trace/dbsepus_cjq0_11056.trc: ORA-00604: error occurred at recursive SQL level 1 ORA-06544: PL/SQL: internal error, arguments: [56327], [], [], [], [], [], [], [] ORA-06553: PLS-801: internal error [56327] |
测试export用户或者表,甚至查询dba_segments都会报错ORA-06553: […]
rman set newname时报错RMAN-06015
某数据库restore之后,尝试set newname但是报错RMAN-06015。我们可以先手工catalog进去,在set newname。 可以看如下的测试案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
--1.纯粹的set newname是可以的 RMAN> run{ 2> set newname for datafile 6 to '/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222'; 3> } executing command: SET NEWNAME RMAN> RMAN> RMAN> RMAN> RMAN> --2. 但是switch之后,就不可以。这是因为在你当前控制文件中,找不到该文件(asm上的文件)的信息 RMAN> run{ 2> set newname for datafile 6 to '/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222'; 3> switch datafile 6; 4> } executing command: SET NEWNAME RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of switch command at 11/12/2014 10:36:09 RMAN-20230: datafile copy not found in the repository RMAN-06015: error while looking up datafile copy name: /u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222 RMAN> RMAN> RMAN> -- 3.将该文件作为datafilecopy,catalog到控制文件中: RMAN> catalog datafilecopy '/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222'; cataloged datafile copy datafile copy file name=/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222 RECID=1 STAMP=863433432 RMAN> --4. 然后就可以顺利set newname后switch了。 RMAN> run{ 2> set newname for datafile 6 to '/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222'; 3> switch datafile 6; 4> } executing command: SET NEWNAME datafile 6 switched to datafile copy input datafile copy RECID=1 STAMP=863433432 file name=/u01/oracle11gR2/oracle/oradata/ora11g/U_NOLOB2.dbf222 RMAN> RMAN> |
基于Solaris sparc的Oracle调优
一、RAC 中cluster wait time高问题 1.设置LMS进程为FX 60,不要过多调整lms进程的数量 注:在Solaris 10 Update 10之后,以及Solaris 11,才可以设置进程的优先级。可以通过看/etc/release看其版本。如Oracle Solaris 10 […]
SQL执行时反复一慢两快的问题
SQL执行的时间,在正常情况下应该是稳定的。如果第一次快,第二次慢,那么可能就是由于cardinality feedback的缘故,我们可以设置”_OPTIMIZER_USE_FEEDBACK”= false来规避。但是这次遇到的问题却是执行过程两快一慢,执行过程是慢->快- […]
统计信息收集后不生效的问题
客户的某系统升级到11g之后,收集统计信息却不生效,查dba_tables看不到其LAST_ANALYZED。这其实是因为11g的一个新特性,延时发布统计信息。 我们看下面的测试案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
--建立一个测试表: SQL> create table t_test as select * from dual; Table created. --检查这个publish属性,我们可以查系统级的熟悉和表级别的属性。在默认情况下,是true:即收集后立即发布: --系统级的publish属性是true,收集后立即发布: SQL> Select dbms_stats.GET_PREFS('PUBLISH') from dual; DBMS_STATS.GET_PREFS('PUBLISH') -------------------------------------------------------------------------------- TRUE --表级的publish属性是true,收集后立即发布: SQL> select dbms_stats.get_prefs('PUBLISH', 'TEST', 'T_TEST') publish from dual; PUBLISH -------------------------------------------------------------------------------- TRUE SQL> |
我们可以修改表的publish属性: [cray […]
关于带lob对象的分区表,移动表空间的问题
客户有个带lob对象的表空间,希望做表空间的move,可是等move之后,发现在dba_lobs里面查到的lob对象的表空间还是在原来的地方。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
CREATE TABLE SCES1INPUTS ( CODREQUEST VARCHAR2(9 BYTE) NOT NULL, LOBS1INPUT CLOB NOT NULL, CODLAYOUT VARCHAR2(20 BYTE) NOT NULL, DATINSERTION DATE DEFAULT SYSDATE NOT NULL, CODINSERTIONUSER VARCHAR2(10 BYTE) NOT NULL, CODINSERTIONFUNCTION VARCHAR2(5 BYTE) NOT NULL, DATHISTORY DATE DEFAULT SYSDATE NOT NULL, LOBS1INPUT_GZ BLOB ) LOB (LOBS1INPUT) STORE AS LOB1_SCES1INPUTS LOB (LOBS1INPUT_GZ) STORE AS LOB2_SCES1INPUTS PARTITION BY RANGE ( DATINSERTION ) ( PARTITION "SCES1INPUTS_200508" VALUES LESS THAN (to_date('01092005','ddmmyyyy')) , PARTITION "SCES1INPUTS_200509" VALUES LESS THAN (to_date('01102005','ddmmyyyy')) , PARTITION "SCES1INPUTS_200510" VALUES LESS THAN (to_date('01112005','ddmmyyyy')) , PARTITION "SCES1INPUTS_200511" VALUES LESS THAN (to_date('01122005','ddmmyyyy')) , PARTITION "SCES1INPUTS_200512" VALUES LESS THAN (to_date('01012006','ddmmyyyy')) ) / SQL> SELECT table_name,column_name,segment_name,tablespace_name,index_name 2 from Dba_Lobs WHERE table_name='SCES1INPUTS'; TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME -------------------- -------------------- ------------------------------ -------------------- ---------------------------------------- SCES1INPUTS LOBS1INPUT LOB1_SCES1INPUTS USERS SYS_IL0000018502C00002$$ SCES1INPUTS LOBS1INPUT_GZ LOB2_SCES1INPUTS USERS SYS_IL0000018502C00008$$ SQL> --move tablespace: SQL> alter table SCES1INPUTS 2 move partition SCES1INPUTS_200508 tablespace USERS 3 lob (LOBS1INPUT) STORE as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE ) 4 lob (LOBS1INPUT_GZ) store as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE ); Table altered. SQL> SQL> SELECT table_name,column_name,segment_name,tablespace_name,index_name 2 from Dba_Lobs WHERE table_name='SCES1INPUTS'; TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME -------------------- -------------------- ------------------------------ -------------------- ---------------------------------------- SCES1INPUTS LOBS1INPUT LOB1_SCES1INPUTS USERS SYS_IL0000018502C00002$$ SCES1INPUTS LOBS1INPUT_GZ LOB2_SCES1INPUTS USERS SYS_IL0000018502C00008$$ SQL> |
这里其实存在一个误区,对于分区表的lob对象,我们不应该去查user_lobs,而是应该去 […]
迁移数据库后启动报错ora-600[25025]
迁移脚本的日志中报错RMAN-06571: datafile 78 does not have recoverable copy,经查看发现78号文件曾经被offline drop掉。于是重建控制文件,在控制文件中把78号文件去掉,重建控制后,数据库能够mount,mount后数据文件是一致,但是o […]
修复missing的datafile
在一次迁移中,原来的数据库中存在一些missing的datafile,如MISSING00006这样的datafile,这些数据文件经查已经在os上不存在,且该数据文件上的信息也已经不需要。一般情况下,我们是将仍旧需要表从这个表空间move到另外的表空间,再将这整个表空间drop掉。但是由于表空间中 […]
tahiti已死,docs接班
如果你近期访问著名的oracle在线文档的网站tahiti.oracle.com,你会发现这个网站已经不再提供服务,在网站上只留下一段话:
1 2 3 |
Tahiti index no longer available All Oracle documentation is at docs.oracle.com. |
从改版到小清新,到停止服务,让不少老oracle玩家唏嘘不已,目前所有的在线文档,都转移新的d […]
active dataguard用户解锁
有个用户,在备库尝试多次登录,都是密码错误登录不上,再去主库登录,还是登录不上。并且由于尝试过多次数的密码,账户被锁定了。 DBA帮助其在主库解锁后,在active dataguard却还是无法登陆。 在ADG端检查:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SQL> select username ,account_status from dba_users where username='TEST'; USERNAME ACCOUNT_STATUS ------------------------------ -------------------------------- TEST OPEN SQL> SQL> SQL> SQL> conn test/test ERROR: ORA-28000: the account is locked Warning: You are no longer connected to ORACLE. SQL> SQL> |
在Primar […]
运行DBCA显示configure选项为灰色
运行dbca的时候,发现configure database选项为灰色。 处理方式为:
1 2 3 4 |
1. 如果在windows环境中: 1.1 开一个窗口。 1.2 set oracle_home=<directory path of the specific oracle home> 1.3 再次运行dbca |
2.如果在unix环境中:
1 2 3 4 |
2.1 如果是在solaris环境中,修改/var/opt/oracle下的oratab文件 如果是在其他unix环境,修改/etc下的oratab文件 2.2 修改oratab文件,在文件中添加:<database_sid>:<oracle_home_dir>:<Y|N > 2.3 再次运行dbca |
如果上面的情况还是没用,那么考虑是否 ORACLE_ […]