这篇文章主要介绍“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:提示不影响操作
[oracle@sink dbs]$ mv/u01/app/oracle/oradata/sink/control01.ctl/u01/app/oracle/oradata/sink/control01.ctl
mv: `/u01/app/oracle/oradata/sink/control01.ctl' and `/u01/app/oracle/oradata/sink/control01.ctl' are the samefile
[oracle@sink dbs]$ mv/u01/app/oracle/fast_recovery_area/sink/control02.ctl/u01/app/oracle/oradata/sink/control02.ctl
一定要先关闭数据库之后才移动控制文件,不然会后面会出一系列错误
13:35:03 SYS@ sink>shutdownimmediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
13:36:03 SYS@ sink>
到$ORACLE_HOME/dbs路径下vim编辑控制文件路径 然后 :wq 保存退出(w 保存 q 退出 q! 强制退出)
[oracle@sink dbs]$ pwd
/u01/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@sink dbs]$ vim initsink.ora
*.audit_file_dest='/u01/app/oracle/admin/sink/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/sink/control01.ctl','/u01/app/oracle/oradata/sink/control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
刚我们修改了pfile但是spfile还没有改动,所以先指定使用pfile启动数据库
13:41:29 SYS@ sink>startup pfile=$ORACLE_HOME/dbs/initsink.ora
ORACLE instance started.
Total System Global Area 835104768 bytes
FixedSize 2257840 bytes
VariableSize 553651280 bytes
Database Buffers 276824064 bytes
Redo Buffers 2371584 bytes
Database mounted.
Database opened.
13:42:13 SYS@ sink>
查看此时的controlifle的路径信息,好了,没错,那么这么pifle是成功的
13:42:13 SYS@ sink>col namefor a55
13:43:50 SYS@ sink>select namefrom v$controlfile;
NAME
-------------------------------------------------------
/u01/app/oracle/oradata/sink/control01.ctl
/u01/app/oracle/oradata/sink/control02.ctl
2rows selected.
Elapsed: 00:00:00.00
13:44:01 SYS@ sink>
用pfile生成spifle,因为pfile成功了,但是spifle还没有被修改,还没有生效,默认以spfile启动,所以此操作合理
13:44:01 SYS@ sink>create spfilefrom pfile;
File created.
Elapsed: 00:00:00.02
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启动
13:46:59 SYS@ sink>shutdownimmediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
13:52:08 SYS@ sink>startup
ORACLE instance started.
Total System Global Area 835104768 bytes
FixedSize 2257840 bytes
VariableSize 553651280 bytes
Database Buffers 276824064 bytes
Redo Buffers 2371584 bytes
Database mounted.
Database opened.
13:52:22 SYS@ sink>
启动后,查询控制文件路径,发现成功转移,故修改控制文件路径成功
13:52:22 SYS@ sink>select namefrom v$controlfile;
NAME
-------------------------------------------------------
/u01/app/oracle/oradata/sink/control01.ctl
/u01/app/oracle/oradata/sink/control02.ctl
2rows selected.
Elapsed: 00:00:00.00
13:53:51 SYS@ sink>
到此,关于“Oracle修改控制文件路径的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!