ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle 8i DataGuard 的激活

Oracle 8i DataGuard 的激活

原创 Linux操作系统 作者:zhanglincon 时间:2009-04-24 13:14:57 0 删除 编辑

前言

请不要随意激活standby database ,除非发生紧急情况。因为一旦standby数据库被激活,就成为一个普通的数据库,对外提供服务,此时不能再reply log,并且不能再回到standby模式。如果你想验证一个standby database是否被正确的update,你可以以read only的模式打开数据库,也不要激活standby数据库。

根据紧急情况的不同,你可以无法进入你的主库(primary database),如果你能进入,你应该试图手动归档你当前的在线联机日志(online redo log),然后再传到备库并在备库应用所有可用的归档日志(archive log)。

 

抢救主库的redo log

1. 如果可以能的话在主库手动归档你当前的在线联机日志:

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

2. 如果你standby数据库不是managed standby环境,手动传送所有可用的但在备库(standby database)还没有被应用的归档日志,用操作系统命令copy,举例如下:

% cp /oracle/arc_dest/*.arc /standby/arc_dest

3. 如果你standby数据库是Managed recovery standby模式, cancel recovery:

SQL> CANCEL

如果你standby数据库不是Managed recovery standby模式, 让他处于mounted状态,如果你的实例(instance)没有启动,先用如下命令启动

SQL> STARTUP NOMOUNT pfile=initSTANDBY.ora

SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

4. 在备库(standby database)执行手动recovery手工的应用所需的日志

SQL> RECOVER STANDBY DATABASE;

这是手工应用日志的模式,因为我们的standby数据库跟主库时间点不一致,所以我先手工的应用所需的日志,然后按照提示显示的文件编号,将从该文件以后生成的所有归档日志文件从主机上复制到备机的%STD_ARCHIVE_LOG_PATH%中,然后输入Auto执行同步操作。

或者自动recover

SQL> RECOVER AUTOMATIC STANDBY DATABASE; # 用备库参数文件中location位置指定的文件

SQL> RECOVER AUTOMATIC FROM ’/logs’ STANDBY DATABASE; # 手工指定应用的归档的目录

这个应用过程就是数据库前滚到主库失败之前.你可以应用除了当前redo log之外的所有redo log,如果你丢失了非当前的联机日志,而且还没有归档,就有可能丢失数据。激活备库将自动reset 联机日志,并记录主库和备库的redo log不一致,就不能在应用原来主库的归档日志。

激活一个Standby Database

1. 确保你的备库是mountedexclusive模式下:

SQL> SELECT name,value FROM v$parameter WHERE name=’parallel_server’;

NAME          VALUE

-----------------    --------------------------------------------------------

parallel_server    FALSE

1 row selected.

如果值是TRUE, 数据库就不是mountedexclusive模式下; 如果值是

FALSE, 数据库是mountedexclusive模式下.

2. 激活备库:

SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;

这条命令将reset联机日志

3. 关闭数据库

SQL> SHUTDOWN IMMEDIATE

4. 尽早的备份你的新的生产库.

5. 以只读或者读写模式打开数据库

SQL> STARTUP MOUNT

SQL> ALTER DATABASE READ ONLY; # opens the database in read-only mode

SQL> ALTER DATABASE READ WRITE; # opens the database in read/write mode

 

自动激活的批处理activate_standby.bat

Sqlplus /nolog @activate_standby.sql>>activate_standby.log 

activate_standby.sql的内容:

 

Connect  sys/natsys@nat_208  as sysdba;

CANCEL;

RECOVER AUTOMATIC STANDBY DATABASE;

ALTER DATABASE ACTIVATE STANDBY DATABASE;
SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

ALTER DATABASE READ WRITE;

exit

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8554499/viewspace-591712/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-03-24

  • 博文量
    79
  • 访问量
    205995