东瑜

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  135 随笔 :: 0 文章 :: 11 评论 :: 21万 阅读

作者:@张扶摇
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhangshengdong/p/12596707.html


目录

场景:用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

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



感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接
posted on   东瑜  阅读(1421)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
\\页脚html代码
点击右上角即可分享
微信分享提示