一、控制文件多镜像---即多个控制文件存放在不同的位置
使用静态参数文件添加或移动控制文件方法:
1.利用数据字典V$CONTROLFILE来获取现有控制文件名字
2.正常关闭ORACLE数据库,将新控制文件名添加到参数文件的CONTROL_FILES参数中,使用操作系统的复制命令复制现有控制文件到指定位置。
3.重新启动数据库,利用数据字典V$CONTROLFILE来验证新控制文件名字的是否正确。如验证无误,则删除无用控制文件即可。
使用二进制的SPFILE添加或移动控制文件的方法:
1.利用数据字典V$CONTROLFILE获取现有控制文件名字;修改SPFILE,使用ALTER SYSTEM SET CONTROL_FILES改变控制文件的位置,正常关闭数据库。
2.使用操作系统的复制命令复制现有控制文件到指定位置;
3.重启数据库,使用数据字典V$CONTROLFILE检查新控制文件是否正确,如无误,则删除无用控制文件
控制文件的修改添加实验-SPFILE方式 : 要仔细,避免因控制文件参数出错而不能启动。
1.在启动的数据库中通过命令查看数据库启动时使用的参数文件类型及控制文件的相关信息。
SQL>select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL
2.使用ALTER SYSTEM命令重新设置控制文件的名字位置
SQL>alter system set control_files ='d:\disk3\control01.ctl','d:\disk6\control02.ctl','d:\disk9\control03.ctl' scope=spfile;
关闭数据库并复制控制文件到相应的位置,使用ALTER SYSTEM修改控制文件后应当无其它操作并关闭数据库来进行控制文件复制,可以使用鼠标粘贴复制。
SQL>shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL>host copy C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL d:\disk3\CONTROL01.CTL
已复制 1 个文件。
SQL>host copy C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL d:\disk6\CONTROL02.CTL
已复制 1 个文件。
SQL>host copy C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL d:\disk9\CONTROL03.CTL
已复制 1 个文件。
重启数据库并检查控制文件相关信息,可以看到系统已经使用新的控制文件了。
SQL>startup;
SQL>show parameter control_files;
NAME TYPE VALUE
----------------------------------------------- ------------------------------
control_files string D:\DISK3\CONTROL01.CTL, D:\DIS
K6\CONTROL02.CTL, D:\DISK9\CON
TROL03.CTL
SQL>select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
D:\DISK3\CONTROL01.CTL
D:\DISK6\CONTROL02.CTL
D:\DISK9\CONTROL03.CTL
二、控制文件的备份:
此时需要d:\backup\目录需要存在,不然会出现ORA-01580,0RA-27040等错误
alter database backup controlfile to'd:\backup\control01.ctl.bak';
使用备份控制文件进行打开数据库将进行不完全恢复,尽量不使用备份文件进行恢复。
备份到一个追踪文件中,文件中含重建控制文件的SQL语句。备份在用户追踪文件目录下
alter database backup controlfile to trace;