问题现象: oracle执行open,几秒后自动宕机 前台报错:
ORA-03135: connection lost contact
后台报错:经典的 4194 错误
Errors in file /u01/app/oracle/diag/rdbms/cjc/cjc/trace/cjc_m001_58727.trc (incident=301489): ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] Incident details in: /u01/app/oracle/diag/rdbms/cjc/cjc/incident/incdir_301489/cjc_m001_58727_i301489.trc
问题原因: Oracle数据库在打开的情况下进行的P2V,导致UNDO文件损坏,正常应该先停库,再进行迁移,否则很大概率会出现文件损坏、数据不一致等问题。 环境说明:
OS:Redhat 6.5 DB:Oracle 11.2.4.0
解决方案: 重建UNDO。 1.生成pfile
SQL> create pfile from spfile; File created.
2.修改UNDO参数
[oracle@cjc dbs]$ vi initcjc.ora ...... #*.undo_tablespace='UNDOTBS1' *.undo_management='MANUAL' *.undo_tablespace='SYSTEM'
3.重命名spfile
[oracle@cjc dbs]$ mv spfilecjc.ora spfilecjc.ora.bak
4.启动数据库
SQL> startup ORACLE instance started. Total System Global Area 4275781632 bytes Fixed Size 2260088 bytes Variable Size 1325400968 bytes Database Buffers 2936012800 bytes Redo Buffers 12107776 bytes Database mounted. Database opened.
5.重建UNDO
SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string MANUAL undo_retention integer 900 undo_tablespace string SYSTEM SQL> SELECT TABLESPACE_NAME FROM DBA_TABLESPACES; TABLESPACE_NAME ------------------------------ SYSTEM SYSAUX UNDOTBS1 TEMP USERS CJC 9 rows selected. SQL> CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/cjc/oradata/cjc/undotbs02.dbf' size 100M autoextend on; Tablespace created SQL> drop tablespace UNDOTBS1 INCLUDING CONTENTS AND DATAFILES; Tablespace dropped.
6.生成spfile,启动数据库
SQL> CREATE SPFILE FROM PFILE; File created. SQL> shutdown immediate; SQL> startup ORACLE instance started. Total System Global Area 4275781632 bytes Fixed Size 2260088 bytes Variable Size 1325400968 bytes Database Buffers 2936012800 bytes Redo Buffers 12107776 bytes Database mounted. Database opened.
7.监控无法启动 执行 lsnrctl 命令卡住很久,没有返回。 因为p2v后IP变了,需要改一下 listener.ora 或 /etc/hosts 欢迎关注我的公众号《 IT小Chen》
