再生产环境经常会因为磁盘损坏导致控制文件损坏,导致数据库崩溃,通过把控制文件存放不同的盘符降低这一风险
–检查当前库的控制文件的存放位置
col name for a60
select name from v$controlfile;
查看当前存放的盘符情况
lsblk
发现是同属于一块盘符,现需要修改其所属盘符,由于此处没有其他盘,我们用移动目录进行测试
切换到操作系统命令行创建新的目录文件
mkdir -p /oracle/app/controlfile
chown -R oracle:oinstall /oracle/app/controlfile
chmod -R +x /oracle/app/controlfile/
操作之前,先进行备份,以免意外操作不当等情况导致数据库不可恢复
alter database backup controlfile to '/home/oracle/control.bak';
执行迁移工作
alter system set control_files =
'/oracle/app/oracle/oradata/orcl/control01.ctl',
'/oracle/app/controlfile/control02.ctl' scope=spfile;
shutdown immediate
host cp /oracle/app/oracle/fast_recovery_area/orcl/control02.ctl /oracle/app/controlfile/
startup
复制命令窗口,检查控制文件位置
select name from v$controlfile;
至此迁移工作已完成
部分人会把原来的控制文件清理,也可以不用清理
cd /oracle/app/oracle/fast_recovery_area/orcl/
rm -f control02.ctl