千家信息网

oracle 11g dataguard主备切换

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,1.检查主备的环境dg1节点:SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive
千家信息网最后更新 2024年09月22日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