这几天一台服务器出了硬件问题之后,这台服务器上的两个备库都殉职了,我们真是如坐针毡,毕竟没有了备库感觉就是裸奔,两个库差不多有10T,搭一套备库也是颇有波折。
当服务器到了我手里之后,首先就开始准备安装数据库软件,安装前的基本检查很快做完了,需要预先安装的依赖包我看使用yum源已经识别了,我也标示了yes,然后开始克隆安装。
奇怪的是克隆安装显示成功,竟然sqlplus不可用。
$ sqlplus -v
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
这个问题还比较简单,一般就是LD_LIBRARY_PATH没有设置
但是设置之后,重新relink发现报错信息变成了下面的样子。
$ sqlplus -v
sqlplus: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory
查看这个链接文件,还确实是有问题。
$ ll libclnt*
lrwxrwxrwx. 1 oracle oinstall 59 Nov 17 05:45 libclntsh.so -> /U01/app/oracle/product/11.2.0.2/db_1/lib/libclntsh.so.11.1
lrwxrwxrwx. 1 oracle oinstall 54 Nov 17 05:45 libclntsh.so.10.1 -> /U01/app/oracle/product/11.2.0.2/db_1/lib/libclntsh.so
-rw-r--r--. 1 oracle oinstall 0 Sep 17 2011 libclntst11.a
最后发现是静默安装的时候把ORACLE_HOME写错了。ORACLE_HOME应该为11.2.3 结果自己在使用命令
perl clone.pl ORACLE_BASE=/U01/app/oracle ORACLE_HOME=/U01/app/oracle/product/11.2.0.2/db_1 ORACLE_HOME_NAME=OraDb10g_home1
不小心给标记成了11.2.0.2这样链接库文件在relink的时候就会错误链接
修改后又继续开始克隆安装,这次的错误更奇怪了。
$ sqlplus -v
sqlplus: error while loading shared libraries: /U01/app/oracle/product/11.2.0.2/db_1/lib/libclntsh.so.11.1: file too short
可以从下面看到两个链接文件都是空的。看来还是在relink的时候什么丢了,但是安装包都预安装了,怎么就不行啊。
$ ll libcln*
lrwxrwxrwx. 1 oracle oinstall 59 Nov 17 06:09 libclntsh.so -> /U01/app/oracle/product/11.2.0.2/db_1/lib/libclntsh.so.11.1
lrwxrwxrwx. 1 oracle oinstall 54 Nov 17 06:09 libclntsh.so.10.1 -> /U01/app/oracle/product/11.2.0.2/db_1/lib/libclntsh.so
-rw-r--r--. 1 oracle oinstall 0 Nov 17 06:10 libclntsh.so.11.1
-rw-r--r--. 1 oracle oinstall 0 Sep 17 2011 libclntst11.a
这个问题纠结了好一会,甚至怀疑是不是新机器出现了什么不兼容的地方,因为是比较新的920机器,最后查看了一下操作日志,发现原来原装yum源的时候就出了问题。
比如yum install xxxx的时候,有下面的日志,我选择yes
Install 5 Package(s)
Total download size: 15 M
Installed size: 33 M
Is this ok [y/N]: y
Downloading Packages:
Error Downloading Packages:
mpfr-2.4.1-6.el6.x86_64: failure: Packages/mpfr-2.4.1-6.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
cloog-ppl-0.15.7-1.2.el6.x86_64: failure: Packages/cloog-ppl-0.15.7-1.2.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
结果最后显示都是Errno 256
最后简单配置yum源,mount /home/xxxxx /media/xxxx -o loop就搞定了
看来操作日志也是非常重要,要不到时候出了问题都没有依据。而且步骤的检查还是要仔细,老是返工也是费时费力。
好了,数据库软件安装不是一件难事,很快搞定,现在就开始使用duplicate的方式来同步文件了。
发现11g里面的rman同步着实很全面,如果上次同步中断取消,下次重新duplicate还可以做断点续传。
再次duplicate会有下面的日志信息
sql statement: alter database mount standby database
Using previous duplicated file /U01/app/oracle/oradata/xxx/xxx_data280.dbf for datafile 187 with checkpoint SCN of 220705796796
Using previous duplicated file /U01/app/oracle/oradata/xxx/xxx_data2.277.dbf for datafile 213 with checkpoint SCN of 220705796789
然后就是漫长的等待了,不过还有一个非常重要的地方需要注意就是主库的归档一定要保留好,如果定时删除,不小心多删了的话,那么长时间的等待就白费了。
所以也是一边关注主库的磁盘空间,一边关注文件复制的进度。
早上看了下,两个几乎同时开始复制的备库,早上醒来查看一个已经完成了2T,另外一个竟然还只完成了600G,差别也着实太大了。
目前知道唯一的差别就是2T的机器主库是raid5,600G的机器主库是raid10
当时差点得出了一个错误的结论,就是raid5比较挫。性能也差。
下午的时候,有一件事情特别纠结,有一个备库已经复制完成了近90%,但是主库的归档区域已经快满了,使用的是ASM,想临时压缩一下归档都没办法。删除归档吧,那备库就白搭了,不删除吧,主库的归档已经满了,新归档也会有影响。
就在这种纠结中,最后还是硬着头皮拖了一下,幸亏当时系统负载不算太大,所以这部分归档的影响还比较小,等备库一同步完,就开始开启RFS接收归档,然后马上释放主库的空间。
整个过程也是有条不紊的在进行。总算把这个问题缓冲了下来。
等到晚上6点多的时候,发现另外一台备库的文件复制速度开始大幅度提升,查看网卡的流量情况如下。
通过这个图可以看出其实不是raid5和raid10造成的文件复制低效问题,根源还是在于网络的设置上
文件复制较快的服务器网卡流量如下:
而文件复制较慢的服务器流量情况如下,可以看到两者是相互补充的。至于为什么先开始文件复制的那台服务器就快很多,为什么不是平均这部分资源。自己也没有想明白。
一台备库搭建完成,另外一台备库速度也开始提升,心情都一下子美丽起来了。
备份重于一切,没有备库裸奔的感觉真是不踏实。对于硬件的监控也要全面注意起来,提前发现问题,提前部署方案。唉,就会少有一些无奈的悲剧。
备库搭建中的一波三折
时间: 2024-10-25 03:01:21
备库搭建中的一波三折的相关文章
备库密码文件问题一波三折的插曲
昨天下午开始给一个新环境搭备库,本来想一两个小时全速搞定,没想到因为密码文件的问题耽搁了,整个过程也是一波三折,希望大家能够吸取过程之中的经验和教训. 首先这个环境没有安装oracle软件,只安装了操作系统,所以搭建备库先需要安装数据库软件,然后开始从主库使用duplicate的方式同步数据文件,然后用dg broker来配置即可. 没有安装数据库软件,又没有图形界面,也好办,采用克隆方式安装 首先在主库中发现$ORALE_HOME下有一个压缩包,看来已经提前准备好了. /U01/app/ora
DG2.1——物理备库搭建
原文转自:http://blog.csdn.net/tianlesoftware/article/details/5547565 1.linux平台 Data Guard 环境: 操作系统: redhat 5.5 Primary数据库: IP地址:211.87.147.69 数据库SID:mynew1 DB_UNIQUE_NAME:mynew1_pd Standby数据库: IP地址:211.87.147.68 数据库SID:mynew1 DB_UNIQUE_NAME:mynew1_st
DG3.2——逻辑备库搭建
原文转自:http://blog.csdn.net/tianlesoftware/article/details/5564179 操作系统:linux redhat 4.7 Oracle: 10.2.0.1 主库:orcl_pd 备库:LGDG 一. 逻辑Standby创建过程 1 创建物理Standby 参考之前的博客 简单的做如下几点提示: 1).初始化参数配置 初始化参数的修改并不仅仅只是在待创建的Standby数据库端创建,当前的Primary数据库甚至同一个Data Gua
11g备库中碰到自己给自己埋的坑
记得之前在一半技术一半生活中分享过一个设计,因为业务的需求,为了提高业务的处理效率,采用了根据业务的拆库拆表的方式,类似下面的图示. 开发团队也很给力,帮我们协调了好的机器,加了内存,也在新业务2的环境上同步了表结构,抽取了部分数据,然后业务2就开始了紧张的测试, 通过这几天的测试,发现系统的性能逐步稳定下来.忙完了这茬,赶紧来考虑搭建备库. 自己也算是搭建过很多dataguard环境了,一般的环境中检测dataguard搭建成功与否的一种方式就是使用dg broker来验证,一条简单的show
【DATAGUARD】 基于同一个主机建立物理备库和逻辑备库(一)
[DATAGUARD] 基于同一个主机建立物理备库和逻辑备库(一) 之前发布过一步一步搭建 oracle 11gR2 rac + dg,这里的dg为物理dg,但是实际自己使用过程中发现需要开3个虚拟机,机器特卡,所以决定在同一台机器上再搭建一台物理和逻辑dg. 一步一步搭建 oracle 11gR2 rac + dg 之前传(一) http://blog.itpub.net/26736162/viewspace-1290405/ 一步一步搭建oracle 11gR2 rac+dg之环
Oracle备库TNS连接失败的分析
今天在测试12c的temp_undo的时候,准备在备库上测试一下,突然发现备库使用TNS连接竟然失败. 抛出的错误如下: $ sqlplus sys/oracle@testdb as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 8 15:30:10 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. ERROR: ORA-12514: TNS:listen
11g备库无法开启ADG的原因分析
今天碰到一个有些奇怪的问题,但是奇怪的现象背后都是有本质的因果. 下午在做一个环境的检查时,发现备库是在mount阶段,这可是一个11gR2的库,没有ADG实在是太浪费了,对于这种情况感觉太不应该了. 所以尝试启动至open阶段,发现状态一直是read only,在ADG中应该是READ ONLY WITH APPLY才对啊. 使用dg broker设置为READ-ONLY,备库的数据库日志如下: Standby Database: stestdb3, Enable
一封备库报警邮件的分析
对于orabbix报出的警报,自己都是心怀敬畏,因为这些表面的现象如果深入分析没准就能有所收获,当然目的还是解决问题,不是一味追求指标. 今天收到的报警邮件如下,然后在两分钟后问题自动恢复. ### ZABBIX-监控系统: ------------------------------------ 报警内容: DG_issue ------------------------------------ 报警级别: PROBLEM ----------------------------------
备库报警邮件的分析案例(三)
继前两篇分析了一个看似非常普通的报警邮件,结果在分析问题的时候八面玲珑,相关因素都给分析了一下,没想到还真是有不小的收获. 前两篇地址: http://blog.itpub.net/23718752/viewspace-1827685/ http://blog.itpub.net/23718752/viewspace-1829630/ 最后通过手工定位监控的方式终于把罪魁祸首揪了出来,为什么在备库使用ash无果,因为还是10g的库,还没有这个特性,在11g中才可以.这个也算是在10g中的一个监控