标签:control 文件 rac database 33 cluster sql alter 重建
控制文件是什么,在前面的文章中也已经说过,这里主要说一下重建控制文件
1.查看控制文件所在的位置
这里怎样查看控制文件的位置
SQL> show parameter control_files; NAME TYPE ------------------------------------ --------------------------------- VALUE ------------------------------ control_files string /oradata/orcl/control01.ctl, / oradata/orcl/control02.ctl
2.重建控制文件
使用sqlplus连接到已经mount或open的rac数据库
sql> alter database backup controlfile to trace noresetlogs; ##当执行这个命令是会在alert.log中会记录备库控制文件的日志,且在tracefile中找到整个crontol文件的sql语句
(备份控制文件):
alter database backup controlfile to '/u02/app/oracle/control.ctl';
或者使用这种方法,把控制文件内容给打印出来:建议使用这中方法查看控制文件内容:
alter database backup controlfile to trace as '/tmp/controlfile.log';
3.编写control.sql文件
这里的control.sql文件要根据上面查看到的控制文件进行写入(很简单)
4.关闭数据库的所有实例
srvctl stop database -d db_name -o immeidate
5.备份当前的控制文件
alter database backup controlfile to '/u02/app/oracle/control.ctl';
6.确保所有的设置都是针对thread 1
instance = 1 thread = 1
7.将参数文件中的cluster_database 设置为false
sql> startup nomount sql> alter system set cluster_database=false scope=spfile; sql> shutdown
8.运行脚本(这一步是在第7步和第8步之间的)
sqlplus / as sysdba SQL> @control.sql
9.将参数cluster_database设置为true
sql> alter system set cluster_database=true scope=spfile;
10.关闭数据库
shu immeidate
11.启动所有实例并查看状态
srvctl start database -d db_name srvctl status database -d db_name
##这里想要说几个要注意的点:
1.跑control.sql脚本时,先要把数据置于nomount状态,然后修改参数cluster_database为false,这个参数是rac集群参数,然后再跑control.sql脚本。
2.跑完之后,需要在修改参数cluster_database为true. 然后再shu immeidate数据,最后再用srvctl启动数据。
3.如果是单实例的话,那么就不需要设置cluster_database,直接在nomount状态下执行control.sql语句。
标签:control,文件,rac,database,33,cluster,sql,alter,重建 来源: https://www.cnblogs.com/zmc60/p/16074049.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。