Oracle RAC Standby部署手册.docx
《Oracle RAC Standby部署手册.docx》由会员分享,可在线阅读,更多相关《Oracle RAC Standby部署手册.docx(17页珍藏版)》请在冰豆网上搜索。
OracleRACStandby部署手册
OracleRACStandby实施手册
目录
1实施环境规划3
1.1IP地址规划3
1.2归档配置相关参数3
1.3主库软件环境信息4
1.4备库软件环境信息4
2ActiveDataGuard实施条件6
3ActiveDataGuard实施准备8
3.1配置DG专用监听8
3.1.1创建LISTENER_DG8
3.1.2将监听加入到crs资源10
3.2配置TNS别名10
3.3同步口令文件11
3.4测试TNS配置有效性11
4配置数据库参数13
4.1主库参数调整13
4.2主库创建STANDBY日志14
4.3备库参数调整14
4.4创建备库所需目录15
5备库初始化16
5.1设置备库ORACLE_SID环境变量16
5.2启动备库数据库实例到NOMOUNT状态16
5.3测试主/备库数据库连接状态16
5.4执行DUPLICATE操作复制数据库16
5.5创建备库参数文件17
5.5.1备库节点1完成参数文件调整工作17
5.5.2备库节点2完成pfile文件创建工作18
5.6将备库加入到crs资源18
5.7启动备库18
5.8启动ActiveDataGuard18
6备库测试19
1实施环境规划
DataGuard三种保护模式:
最大化保护、最大有效性、最大性能。
为了降低对主数据库的影响,以下采用最大性能模式进行DataGuard配置。
DataGuard配置中备数据库类型主要有三种:
逻辑备数据库、物理备数据库和基于快照的备数据库,以下采用物理备数据库方式进行DataGuard配置。
DataGuard配置中的主数据库和备数据库之间数据同步是通过TCP/IP网络通信实现的,为了尽可能降低网络带宽的竞争和对现有应用程序性能问题,建议在主数据库主机和备数据库主机之间构建专属于DataGuard的网络,即需要添加新的网卡等硬件资源搭建专属于DataGuard的网络。
另外,建议在主数据库和备数据库上创建专属于DataGuard的数据库监听器,如listener_dg,监听端口为1525,如果主数据库和备数据库在不同网段上且存在防火墙,需要在防火墙上开通1525端口。
1.1IP地址规划
主机名
IP地址
描述
主数据库环境
crmdb1
192.168.56.210
公网IP地址
192.168.56.216
DG专署IP地址
crmdb2
192.168.56.211
公网IP地址
192.168.56.217
DG专署IP地址
备数据库环境
crmdg1
192.168.56.220
公网IP地址
192.168.56.225
DG专署IP地址址
crmdg2
192.168.56.221
公网IP地址
192.168.56.226
DG专署IP地址
1.2归档配置相关参数
数据库类型
主机名
DB_UNIQUE_NAME
INSTANCE_NAME
NetServiceName
主库
crmdb1
crmdb
crmdb1
CRMDB_DG
crmdb2
crmdb2
备库
crmdg1
crmdg
crmdb1
CRMDG_DG
crmdb2
crmdb2
1.3主库软件环境信息
为便于管理,主备库软件环境信息配置一致。
主库软件环境信息
数据库sys用户密码
主数据库和备数据库密码必须一致,设置为oracle
Grid和数据库版本
11.2.0.4
ORACLE_SID环境变量
crmdb1和crmdb2
GRID软件ORACLE_BASE目录
/oracle/app/oracle
GRID软件ORACLE_HOME目录
/grid/app/11.2.0.4/grid
DB软件ORACLE_BASE目录
/oracle/app/oracle
DB软件ORACLE_HOME目录
/oracle/app/oracle/product/11.2.0.4/db_1
DG专署监听器
LISTENER_DG
DG专署监听器端口
1525
初始化参数
DB_NAME=crmdb
DB_UNIQUE_NAME=crmdb
COMPATIBLE主数据库和备数据库必须一致
归档模式
归档模式
归档目录
+CRMDBARCH
1.4备库软件环境信息
备库软件环境信息
数据库sys用户密码
主数据库和备数据库密码必须一致,设置为oracle
Grid和数据库版本
11.2.0.4
ORACLE_SID环境变量
crmdb1和crmdb2
GRID软件ORACLE_BASE目录
/oracle/app/oracle
GRID软件ORACLE_HOME目录
/grid/app/11.2.0.4/grid
DB软件ORACLE_BASE目录
/oracle/app/oracle
DB软件ORACLE_HOME目录
/oracle/app/oracle/product/11.2.0.4/db_1
DG专署监听器
LISTENER_DG
DG专署监听器端口
1525
初始化参数
DB_NAME=crmdb
DB_UNIQUE_NAME=crmdg
COMPATIBLE主数据库和备数据库必须一致
归档模式
归档模式
归档目录
+CRMDGARCH
2ActiveDataGuard实施条件
实施ActiveDataGuard的前提条件如下:
1.主数据库主机和备数据库主机硬件平台一致,如都为Linux主机;
2.主数据库和备数据库软件版本一致且都为11.2.0.4;
3.备数据库数据库存储空间大小不小于主数据库数据库存储空间大小;
$asmcmd
ASMCMD>lsdg
4.主数据库数据库运行正常且工作在archivelog模式下;
$sqlplus/assysdba
--1.修改并检查归档参数
SQL>altersystemsetlog_archive_dest_1='location=+CRMDBARCH';
SQL>showparameterlog_archive_dest_1;
SQL>showparameterlog_archive_format;
--2.关闭主库两各节点
SQL>shutdownimmediate;
--3.启动一各节点进行启用归档操作
SQL>startupmount;
SQL>alterdatabaseARCHIVELOG;
SQL>alterdatabaseopen;
--4.启动另外一各节点
SQL>startup;
--5.测试归档配置结果
SQL>altersystemarchivelogcurrent;
5.主数据库数据库需要启动forcelogging功能;
$sqlplus/assysdba
SQL>selectFORCE_LOGGINGfromv$database;
SQL>alterdatabaseforcelogging;
6.主数据库和备数据库sys用户的密码一样,并且密码文件必须存在且主数据库初始化参数remote_login_passwordfile必须设置为EXCLUSIVE;
3ActiveDataGuard实施准备
为便于主备库切换时,应用可以进行快速切换,主备库数据库实例名名称相同。
3.1配置DG专用监听
3.1.1创建LISTENER_DG
通过grid登录主/备数据库各节点主机,创建LISTENER_DG监听器。
主/备数据库主机清单见:
IP地址规划。
主库配置文件(crmdb1/crmdb2主机):
[grid@crmdb1~]$cd$ORACLE_HOME/network/admin
[grid@crmdb1admin]$cplistener.oralistener.ora.`date+%Y%m%d`
[grid@crmdb1admin]$vilistener.ora
#ADDFORDG
LISTENER_DG=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.216)(PORT=1525))
)
)
SID_LIST_LISTENER_DG=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=crmdb)
(ORACLE_HOME=/oracle/app/oracle/product/11.2.0.4/db_1)
(SID_NAME=crmdb1)
)
)
红色部分内容描述:
LISTENER_DG:
DG专用监听器名称
192.168.56.216:
crmdb1节点DG专署监听IP地址
1525:
DG专署监听端口
crmdb:
DB_UNIQUE_NAME初始化参数值
crmdb1:
当前主机ORACLE_SID或INSTANCE_NAME
备库配置文件(crmdg1/crmdg2主机):
[grid@crmdg1~]$cd$ORACLE_HOME/network/admin
[grid@crmdg1admin]$cplistener.oralistener.ora.`date+%Y%m%d`
[grid@crmdg1admin]$vilistener.ora
#ADDFORDG
LISTENER_DG=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.225)(PORT=1525))
)
)
SID_LIST_LISTENER_DG=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=crmdg)
(ORACLE_HOME=/oracle/app/oracle/product/11.2.0.4/db_1)
(SID_NAME=crmdb1)
)
)
红色部分内容描述:
LISTENER_DG:
DG专用监听器名称
192.168.56.225:
crmdg1节点DG专署监听IP地址,该参数各主机不同
1525:
DG专署监听端口
crmdg:
DB_UNIQUE_NAME初始化参数值,该参数主备库不同
crmdb1:
当前主机ORACLE_SID或INSTANCE_NAME,该参数集群中各节点不同
3.1.2将监听加入到crs资源
主库:
[grid@crmdb1~]$srvctladdlistener-lLISTENER_DG-pTCP:
1525
[grid@crmdb1~]$srvctlstartlistener-lLISTENER_DG-ncrmdb1
[grid@crmdb2~]$srvctlstartlistener-lLISTENER_DG-ncrmdb2
备库:
[grid@crmdg1~]$srvctladdlistener-lLISTENER_DG-pTCP:
1525
[grid@crmdg1~]$srvctlstartlistener-lLISTENER_DG-ncrmdg1
[grid@crmdg2~]$srvctlstartlistener-lLISTENER_DG-ncrmdg2
3.2配置TNS别名
该配置主备库相同。
[oracle@crmdb1~]$cd$ORACLE_HOME/network/admin
[oracle@crmdb1admin]$cptnsnames.oratnsnames.ora.`date+%Y%m%d`
[oracle@crmdb1admin]$vitnsnames.ora
CRMDB_DG=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.216)(PORT=1525))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.217)(PORT=1525))
(CONNECT_DATA=
(SERVICE_NAME=CRMDB)
)
)
CRMDG_DG=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.225)(PORT=1525))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.226)(PORT=1525))
(CONNECT_DATA=
(SERVICE_NAME=CRMDG)
)
)
注意:
备库的SERVICE_NAME是CRMDG,但ORACLE_SID中配置为crmdb1/crmdb2。
3.3同步口令文件
如果需要修改sys用户的密码,则在节点crmdb1执行以下命令后再将数据库密码文件ftp到其他crmdb2、crmdg1和crmdg2节点上。
[oracle@crmdb1~]$cd$ORACLE_HOME/dbs
--1.ftp到各节点,使用主机名便于整理脚本,实际操作需要主机ip地址
[oracle@crmdb1dbs]$scporapwcrmdb1crmdb2:
`pwd`#复制口令文件到crmdb2
[oracle@crmdb1dbs]$scporapwcrmdb1crmdg1:
`pwd`#复制口令文件到crmdg1
[oracle@crmdb1dbs]$scporapwcrmdb1crmdg2:
`pwd`#复制口令文件到crmdg2
--2.修改口令文件名称
[oracle@crmdb2dbs]$mvorapwcrmdb1orapwcrmdb2#在节点crmdb2操作
[oracle@crmdg2dbs]$mvorapwcrmdb1orapwcrmdb2#在节点crmdg2操作
--3.修改口令文件权限(实际通过oracle用户进行ftp不需要进行该操作)
[oracle@crmdb2dbs]$chownoracle:
oinstallorapwcrmdb2#在节点crmdb1操作
[oracle@crmdg1dbs]$chownoracle:
oinstallorapwcrmdb1#在节点crmdg1操作
[oracle@crmdg2dbs]$chownoracle:
oinstallorapwcrmdb2#在节点crmdg2操作
3.4测试TNS配置有效性
所有主机进行连通性测试。
[oracle@crmdb1~]$tnspingCRMDB_DG
[oracle@crmdb1~]$tnspingCRMDG_DG
[oracle@crmdb1~]$sqlplussys/oracle@CRMDB_DGassysdba
[oracle@crmdb1~]$sqlplussys/oracle@CRMDG_DGassysdba
4配置数据库参数
DB_UNIQUE_NAME,INSTANCE_NAME,NetServiceName相关参数配置,参考归档配置相关参数。
4.1主库参数调整
SQL>showparameterspfile;
--1.备份主库参数文件
SQL>createpfile='/home/oracle/crmdb.pfile'fromspfile;
--2.修改主库参数文件
altersystemsetLOG_ARCHIVE_CONFIG='DG_CONFIG=(crmdb,crmdg)';
altersystemsetLOG_ARCHIVE_DEST_1='LOCATION=+CRMDBARCHVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=crmdb';
altersystemsetLOG_ARCHIVE_DEST_2='SERVICE=CRMDG_DGLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=crmdg';
altersystemsetFAL_SERVER=CRMDG_DG;
altersystemsetSTANDBY_FILE_MANAGEMENT=AUTO;
altersystemsetLOG_ARCHIVE_MAX_PROCESSES=4;
altersystemsetDB_FILE_NAME_CONVERT='+CRMDGDATA/crmdg/','+CRMDBDATA/crmdb/'scope=spfile;
altersystemsetLOG_FILE_NAME_CONVERT='+CRMDGDATA/crmdg/','+CRMDBDATA/crmdb/'scope=spfile;
--3.重启主库进行验证
SQL>shutdownimmediate;
SQL>startup;
--4.生成当前主库参数文件,用于备库参数文件模版
SQL>createpfile='/home/oracle/crmdb.primary'fromspfile;
参数文件模版:
*.audit_file_dest='/oracle/app/oracle/admin/crmdb/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='+CRMDBDATA/crmdb/controlfile/current.256.960630751'
*.db_block_size=8192
*.db_create_file_dest='+CRMDBDATA'
*.db_domain=''
*.db_name='crmdb'
*.diagnostic_dest='/oracle/app/oracle'
*.dispatchers='(PROTOCOL=TCP)(SERVICE=crmdbXDB)'
*.open_cursors=300
*.pga_aggregate_target=1073741824
*.processes=1500
*.remote_listener='crmdb-scan:
1521'
*.remote_login_passwordfile='exclusive'
*.sessions=1655
*.sga_target=4294967296
crmdb1.instance_number=1
crmdb2.instance_number=2
crmdb1.thread=1
crmdb2.thread=2
crmdb1.undo_tablespace='UNDOTBS1'
crmdb2.undo_tablespace='UNDOTBS2'
*.fal_server='CRMDG_DG'
*.log_archive_config='DG_CONFIG=(crmdb,crmdg)'
*.log_archive_dest_1='LOCATION=+CRMDBARCHVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=crmdb'
*.log_archive_dest_2='SERVICE=CRMDG_DGLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=crmdg'
*.db_file_name_convert='+CRMDGDATA/crmdg/','+CRMDBDATA/crmdb/'
*.log_file_name_convert='+CRMDGDATA/crmdg/','+CRMDBDATA/crmdb/'
*.standby_file_management='AUTO'
4.2主库创建STANDBY日志
ALTERDATABASEADDSTANDBYLOGFILEthread1group5('+CRMDBDATA')SIZE52428800;
ALTERDATABASEADDSTANDBYLOGFILEthread1group6('+CRMDBDATA')SIZE52428800;
ALTERDATABASEADDSTANDBYLOGFILEthread1group7('+CRMDBDATA')SIZE52428800;
ALTERDATABASEADDSTANDBYLOGFILEthread2group8('+CRMDBDATA')SIZE52428800;
ALTERDATABASEADDSTANDBYLOGFILEthread2group9('+CRMDBDATA')SIZE52428800;
ALTERDATABASEADDSTANDBYLOGFILEthread2group10('+CRMDBDATA')SIZE52428800;
STANDBY日志文件创建原则:
1.每个实例的STANDBY日志文件组大于联机日志文件组数;
2.每个STANDBY日志文件大小与联机日志文件大小一致;
4.3备库参数调整
将主库生成的参数文件复制一份,作为备库参数文件的模版进行修改。
[oracle@crmdb1~]$cpcrmdb.primarycrmdg.standby
--1.DG无关的参数
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.db_block_size=8192
*.db_name='crmdb'
*.diagnostic_dest='/oracle/app/oracle'
*.open_cursors=300
*.pga_aggregate_target=809500672
*.processes=1500
*.sessions=1655
*.sga_target=2428502016
*.log_archive_max_processes=4
*.remote_login_passwordfile='exclusi