[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是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...
随机推荐
- 复旦大学2018--2019学年第一学期(18级)高等代数I期末考试第七大题解答
七.(本题10分) 设 $V$ 为 $n$ 维线性空间, $\varphi,\psi$ 是 $V$ 上的线性变换, 满足 $\varphi\psi=\varphi$. 证明: $\mathrm{Ke ...
- CentOS中使用tcpdump抓包
安装: yum install tcpdump 命令使用: 监听特定网卡 tcpdump 抓取第一块网卡所有数据包 [root@server110 tcpdump]# tcpdump tcpdump: ...
- jquery AJAX数据传输路径写法~
$.post('{:url("index/index/logininfo")}',{'username':name,'password':pwd},function(data){ ...
- python中的mysql数据库like模糊查询
%在python中是个特殊的符号,如%s,%d分别代表了字符串占位符和数字占位符. 大家知道,mysql的模糊查询也需要用到%. 所以,可以先把需要查的字符串抽出来,再以参数方式传入. args = ...
- Asp.net core Identity + identity server + angular 学习笔记 (第四篇)
来说说 RBAC (role based access control) 这是目前全世界最通用的权限管理机制, 当然使用率高并不是说它最好. 它也有很多局限的. 我们来讲讲最简单的 role base ...
- Redis(二)--Jedis使用
1.Jedis是连接java和redis的jar,这里用maven来添加jar包 # 在eclipse中新建maven project,填写GroupID.Artifactid # 在百度搜索mave ...
- DS博客作业01--日期抽象数据类型设计与实验
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2 学习体会 2.大作业作业内容 (6分) 2.1 设计日期的ADT类型(1分) ADT DATE{ 数据对象:D={year,mo ...
- 现代 PHP 新特性 —— 生成器入门(转)
原文链接:blog.phpzendo.com PHP 在 5.5 版本中引入了「生成器(Generator)」特性,不过这个特性并没有引起人们的注意.在官方的 从 PHP 5.4.x 迁移到 PHP ...
- 使用jsdelivr访问github资源
一.新建github库并使用git上传 首先访问https://github.com 新建自己的库 之后使用 git 上传到github 下载git : https://git-for-windows ...
- Python----unittest discover()方法与执行顺序
一.Unittest discover()可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰一般是通过 ...