最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

RACArchivelog写入错误的节点

来源:懂视网 责编:小采 时间:2020-11-09 16:15:45
文档

RACArchivelog写入错误的节点

RACArchivelog写入错误的节点:由于多个客户几次问到,RAC环境中,node2的归档日志,写入到node1的archive路径中。 这个问题导致一些客户在使用OGG的情况下,有时无法正确读取日志的问题。 那是什么原因导致的这个问题呢? 对此,进行查找和测试。发现了下面的情况会导致archive l
推荐度:
导读RACArchivelog写入错误的节点:由于多个客户几次问到,RAC环境中,node2的归档日志,写入到node1的archive路径中。 这个问题导致一些客户在使用OGG的情况下,有时无法正确读取日志的问题。 那是什么原因导致的这个问题呢? 对此,进行查找和测试。发现了下面的情况会导致archive l

由于多个客户几次问到,RAC环境中,node2的归档日志,写入到node1的archive路径中。 这个问题导致一些客户在使用OGG的情况下,有时无法正确读取日志的问题。 那是什么原因导致的这个问题呢? 对此,进行查找和测试。发现了下面的情况会导致archive log没有记

由于多个客户几次问到,RAC环境中,node2的归档日志,写入到node1的archive路径中。

这个问题导致一些客户在使用OGG的情况下,有时无法正确读取日志的问题。

那是什么原因导致的这个问题呢?

对此,进行查找和测试。发现了下面的情况会导致archive log没有记录到正确的节点位置。

测试环境

Linux + 11.2.0.4 RAC
node1
 ALTER SYSTEM SET log_archive_dest_1='location=/home/oracle/archive_log/ valid_for=(all_logfiles,all_roles)' sid='orcl1' scope=spfile; 
 node2
 ALTER SYSTEM SET log_archive_dest_1='location=/home/oracle/archive_log/ valid_for=(all_logfiles,all_roles)' sid='orcl2' scope=spfile;


情况1


在node2 instance关闭的情况下,node1上执行alter system archive log current;

会将node2的archive log写入到node1的路径

-----------10.2.0.5版本测试--------------

注:nascds14是节点1,nascds15是节点2

[oracle@nascds14 ~]$ ls -l /u01/app/database/dbs/ 
-rw-r----- 1 oracle oinstall 9897472 Dec 1 09:47 arch1_66_827745338.dbf
-rw-r----- 1 oracle oinstall 2048 Dec 1 09:47 arch1_67_827745338.dbf
-rw-r----- 1 oracle oinstall 1024 Dec 1 09:50 arch1_68_827745338.dbf
[oracle@nascds14 ~]$ sqlplus / as sysdba
SQL> alter system archive log current;
System altered.
[oracle@nascds14 ~]$ ls -l /u01/app/database/dbs/ 
-rw-r----- 1 oracle oinstall 9897472 Dec 1 09:47 arch1_66_827745338.dbf
-rw-r----- 1 oracle oinstall 2048 Dec 1 09:47 arch1_67_827745338.dbf
-rw-r----- 1 oracle oinstall 1024 Dec 1 09:50 arch1_68_827745338.dbf
-rw-r----- 1 oracle oinstall 11776 Dec 1 09:55 arch1_69_827745338.dbf
-rw-r----- 1 oracle oinstall 128512 Dec 1 09:55 arch2_101_827745338.dbf <<<<<<<<<<<<< shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
[oracle@nascds15 ~]$ ls -l /u01/app/database/dbs/ 
-rw-r----- 1 oracle oinstall 6144 Dec 1 09:50 arch2_100_827745338.dbf
-rw-r----- 1 oracle oinstall 17412608 Dec 1 09:46 arch2_98_827745338.dbf
-rw-r----- 1 oracle oinstall 1536 Dec 1 09:47 arch2_99_827745338.dbf 
[oracle@nascds15 ~]$ ls -l /u01/app/database/dbs/ 
-rw-r----- 1 oracle oinstall 6144 Dec 1 09:50 arch2_100_827745338.dbf
-rw-r----- 1 oracle oinstall 17412608 Dec 1 09:46 arch2_98_827745338.dbf
-rw-r----- 1 oracle oinstall 1536 Dec 1 09:47 arch2_99_827745338.dbf


