dataguard配置手册.docx
《dataguard配置手册.docx》由会员分享,可在线阅读,更多相关《dataguard配置手册.docx(24页珍藏版)》请在冰点文库上搜索。
dataguard配置手册
文件标识
版本号
密级
ORACLE10GDATAGUARDPHYISCALSTANDBY配置指导
编制
苏波
日期
2013-05-08
审核
日期
批准
日期
修订记录
版本编号
版本日期
修订人
说明
目录
1、部署环境:
4
2、准备工作4
3、正式开始配置5
3.1设置主数据库为forcelogging模式5
3.2设置主数据库为归档模式5
3.3数据文件拷贝5
3.31、拷贝主库的数据文件到备库中5
3.32、创建从库的控制文件6
3.33从库创建admin目录6
3.34在从库上创建密码文件6
3.35创建从库flash_recovery_area目录7
3.4修改spfile文件7
3.41、创建pfile文件7
3.42、创建spfile文件9
3.5创建备机redo日志10
3.6配置网络,修改listener.ora,tnsnames.ora10
3.61配置10
3.62测试网络配置14
3.7启动主备服务14
3.71主库15
3.72备库15
3.73测试归档15
4、日常维护16
4.1正确打开主库和备库16
4.2正确关闭顺序16
4.3备库Read-only模式打开16
4.4日志传输状态监控17
4.5备库归档目录维护17
5、主库正常切换18
5.1人工干预正常切换18
5.2通过运行脚本实现主库正常切换19
6、主库灾难切换19
6.1人工干预主库灾难切换19
6.2通过运行脚本实现主库灾难切换20
1、部署环境:
Oracle10GDataGuard
主库:
HOSTNAME:
primaryIP:
139.0.0.31SID=ccpbs
备库:
HOSTNAME:
standbyIP:
139.0.0.32SID=ccpbs
oracleversion:
10.2.0.1
OSplatform:
OEL5.4
VMware运行主备虚拟机
DataGuard默认是maximizeperformance,可以用以下语句来进行模式间的切换。
ALTERDATABASESETSTANDBYDATABASETOMAXIMIZE{PROTECTION|
AVAILABILITY|PERFORMANCE};
修改主数据库保护模式需要重启数据库才能生效。
selectprotection_mode,protection_levelfromv$database;
2、准备工作
1、在主备机分别安装OEL5.4操作系统分别设置HOSTNAME为“odd”、
“even”;
2、在主备机上分别安装oracle10gR2数据库,安装时注意选择“高级”,只安装“数据库软件;”
3、只在主机上用dbca新建数据库实例,选择默认选项,SID名和SERVICE名设定为
“ccpbs”;
参数规划:
数据库
db_name
sid
instance_name
service_names
db_unique_name
fal_server
fal_client
主库
ccpbs
ccpbs
ccpbs
pri
pri
stdby
pri
备库
ccpbs
ccpbs
ccpbs
Stdby
stdby
pri
stdby
3、正式开始配置
3.1设置主数据库为forcelogging模式
$sqlplus/nolog;
SQL>conn/assysdba;
SQL>alterdatabaseforcelogging;
3.2设置主数据库为归档模式
SQL>archiveloglist
SQL>shutdownimmediate
SQL>startupmount
SQL>alterdatabasearchivelog;
SQL>archiveloglist
3.3数据文件拷贝
数据文件的拷贝可以分为两种模式:
rman和文件的直接拷贝,由于我们的系统可以停机,所以会采用第二种方式。
注意不用拷贝redo文件,备用机在启动的时候会自动的创建redo文件。
控制文件也不用拷贝。
3.31、拷贝主库的数据文件到备库中
SQL>SELECTNAMEFROMv$datafile;
SQL>selectnamefromv$tempfile;
把主库的以上数据文件拷贝到备库上同样目录
3.32、创建从库的控制文件
在主库上为从库创建控制文件(不要和主库控制文件重名),然后拷贝到从库
/home/oracle/oracle10g/oradata/ccpbs/目录下。
(记住这个目录,在下面从库的spfile配置中要用到)。
SQL>ALTERDATABASECREATESTANDBYCONTROLFILEAS'/home/oracle/standby.ctl';
3.33从库创建admin目录
将主库的/home/oracle/oracle10g/admin/ccpbs目录及文件夹拷贝到从库的相同目录。
3.34在从库上创建密码文件
缺省情况下,linux下的格式是orapwSID(大小写敏感)
在$ORACLE_HOME/dbs目录下,创建密码文件:
orapwdfile=orapwccpbspassword=oracle
建议直接拷贝主库该位置的文件到备库对应位置。
3.35创建从库flash_recovery_area目录
在/home/oracle/oracle10g目录中创建flash_recover_area目录,该目录参数在从库中有设定,为*.db_recovery_file_dest项的值,如果没有会出错。
3.4修改spfile文件
说明:
我们在这里需要先根据spfile生成pfile文件,然后修改好对应的参数值,再依据pfile生成spfile文件。
3.41、创建pfile文件
在主库上创建pfile文件
SQL>CREATEPFILEFROMSPFILE;
生成的pfile文件,默认格式为initSID.ora,此处为initccpbs.ora
文件路径为/home/oracle/oracle10g/product/10.2.0/db_1/dbs
将主库生成的pfile文件,拷贝到从库相同目录下。
修改主库的initccpbs.ora文件如下,红色部分为需要新加入的内容,蓝色部分是特别需要注意的部分:
--------------------------initccpbs.ora----------------------------------------------------------------
ccpbs.__db_cache_size=188743680
ccpbs.__java_pool_size=4194304
ccpbs.__large_pool_size=4194304
ccpbs.__shared_pool_size=83886080
ccpbs.__streams_pool_size=0
*.audit_file_dest='/home/oracle/oracle10g/admin/ccpbs/adump'
*.background_dump_dest='/home/oracle/oracle10g/admin/ccpbs/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/home/oracle/oracle10g/oradata/ccpbs/control01.ctl','/home/oracle/oracle10g/oradata/ccpbs/control02.ctl','/home/oracle/oracle10g/oradata/ccpbs/control03.ctl'
*.core_dump_dest='/home/oracle/oracle10g/admin/ccpbs/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='ccpbs'
*.db_recovery_file_dest='/home/oracle/oracle10g/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP)(SERVICE=ccpbsXDB)'
*.job_queue_processes=10
*.nls_language='SIMPLIFIEDCHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.pga_aggregate_target=94371840
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=335
*.sga_target=285212672
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/oracle/oracle10g/admin/ccpbs/udump'
*.db_unique_name='pri'
*.fal_server='stdby'
*.fal_client='pri'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(pri,stdby)'
*.log_archive_dest_1='LOCATION=/home/oracle/arch1/VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=pri'
*.LOG_ARCHIVE_DEST_2='SERVICE=stdbyLGWRASYNC=40960VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=stdby'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.standby_archive_dest='/home/oracle/arch1/'
*.standby_file_management='AUTO'
------------------------------------------------------------------------------------------
修改从库的initccpbs.ora文件加入如下:
----------------------------------------initccpbs.ora--------------------------------------------------
ccpbs.__db_cache_size=188743680
ccpbs.__java_pool_size=4194304
ccpbs.__large_pool_size=4194304
ccpbs.__shared_pool_size=83886080
ccpbs.__streams_pool_size=0
*.audit_file_dest='/home/oracle/oracle10g/admin/ccpbs/adump'
*.background_dump_dest='/home/oracle/oracle10g/admin/ccpbs/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/home/oracle/oracle10g/oradata/ccpbs/stdby.ctl'
*.core_dump_dest='/home/oracle/oracle10g/admin/ccpbs/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='ccpbs'
*.db_recovery_file_dest='/home/oracle/oracle10g/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP)(SERVICE=ccpbsXDB)'
*.job_queue_processes=10
*.nls_language='SIMPLIFIEDCHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.pga_aggregate_target=94371840
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=335
*.sga_target=285212672
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/oracle/oracle10g/admin/ccpbs/udump'
*.db_unique_name='stdby'
*.fal_server='pri'
*.fal_client='stdby'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(pri,stdby)'
*.log_archive_dest_1='LOCATION=/home/oracle/arch1/VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=stdby'
*.LOG_ARCHIVE_DEST_2='SERVICE=priLGWRASYNC=40960VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=pri'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_file_name_convert='/home/oracle/arch1','/home/oracle/arch1'
*.standby_archive_dest='/home/oracle/arch1/'
*.standby_file_management='AUTO'------------------------------------------------------------------------------------------
3.42、创建spfile文件
从库:
备份原spfile文件,将修改完成的pfile重新生成spfile文件
SQL>CREATESPFILEFROMPFILE;
从库:
SQL>CREATESPFILEFROMPFILE;
启动从库到mount状态
SQL>startupmount;
3.5创建备机redo日志
因为我们使用LGWR所以我们要创建standbyredo日志。
一定要日志注意的大小,要和主库一样。
万一加错了日志可以使用下面的语句进行删除。
ALTERDATABASEDROPLOGFILEGROUP8;
先查看日志文件位置:
SQL>select*fromv$logfile;
再添加:
SQL>alterdatabaseaddstandbylogfilegroup4/home/oracle/oracle10g/oradata/ccpbs/redo04.logsize50m;
SQL>alterdatabaseaddstandbylogfilegroup5/home/oracle/oracle10g/oradata/ccpbs/redo05.logsize50m;
SQL>alterdatabaseaddstandbylogfilegroup6/home/oracle/oracle10g/oradata/ccpbs/redo06.logsize50m;
SQL>alterdatabaseaddstandbylogfilegroup7/home/oracle/oracle10g/oradata/ccpbs/redo07.logsize50m;
3.6配置网络,修改listener.ora,tnsnames.ora
3.61配置
先在主从库上分别用netca命令配置监听和本地服务名,再分别编辑主、从库的listener.ora,tnsnames.ora,参数以下
主库的listener.ora文件如下:
######################################################################################################
#listener.oraNetworkConfigurationFile:
/home/oracle/oracle10g/product/10.2.0/db_1/network/admin/listener.ora
#GeneratedbyOracleconfigurationtools.
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=/home/oracle/oracle10g/product/10.2.0/db_1)
(PROGRAM=extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=ccpbs)
(ORACLE_HOME=/home/oracle/oracle10g/product/10.2.0/db_1)
(SID_NAME=ccpbs)
)
)
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=odd)(PORT=1521))
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
)
)######################################################################################################
主库的tnsnames.ora文件如下:
######################################################################################################
#tnsnames.oraNetworkConfigurationFile:
/home/oracle/oracle10g/product/10.2.0/db_1/network/admin/tnsnames.ora
#GeneratedbyOracleconfigurationtools.
CCPBS=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=139.0.0.31)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=ccpbs)
)
)
pri=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=139.0.0.31)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=ccpbs)
)
)
stdby=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=139.0.0.32)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=ccpbs)
)
)
EXTPROC_CONNECTION_DATA=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
)
(CONNECT_DATA=
(SID=PLSExtProc)
(PRESENTATION=RO)
)
)######################################################################################################
从库的listeners.ora如下
######################################################################################################
#listener.oraNetworkConfigurationFile:
/home/oracle/oracle10g/product/10.2.0/db_1/network/admin/listener.ora
#GeneratedbyOracleconfigurationtools.
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=/home/or