《Oracle数据库11gActiveDataGuard构建标准规范-V0.docx》由会员分享,可在线阅读,更多相关《Oracle数据库11gActiveDataGuard构建标准规范-V0.docx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle数据库11GActive DataGuard构建标准规范部 门:信息技术部SA/DBA组版 本 号: V1.0发布日期:2015-05-13目 录一、Active DataGuard实施规范41.1Active DataGuard实施前提条件41.1.1主备数据库环境介绍41.1.2Active DataGuard实施条件71.1.3Active DataGuard实施准备工作(创建LISTENER和相应TNS)91.2备数据库初始化161.2.1通过duplicate active database初始化备数据库(主数据库备份无需存在)161.2.2通过带库备份恢复初始化备数据库
2、(主数据库备份必须存在)221.3追加归档日志文件331.4启动Active DataGuard341.5将备节点的数据库加入到CRS中进行管理341.6备数据库归档日志文件删除351.7应用访问备数据库TNS配置371.8主数据库和备数据库SwitchOver和Failover切换371.8.1SwitchOver测试371.8.2FailOver测试391.9日常维护391.9.1DataGuard运行状态检查391.9.2主数据库和备数据库起停顺序391.9.3主数据库维护操作40一、Active DataGuard实施规范1.1 Active DataGuard实施前提条件1. 数据冗
3、余保护和磁盘组划分数据冗余:存储以共享的方式连接数据库节点主机,在数据冗余上建议存储层通过传统raid机制建立数据保护机制,ASM磁盘组可以不要设置数据冗余保护,即用来存储DB的ASM磁盘组冗余方式为External.DataGuard三种保护模式:最大化保护、最大有效性、最大性能。为了降低对主数据库的影响,以下采用最大性能模式进行DataGuard配置。DataGuard配置中备数据库类型主要有三种:逻辑备数据库、物理备数据库和基于快照的备数据库,以下采用物理备数据库方式进行DataGuard配置。DataGuard配置中的主数据库和备数据库之间数据同步是通过TCP/IP网络通信实现的,为了
4、尽可能降低网络带宽的竞争和对现有应用程序性能问题,建议在主数据库主机和备数据库主机之间构建专属于DataGuard的网络,即需要添加新的网卡等硬件资源搭建专属于DataGuard的网络。另外,可以在主数据库和备数据库上创建专属于DataGuard的数据库监听器,如LISTENER_ADG,监听端口为1525,如果主数据库和备数据库在不同网段上且存在防火墙,需要在防火墙上开通1525端口。不过为了便于管理,本规范使用默认的LISTENER监听,端口为1521。需要注意,主数据库如果和standby数据库设置了相同的DB_UNIQUE_NAME,则在做switchover时,备库会报“ORA-01
5、102 cannot mount database in EXCLUSIVE mode”。可能还存在其他问题。所以需要设置PRIMARY以及STANDBY的数据库的DB_UNIQUE_NAME为不同的值。1.1.1 主备数据库环境介绍以下以ORSS环境介绍主数据库环境和备数据库环境:主备环境主机名IP地址描述p3orssetl1、 p3orssetl2主数据库环境p3orssetl1-vip21.125.44.81公网IP地址VIP21.125.44.81DG专署IP地址,由于专署与DG的网络不存在,因此DG专署IP地址采用公网IP地址p3orssetl2-vip21.125.44.84公网I
6、P地址VIP21.125.44.84DG专署IP地址,由于专署与DG的网络不存在,因此DG专署IP地址采用公网IP地址p3orssadg1、p3orssadg2备数据库环境p3orssadg1-vip21.125.44.97公网IP地址VIP21.125.44.97DG专署IP地址,由于专署与DG的网络不存在,因此DG专署IP地址采用公网IP地址p3orssadg2-vip21.125.44.100公网IP地址VIP21.125.44.100DG专署IP地址,由于专署与DG的网络不存在,因此DG专署IP地址采用公网IP地址以下主数据库主机名为:p3orssetl1和p3orssetl2,备数据
7、库主机名为:p3orssadg1和p3orssadg2主数据库oraORSS基本信息如下:数据库sys用户密码主数据库和备数据库密码必须一致,假设为oracle123Grid和数据库版本11G的基线版本ORACLE_SID环境变量oraORSS1和oraORSS2GRID 软件ORACLE_BASE目录/oracle/app/oracleGRID 软件ORACLE_HOME目录grid用户的$ORACLE_HOME变量DB软件ORACLE_BASE目录/oracle/app/oracleDB软件ORACLE_HOME目录oracle用户的$ORACLE_HOME变量DG专署监听器(为便于管理维
8、护,本规范未使用LISTENER_ADG专用监听)LISTENERDG专署监听器端口(为便于管理维护,本规范未使用1525专用监听)1521初始化参数 DB_NAME=oraORSSDB_UNIQUE_NAME= oraORSSCOMPATIBLE主数据库和备数据库必须一致物理容量归档模式归档模式归档目录/arch 共享GPFS文件系统每天产生的归档日志(月初归档日志量非常大,需要重点关注DG同步性能)注意:在业务高峰时,如果主数据库产生大量归档日志文件会导致备数据库与主数据库同步产生数据延迟现象。备数据库adgORSSB基本信息如下:数据库sys用户密码主数据库和备数据库密码必须一致,假设为
9、oracle123Grid和数据库版本11G的基线版本,与主库保持一致ORACLE_SID环境变量adgORSSB1和adgORSSB2注意:备数据库 ORACLE_SID 环境变量与备数据库的DB_UNIQUE_NAME保持一致GRID 软件ORACLE_BASE目录/oracle/app/oracleGRID 软件ORACLE_HOME目录grid用户的$ORACLE_HOME变量DB软件ORACLE_BASE目录/oracle/app/oracleDB软件ORACLE_HOME目录oracle用户的$ORACLE_HOME变量DG专署监听器(为便于管理维护,本规范未使用LISTENER_
10、ADG专用监听)LISTENERDG专署监听器端口(为便于管理维护,本规范未使用1525专用监听)1521初始化参数 DB_NAME=oraORSSDB_UNIQUE_NAME= adgORSSBCOMPATIBLE主数据库和备数据库必须一致注意: 备数据库DB_NAME值与主数据库设置必须一致备数据库DB_UNIQUE_NAME与主数据库设置不一致另外需要注意,备库监听服务以及数据文件路径与DB_UNIQUE_NAME值相关物理容量归档模式归档模式归档目录/arch 共享GPFS文件系统每天产生的归档日志(月初归档日志量非常大,需要重点关注DG同步性能)1.1.2 Active DataGu
11、ard实施条件实施Active DataGuard的前提条件如下:1. 主数据库主机和备数据库主机硬件平台一致,如都为IBM主机2. 主数据库和备数据库Oracle软件安装成功,且数据库版本一致且都为11.2.0.33. 备数据库存储空间剩余大小不小于主数据库存储空间大小用户grid登录主数据库节点p3orssetl1$ asmcmdASMCMD lsdg输出部分见Total_MB列用户grid登录备数据库节点p3orssadg1$ asmcmdASMCMD lsdg输出部分见Usable_file_MB列对比主数据库ASM磁盘组(假设磁盘组类型为External)的Total_MB列值和备数
12、据库ASM磁盘组的Usable_file_MB列值,确保备数据库ASM磁盘组的Usable_file_MB列值不小于主数据库ASM磁盘组的Total_MB列值。4. 主数据库数据库运行正常且工作在archivelog模式下Oracle用户登录主数据库节点p3orssetl1主机查询数据库是否置于archivelog模式$ sqlplus / as sysdbaSQL select log_mode from v$database; 返回结果为ARCHIVELOG或者NOARCHIVELOG如果返回值为NOARCHIVELOG,则需要执行以下步骤步骤1:创建归档日志文建对应的文件系统如果该文件系
13、统为本地文件系统,则旧主机每个节点需要创建并mount至/arch下,如果为GPFS文件系统,则旧主机每个节点需要mount至/arch下,并且oracle操作系统用户对其具有读写权限步骤2:修改初始化参数log_archive_dest_1SQL alter system set log_archive_dest_1=location=/arch scope=both sid=*;SQL show parameter log_archive_dest_1步骤3:确认初始化参数log_archive_format参数值为%t_%s_%r.dbfSQLshow parameter log_arc
14、hive_format 返回结果为%t_%s_%r.dbf步骤4:登陆每个主数据库节点主机环境上关闭数据库$sqlplus / as sysdbaSQLshutdown immediate;步骤5:登陆主数据库节点主机p3orssetl1启动数据库至mounted状态后设置数据库为archivelog模式$sqlplus / as sysdba SQLstartup mount;SQLalter database ARCHIVELOG;SQLalter database open;步骤6:登陆主数据库其他节点主机p3orssetl2启动数据库$sqlplus / as sysdba SQLst
15、artup 步骤7:验证归档日志文件是否能正常生成$sqlplus / as sysdba SQLalter system archive log current;SQLalter system archive log current;$ls l /arch每个节点主机下/arch目录下会有新文建生成5. 主数据库数据库归档日志文件目录不能通过log_archive_dest初始化参数设置,必须通过log_archive_dest_n初始化参数设置Oracle用户登录主数据库所有节点主机查询数据库是否置于archivelog模式$ sqlplus / as sysdbaSQL show par
16、ameter log_archive_dest_16. 主数据库数据库需要启动force logging功能Oracle用户登录主数据库节点p3orssetl1主机设置force logging$ sqlplus / as sysdba SQL select FORCE_LOGGING from v$database;FOR-NO 如果返回值为:NO,则需要执行以下操作;如果返回值为YES不需要执行以下操作SQL alter database force logging;Database altered.SQL select FORCE_LOGGING from v$database;FOR-
17、YES-确认返回结果为YES7. 主数据库和备数据库sys用户的密码一样,并且密码文件必须存在且主数据库初始化参数remote_login_passwordfile必须设置为EXCLUSIVEOracle用户登录主数据库所有节点主机$ sqlplus / as sysdbaSQL show parameter remote_login_passwordfile1.1.3 Active DataGuard实施准备工作(创建LISTENER和相应TNS)1. 用户grid登录主节点p3orssetl1创建LISTENER监听器(红色部分为listener名字以及端口,根据需要进行修改,一般主库默认
18、已有监听,此步一般不需要执行)srvctl add listener -l listener -p 1521srvctl start listener -l listener2. 检查LISTENER状态,状态为ONLINEp3orssetl1:grid:/home/gridcrsctl stat res -t-NAME TARGET STATE SERVER STATE_DETAILS -Local Resources-ora.LISTENER.lsnr ONLINE ONLINE p3orssetl1 ONLINE ONLINE p3orssetl2 ora.P3ORSSDAT1DG.dg
19、 ONLINE ONLINE p3orssetl1 ONLINE ONLINE p3orssetl2 ora.SYSTEMDG.dg ONLINE ONLINE p3orssetl1 ONLINE ONLINE p3orssetl2 ora.asm ONLINE ONLINE p3orssetl1 Started ONLINE ONLINE p3orssetl2 Started ora.gsd OFFLINE OFFLINE p3orssetl1 OFFLINE OFFLINE p3orssetl2 work ONLINE ONLINE p3orssetl1 ONLINE ONLINE p3o
20、rssetl2 ora.ons ONLINE ONLINE p3orssetl1 ONLINE ONLINE p3orssetl2 ora.registry.acfs ONLINE ONLINE p3orssetl1 ONLINE ONLINE p3orssetl2 -Cluster Resources-ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE p3orssetl2 ora.cvu 1 ONLINE ONLINE p3orssetl2 ora.oc4j 1 OFFLINE OFFLINE ora.oraorss.db 1 ONLINE ONLINE p3o
21、rssetl1 Open 2 ONLINE ONLINE p3orssetl2 Open ora.p3orssetl1.vip 1 ONLINE ONLINE p3orssetl1 ora.p3orssetl2.vip 1 ONLINE ONLINE p3orssetl2 ora.scan1.vip 1 ONLINE ONLINE p3orssetl2 p3orssetl1:grid:/home/grid3. 用户grid登录备节点p3orssadg1创建LISTENER_TMP监听器注意:此步的LISTENER_TMP只临时给DUPLICAT方式复制数据库使用,备库初始化完成后需要将此步修改
22、进行回退$cd $ORACLE_HOME/network/admin$ vi listener.ora # 添加以下内容LISTENER_TMP = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.125.44.97)(PORT = 1521) ) )SID_LIST_LISTENER_TMP =(SID_LIST = (SID_DESC = (GLOBAL_DBNAME = adgORSSB) (ORACLE_HOME = /oracle/app/oracle/product/11.2.0.3/
23、dbhome_1) (SID_NAME = adgORSSB1) ) )其中红色部分:LISTENER_TMP为监听器名称,21.125.44.97为节点p3orssadg1节点VIP地址, adgORSSB为db_unique_name初始化参数值,adgORSSB1为实例名,与主库保持一致。配置完毕后进行启动:su - gridlsnrctl start LISTENER_TMPDUPLICAT方式初始化备库完成后将此步操作回退:su - gridlsnrctl stop LISTENER_TMP$cd $ORACLE_HOME/network/admin$ vi listener.ora
24、 # 删除如上添加的内容4. 用户grid登录备节点p3orssadg1创建LISTENER监听器su - gridsrvctl add listener -l listener -p 1521 -s其中红色部分:LISTENER为监听器名称,1521为监听端口5. 用户grid登录备节点p3orssadg1启动 LISTENER监听器注意:如果使用DUPLICAT方式初始化备库,则在上面第3步LISTENER_TMP完成前不启动监听,否则会有端口冲突无法启动srvctl start listener -l listener 6. 用户oracle登录主节点p3orssetl1和p3orsse
25、tl2添加访问主数据库和备数据库的TNS别名su - oraclecd $ORACLE_HOME/network/admin/vi tnsnames.ora #添加如下内容,红色部分请根据环境进行修改ORAORSS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssetl1-vip)(PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssetl2-vip)(PORT = 1521) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER =
26、DEDICATED) (SERVICE_NAME = oraORSS) ) ) ORAORSS1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssetl1-vip)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oraORSS) (INSTANCE_NAME = oraORSS1) ) ) ORAORSS2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssetl2-vip)(
27、PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oraORSS) (INSTANCE_NAME = oraORSS2) ) )LISTENERS_ORAORSS = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssetl1-vip)(PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssetl2-vip)(PORT = 1521)ORSSSTANDBY = (DESCRIPTION = (AD
28、DRESS = (PROTOCOL = TCP)(HOST = 21.125.44.97)(PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST = 21.125.44.100)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = adgORSSB) ) )ORSSPRIMARY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssetl1-vip)(PORT = 1521) (ADDRESS = (PROTOCO
29、L = TCP)(HOST = p3orssetl2-vip)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oraORSS) ) ) ADGORSSBTMP = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.125.44.97)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = adgORSSB) ) )7. 用户oracle登录备节点p3orssadg1和p3ors
30、sadg2添加访问主数据库和备数据库的TNS别名su - oraclecd $ORACLE_HOME/network/admin/vi tnsnames.ora #添加如下内容,红色部分请根据环境进行修改ORSSPRIMARY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.125.44.81)(PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST = 21.125.44.84)(PORT = 1521) (CONNECT_DATA = (SERVICE_NAME = oraORSS) ) )O
31、RSSSTANDBY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssadg1-vip)(PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssadg2-vip)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = adgORSSB) ) )ADGORSSB2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssadg2-vip)(
32、PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = adgORSSB) (INSTANCE_NAME = adgORSSB2) ) )ADGORSSB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssadg1-vip)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = adgORSSB) (INSTANCE_NAME = adgORSSB1) ) )ADGORSSB
33、 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssadg1-vip)(PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssadg2-vip)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = adgORSSB) ) )LISTENERS_ADGORSSB = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssadg1-vip)(
34、PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST = p3orssadg2-vip)(PORT = 1521) )ADGORSSBTMP = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 21.125.44.97)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = adgORSSB) ) )8. 在主节点p3orssetl1上生成数据库密码文件orapworaORSS1,命令如下(其中红色部分的oracle123为密码
35、,orapworaORSS1为密码文件):su - oraclecd $ORACLE_HOME/dbsorapwd file=orapworaORSS1 password=oracle123sqlplus /as sysdbaalter user sys identified by oracle123;9. 将节点p3orssetl1数据库密码文件orapworaORSS1拷贝到p3orssetl2、p3orssadg1和p3orssadg2节点后执行以下命令p3orssetl1节点主机数据库密码文件为/oracle/app/oracle/product/11.2.0.3/dbhome_1/d
36、bs/orapworaORSS1$cd $ORACLE_HOME/dbs$mv orapworaORSS1 orapworaORSS2 #在主节点p3orssetl2操作$chown oracle:oinstall orapworaORSS2 #在主节点p3orssetl2操作$mv orapworaORSS1 orapwadgORSSB1 #在备节点p3orssadg1操作$chown oracle:oinstall orapwadgORSSB1 #在备节点p3orssadg1操作$mv orapworaORSS1 orapwadgORSSB2 #在备节点p3orssadg2操作$chown
37、 oracle:oinstall orapwadgORSSB2 #在备节点p3orssadg2操作其中红色部分:oraORSS2、adgORSSB1、adgORSSB2为实例名,需要和每个主机实例名相符 另外如果需要修改sys用户的密码,则在节点p3orssetl1执行以下命令后再将数据库密码文件拷贝到其他p3orssetl2、p3orssadg1和p3orssadg2节点上用户oracle登陆主数据库节点主机p3orssetl1SQLalter user sys identified by oracle123;在备数据库主机上创建adump目录10. 用户oracle登陆p3orssadg1
38、和p3orssadg2节点mkdir p /oracle/app/oracle/admin/adgORSSB/adump11. 用户oracle登陆主数据库节点主机p3orssetl1和p3orssetl2执行tnsping TNS别名ORSSPRIMARY和ORSSSTANDBYsu - oracletnsping ORSSPRIMARYtnsping ORSSSTANDBY12. 用户oracle登陆主数据库节点主机p3orssetl1和p3orssetl2用sys用户登陆备数据库和主数据库$sqlplus sys/oracle123ORSSPRIMARY as sysdba$sqlplus sys/oracle123ORSSSTANDBY as sysdba13. 用户oracle登陆备数据库节点主机p3orssadg1和p3orssadg2执行tnsping TNS别名ORSSPRIMARY和ORSSSTANDBY$tnsping ORSSPRIMARY$tnsping ORSSSTANDBY14. 用户oracle登陆备数据库节点主机p3orssadg1和p3orssadg2用sys用户登陆主数据库和备数据库$sqlplus sys/oracle123ORSSPRIMARY as sysdba$sqlplus sys/oracle123ORSSSTANDBY as