ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 单机Linux平台Oracle 10g DataGuard Physical Standby 搭建实例(6)

单机Linux平台Oracle 10g DataGuard Physical Standby 搭建实例(6)

原创 Linux操作系统 作者:cow977 时间:2011-07-09 10:02:03 0 删除 编辑

单机Linux平台Oracle 10g DataGuard Physical Standby 搭建实例(1)http://space.itpub.net/81227/viewspace-701181

单机Linux平台Oracle 10g DataGuard Physical Standby 搭建实例(2)http://space.itpub.net/81227/viewspace-701198

单机Linux平台Oracle 10g DataGuard Physical Standby 搭建实例(3)http://space.itpub.net/81227/viewspace-701231

单机Linux平台Oracle 10g DataGuard Physical Standby 搭建实例(4)http://space.itpub.net/81227/viewspace-701293

单机Linux平台Oracle 10g DataGuard Physical Standby 搭建实例(5)http://space.itpub.net/81227/viewspace-702254

 

这部分讲述switchover

 

Switchover

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

在进行DATA GUARD的物理STANDBY切换前需要注意:

1)确认主库和从库间网络连接通畅;

2)确认没有活动的会话连接在数据库中;

3PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;

4)确保STANDBY数据库处于ARCHIVELOG模式;

5)如果设置了REDO应用的延迟,那么将这个设置去掉;

6)确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。 ­

主库:

1. 查看switchover 状态

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

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

SESSIONS ACTIVE

 

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;

SQL> SELECT DATABASE_ROLE FROM V$DATABASE;

DATABASE_ROLE

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

PHYSICAL STANDBY

备库:

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;

SQL> SELECT DATABASE_ROLE FROM V$DATABASE;

DATABASE_ROLE

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

PRIMARY

 

切换成功。

 

 

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;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;

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; 或者 shutdown immediate+startup

Database altered.

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

SQL> SELECT DATABASE_ROLE FROM V$DATABASE;

DATABASE_ROLE

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

PRIMARY

至此,FAILOVER切换完成。这个时候应该马上对新的PRIMARY数据库进行备份。

 

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

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

注册时间:2011-03-02

  • 博文量
    699
  • 访问量
    754426