[Oracle故障处理]ORA-30012: undo tablespace 'UNDOTBS1' does not exist

场景:用RMAN在异机上恢复数据。

错误信息如下:

ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-30012: undo tablespace 'UNDOTBS1' does not exist or of wrong type
进程 ID: 6341
会话 ID: 386 序列号: 3

主要原因是:数据库的pfile基本都是一致的,但是有个别数据库有人员切换过undo表空间,导致这个错误。重装一些pfile文件 即可。

环境对比; 源数据库的系统参数

SYS@oradb> show parameter undo;         

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     172800
undo_tablespace                      string      UNDOTBS2

新环境数据库的系统参数

SYS@oradb> show parameter undo;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     172800
undo_tablespace                      string      UNDOTBS1

数据库中获取pfile文件

create pfile='/home/oracle/pfile.ora' from spfile;

编辑pfile文件

[root@oradb oracle]# cat pfile.ora 
oradb.__db_cache_size=8443133952
oradb.__java_pool_size=16777216
oradb.__large_pool_size=20971520
oradb.__oracle_base='/u01/app'#ORACLE_BASE set from environment
oradb.__pga_aggregate_target=7214202880
oradb.__sga_target=9965666304
oradb.__shared_io_pool_size=0
oradb.__shared_pool_size=1430257664
oradb.__streams_pool_size=0
*.audit_file_dest='/u01/app/admin/oradb/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oradata/oradb/control01.ctl','/u01/app/oradata/oradb/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_domain=''
*.db_name='oradb'
*.db_recovery_file_dest='/u01/app/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/u01/app'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oradbXDB)'
*.job_queue_processes=1000
*.log_archive_dest_1='location=/u01//archive'
*.memory_max_target=17179869184
*.memory_target=17179869184
*.open_cursors=300
*.pga_aggregate_target=0
*.processes=1000
*.remote_login_passwordfile='EXCLUSIVE'
*.sec_case_sensitive_logon=FALSE
*.sessions=225
*.sga_max_size=0
*.sga_target=0
*.undo_retention=172800
*.undo_tablespace='UNDOTBS2'

把参数*.undo_tablespace修改成UNDOTBS2

后面,重新启动数据库,正常!

你可能感兴趣的:([Oracle故障处理]ORA-30012: undo tablespace 'UNDOTBS1' does not exist)