oracle11gDataguard详细配置手册Word下载.docx
《oracle11gDataguard详细配置手册Word下载.docx》由会员分享,可在线阅读,更多相关《oracle11gDataguard详细配置手册Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
service_namesstringorcl
备库:
192.168.1.38
lin-2
db_unique_namestringorcl2
说明:
由于我采用的是vmware虚拟化环境进行测试的。
测试时首先安装好一台数据库,然后再克隆出另外一套。
第二套根据需要,对主机名、IP地址进行更改。
另外不要忘记更换oracle用户的环境变量、更改/etc/hosts解析文件
注意:
主库和备库的db_unique_name不能相同
二:
修改主备库listener.ora,tnsnames.ora
2.1、主库配置
2.1.1、配置主库的监听:
[oracle@lin-1admin]$vilistener.ora
(G
#listener.oraNetworkConfigurationFile:
/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
#GeneratedbyOracleconfigurationtools.
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
(SID_NAME=orcl)
)
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=lin-1)(PORT=1521))
)
ADR_BASE_LISTENER=/u01/app/oracle
2.1.2、修改主库的Tnsname
ORCL=
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=orcl)
ORCL2=
(ADDRESS=(PROTOCOL=TCP)(HOST=lin-2)(PORT=1521))
(SERVICE_NAME=orcl2)
2.2、备库配置
2.2.1、配置备库的监听
监听:
[oracle@lin-2admin]$catlistener.ora
2.1.2、修改备库的Tnsname
三、主库前期准备
设置强制写日志
selectFORCE_LOGGINGfromv$database;
NO
alterdatabaseforcelogging;
YES
四、创建口令文件
orapwdfile=$ORACLE_HOME/dbs/orapworclpassword=oracleentries=5
五、修改主库初始化参数
创建主库pfile
sql>
createpfilefromspfile;
修改主库pfile:
在pfile中添加如下内容:
DB_UNIQUE_NAME=orcl
LOG_ARCHIVE_CONFIG='
DG_CONFIG=(orcl,orcl2)'
LOG_ARCHIVE_DEST_1='
LOCATION=/u01/app/archiveVALID_FOR=(ALL_LOG)DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_2='
SERVICE=orcl2LGWRASYNCVALID_FOR=(ONLINE_LOG)DB_UNIQUE_NAME=orcl2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=orcl2
FAL_CLIENT=orcl
STANDBY_
把修改后的pfile也拷贝到备库上:
scp–rp/u01/app/oracle/product/11.2.0/db_1/dbs/initorcl.oralin-2:
/u01/app/oracle/product/11.2.0/db_1/dbs/
根据实际情况更改用户的环境变量
六.修改主库运行在归档模式下
archiveloglist;
DatabaselogmodeNoArchiveMode
AutomaticarchivalDisabled
ArchivedestinationUSE_DB_RECOVERY_
Oldestonlinelogsequence4
Currentlogsequence6
altersystemsetLOG_ARCHIVE_DEST_1='
LOCATION=/u01/app/archive'
;
Systemaltered.
shutdownimmediate;
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
startupmount;
ORACLEinstancestarted.
TotalSystemGlobalArea1570009088bytes
FixedSize2213696bytes
VariableSize922749120bytes
DatabaseBuffers637534208bytes
RedoBuffers7512064bytes
Databasemounted.
alterdatabasearchivelog;
Databasealtered.
alterdatabaseopen;
七.创建备份库需要的控制文件
在主库创建备库控制文件
注:
以下操作在主库上进行
Shutdownimmediate;
STARTUPMOUNT;
ALTERDATABASECREATESTANDBYCONTROLFILEAS'
/tmp/orcl.ctl'
ALTERDATABASEOPEN;
创建主库spfile
Shutdownimmediate
startuppfile='
/u01/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora'
sql>
createsppfile='
关闭数据库
八.备份生产数据库并把数据复制到对端
这里采用关闭主库数据库,进行冷备份的方法进行备份,数据库的控制文件和数据文件全部位于/u01/app/oracle/oradata/orcl/目录
scp-rp/u01/app/oracle/oradata/orcl/*lin-2:
/u01/app/oracle/oradata/orcl/
九.修改备库pfile
[oracle@lin-2dbs]$catinitorcl.ora
orcl.__db_cache_size=637534208
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__oracle_base='
/u01/app/oracle'
#ORACLE_BASEsetfromenvironment
orcl.__pga_aggregate_target=637534208
orcl.__sga_target=939524096
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=251658240
orcl.__streams_pool_size=0
*.audit_'
/u01/app/oracle/admin/orcl/adump'
*.audit_trail='
db'
*.compatible='
11.2.0.0.0'
*.control_files='
/u01/app/oracle/oradata/orcl/control01.ctl'
*.db_block_size=8192
*.db_domain='
'
*.db_name='
orcl'
*.db_recovery_'
/u01/app/oracle/flash_recovery_area'
*.db_recovery_
*.diagnostic_dest='
*.dispatchers='
(PROTOCOL=TCP)(SERVICE=orclXDB)'
*.memory_target=1562378240
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='
EXCLUSIVE'
*.undo_tablespace='
UNDOTBS1'
*.DB_UNIQUE_NAME=orcl2
*.LOG_ARCHIVE_CONFIG='
*.LOG_ARCHIVE_DEST_1='
LOCATION=/u01/app/archiveVALID_FOR=(ALL_LOG)DB_UNIQUE_NAME=orcl2'
*.LOG_ARCHIVE_DEST_2='
SERVICE=orclLGWRASYNCVALID_FOR=(ONLINE_LOG)DB_UNIQUE_NAME=orcl'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
*.FAL_SERVER=orcl
*.FAL_CLIENT=orcl2
*.STANDBY_
十、将控制文件传输到对端
下面命令在主库上执行:
scp-rp/tmp/orcl.ctllin-2:
传输到对端后,并更改控制文件的名称
在备库上修改名称为control01.ct
[oracle@lin-2orcl]$mvorcl.ctlcontrol01.ctl
[oracle@lin-2orcl]$ls
control01.ctlredo02.logsysaux01.dbftemp01.dbfusers01.dbf
redo01.logredo03.logsystem01.dbfundotbs01.dbf
十一、在备库上创建口令文件
orapwdfile=$ORACLE_HOME/dbs/orapworclpassword=oracleentries=5
十二、在备库上创建spfile
在备库上,根据第九章创建的pfile生成spfile
startuppfile='
CREATESPFILEFROMPFILE;
十三、启动物理备用数据库
STARTUPMOUNT;
十四、配置StandbyRedoLog
在两边都配置standbyredolog
在主库查看日志组的数量和每个日志文件的大小
SELECTGROUP#,BYTESFROMV$LOG;
在备库库查看日志组的数量和每个日志文件的大小
SELECTGROUP#,BYTESFROMV$STANDBY_LOG;
在主备库上创建日志组和redolog文件
ALTERDATABASEADDSTANDBYLOG4('
/u01/app/oracle/oradata/orcl/stdby_redo04.log'
)SIZE50M;
ALTERDATABASEADDSTANDBYLOG5('
/u01/app/oracle/oradata/orcl/stdby_redo05.log'
ALTERDATABASEADDSTANDBYLOG6('
/u01/app/oracle/oradata/orcl/stdby_redo06.log'
十五、配置闪回数据库
这一步为可选操作,但强烈建议开启数据库闪回功能。
闪回允许你将数据库还原到以前的某一时间点。
当发生故障转移时,这个功能非常有用,它能让你将老的主库闪回到故障前,然后将其转换为备库。
如果没有启用闪回功能,你就必须重建备库,意味着要再复制一次数据文件。
除了这个好处,闪回还能在某些情况下让你避免从备份恢复数据。
(1)快速恢复区(Flash/FastRecoveryArea),默认是配置的,但是需要确认这个区域的磁盘够大,至少50G以上(默认3G)
showparameterdb_recovery_
可以修改位置:
altersystemsetdb_recovery_'
新路径'
更改大小:
altersystemsetdb_recovery_G;
(2)查看是否启用,默认是不开启的
selectflashback_onfromv$database;
开启闪回:
alterdatabaseflashbackon;
如果你碰到ORA-01153报错,那一定是在备库进行此操作。
你需要先取消重做日志应用,启用闪回日志,然后重新启用日志应用。
在主库启用闪回日志,不会同步备库也启用。
你必须手动在主库和备库上均启用闪回日志。
如果不启用闪回日志,当出现故障转移时,你将需要完全重新开始创建一个备库。
十六、StartRedoApply
在备库上执行:
ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFROMSESSION;
查看哪些归档日志被APPLY了
SELECTSEQUENCE#,APPLIEDFROMV$ARCHIVED_LOGORDERBYSEQUENCE#;
在主库强制日志切换到当前的onlineredologfile.
ALTERSYSTEMARCHIVELOGCURRENT;
在备库查看新的被归档的redodata
SELECTSEQUENCE#,FIRST_TIME,NEXT_TIMEFROMV$ARCHIVED_LOGORDERBYSEQUENCE#;
在备库查看接收到的被应用的redo
SELECTSEQUENCE#,APPLIEDFROMV$ARCHIVED_LOGORDERBYSEQUENCE#;
查看数据库的角色
selectdatabase_role,protection_mode,protection_levelfromv$database;
附件:
日常维护
主备库切换
1.查看主库的状态
SELECTSWITCHOVER_STATUSFROMV$DATABASE;
2.将主库切换至备用模式
ALTERDATABASECOMMITTOSWITCHOVERTOPHYSICALSTANDBYWITH-
>
SESSIONSHUTDOWN;
3.关闭、装载主数据库
SHUTDOWNABORT;
STARTUPMOUNT;
4.查看备库准备向主库模式切换
SWITCHOVER_STATUS
-----------------
TO_PRIMARY
1rowselected
5.切换备库至主库模式
ALTERDATABASECOMMITTOSWITCHOVERTOPRIMARYWITHSESSIONSHUTDOWN;
6.打开新的主数据库
ALTERDATABASEOPEN;
7.在新的备库服务器上启动REDOapply。
SQL>
ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFILE-
DISCONNECTFROMSESSION;
灾难恢复(failover)
Step1Flushanyunsentredofromtheprimarydatabasetothetargetstandby
database
ALTERSYSTEMFLUSHREDOTOtarget_db_name;
Step2Verifythatthestandbydatabasehasthemostrecentlyarchivedredolog
eachprimarydatabaseredothread.
SELECTUNIQUETHREAD#ASTHREAD,MAX(SEQUENCE#)-
OVER(PARTITIONBYthread#)ASLASTfromV$ARCHIVED_LOG;
ALTERDATABASEREGISTERPHYSICALLOGFILE'
Step3Identifyandresolveanyarchivedredologgaps.
SELECTTHREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE#FROMV$ARCHIVE_GAP;
ALTERDATABASEREGISTERPHYSICALLOGFILE