Oracle DBA可以通过创建并维持一个主数据库的镜像数据库来保证工作系统即使用主数据库故障时也能7X24不间断提供服务。
一个镜像数据库是:
*它应当是主数据库在另一台计算机上的一个拷贝,两者应有相同的版本并且运行在相同类型、相同版本的操作系统之上;
*它一直处于RECOVERY状态以备激活;
*它一旦被激活,就成为主数据库。
1、复制主数据库初始化文件init.ora到镜像数据库。
编辑修改init.ora文件的如下参数:
CONTROL_FILES DB_FILE_NAME_CONVERT LOG_FILE_NAME_CONVERT
这些参数在主数据库和镜像数据库目录名不同时,用以转换镜像数据库的数据文件和日志文件位置。
2、在主数据库方为镜像数据库创建控制文件:
SQLalter database create standby controlfile as <filename;
并将该文件复制到镜像端(init.ora中CONTROL_FILES)指定的位置;
3、备份主数据库的数据文件。可以采用脱机或联机备份的方式。将备份复制到镜像数据库指定位置。
4、如果步骤3采用联机备份,立即归档当前重做日志:
SQLalter system archive log current;
复制归档日志文件到镜像服务器;
5、启动镜像数据库到nomount状态:
SQLstartup pfile=%oracle_home%\initstandby.ora nomount
6、Mount镜像数据库:
SQLalter database mount standby database;
7、将主数据库的归档日志应用到镜像数据库以保持主数据库与镜像数据库之间的同步:
SQLrecover standby database;
一旦主数据故障无法使用,就可以迅速激活镜像备份:
1、如果可能,归档主服务器当前重做日志,传送到镜像服务器;
2、使用主服务器的归档日志文件做恢复:
SQLrecover standby database;
3、激活并打开数据库:
SQLalter database activate standby database;
SQLalter database mount;
SQLalter database open;