【Dataguard】DataGuard运维注意事项
DataGuard 主要目的 或者作用
1、主备唯一名不能相同
1
2
3
|
db_name,db_unique_name,instance_name,service_name,区别和关系 /u02/app/oracle/diag/rdbms/mydb/mydb/trace +DATA/mydb/datafile/users |
注意/ 影响:
正常来说报错,或者无法同步, 山大二院案例 windows 单机 dg,搭建完成,启动recover不报错,但无法实时同步。
2、OMF 对dg的影响
1
2
|
db_create_file_dest db_file_name_convert/log_file_name_convert |
影响: 主备切换,增量恢复
使用omf后,备端生成的名字类似如下:
+DATA/mydb/datafile/t2019.259.1018457031
+DATA/mydb/datafile/mytest.270.1025380271
当使用增量恢复时,我们需要恢复控制文件,怎么确定数据文件位置?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
--备端旧控制文件数据文件位置 set lines 2000 set pages 999 col name for a70 select 'alter database rename file ' ||f.file#|| ' to ' '' ||f. name || '' ';' from v$datafile f order by f.file#; --or select f.file#,f. name from v$datafile f order by f.file#; --备端旧控制文件临时数据文件位置 set lines 2000 set pages 999 col name for a70 select 'alter database rename file ' ||f.file#|| ' to ' '' ||f. name || '' ';' from v$tempfile f order by f.file#; --or select f.file#,f. name from v$tempfile f order by f.file#; --备端新控制文件数据文件位置 set lines 2000 set pages 999 col name for a70 select 'alter database rename file ' '' ||f. name || '' ' to ' '' ||f.file#|| '' ';' from v$datafile f order by f.file#; --备端新控制文件临时数据文件位置 set lines 2000 set pages 999 col name for a70 select 'alter database rename file ' '' ||f. name || '' ' to ' '' ||f.file#|| '' ';' from v$tempfile f order by f.file#; |
注意事项:
1、尽量备份备端原有控制文件,以备后查
2、将数据文件、日志文件、临时文件等做好查询记录,更好用于恢复(建议恢复控制文件后对比)
如果没备份,恢复时突然发现不对怎么办? 例如,system表空间就一个数据文件,备端却3个……
3、主备端数据文件不一致
问题:客户在主库添加数据文件后,造成dg中断
Warning: Datafile 88 (+DATA/plt136/datafile/bappr02.dbf) is offline during full database recovery
and will not be recovered
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Media Recovery Log +FLA/plt136/archivelog/2019_12_30/thread_2_seq_168948.6376.1028413411
Media Recovery Log +FLA/plt136/archivelog/2019_12_30/thread_1_seq_324738.9642.1028413409
Errors in file /u01/app/oracle/diag/rdbms/plt136/plt1361/trace/plt1361_pr00_11732.trc (incident=08516):
ORA-00600: internal error code, arguments: [3689], [88], [], [], [], [], [], [], [], [], [], Incident details in: /u01/app/oracle/diag/rdbms/plt136/plt1361/incident/incdir_208516/plt1361__11732_i208516.trc
Completed: alter database recover managed standby database using current logfile disconnect ession
主备端都查,发现两个问题, 主备端88号数据文件创建时间不同,表空间也不一样
--检查文件信息
1
2
|
select d.file#,t. name ,d. name ,d.creation_time from v$datafile d,v$tablespace t where d.ts#=t.ts# and d.file#=88; |
问题比较明朗:客户在主库增加数据文件时,数据文件编号为88号,但备端早已经有了88号数据文件,造成dg中断,报错。
Thu Oct 03 22:39:24 2019
alter tablespace bappr drop datafile 88
Deleted file /u02/app/oracle/product/11.2.0/db_home/dbs/gcltsysdata01_3.ora
Completed: alter tablespace bappr drop datafile 88
怎么处理……
1)、检查88号文件是怎么来的,主备端都检查, 主库因建错表空间位置,drop 表空间了,备库没有drop,是alter database create datafile 88 as ‘’;
2)、必须删除备端88文件,与主库保持一致,现在88文件已有数据,删除会丢失,怎么恢复
处理过程:
1、删除备端88号文件 --要知道,删除的88号文件,其实就是所属表空间(例如 B表空间)数据丢失
2、主端备份 B表空间数据,还有控制文件,恢复至dg备端(88号文件在备端已经没有了)
3、主端需要备份88号数据文件等后续产生的数据文件,恢复至备端
4、备端开启recover进程
为什么还有恢复控制文件?
因主备数据文件所属表空间不一致,控制文件记录的信息不一样,需要根主端一直
注意事项:
1、不管是删除还是增加数据文件,保持一致
2、处理前后检查、做好记录
4、standby log日志
建议主备都建好,为了方便,在做备份恢复前,主库建好。
注意事项: 主端未建,如有问题切换时,会多一个步骤,影响业务恢复时间
5、备端归档目录满
归档日志传输中断,如果不能清理归档日志怎么办?
- 更换目录或者文件夹
- 暂时停止归档日志传输,也需要预估好主端能存放多久归档
- 如备端性能差,追太慢呢? 建议增量恢复
- 需要注意,造成归档日志满,备端归档目录最后一个或几个日志,可能已损坏,注意观察
6、主备硬件尽量性能相同
主要面对业务突然增加,如果备端性能较差,应用速度受限,造成数据同步延迟
7、如何分析DG备端性能
AWR 能否使用? ash呢? --awr是同步主端数据,ash是当前数据
执行计划呢,如何跟主库对比 --因为备端是只读环境,可以通过跟踪,10046等方式查询