oracledataguard配置规范文档.docx
《oracledataguard配置规范文档.docx》由会员分享,可在线阅读,更多相关《oracledataguard配置规范文档.docx(31页珍藏版)》请在冰豆网上搜索。
oracledataguard配置规范文档
Oracle10gdataguard配置规范文档
北京深思天成科技有限公司
Version:
0.1
编写人:
张一
LastUpdate:
2012/11/08
目录
1.部署前的准备工作3
1.1操作系统平台的检查3
1.2网络的测试3
1.3.oracle的介质及相关补丁3
2.规划方案3
2.1体系结构图dataguard日志传输分为三种3
2.1.1归档日志传输体系结构图为4
2.1.2在线日志异步传输体系结构图为4
2.1.3在线日志同步传输体系结构图为5
2.2Oracledataguard数据库的保护模式6
最大保护(maximumprotection)6
最大可用(maximumavailability)6
最大性能(maximumperformance)6
3.安装配置过程6
3.1软件安装6
3.1.1在备机上安装数据库软件6
3.1.2升级oracle为10.2.4,保持主备库数据库小版本一致11
3.2初始化配置14
3.2.1修改主库为归档模式14
3.2.2修改主库的参数15
3.2.3备库参数文件修改后为:
16
3.2.4配置密码文件16
3.2.5在oracle用户下创建相关目录17
3.2.6配置相关监听17
3.2.7查看主库的监听并修改19
3.2.8备份主库并将备份传到备库所在的主机19
3.2.9创建控制文件并传送到备库参数control_files所指定的路径和命名20
3.2.10启动数据库到mount状态21
3.2.11在备库进行数据库的恢复21
3.2.12备库启动介质恢复进程mrp21
3.3功能性配置21
4.检查项22
5. 测试方法23
6.日常维护命令24
6.1启动备库至mount状态,并启动mrp进程24
6.2取消日志应用进程,并启动到openreadonly状态25
6.3关闭备库25
6.4备库归档日志gap问题的解决25
6.5修改为最大保护模式26
6.6修改为最大可用模式27
6.7dataguard切换临时表空间28
7.技术资料来源30
1.部署前的准备工作
1.1操作系统平台的检查
Dataguard要求主备库的操作系统一致,当然操作系统可以由小版本的差异.但是操作系统的位数还是要求一致的,64位操作系统必须和64位的做主备.
命令:
oslevel–s
bootinfo-y
1.2网络的测试
确保主机和备机的网络是相通的
利用ping命令来测试是否有丢包现象
主库主机添加备库的信息
vi/etc/hosts
备库主机名备库的ip地址
备库主机添加主库的信息
Vi/etc/hosts
主库的主机名主库的ip地址
1.3.oracle的介质及相关补丁
Oracle10gforaix的安装包
Oracle10g10.2.4foraix的补丁
2.规划方案
2.1体系结构图dataguard日志传输分为三种
第一种为归档日志传输
第二种是在线日志异步传输
第三种为在线日志同步传输
2.1.1归档日志传输体系结构图为
这种方式最大的问题是:
PrimaryDatabase只有在发生归档时才会发送日志到StandbyDatabase,如果PrimaryDatabase异常宕机,联机日志中的Redo内容会丢失,因此这种方式没法避免数据丢失的问题。
要想避免数据丢失,就必须使用LGWR,而使用LGWR又有SYNC和ASYNC两种方式。
缺省PrimaryDatabase使用的就是ARCH进程
2.1.2在线日志异步传输体系结构图为
2.1.3在线日志同步传输体系结构图为
使用LGWRSYNC方式时,可以同时使用NET_TIMEOUT参数,这个参数单位是秒,代表如果多长时间内网络发送没有响应,LGWR进程就会抛出错误。
LOG_ARCHIVE_DEST_2=‘SERVICE=testbakLGWRSYNCNET_TIMEOUT=30’
2.2Oracledataguard数据库的保护模式
最大保护(maximumprotection)
最大保护和最大可用模式需要用到备库的在线日志传输,当主库产生事务时,需要同时向主库的redoh和备库的standbylog写日志,当由于故障日志写不到备库的standbylog里时,主库会自动宕机,因而对网路要求非常高
这种方式要求StandbyDatabase必须配置StandbyRedolog,而PrimaryDatabase必须使用LGWR、SYNC、AFFIRM方式归档到StandbyDatabase。
最大可用(maximumavailability)
最大可用模式跟最大保护模式相类似,不同的是当由于故障日志写不到备库的standbylog时,会自动转变为最大性能模式,等数据库恢复正常后再转变为为最大可用模式
这种模式要求StandbyDatabase必须配置StandbyRedolog,而PrimaryDatabase必须配置为LGWR、SYNC、AFFIRM方式归档。
最大性能(maximumperformance)
最大性能模式在传输归档日志的情况下可以不需要备库的standbylog,即便是需要备库的standbylog也可以不同步
这种模式通过LGWRASYNC或者ARCH实现,StandbyDatabase也不强求使用StandbyRedoLog。
本文中主要针对dataguard的单向传输和最大性能模式,也是生产中常用的
3.安装配置过程
3.1软件安装
创建数据库用户、组、环境变量就省过了
3.1.1在备机上安装数据库软件
3.1.2升级oracle为10.2.4,保持主备库数据库小版本一致
3.2初始化配置
3.2.1修改主库为归档模式
3.2.2修改主库的参数
主库主要修改下文中的log_archive_dest_2
3.2.3备库参数文件修改后为:
1.参数fal_client和fal_server的作用自动裂隙检测
Fal_client是指standbydatabase本身的所对应的监听的网络服务名
Fal_server是指primarydatabase在standbydatabase所体现的网络服务名
2.log_file_name_convert和db_file_name_convert参数的作用是主库到备库日志文件和数据文件的转换,可以指数据文件,也可以指目录,最长可以为65536个字节.
表现为‘主库文件或者目录’,’备库文件或者目录’,‘主库文件或者目录’,’备库文件或者目录’…..
如果主库和备库所对应的目录和文件与备库的相通可以不用配置这两个参数
3.standby_file_management这个参数必须为auto模式,避免手工干预
4.remote_login_passwordfile=’EXCLUSIVE’
5.db_unique_name为standbydatabase的实例名
6.db_name必须和primarydatabase相同
7.background_dump_dest,audit_file_dest,core_dump_dest,user_dump_dest,db_recovery_file_dest,control_files参数所以对应目录的存在,并且属主为oracle
3.2.4配置密码文件
要求备库的密码文件的密码需要跟主库的密码文件密码完全一致
密码文件默认在$ORACLE_HOME/dbs/
命令为orapwdfile=orapw$ORACLE_SIDpassword=主库的密码
3.2.5在oracle用户下创建相关目录
3.2.6配置相关监听
备库的监听为:
备库监听为:
Listener.ora
SID_NAME数据库的实例名
Global_dbname是指数据库的service_names这个参数,即服务名,默认一般与数据库的实例名相通,可以动态修改
ORACLE_HOME即为环境变量的$ORACLE_HOME注意最后没有’/’
HOST是指数据库所在的主机名或者主机的ip地址,如果是主机名需要/etc/hosts中添加
Port默认为1521端口,可以通过local_listener修改
Tnsnames.ora
Testbb,testdg只是网络服务名,可以随意修改
Server分为shared(共享模式)、delicated(专用模式),当然这两种模式在数据库中可以共存
默认为delicated
Service_name是指oracle的参数service_names
3.2.7查看主库的监听并修改
3.2.8备份主库并将备份传到备库所在的主机
注意:
如果不用带库的话,存放到备库的备份所在路径要跟主库备份路径相同
10g中有rmancatalog可以自动注册,9i的话可以通过操作系统创建link来达到目的
3.2.9创建控制文件并传送到备库参数control_files所指定的路径和命名
主库:
Alterdatabasecreatestandbycontrolfileas‘/home/oracle/control.ctl’;
主库:
主库传输standby控制文件到备库control_files所指定的
备库:
3.2.10启动数据库到mount状态
3.2.11在备库进行数据库的恢复
rmantargetsys/qwe123@testbak
run
{
allocatechannelc1typedisk;
allocatechannelc2typedisk;
restoredatabase;
};
3.2.12备库启动介质恢复进程mrp
3.3功能性配置
配置定期删除备库归档日志的脚本
cd/home/oracle
viarchived.sql
selectnamefromv\$archived_logwhereapplied='YES'anddeleted='NO';
virmandelarch.sh
exportORACLE_SID=testbak
exportORACLE_BASE=/u01/app/oracle
exportORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
exportNLS_LANG=AMERICAN_AMERICA.AL32UTF8
exportPATH=$ORACLE_HOME/bin:
/usr/local/sbin:
/usr/local/bin:
/sbin:
/bin:
/usr/sbin:
/usr/bin:
$PATH
cd/home/oracle/
cat/dev/null>archived.txt
sqlplussys/qwe123@testbakassysdba<setechooff
setpagesize0
setheadingoff
setfeedbackoff
setlines50
spool/home/oracle/archived.txt
@archived.sql
spooloff
EOF
catarchived.txt|xargsrm-rf-
rmantargetsys/qwe123@testbak<run
{
crosscheckcopy;
deletenopromptexpiredcopy;
}
EOF
exit
赋予rmandelarch.sh脚本执行的权限并加入到crontab中
Oracle用户下
chmodu+xrmandelarch.sh
4.检查项
备库:
检查归档日志接收和日志应用的具体情况
selectprocess,status,sequence#,blocks,block#fromv$managed_standby;
PROCESSSTATUSSEQUENCE#BLOCKSBLOCK#
------------------------------------------------------------------------
MRP0WAIT_FOR_LOG56800
RFSRECEIVING000
RFSATTACHED5671796317963
注:
如果sequenc#与主数据库归档日志号一致则Dataguard工作正常
如果status状态为WAIT_FOR_GAP则dataguard与主数据库不同步,
Dataguard工作不正常
备库:
检查备库备库应用日志跟接受日志的差距
Select,dest_name,database_mode,archived_thread#,archived_seq#,applied_thread#,applied_seq#,db_unique_namefromv$archive_dest_status;
主库:
检查主库正在正在传送那个日志
selectprocess,status,thread#,sequence#,group#fromv$managed_standby;
5. 测试方法
无论oracledataguard,streamreplication还是advancedreplication只是复制ddl,dml的操作
主库:
备库:
6.日常维护命令
6.1启动备库至mount状态,并启动mrp进程
6.2取消日志应用进程,并启动到openreadonly状态
6.3关闭备库
6.4备库归档日志gap问题的解决
备库在mount状态下执行
从主库物理复制到原库的归档目录下
然后进行注册
alterdatabaseregisterphysicallogfile'/back/arch2/1_61_798203094.arc'
6.5修改为最大保护模式
备库操作:
创建standbylog
注意备库中的standbylog要比redo至少要多一组
主库操作
修改log_archive_dest_2为lgwrsync模式
主库修改为最大保护模式
备库:
6.6修改为最大可用模式
在上述最大保护模式下
主库:
主库修改为最大可用模式
备库显示为:
6.7dataguard切换临时表空间
Dataguard主库在切换临时表空间,会造成备库的临时表空间无临时文件
主库操作:
备库操作:
7.技术资料来源
Oracle10g官方文档
Oracle官方技术支持网站