oracle11gr2dataguard日常维护及故障处理.docx
- 文档编号:11508873
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:19
- 大小:297.42KB
oracle11gr2dataguard日常维护及故障处理.docx
《oracle11gr2dataguard日常维护及故障处理.docx》由会员分享,可在线阅读,更多相关《oracle11gr2dataguard日常维护及故障处理.docx(19页珍藏版)》请在冰点文库上搜索。
oracle11gr2dataguard日常维护及故障处理
Oracle11GR2DataGuard日常维护及故障处理
[日期:
2016-02-20]来源:
Linux社区作者:
fengwan[字体:
大中小]
1.关于ForcedLogging模式
有一些DDL语句可以通过指定NOLOGGIN子句的方式避免写redolog(目的是提高速度,某些时候确实有效),指定数据库为FORCELOGGIN模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGIN之类的指定参数。
如果在执行forceloggi
ng时有nologging之类的语句在执行,则forcelogging会等待直到这类语句全部执行。
F
ORCELOGGIN是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行
一次即可)
打开forcelogging|
SQL>alterdatabaseforcelogging;
关闭forcelogging
SQL>alterdatabasenoforcelogging;
查看forcelogging的状态:
SQL>selectFORCE_LOGGINGfromv$database;
2.关于主备库的密码
密码文件位置$Oracle_HOME/dbs/orapwSID,主备库的密码必须要一致,否则可能出现
日志无法传输故障,最好是使用scp传过去较为方便
3.关于listener.ora禾口tnsnames.ora
listener.ora为数据库的监听配置文件,tnsnames.ora为网络服务名配置文件
修改listener.ora是需要重启监听程序,而tnsnames.ora是不需要重启的,我们可以
使用默认的listener.ora
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
)
ADR_BASE_LISTENER=/opt/oracle
以上是动态注册,如果是静态注册的话,则是
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=/opt/oracle/product/11.2.0/db_1)
(PROGRAM=extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=db1)
(ORACLE_HOME=/opt/oracle/product/11.2.0/db_1)
(SID_NAME=db1)
)
)
tnsnames.ora则只需要添加服务名
db1=
(DEST_NAME
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=db1)(PORT=1521))):
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=db1)
)
)
db2=
(DESCRIPTION=
(ADDRESSLIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=db2)(PORT=1521))
)
(CONNECTDATA
=
(SERVER=DEDICATED)
(SERVICE_NAME=db2)
)
)
以上按照自己的实际情况进行修改
以上配置好了,就可以相互的tnspingdb1或tnspingdb2进行测试
4.参数文件说明
参数文件说明:
增加以下参数,如果在初始化参数已经有配置,则看需要做相应的修改。
1与主库角色相关的初始化参数说明:
|
DB_NAME
注意保持同一个DataGuard环境中所有数据库DB_NAM相同
DB_UNIQUE_NAME
为每一个数据库指定一个唯一的名称,以标示同一个dataguard环境中不同的数据库。
LOG_ARCHIVE_CONFIG
该参数通过DG_CONFIGI性罗列同一个DataGuard中所有DB_UNIQUE_NAM含主库db及备库db),以逗号分隔。
例如:
LOG_ARCHIVE_CONFIG='DB_CONFIG=(db1,db22)'
LOG_ARCHIVE_DEST_n
归档文件的生成路径。
该参数非常重要,dataguard就是通过这里的设置传输日志的。
|
LOG_ARCHIVE_DEST_STATE_n
指定参数值为ENABLE标示对应的LOG_ARCHIVE_DEST参数是否有效。
REMOTE_LOGIN_PASSWORDFILE
推荐设置参数值为EXCLUSIVE或者SHARED注意保证相同DataGuard配置中所有db服务器sys密码相同。
如果不同日志传输会失败。
数据库默认是EXCLUSIVE一般不用修改。
T
LOG_ARCHIVE_FORMAT
指定归档文件格式。
一般也不用修改,保持默认即可
2、以下参数为备库角色相关的参数,建议在主库的初始化参数中也进行设置,这样在主备
库角色相互转换后不需要做修改dataguard也能正常运行。
FAL_SERVER
指定备库到主数据库的连接服务名,FAL_SERVER=orcl2日志所在服务器。
FAL_CLIENT
指定主库到备库的连接服务名,FAL_CLIENT=orcl日志接收客户端。
STANDBY_FILE_MANAGEMENT
如果主库的数据文件发生修改(如新建,重命名等)则按照本参数的设置在备库中做相应修
改。
设为AUTO表示自动管理。
设为MANUA表示需要手工管理。
例如:
STANDBY_FILE_MANAGEMENT=AUTO
下面开始修改主库的初始化参数。
db_name参数已经设置,不用修改
SQL>altersystemsetdb_unique_name='db1'scope=spfile;
SQL>altersystemsetlog_archive_config='dg_config=(db1,db2)'scope=spfile;---这里的db1和db2为db_unique_name
SQL>altersystemsetlog_archive_dest_1='location=/opt/oracle/flash_recovery_area'scope=spfile;
--/opt/oracle/flash_recovery_area为本地的归档目录,需要手动创建该目录,当然也可
以指定别的路径。
注意oracle账号对该目录又可读写的权限。
SQL>altersystemsetlogarchivedeststate1=enablescope=spfile;
SQL>altersystemsetlogarchivedest2='service=db2validfor=(onlinelogfiles,primary_role)archasyncNOAFFIRMdb_unique_name=db2'scope=spfile;
——这里的service为主库连接到备库的服务名,后面会在tnsnames.ora文件中配置
valid_for参数说明这个归档日志目的地在本数据库为主库的角色下才需要把online_logf
ile传输到备库去。
archasyncNOAFFIRM说明的是同步的方式,同步的方式有三种:
最大保
护,最大性能,最大可用。
SQL>altersystemsetlog_archive_dest_state_2=enablescope=spfile;
以上修改的是作为主库角色需要的参数,为了方便以后主备库切换,建议在主库中也配置作
为备库角色的相关参数。
SQL>altersystemsetfal_server=db2scope=spfile;
SQL>altersystemsetfal_client=dbscope=spfile;
SQL>altersystemsetstandby_file_management=autoscope=spfile;生成静态参数文件,以备后面给备库使用。
SQL>createpfilefromspfile;重新启动主库,使参数生效。
6.DataGuard启动停止及维护:
DataGuard停止:
先主后备
DataGuard启动:
先备后主
7.DataGuard日常监控视图
a.主库查看日志归档路径是否可用,如果远程归档目录不可用则error会显示错误信息
SQL>selectdestname,status,errorfromv$archivedest;
DEST_NAMESTATUSERROR
LOG_ARCHIVE_DEST_1VALID
LOG_ARCHIVE_DEST_2VALID
LOG_ARCHIVE_DEST_3INACTIVE
LOG_ARCHIVE_DEST_4INACTIVE
LOG_ARCHIVE_DEST_5INACTIVE
LOG_ARCHIVE_DEST_6INACTIVE
LOG_ARCHIVE_DEST_7INACTIVE
LOG_ARCHIVE_DEST_8INACTIVE
LOG_ARCHIVE_DEST_9INACTIVE
LOG_ARCHIVE_DEST_10INACTIVE
10rowsselected.
如上记录则代表备库归档日志目录有效且正常
b.查询数据库的主备角色,以及当前DataGuard的运行模式,在主备查询结果不同
主库:
SQL>selectdatabase_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVELfromv$database;
DATABASEROLELOGMODEPROTECTIONMODEPROTECTIONLEVEL
PRIMARYARCHIVELOGMAXIMUMPERFORMANCMAXIMUMPERFORMANCE
备库:
SQL>selectdatabase_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVELfromv$database;
DATABASE_ROLELOG_MODEPROTECTION_MODEPROTECTION_LEVEL
PHYSICALSTANDBYARCHIVELOGMAXIMUMPERFORMANCMAXIMUMPERFORMANCE
c.获取归档日志的应用情况,主备库结果不同。
在主库上对于每个归档文件会有2条记
录
SQL>selectname,SEQUENCE#,APPLIEDfromv$archived_logorderbysequenee#;
备库:
/opt/oracle/flash_recovery_area/1_11_904130046.dbf11
/opt/oracle/flash_recovery_area/1_12_904130046.dbf
12
YES
/opt/oracle/flash_recovery_area/1_13_904130046.dbf
13
YES
/opt/oracle/flash_recovery_area/1_14_904130046.dbf
14
YES
/opt/oracle/flashrecoveryarea/115904130046.dbf
15
YES
/opt/oracle/flash_recovery_area/1_16_904130046.dbf
16
YES
/opt/oracle/flash_recovery_area/1_17_904130046.dbf
17
YES
/opt/oracle/flashrecoveryarea/118904130046.dbf
18
YES
/opt/oracle/flash_recovery_area/1_19_904130046.dbf
19
YES
/opt/oracle/flashrecoveryarea/120904130046.dbf
20
YES
/opt/oracle/flashrecoveryarea/121904130046.dbf
21
YES
/opt/oracle/flash_recovery_area/1_22_904130046.dbf
22
YES
/opt/oracle/flashrecoveryarea/123904130046.dbf
23
YES
/opt/oracle/flash_recovery_area/1_24_904130046.dbf
24
IN-MEMORY
如果有发现日志不连续,则需要对照主库的归档日志序列,判断是否有丢失的日志,如
果有则需要手动注册日志并应用归档。
(方法:
从主库的归档目录拷贝相应的归档
文件至U备库上注册alterdatabaseregisterphysicallogfile'/opt/oracle/flash_re
covery_area/归档文件名’;
然后手动应用日志alterdatabaserecoverautomaticstandbydatabase;
在测试过程中发现oracle10G下把丢失的归档日志文件考入指定目录会自动注册,不需手动
注册。
)
d.查询主备库的进程信息
SQL>selectprocess,statusfromv$managed_standby;
--查询主备库上的进程信息
主库:
SQL>selectprocess,statusfromv$managedstandby;
PROCESSSTATUS
ARCH
CLOSING
ARCH
CLOSING
ARCH
CLOSING
ARCH
CLOSING
LNSWRITING
备库:
SQL>selectprocess,statusfromv$managedstandby;
PROCESSSTATUS
ARCHCONNECTED
ARCHCONNECTED
ARCHCLOSING
ARCHCONNECTED
RFS
IDLE
RFS
IDLE
MRP0APPLYING_LOG
注意以上2个红色部分
f.查看dataguard的状态信息
SQL>selectmessage_num‘messagefromv$dataguard_status;
g.检查备库是否有日志缺失
SQL>select*fromv$archive_gap;
6.主备库的切换
switchover(计划中的切换,不会丢失数据)
failover(当主库出现故障的时候需要主备库切换角色)
a.switchover的切换
主库端:
selectswitchover_statusfromv$database;
如果是tostandby表可以正常切换.
直接执行alterdatabasecommittoswitchovertophysicalstandby;
否则执行:
alterdatabasecommittoswitchovertophysicalstandbywithsessionshutdown;
shutdownimmediate;
startupnomount;
alterdatabasemountstandbydatabase;
alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;
备库端:
selectswitchover_statusfromv$database;如果是to_primary表可以正常切换.
执行:
alterdatabasecommittoswitchovertoprimary;
否则执行:
alterdatabasecommittoswitchovertoprimarywithsessionshutdown;shutdownimmediate;
startup;
b.failover的切换
(1)判断主数据库确实出现严重的硬件故障或其他原因导致主数据库无法启动。
⑵在物理备用数据库上检查是否有archiveredologgaps
SQL>SELECTTHREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE#FROMV$ARCHIVE_GAP;
(3)消除archiveredologgaps
从主数据库上或其他备份的地方把没有传到物理备用数据库的
archiveredolog传至U物理
备用数据库上,并注册到物理备用数据库的controlfile中。
SQL>ALTERDATABASEREGISTERPHYSICALLOGFILE'archiveredolog文件名称’;重复2,3步骤直到V$ARCHIVE_GA视图无记录存在。
(4)在物理备用数据库上发起failover操作
SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEFINISHFORCE;
(5)把物理备用数据库转化成主用角色
SQL>ALTERDATABASECOMMITTOSWITCHOVERTOPRIMARY;
(6)把新的主用数据库重新启动
SQL>SHUTDOWNIMMEDIATE;
SQL>STARTUP;
(7)对新的主用数据库做全备份.
7.归档日志的处理
a.物理备库中已经应用的归档日志需定期删除.
rman>DELETEARCHIVELOGALLCOMPLETEDBEFORE'SYSDATE-7';
删除7天前的归档日志文件。
删除之后最好做一个全备份。
b.先手动删除归档日志文件,然后再RMAM执行下面2条命令以更新控制文件
crosscheckarchivelogall;
deleteexpiredarchivelogall;
c.取消对备库传送日志
ALTERSYSTEMSETlog_archive_dest_state_2='DEFER;
8.常见故障:
a.备库重启后,在主库上归档出现ORA-03113错误
SQL>selectdest_name,status,errorfromv$archive_dest;
DEST_NAME
STATU
S
ERROR
LOGARCHIVEDEST1
VALID
LOGARCHIVEDEST2
ERROR
ORA-03113:
end-of-fileoncomm
unicationchannel
解决办法:
在主库执行
SQL>altersystemsetlog_archive_dest_state_2=enable;这个命令式手动触发主库区尝试连接备库。
其实这种情况下,只要保证主备库之间的网络和配置是正确的。
dataguard
会自动恢复这个
错误。
这个周期默认是300秒,也可以在log_archive_dest_2
的参数中添加
reopen参数指
定这个主备库之间失败后继续尝试的周期。
b.ORA-01031:
insufficientprivileges
错误
SQL>selectdest_name,status,errorfromv$archive_dest;
DESTNAME
STATU
SERROR
LOG_ARCHIVE_DEST_1VALID
ORA-01031:
insuffici
sys密码设置成一样。
LOG_ARCHIVE_DEST_2ERROR
entPrivileges
解决办法:
统一主备库的数据库密码文件,或者重建密码文件,然后在主库执行
SQL>altersystemsetlog_archive_dest_state_2=enable;
Primarylogshippingclientnotloggedonstandby
解决办法:
统一主备库的数据库密码文件,或者重建密码文件,sys密码设置成一样。
然后在主库执行
SQL>altersystemsetlog_archive_dest_state_2=enable;
发现从主库传来的日志无法应用|
在备库检查,
SQL>selectsequence#,appliedfromv$archivedlog;
[oracle@HJITBACKUPbdump]$ps-ef|grepmrp
oracle318961014:
37?
00:
00:
00oramrp0flow
oracle3200131820015:
17pts/100:
00:
00grepmrp
SQL>select*fromv$archivegap;
norowsselected
查询视图没有发现,
看来有,接着查gap,发现备库上有此进程,
在接着检查V$MANAGED_STANDBY
SQL>selectprocess,statusfromv$managed_standby;
PROCESSSTATUS
发现MRP(在等待GAP进一步查看此视图
BLOCKS
ARCH
CONNECTED
N/A
0
0
0
0
ARCH
CONNECTED
N/A
0
0
0
0
MRP0
WAIT_FOR_
GAPN/A
1
92
8
0
0
RFS
IDLE
N/A
0
0
0
0
RFS
IDLE
N/A
0
0
0
0
发现日志
928没有应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle11gr2dataguard 日常 维护 故障 处理