-----------11.2.0.4版本测试--------------

node2 instance关闭,日志产生结果

在node2 instance关闭的情况下,node1上执行alter system archive log current;

同样会将node2的archive log写入到node1的路径

---node2---

SQL> create table test1 as select * from dba_users;
create table test1 as select * from dba_users;
SQL> shutdown abort 
shutdown abort
ORACLE instance shut down.

---node1---

SQL> alter system archive log current;

---node1---

[oracle@node111g archive_log]$ ls -al 2*
 
-rw------- 1 oracle asmadmin 148992 12月 19 11:22 2_176_864642458.dbf
-rw------- 1 oracle asmadmin 1024 12月 19 11:22 2_177_864642458.dbf <<<<<<<<<<<<<

下面是测试结果截图,同时开启4个窗口

spacer.gifwKiom1STq-bQ0-pjAA3qlGN7Y9w173.jpg


情景2

如果node2正常运行情况下,是不是也会出现日志写入到node1的情况呢?

经过多次测试,alter system archive log current;

node1和node2都是正常的将各自的archive log写入到各自正确的位置。

这时考虑,如果给node2点运行压力呢?

在node2上运行下面脚本,让node2处于高CPU运行状态

DECLARE
n NUMBER;
BEGIN
WHILE (TRUE)
LOOP
n:= dbms_random.random();
END LOOP;
END;

在CPU使用率超过90%的情况下,在node1上多次执行alter system archive log current;

就会出现node2的归档,写入node1的路径的情况

node1查看archive log生成结果

[oracle@node111g archive_log]$ pwd
/home/oracle/archive_log 
[oracle@node111g archive_log]$ ls -al 2*
-rw------- 1 oracle asmadmin 1024 12月 19 10:32 2_103_864642458.dbf
-rw------- 1 oracle asmadmin 1024 12月 19 10:37 2_131_864642458.dbf

node2查看archive log生成结果

[oracle@node211g archive_log]$ ls -ctrl
 
-rw------- 1 oracle asmadmin 1024 12月 19 10:32 2_101_864642458.dbf
-rw------- 1 oracle asmadmin 1024 12月 19 10:32 2_102_864642458.dbf
-rw------- 1 oracle asmadmin 1024 12月 19 10:32 2_104_864642458.dbf <<<<<<<<<<<<<

同时开启4个窗口,开始测试

spacer.gif

wKioL1STrK2Qdn3fAA3qlGN7Y9w211.jpg


总结,首先要先了解 alter system switch logfile;和alter system archive log current;的区别。

主要的区别在于:
ALTER SYSTEM SWITCH LOGFILE对单实例数据库或RAC中的当前实例执行日志切换;
而ALTER SYSTEM ARCHIVE LOG CURRENT会对数据库中的所有实例执行日志切换。


所以在使用ALTER SYSTEM SWITCH LOGFILE的情况下,就不会遇到archive写错节点的问题。

RAC中archive log写错节点的问题,在使用日志挖掘的应用的时候,可能会遇到问题,如OGG。

这里,我们可以理解为,这是一个oracle expected behaviour。

那么,我们需要考虑下面几种情况来规避这个问题

1. 和应用的开发人员讨论,是不是一定要使用ALTER SYSTEM ARCHIVE LOG CURRENT。

2. 让两个节点的log_archive_dest_*是可以互相访问的,这样在日志挖掘的情况下,control file会告诉你去哪里找到需要的日志,并且可以读取,就不会报错。

3. 将RAC中的多个节点的归档路径设置为相同的共享路径下,也就没有这些问题了。





声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

RACArchivelog写入错误的节点

RACArchivelog写入错误的节点:由于多个客户几次问到,RAC环境中,node2的归档日志,写入到node1的archive路径中。 这个问题导致一些客户在使用OGG的情况下,有时无法正确读取日志的问题。 那是什么原因导致的这个问题呢? 对此,进行查找和测试。发现了下面的情况会导致archive l
推荐度:
标签: 错误 多个 由于
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top