共计 3075 个字符,预计需要花费 8 分钟才能阅读完成。
这篇文章主要介绍“Oracle 修改控制文件路径的方法”,在日常操作中,相信很多人在 Oracle 修改控制文件路径的方法问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle 修改控制文件路径的方法”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
控制文件 —- 二进制文件,在数据库启动和数据库运行中有着巨大的作用
参数文件 —-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 same file
[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 shutdown immediate;
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
Fixed Size 2257840 bytes
Variable Size 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 name for a55
13:43:50 SYS @ sink select name from v$controlfile;
NAME
——————————————————-
/u01/app/oracle/oradata/sink/control01.ctl
/u01/app/oracle/oradata/sink/control02.ctl
2 rows selected.
Elapsed: 00:00:00.00
13:44:01 SYS @ sink
用 pfile 生成 spifle,因为 pfile 成功了,但是 spifle 还没有被修改,还没有生效,默认以 spfile 启动,所以此操作合理
13:44:01 SYS @ sink create spfile from 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 shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
13:52:08 SYS @ sink startup
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 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 name from v$controlfile;
NAME
——————————————————-
/u01/app/oracle/oradata/sink/control01.ctl
/u01/app/oracle/oradata/sink/control02.ctl
2 rows selected.
Elapsed: 00:00:00.00
13:53:51 SYS @ sink
到此,关于“Oracle 修改控制文件路径的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!