ITPub博客

首页 > 数据库 > Oracle > Data Guard主备库切换

Data Guard主备库切换

原创 Oracle 作者:许愿流星1号 时间:2015-12-03 17:46:52 0 删除 编辑

Data Guard 主备库切换

Data Guard的主备库切换分为2种,switchover和failover。遇到突发事件,基本都是采用failover切换。 在主备库切换完成后应该修改数据库服务器的IP地址,如将10.10.10.101的服务器IP地址改为10.10.10.201。或者进Sfcallset,将数据库服务器的IP地址改为10.10.10.101,即备库的地址.这样才能保证系统的正常运作。


4.1 . switchover(正常切换)


一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUARD环境中的所有物理和逻辑STANDBY都可以继续工作。


主库:

1.查看switchover状态

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

      to standby

2.切换成备库

SQL> Alter database commit to switchover to physical standby with session shutdown;

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

     Database altered.


3启动到mount和应用日志状态

SQL> SHUTDOWN IMMEDIATE

SQL> startup nomount;

SQL> alter database mount standby database;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


4.查看数据库模式

SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;

SQL>select status,database_mode from v$archive_dest_status;


备库:


1.查看switchover状态

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    TO PRIMARY

2.切换成主库

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

Database altered.

SQL> shutdown immediate;

SQL> startup;

SQL> alter system switch logfile;

3.查看数据库模式

SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;

SQL>select status,database_mode from v$archive_dest_status;



4.2  Failovers:(主库瘫痪,不得以的切换。)

FAILOVER切换一般是PRIMARY数据库发生故障后的切换,这种情况是STANDBY数据库发挥其作用的情况。这种切换发生后,可能会造成数据的丢失。而且这个过程不是可逆的,DATA GUARD环境会被破坏。由于PRIMARY数据库已经无法启动,所以FAILOVER切换所需的条件并不多,只要检查STANDBY是否运行在最大保护模式下,如果是的话,需要将其置为最大性能模式,否则切换到PRIMARY角色也无法启动。



1.查看是否有日志GAP,没有应用的日志:

   SQL> SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;

SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

如果有,则拷贝过来并且注册

SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE '路径';

重复查看直到没有应用的日志:

2.然后停止应用归档:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

3.下面将STANDBY数据库切换为PRIMARY数据库:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

Database altered.

SQL> SELECT DATABASE_ROLE FROM V$DATABASE;

DATABASE_ROLE

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

PHYSICAL STANDBY

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.


检查数据库是否已经切换成功:

SQL> SELECT DATABASE_ROLE FROM V$DATABASE;

DATABASE_ROLE

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

PRIMARY



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

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

注册时间:2014-09-18

  • 博文量
    46
  • 访问量
    430274