Oracle修改控制文件路径的方法

这篇文章主要介绍“Oracle修改控制文件路径的方法”,在日常操作中,相信很多人在Oracle修改控制文件路径的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle修改控制文件路径的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、成都做网站、武邑网络推广、小程序开发、武邑网络营销、武邑企业策划、武邑品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供武邑建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

控制文件----二进制文件,在数据库启动和数据库运行中有着巨大的作用
参数文件----pfile             可文本编辑
               spfile             二进制文件,不可文本编辑
下面介绍两种修改控制文件两种方法
################1 #####################

如果在startup里指定了pfile=''的话,Oracle将从你指定的文件作为启动参数文件,如果是没有指定pfile的话,Oracle会先去默认目录($ORACLE_HOME/)下找spfileSID.ora,如果没有找到,则找spfile.ora,如果还是没有,找initSID.ora,这个就是以前的静态参数文件了,如果没有则找init.ora;如果没有找到的话,这时候,启动就会有,找不到参数文件的错误,同时会动态注册实例名到监听服务里。

把对应的controlfile移动到目标路径下,由于control01.ctl的路径没有发生变动所以mv:提示不影响操作

  1. [oracle@sink dbs]$ mv/u01/app/oracle/oradata/sink/control01.ctl/u01/app/oracle/oradata/sink/control01.ctl

  2. mv: `/u01/app/oracle/oradata/sink/control01.ctl' and `/u01/app/oracle/oradata/sink/control01.ctl' are the samefile

  3. [oracle@sink dbs]$ mv/u01/app/oracle/fast_recovery_area/sink/control02.ctl/u01/app/oracle/oradata/sink/control02.ctl

一定要先关闭数据库之后才移动控制文件,不然会后面会出一系列错误

  1. 13:35:03 SYS@ sink>shutdownimmediate;

  2. Database closed.

  3. Database dismounted.

  4. ORACLE instance shut down.

  5. 13:36:03 SYS@ sink>

到$ORACLE_HOME/dbs路径下vim编辑控制文件路径   然后    :wq  保存退出(w 保存 q 退出  q! 强制退出)

  1. [oracle@sink dbs]$ pwd

  2. /u01/app/oracle/product/11.2.0/dbhome_1/dbs

  3. [oracle@sink dbs]$ vim initsink.ora

  4. *.audit_file_dest='/u01/app/oracle/admin/sink/adump'

  5. *.audit_trail='db'

  6. *.compatible='11.2.0.4.0'

  7. *.control_files='/u01/app/oracle/oradata/sink/control01.ctl','/u01/app/oracle/oradata/sink/control02.ctl'

  8. *.db_block_size=8192

  9. *.db_create_file_dest='+DATA'

刚我们修改了pfile但是spfile还没有改动,所以先指定使用pfile启动数据库

  1. 13:41:29 SYS@ sink>startup pfile=$ORACLE_HOME/dbs/initsink.ora

  2. ORACLE instance started.

  3. Total System Global Area  835104768 bytes

  4. FixedSize            2257840 bytes

  5. VariableSize          553651280 bytes

  6. Database Buffers      276824064 bytes

  7. Redo Buffers            2371584 bytes

  8. Database mounted.

  9. Database opened.

  10. 13:42:13 SYS@ sink>

查看此时的controlifle的路径信息,好了,没错,那么这么pifle是成功的

  1. 13:42:13 SYS@ sink>col namefor a55

  2. 13:43:50 SYS@ sink>select namefrom v$controlfile;

  3. NAME

  4. -------------------------------------------------------

  5. /u01/app/oracle/oradata/sink/control01.ctl

  6. /u01/app/oracle/oradata/sink/control02.ctl

  7. 2rows selected.

  8. Elapsed: 00:00:00.00

  9. 13:44:01 SYS@ sink>

用pfile生成spifle,因为pfile成功了,但是spifle还没有被修改,还没有生效,默认以spfile启动,所以此操作合理


  1. 13:44:01 SYS@ sink>create spfilefrom pfile;

  2. File created.

  3. Elapsed: 00:00:00.02

  4. 13:46:59 SYS@ sink>

PS : 如果数据库以spfile启动,然后你在执行 create spfile from pfile 则会报错
      ORA-32002: cannot create SPFILE already being used by the instance

数据库正常关闭,然后,startup 不指定任何参数而数据库又存在spfile,所以oracle 默认 以 spfile启动

  1. 13:46:59 SYS@ sink>shutdownimmediate;

  2. Database closed.

  3. Database dismounted.

  4. ORACLE instance shut down.

  5. 13:52:08 SYS@ sink>startup

  6. ORACLE instance started.

  7. Total System Global Area  835104768 bytes

  8. FixedSize            2257840 bytes

  9. VariableSize          553651280 bytes

  10. Database Buffers      276824064 bytes

  11. Redo Buffers            2371584 bytes

  12. Database mounted.

  13. Database opened.

  14. 13:52:22 SYS@ sink>

启动后,查询控制文件路径,发现成功转移,故修改控制文件路径成功

  1. 13:52:22 SYS@ sink>select namefrom v$controlfile;

  2. NAME

  3. -------------------------------------------------------

  4. /u01/app/oracle/oradata/sink/control01.ctl

  5. /u01/app/oracle/oradata/sink/control02.ctl

  6. 2rows selected.

  7. Elapsed: 00:00:00.00

  8. 13:53:51 SYS@ sink>

到此,关于“Oracle修改控制文件路径的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


网站栏目:Oracle修改控制文件路径的方法
新闻来源:http://pwwzsj.com/article/gcesig.html