【翻译自mos中文文章】重建控制文件的方法
重建控制文件的方法
參考原文:
How to Recreate a Controlfile (Doc ID 735106.1)
适用于:
Oracle Database - Enterprise Edition - Version 9.0.1.0 and later
Information in this document applies to any platform.
解决方式:
警告:
仅仅有遇到下列场景时,你才应该recreate 你的控制文件
1.全部的当前的控制文件copies 已经丢失 或者 都已经损坏(corrupted)
2.你正在restore一个backup,在此backup中控制文件已经损坏 或者丢失(missing)
3.你须要在控制文件里改变一个hard limit 的数据库參数(database parameter)
4.假设你正在move 你的database 到一个server上,而且files位于不同的location上。
5. oracle 技术支持人员建议你重建控制文件。
第一种情况:在已经存在的db中(而且该db是mount or open状态)建立一个新的controlfile
首先。必须生成一个控制文件的ascii dump文件
SQL> alter database backup controlfile to trace;
该trace文件被生成在udump文件夹下:
SQL> show parameter user_dump_dest
NAME TYPE VALUE
-------------- ------ ------------------------------------------------
user_dump_dest string /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace
到/oracle/product/11.1.0/db_1/diag/rdbms/V11/trace文件夹下。依照时间排序:
% cd /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace
% ls -ltr
一旦定位到该文件。该文件会与一般的trace file一样显演示样例如以下:
Trace file /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace/V11_ora_31225.trc
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/11.1.0/db_1
你感兴趣的是 包含 控制文件创建脚本的那一段。
改动trace file 并用改动后的脚本来建立控制文件
CREATE CONTROLFILE REUSE DATABASE "V11" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oradata/V11/redo01.log' SIZE 50M,
GROUP 2 '/oradata/V11/redo02.log' SIZE 50M,
GROUP 3 '/oradata/V11/redo03.log' SIZE 50M
DATAFILE
'/oradata/V11/system01.dbf',
'/oradata/V11/sysaux01.dbf',
'/oradata/V11/undotbs01.dbf',
'/oradata/V11/user01.dbf'
CHARACTER SET WE8MSWIN1252
;
--->请特别注意:CHARACTER SET WE8MSWIN1252 能够由 alert_sid.log中得到。
ALTER TABLESPACE TEMP_TEST ADD TEMPFILE '/oradata/V11/temp01.dbf' reuse;
"CREATE CONTROLFILE"之前的不论什么东西请删掉。
CHARACTER SET之后的不论什么东西请删掉。一定要保留那个分号
在上面的样例中,我们选择了NORESETLOGS 选项,而且该db执行于archivelog模式下。
请务必保证使用shutdown immediate选项来关闭数据库。然后启动到nomount状态下:
SQL> shutdown immediate;
SQL> startup nomount;
SQL>@control.sql
注意:当重建控制文件完成后,务必保证加入已经存在temp file:
alter tablespace temp_ts add tempfile '?
/oradata/V11/temp01.dbf'?
reuse;
控制文件一旦被创建,db 被自己主动带入到mounted 状态。
假设你使用了resetlogs打开了database,请尽快做一个backup
另外一种情况:该db无法到mount 状态
1.要么restore 控制文件,
2.要么有一个重建控制文件的脚本,例如以下是一个样例:
CREATE CONTROLFILE REUSE DATABASE "DBNAME" NORESETLOGS ARCHIVELOG
Follow the format listing:
- Location of redo logs.
- Location of datafiles
- Specifying the characterset.
Once you have listed all files correctly you are ready to recreate your controlfile
SQL> startup nomount;
SQL>@control.sql
【翻译自mos中文文章】重建控制文件的方法的更多相关文章
- 【翻译自mos文章】在重建控制文件之前应该考虑的事情
在重建控制文件之前应该考虑的事情 来源于: Things to Consider Before Recreating the Controlfile (文档 ID 1475632.1) 适用于: Or ...
- Oracle 重建控制文件一例
环境:OEL 5.7 + Oracle 10.2.0.5 背景:在Oracle的运维过程中,时常会遇到一些场景是需要重建控制文件才可以解决的.本文的场景可以通过复制控制文件到新路径,运行一段时间后,再 ...
- 【练习】trace文本重建控制文件
这个小练习是针对控制文件全部丢失后怎么能快速的重建一个控制文件,快速的起库 1.备份控制文件到trace下 SQL> alter database backup controlfile to t ...
- Oracle 重建控制文件
前些天在做Oracle数据库恢复测试时,因为一些异常操作导致控制文件出了问题,数据库无法正常使用,这里记录一下重建控制文件的操作 一.使用sysdba用户登入数据库 此时普通用户已无法链接数据库 二. ...
- 重建控制文件ORA-12720
重建过程出错:ORA-01503: CREATE CONTROLFILE failedORA-12720: operation requires database is in EXCLUSIVE mo ...
- oracle之 利用 controlfile trace文件重建控制文件
一. 11g RAC 重建控制文件 1. --"create controlfile"命令生成到追踪文件中:alter database backup controlfile to ...
- Oracle控制文件多路复用以及Oracle备份重建控制文件
控制文件中记录了oracle数据库的物理结构,也就是记录了数据库数据文件和日志文件的位置,控制文件中还记录了多种SCN,用这些SCN来确定数据文件和日志文件是否是正确的.如果不正确那么数据库就需要恢复 ...
- 【Oracle】利用trace文件重建控制文件
重建步骤: 1.生成trace文件: alter database backup controlfile to trace; 2.找到生成的trace文件: show parameter dump u ...
- oracle rac重建控制文件
1.使用sqlplus连接到已经mount或open的rac数据库 sql> alter database backup controlfile to trace noresetlogs; 2. ...
随机推荐
- 【vue.js】windows下安装vue.js
windows下搭建vue开发环境 Vue.js是一套构建用户界面的 “渐进式框架”.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常 ...
- PLSQL_性能优化索引Index介绍(概念)
2014-06-01 BaoXinjian
- Android事件分发机制源代码分析
小小感慨一下,做android有一段时间了,一直以来都是习惯整理笔记存到有道笔记上,没有写博客的习惯. 以后逐步分类整理出来,也算"复习"一遍了 - _ - . android的事 ...
- Python 列表 insert() 方法
描述 Python 列表 insert() 方法将指定对象插入到列表中的指定位置. 语法 insert() 方法语法: L.insert(index,obj) 参数 index -- 对象obj需要插 ...
- 在T-SQL语句中访问远程数据库
1.启用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务 ...
- 分享Memcached shell启动停止脚本
注意:要使用这个shell,必须先成功建立memcache环境 1>建立memcached文件和权限 [root@luozhonghua ~]# touch /etc/init.d/memcac ...
- C#--类之隐藏基类的成员
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 腾讯 OCR 情况
OCR技术之检测篇 https://cloud.tencent.com/developer/article/1101342 OCR技术之数据篇 https://cloud.tencent.com/de ...
- selenium grid2 使用远程机器的浏览器
下载 selenium-server-standalone-3.4.0.jar包 在selenium-server-standalone-3.4.0.jar包目录下面执行cmd 命令 java -ja ...
- Latex学习——长竖线及长括号
Latex学习——长竖线及长括号 文章修改中要求把花括号和竖线变长,查了下发现下面的几种方法: 1.花括号“{ }”变长: \$ \left\{... content...... ...