我是靠谱客的博主 鲜艳画笔,这篇文章主要介绍Oracle dataguard之主备库切换(switchover),现在分享给大家,希望可以做个参考。

1.确保主库的所有日志文件都刷到备库

查询备库的v$archived_log视图。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SQL> select sequence#,applied from v$archived_log; SEQUENCE# APPLIED ---------- --------- 48 YES 49 YES 50 YES 51 YES 52 YES 53 YES 55 YES 54 YES 56 YES 57 YES 58 YES SEQUENCE# APPLIED ---------- --------- 59 YES 60 YES 61 YES 62 YES 63 YES 64 YES 65 YES 66 YES 19 rows selected.

2.查看备库可以切换的状态

查询备库v$database视图。

复制代码
1
2
3
4
5
6
SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- TO PRIMARY

3.查看主库可以切换的状态

查询主库v$databse视图。

复制代码
1
2
3
4
5
6
SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- SESSIONS ACTIVE

4.将主库切换成备库

复制代码
1
2
SQL> alter database commit to switchover to physical standby with session shutdown;

5.查看主库可以切换的状态

复制代码
1
2
3
4
5
6
SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- TO PRIMARY

6.关闭主库

复制代码
1
2
3
4
5
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down.

7.将备库切换成主库

复制代码
1
2
3
4
SQL> alter database commit to switchover to primary with session shutdown; Database altered.

8.打开原备库(新主库)并查看数据库读写状态

复制代码
1
2
3
4
5
6
7
8
9
10
SQL> alter database open; Database altered. SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE

9.打开原主库(新备库)并查看数据库读写状态

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQL> startup ORACLE instance started. Total System Global Area 1653518336 bytes Fixed Size 2253784 bytes Variable Size 1006636072 bytes Database Buffers 637534208 bytes Redo Buffers 7094272 bytes Database mounted. Database opened. SQL> select open_mode from v$database; OPEN_MODE -------------------- READ ONLY

10.开启新备库(原主库)的MRP

复制代码
1
2
3
4
SQL> alter database recover managed standby database disconnect from session; Database altered.

11.验证新主库(原备库)

复制代码
1
2
3
4
5
6
7
8
SQL> set lines 200 SQL> col dest_name for a20 SQL> col error for a20 SQL> select dest_name,status,process,error,transmit_mode from v$archive_dest where target='STANDBY'; DEST_NAME STATUS PROCESS ERROR TRANSMIT_MOD -------------------- --------- ---------- -------------------- ------------ LOG_ARCHIVE_DEST_2 VALID LGWR ASYNCHRONOUS

12.新主库(原备库)创建表

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SQL> create table Shenyu(id number(10),name varchar2(20)); Table created. SQL> insert into Shenyu values(1,'Csong'); 1 row created. SQL> insert into Shenyu values(2,'Liyuanyuan'); 1 row created. SQL> commit; Commit complete. SQL> alter system switch logfile; System altered.

13.查看新备库(原主库)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> desc Shenyu Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER(10) NAME VARCHAR2(20) SQL> select * from Shenyu; ID NAME ---------- -------------------- 1 Csong 2 Liyuanyuan

这样主备库通过switch over切换已经全部完成。

最后

以上就是鲜艳画笔最近收集整理的关于Oracle dataguard之主备库切换(switchover)的全部内容,更多相关Oracle内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部