数据库容灾实施手册.docx
- 文档编号:10160510
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:36
- 大小:34.82KB
数据库容灾实施手册.docx
《数据库容灾实施手册.docx》由会员分享,可在线阅读,更多相关《数据库容灾实施手册.docx(36页珍藏版)》请在冰豆网上搜索。
数据库容灾实施手册
Oracle数据库容灾方案实施手册
----------技能提升11月份
更改说明:
序
更改版本号
更改人
日期
备注
1
1.0版
杨远征
2010-11-30
初始版本
基于oracleredolog的逻辑复制方式
使用这种方式的主要有一些第三方的软件,以及oracle自己的DATAGUARD中的logicalStandby。
1)使用oracle以外的独立进程,捕捉redologfile的信息,将其翻译成sql语句,再通过网络传输到目标端数据库,在目标端数据库执行同样的sql。
2)如果其进程赶不上oracle日志切换,也可以捕捉归档日志中的内容。
也有的产品在源端以事务为单位,当一个事务完成后,再把它传输到目标端。
3)所有的产品一般都是以表为单位进行复制,同时也支持大部分DDL的复制
4)基于其实现原理及多个队列文件的使用,复制环境可以提供网络失败、数据库失败、主机失败的容错能力;
5)因为这类软件复制的只是sql语句或事务,所以他可以完全支持异构环境的复制,硬件的型号,oracle的版本,操作系统的种类、版本等都没有要求。
这种方式还可以支持多种复制方式,比如数据集中、分发、对等复制、或者多层次的复制等。
由于传输的内容只是redolog或archivelog中的一部分,所以对网络资源的占用很小,可以实现不同城市之间的远程复制
基于redolog的逻辑复制产品有很多的优势,但跟上面提到过的其他方案比较起来,也有一些缺点:
1)数据库的吞吐量太大时,会有较大的延迟,当数据库每天的日量达到60G或更大时,这种方案的可行性较差;
2)复制环境建立起来以后,对数据库结构上的一些修改需要按照规定的操作流程进行,有一定的维护成本。
一、DataGuard的技术实现
1.DataGuard的技术实现
Oracle数据库通过Redo日志机制实现数据库的事务重演以及可恢复性,Oracle的DataGuard技术就是通过在主备节点之间传输日志实现数据同步。
在出现故障时,备用数据库可以被启用来提供业务服务,也可以作为容灾备份站点来保障数据安全。
下图是OracleDataGuard技术的简要实现机制说明,Redo日志传输与应用是DataGuard技术的关键:
2.DataGuard技术的实现模式
DataGuard技术主要有三种实现模式:
1.最大保护模式-MaximumProtection
最大保护模式可以认为是DataGuard的同步保护机制,Redo需要同时写入主、备数据库事务才能完成,这种模式可以保证0数据损失,但是要求网络高度稳定可靠。
2.最大可用模式-Maximumavailability
这种方式在Redo机制上和最大保护模式相同,但是当网络中断时,主库会放弃向从库写日志,继续主库的事务处理。
这种方式可以避免因为一些网络问题而影响主库运行。
3.最大性能模式-Maximumperformance
这种模式是目前采用最多的一种,最大性能模式在主库发生日志归档时才向备用数据库传输日志,从而将DataGuard对主库的性能影响降到最低。
这种模式的缺点是,如果主库发生灾难性故障,日志全部损失,则从库可能和主库出现一个左右的日志信息差异。
当然,在这种方式下,我们可以通过设置主库增加归档频率来缩小可能的数据损失。
3.实施内容及步骤
在本方案的具体实施过程中,涉及以下步骤和环节:
1.基本环境准备
在实施方案之前,需要配置准备好相关业务服务器、存储环境,实施DataGuard的主机,需要采用相同版本的操作系统,主机与存储正确配置;网络环境需要就绪,并且经过稳定性、连续性测试,提供相关数据整理及报告
2.数据库信息收集
收集现有数据库系统的完备性能数据、基础数据、负荷及业务周期数据
此过程需要收集至少4周数据,可以与其他环节并行。
3.数据库安装及升级
根据需要,在新的环境中安装Oracle10g数据库,使用Oracle10.2.0.4版本,在迁移实施中对数据库进行升级,升级到最新Oracle版本,此过程需要进行足够测试与完善备份。
为顺利完成升级过程,需要调整数据库运行在归档模式下,每个数据库升级准备工作需要至少2天时间,升级需要大约6小时停机时间,升级之后需要观察至少1星期。
升级工作需要串行,观察工作可以并行。
4.系统测试
通过备份搭建环境之后,进行运行测试,收集相关数据
如果设备及环境允许进行测试,则进行至少连续2周测试,此步骤需要在数据库升级之后进行。
测试环境搭建好之后,进行各种异常演练,构建完善处理文档。
5.正式割接
经过测试验证后,对生产系统进行DataGuard环境搭建,使生产系统运行在主备模式。
此工作对于不同数据库应当串行,每次割接需要2天准备时间以及至少6个小时停机时间。
6.运行及监控
通过一定周期的运行监控及问题调整,使系统运行在稳定的主备模式下,验收交付用户使用。
观察监控周期至少4周,需要记录完善数据供以后运行参考。
4.数据库备份实施步骤
备份实施是本项目的核心内容,以下步骤是经过实践的实施方案,详细记录备用及参考。
1.明确主备数据库
首先收集主备数据库相关信息,这些信息应当包括主备数据库的主机地址、主机名称、主备数据库的数据库名称。
以下示范用于确认主机信息、IP地址等:
$uname-a
SunOS5.8Generic_108528-25sun4usparcSUNW,Sun-Fire-280R
$ifconfig-a
lo0:
flags=1000849
inet127.0.0.1netmaskff000000
eri0:
flags=1000843
inet172.16.33.50netmaskffffff00broadcast172.16.33.255
以下是示范主从数据库信息记录:
Database
DB_UNIQUE_NAME
OracleNetServiceName
Primary
Cuug
Cuug
PhysicalStandby
cuug
Stdby
2.启用强制日志模式
设置主库为Force_logging模式:
SQL>selectforce_loggingfromv$database;
FOR
---
NO
SQL>alterdatabaseforcelogging;
Databasealtered.
SQL>selectforce_loggingfromv$database;
FOR
---
YES
3.更改数据库的归档模式
SQL>archiveloglist;
DatabaselogmodeNoArchiveMode
AutomaticarchivalDisabled
ArchivedestinationUSE_DB_RECOVERY_FILE_DEST
Oldestonlinelogsequence1
Currentlogsequence3
SQL>shutdownimmediate;
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
SQL>startupmount;
ORACLEinstancestarted.
TotalSystemGlobalArea1258291200bytes
FixedSize1978336bytes
VariableSize318771232bytes
DatabaseBuffers922746880bytes
RedoBuffers14794752bytes
Databasemounted.
SQL>alterdatabasearchivelog;
Databasealtered.
SQL>alterdatabaseopen;
Databasealtered.
SQL>archiveloglist;
DatabaselogmodeArchiveMode
AutomaticarchivalEnabled
ArchivedestinationUSE_DB_RECOVERY_FILE_DEST
Oldestonlinelogsequence1
Nextlogsequencetoarchive3
Currentlogsequence3
4.配置网络服务信息
以下分别列举主从数据库配置信息,主库的TNSNAMES.ORA文件配置:
CUUG=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.50)(PORT=1521))
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=CUUG)
)
)
STDBY=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.97)(PORT=1521))
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=CUUG)
)
)
主库的监听器配置(listener.ora文件):
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.50)(PORT=1521))
)
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=CUUG)
(ORACLE_HOME=/data2/ora10g/10.2.0)
(SID_NAME=CUUG)
)
)
接下来需要通过tnsping测试一下网络服务的连通情况,主库上的tnsping测试示范如下:
bash-2.03$tnspingCUUG
TNSPingUtilityforSolaris:
Version10.2.0.1.0-Productionon06-AUG-200714:
18:
47
Copyright(c)1997,2005,Oracle.Allrightsreserved.
Usedparameterfiles:
/data2/ora10g/10.2.0/network/admin/sqlnet.ora
UsedTNSNAMESadaptertoresolvethealias
Attemptingtocontact(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.50)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CUUG)))
OK(10msec)
bash-2.03$tnspingstdby
TNSPingUtilityforSolaris:
Version10.2.0.1.0-Productionon06-AUG-200714:
18:
49
Copyright(c)1997,2005,Oracle.Allrightsreserved.
Usedparameterfiles:
/data2/ora10g/10.2.0/network/admin/sqlnet.ora
UsedTNSNAMESadaptertoresolvethealias
Attemptingtocontact(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.97)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CUUG)))
从库的TNSNAMES.ORA文件配置:
CUUG=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.50)(PORT=1521))
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=CUUG)
)
)
STDBY=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.97)(PORT=1521))
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=CUUG)
)
)
从库的监听器配置(listener.ora文件):
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.97)(PORT=1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=CUUG)
(ORACLE_HOME=/opt/oracle/product/10.2.0)
(SID_NAME=CUUG)
)
)
从库上通过tnsping的测试:
bash-3.00$tnspingCUUG
TNSPingUtilityforSolaris:
Version10.2.0.1.0-Productionon06-AUG-200714:
52:
51
Copyright(c)1997,2005,Oracle.Allrightsreserved.
Usedparameterfiles:
/opt/oracle/product/10.2.0/network/admin/sqlnet.ora
UsedTNSNAMESadaptertoresolvethealias
Attemptingtocontact(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.50)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CUUG)))
OK(60msec)
bash-3.00$tnspingstdby
TNSPingUtilityforSolaris:
Version10.2.0.1.0-Productionon06-AUG-200714:
52:
55
Copyright(c)1997,2005,Oracle.Allrightsreserved.
Usedparameterfiles:
/opt/oracle/product/10.2.0/network/admin/sqlnet.ora
UsedTNSNAMESadaptertoresolvethealias
Attemptingtocontact(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.97)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CUUG)))
5.确定参数文件
参数文件中需要设置关键的一些参数,以下是主库的相关参数设置示范(以primary和standby为例):
*.log_archive_config='DG_CONFIG=(primary,standby)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DESTARCHMANDATORYREOPEN=5VALID_FOR=(all_logfiles,all_roles)'
*.log_archive_dest_2='SERVICE=standbyLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=standby'
*.fal_client='PRIMARY'
*.fal_server='STANDBY'
从库的一些参数文件设置如下:
*.fal_client='STANDBY'
*.fal_server='PRIMARY'
*.job_queue_processes=10
*.log_archive_config='DG_CONFIG=(primary,standby)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DESTARCHMANDATORYREOPEN=5VALID_FOR=(all_logfiles,all_roles)'
*.log_archive_dest_2='SERVICE=primaryLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=primary'
*.open_cursors=300
*.pga_aggregate_target=408944640
*.processes=500
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=555
*.sga_max_size=10737418240
*.sga_target=3221225472
*.db_file_name_convert='/home/oracle/oradata/ORA10G/datafile','/home/oracle/oradata/STANDBY/datafile'
*.standby_file_management='AUTO'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/oracle/admin/ora10g/udump'
6.使用RMAN对主库进行备份
此处需要进行全备份,使用如下命令:
backupfulldatabaseincludecurrentcontrolfileforstandby;
以下是示范输出:
bash-2.03$rmantarget/
RecoveryManager:
Release10.2.0.1.0-ProductiononWedAug809:
28:
362007
Copyright(c)1982,2005,Oracle.Allrightsreserved.
connectedtotargetdatabase:
CUUG(DBID=1447940999)
RMAN>backupfulldatabaseincludecurrentcontrolfileforstandby;
Startingbackupat08-AUG-07
usingchannelORA_DISK_1
channelORA_DISK_1:
startingfulldatafilebackupset
channelORA_DISK_1:
specifyingdatafile(s)inbackupset
inputdatafilefno=00005name=/data2/ora10g/oradata/CUUG/datafile/o1_mf_CUUG_3cfmh0nw_.dbf
inputdatafilefno=00001name=/data2/ora10g/oradata/CUUG/datafile/o1_mf_system_3bf9chk8_.dbf
inputdatafilefno=00002name=/data2/ora10g/oradata/CUUG/datafile/o1_mf_undotbs1_3bf9chtk_.dbf
inputdatafilefno=00003name=/data2/ora10g/oradata/CUUG/datafile/o1_mf_sysaux_3bf9chn2_.dbf
inputdatafilefno=00004name=/data2/ora10g/oradata/CUUG/datafile/o1_mf_users_3bf9chxk_.dbf
channelORA_DISK_1:
startingpiece1at08-AUG-07
channelORA_DISK_1:
finishedpiece1at08-AUG-07
piecehandle=/data2/ora10g/flash_recovery_area/CUUG/backupset/2007_08_08/o1_mf_nnndf_TAG20070808T104424_3clcj9k0_.bkptag=TAG20070808T104424comment=NONE
channelORA_DISK_1:
backupsetcomplete,elapsedtime:
00:
02:
06
channelORA_DISK_1:
startingfulldatafilebackupset
channelORA_DISK_1:
specifyingdatafile(s)inbackupset
includingstandbycontrolfileinbackupset
includingcurrentSPFILE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 库容 实施 手册