欢迎光临
我们一直在努力

oracle 11g dataguard主备切换

1.检查主备的环境

dg1节点:

SQL> archive log list;

Database log mode            Archive Mode

Automatic archival            Enabled

Archive destination           /u01/oradata/tong/archive

Oldest online log sequence      59

Next log sequence to archive     61

Current log sequence           61

SQL> 

dg2节点:

SQL> archive log list;

Database log mode            Archive Mode

Automatic archival            Enabled

Archive destination           /u01/oradata/tong/archive

Oldest online log sequence      60

Next log sequence to archive     0

Current log sequence          61

SQL> 

2.查看主备的角色

dg1节点(primary角色):

SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS    DATABASE_ROLE

——————– —————-

TO STANDBY           PRIMARY

SQL> 

dg2节点(standby角色):

SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS    DATABASE_ROLE

——————– —————-

NOT ALLOWED          PHYSICAL STANDBY

SQL> 

3.在主库上执行切换命令(primary节点)

SQL> alter database commit to switchover to physical standby; –将primary角色转换为standby角色

Database altered.

SQL> shutdown immediate              –关闭数据库,启动到mount状态

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup mount

Total System Global Area  830930944 bytes

Fixed Size                  2217912 bytes

Variable Size             545261640 bytes

Database Buffers          281018368 bytes

Redo Buffers                2433024 bytes

Database mounted.

SQL> select switchover_status,database_role from v$database;     –查看目前primary角色的状态

SWITCHOVER_STATUS    DATABASE_ROLE

——————– —————-

TO PRIMARY           PHYSICAL STANDBY

SQL> 

4.在备库上执行(standby节点)

SQL> select switchover_status,database_role from v$database;     –查看standby备库角色的状态

SWITCHOVER_STATUS    DATABASE_ROLE

——————– —————-

TO PRIMARY           PHYSICAL STANDBY

SQL> alter database commit to switchover to primary;       –将备库的角色修改为primary

Database altered.

SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS    DATABASE_ROLE

——————– —————-

NOT ALLOWED          PRIMARY

SQL> alter database open;          –打开数据库

Database altered.

SQL> 

5.在备库上执行(standby节点)

SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS    DATABASE_ROLE

——————– —————-

RECOVERY NEEDED      PHYSICAL STANDBY

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;      –修改以前主库为日志应用

Database altered. 

SQL> 


6.测试主备节点是否切换成功

dg2节点(primary角色):

SQL> select * from tt;

  A

———-

  1

  3

  4

  5

  6

  7

6 rows selected.

SQL> insert into tt values(8);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from tt where a=8;

  A

———-

  8

SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> archive log list;

Database log mode         Archive Mode

Automatic archival         Enabled

Archive destination        /u01/oradata/tong/archive

Oldest online log sequence    78

Next log sequence to archive   80

Current log sequence         80

SQL> 


dg1节点(standby角色):

SQL> archive log list;

Database log mode         Archive Mode

Automatic archival         Enabled

Archive destination        /u01/oradata/tong/archive

Oldest online log sequence    79

Next log sequence to archive   0

Current log sequence         80

SQL> alter database  recover managed standby database cancel;  

Database altered.

SQL> alter database open read only;

Database altered.

SQL> select * from tt;

   A

———-

    1

    3

    4

    5

    6

    7

    8

7 rows selected.

SQL> 

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。