[Oracle][DATAGUARD] 关于确认LOGICAL STANDBY的同期状况的方法
Oracle的DATAGUARD环境,有PHYSICAL STANDBY和LOGICAL STANDBY两种。
PHYSICAL STANDBY是传输REDO传到Standby端,然后由Standby端的MRP进程应用该Redo,以达到同期效果。
LOGICAL STANDBY是传输REDO传到Standby端,然后由Standby端的LSP进程调用LogMiner来抽取SQL文,然后执行该SQL文以达到同期效果。
这里介绍一个简单的确认同期状况的方法:
ODM TEST CASE
===================
Name = TC#1010_1
####Primary####
SQL> set line 300
SQL> select database_role,OPEN_MODE from v$database;
select instance_name,status from v$instance;
DATABASE_ROLE OPEN_MODE
------------------------------------------------ ------------------------------------------------------------
PRIMARY READ WRITE
SQL>
INSTANCE_NAME STATUS
------------------------------------------------ ------------------------------------
orcl OPEN
SQL> create user USER_A identified by USER_A;
ユーザーが作成されました。
SQL> grant dba to USER_A;
権限付与が成功しました。
SQL> conn USER_A/USER_A
接続されました。
SQL> create table TBL_DGTEST(
id char(8),
USER_NAME varchar2(250)); 2 3
表が作成されました。
SQL> declare
vID char(8);
vText varchar2(250);
begin
dbms_random.seed(uid);
for i in 1..1000000
loop
vID := to_char(i, 'FM00000000');
vText := dbms_random.string('x', 16);
insert into TBL_DGTEST (id, USER_NAME) values (vID, vText);
if (mod(i, 100) = 0) then
commit;
end if;
end loop;
commit;
end;
/ 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
PL/SQLプロシージャが正常に完了しました。
SQL> select count(*) from TBL_DGTEST;
COUNT(*)
----------
1000000
SQL>
####Standby####
SQL> set line 300
SQL> select database_role,OPEN_MODE from v$database;
select instance_name,status from v$instance;
DATABASE_ROLE OPEN_MODE
------------------------------------------------ ------------------------------------------------------------
LOGICAL STANDBY READ WRITE ★LOGICAL STANDBY
SQL>
INSTANCE_NAME STATUS
------------------------------------------------ ------------------------------------
orcls OPEN
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE; ★Begin applying sql
データベースが変更されました。
SQL> conn USER_A/USER_A
接続されました。
SQL> select count(*) from TBL_DGTEST;
COUNT(*)
----------
1000000 ★
SQL>
ODM TEST CASE
===================
Name = TC#1010_2
####On Primary,insert 1000000 rows into TBL_DGTEST####
SQL> SELECT THREAD#, SEQUENCE# FROM V$LOG WHERE STATUS='CURRENT'; ★You will check that SEQUENCE# was growing
THREAD# SEQUENCE#
---------- ----------
1 96
SQL> SELECT THREAD#, SEQUENCE# FROM V$LOG WHERE STATUS='CURRENT'; ★
THREAD# SEQUENCE#
---------- ----------
1 101
SQL> SELECT THREAD#, SEQUENCE# FROM V$LOG WHERE STATUS='CURRENT'; ★
THREAD# SEQUENCE#
---------- ----------
1 102
####Use DBA_LOGSTDBY_LOG to moniter sql application on Standby####
SQL> SELECT SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#,TIMESTAMP,APPLIED FROM DBA_LOGSTDBY_LOG;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
73 756171 757560 2017-03-01 20:29:55 YES
<省略>
92 827738 833358 2017-09-28 14:20:09 YES
93 833358 834365 2017-09-28 14:57:39 CURRENT ★93
94 834365 834411 2017-09-28 14:57:39 NO
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
95 834411 834994 2017-09-28 14:57:40 NO
96 834994 837710 2017-09-28 15:01:28 NO
97 837710 840227 2017-09-28 15:02:06 NO
98 840227 842731 2017-09-28 15:02:39 NO
99 842731 845235 2017-09-28 15:03:16 NO
100 845235 847751 2017-09-28 15:03:49 NO
101 847751 850377 2017-09-28 15:04:27 NO
29行が選択されました。
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE; ★begin SQL application
データベースが変更されました。
SQL> SELECT SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#,TIMESTAMP,APPLIED FROM DBA_LOGSTDBY_LOG;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
73 756171 757560 2017-03-01 20:29:55 YES
<省略>
92 827738 833358 2017-09-28 14:20:09 YES
93 833358 834365 2017-09-28 14:57:39 YES ★SQL application was over
94 834365 834411 2017-09-28 14:57:39 YES ★SQL application was over
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
95 834411 834994 2017-09-28 14:57:40 YES ★SQL application was over
96 834994 837710 2017-09-28 15:01:28 YES ★SQL application was over
97 837710 840227 2017-09-28 15:02:06 CURRENT ★SQL application is on going
98 840227 842731 2017-09-28 15:02:39 CURRENT ★SQL application is on going
99 842731 845235 2017-09-28 15:03:16 NO ★SQL application is in line
100 845235 847751 2017-09-28 15:03:49 NO ★
101 847751 850377 2017-09-28 15:04:27 NO ★
29行が選択されました。
SQL> /
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
73 756171 757560 2017-03-01 20:29:55 YES
<省略>
92 827738 833358 2017-09-28 14:20:09 YES
93 833358 834365 2017-09-28 14:57:39 YES
94 834365 834411 2017-09-28 14:57:39 YES
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
95 834411 834994 2017-09-28 14:57:40 YES
96 834994 837710 2017-09-28 15:01:28 YES
97 837710 840227 2017-09-28 15:02:06 YES
98 840227 842731 2017-09-28 15:02:39 YES
99 842731 845235 2017-09-28 15:03:16 CURRENT ★SQL application is on going
100 845235 847751 2017-09-28 15:03:49 CURRENT ★SQL application is on going
101 847751 850377 2017-09-28 15:04:27 NO
29行が選択されました。
SQL> /
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
73 756171 757560 2017-03-01 20:29:55 YES
<省略>
92 827738 833358 2017-09-28 14:20:09 YES
93 833358 834365 2017-09-28 14:57:39 YES
94 834365 834411 2017-09-28 14:57:39 YES
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
95 834411 834994 2017-09-28 14:57:40 YES
96 834994 837710 2017-09-28 15:01:28 YES
97 837710 840227 2017-09-28 15:02:06 YES
98 840227 842731 2017-09-28 15:02:39 YES
99 842731 845235 2017-09-28 15:03:16 YES
100 845235 847751 2017-09-28 15:03:49 CURRENT ★SQL application is on going
101 847751 850377 2017-09-28 15:04:27 CURRENT ★SQL application is on going
29行が選択されました。
SQL> /
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
73 756171 757560 2017-03-01 20:29:55 YES
<省略>
92 827738 833358 2017-09-28 14:20:09 YES
93 833358 834365 2017-09-28 14:57:39 YES
94 834365 834411 2017-09-28 14:57:39 YES
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# TIMESTAMP APPLIED
---------- ------------- ------------ ------------------- ------------------------
95 834411 834994 2017-09-28 14:57:40 YES
96 834994 837710 2017-09-28 15:01:28 YES
97 837710 840227 2017-09-28 15:02:06 YES
98 840227 842731 2017-09-28 15:02:39 YES
99 842731 845235 2017-09-28 15:03:16 YES
100 845235 847751 2017-09-28 15:03:49 YES ★SQL application was over
101 847751 850377 2017-09-28 15:04:27 YES ★SQL application was over
29行が選択されました。
SQL>
[Oracle][DATAGUARD] 关于确认LOGICAL STANDBY的同期状况的方法的更多相关文章
- [Oracle][DATAGUARD] 关于确认PHYSICAL STANDBY的同期状况的方法
补上简单的确认PHYSICAL STANDBY的同期状况的方法: ODM TEST CASE===================Name = TC#1010_3 ####Primary#### SQ ...
- [Oracle][DATAGUARD] LOGICAL STANDBY环境里,有些SEQUENCE无法应用,导致Primary和Standby无法同期
今天遇到了一个客户,问题是这样的,客户构筑了一个RACtoRAC的 LOGICAL STANDBY环境.并用EM在监视同期情况,发现EM页面上55115和55116这两个SEQUENCE一直在应用. ...
- Oracle Dataguard之物理standby的基本配置
尽管网上有很多Oracle Dataguard的配置教程,但不难发现,很多采用的是rman duplicate这种方法,尽管此种方法较为简便.但在某种程度上,却也误导了初学者,虽说也能配置成功,但只知 ...
- Oracle DataGuard 物理Standby 搭建(上)
物理standby database 环境搭建 Arch asysnc Oracle Dataguard host IP Oracle_sid DB_unique_name FAL_server FA ...
- Oracle DG故障诊断一则:alter database recover to logical standby new_logical_dbname卡住
我们在基于物理standby的基础上搭建逻辑备库过程过程中,在运行: alter database recover to logical standby READDB; 卡住不动,而且alert也没有 ...
- DataGuard相同SID物理Standby搭建
Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性.数据保护和灾难恢复解决方案.它提供管理.监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数据不受 ...
- Oracle Dataguard 介绍
Oracle DataGuard介绍 一. DataGuard的基本原理 当某次事务处理对生产数据库中的数据作出更改时,Oracle数据库将在一个联机重做日志文件里记录此次更改.在DataGuard中 ...
- Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4]
Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4] Primary: 11.2.0.1 单机,Site A. Standby: 11.2.0.1 单机,Site ...
- oracle dataguard主从切换
前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...
随机推荐
- Vue学习——学习vue必须了解的几个知识点
node.js介绍 Node 是一个让 JavaScript 运行在服务端的开发平台,使用JavaScript也可以开发后台服务.说明白些它仅仅是一个平台,我们使用vue开发必须要安装node.js. ...
- line-height应用实例
实例1:图片水平垂直居中 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- UVA1479 Graph and Queries
思路 恶心人的题目 还是类似永无乡一题的Treap启发式合并思路 但是由于加边变成了删边 所以应该离线后倒序处理 数组要开够 代码 #include <cstdio> #include & ...
- UVA11107 Life Forms
思路 后缀数组 先都拼在一起 二分+height分段 按照小于x的为分界,判断是否有一个分段中包含超过n/2个串 代码 #include <cstdio> #include <cst ...
- 20175312 2018-2019-2 《Java程序设计》第9周学习总结
20175312 2018-2019-2 <Java程序设计>第9周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第九章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...
- vue-cli 最强指南
今天在这篇文章里,会对 vue-cli 的功能做个详细的整理,把 vue-cli 所有的功能都列出来.注:这个是官网连接:https://cli.vuejs.org/zh/guide/ ,建议多看细看 ...
- HackerRank-Python攻城歷程-2.List comprehensions
if __name__ == '__main__': x = int(input()) y = int(input()) z = int(input()) n = int(input()) print ...
- mysql基础篇(上篇)
一.数据库 1.数据库介绍 2.RDBMS专业术语 3.MySQL数据库 4.常用数据库命令 1.数据库介绍 :什么是数据库 数据库就是按照数据结构来组织.存储和管理数据的仓库. 我们常常讲的数据库往 ...
- C#File类常用文件操作以及一个模拟的控制台文件管理系统
重温一下C#中File类的一些基本操作: File类,是一个静态类,主要是来提供一些函数库用的. 使用时需要引入System.IO命名空间. 一.常用操作: 1.创建文件方法 //参数1:要创建的文件 ...
- JedisPubSub
MsgListener extends JedisPubSub notify-keyspace-events "KEA"