暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

rman增量恢复dataguard一例

小飞旅馆 2019-05-07
360

GAP - thread 1 sequence 184-185

DBID 1484954774 branch 960494131

FAL[client]: All defined FAL servers have been attempted.

------------------------------------------------------------

Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization

parameter is defined to a value that's sufficiently large

enough to maintain adequate log switch information to resolve

archivelog gaps.


查询缺失的归档日志:

SQL> select * from v$archive_gap;

THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#

---------- ------------- --------------

  1              183           185

去主库查看归档,发现归档已丢失


下面开始使用RMAN进行基于SCN增量备份恢复的方式进行恢复,参考文档 ID 836986.1


1.取消备库日志应用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel;


2.在备库上确定需要开始增量备份的SCN

SQL> SELECT CURRENT_SCN FROM V$DATABASE;

CURRENT_SCN

-----------

    8031228


SQL>  select min(checkpoint_change#) from v$datafile_header 

  2   where file# not in (select file# from v$datafile where enabled = 'READ ONLY');


MIN(CHECKPOINT_CHANGE#)

-----------------------


(如果结果为空,重启备库到mount状态)

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount pfile='/home/oracle/orcldg.pfile';

ORACLE 例程已经启动。


Total System Global Area 2248143960 bytes

Fixed Size                  8660056 bytes

Variable Size             620756992 bytes

Database Buffers         1610612736 bytes

Redo Buffers                8114176 bytes

数据库装载完毕。

SQL> select min(checkpoint_change#) from v$datafile_header 

  2  where file# not in (select file# from v$datafile where enabled = 'READ ONLY');


MIN(CHECKPOINT_CHANGE#)

-----------------------

                8031229

选择以上结果中最小SCN作为增量备份的起点(此处是8031229)


3.在主库上进行基于SCN的增量备份

RMAN> BACKUP INCREMENTAL FROM SCN 8031229 DATABASE FORMAT '/backup/ForStandby_%U' tag 'FORSTANDBY';


从位于 08-5月 -2019 03:24:55 的 backup 开始

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=411 实例 = orcl1 设备类型 = DISK

通道 ORA_DISK_1: 正在启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集内的数据文件

输入数据文件, 文件号 = 00002 名称 = +DATADG/ORCL/sysaux01.dbf

输入数据文件, 文件号 = 00001 名称 = +DATADG/ORCL/system01.dbf

输入数据文件, 文件号 = 00003 名称 = +DATADG/ORCL/undotbs01.dbf

输入数据文件, 文件号 = 00004 名称 = +DATADG/ORCL/undotbs02.dbf

输入数据文件, 文件号 = 00005 名称 = +DATADG/ORCL/users01.dbf

通道 ORA_DISK_1: 正于 08-5月 -2019 03:24:58 启动段 1

通道 ORA_DISK_1: 完成了于 08-5月 -2019 03:25:13 启动段 1

片段句柄 = /backup/ForStandby_0vu10dka_1_1 标记 = FORSTANDBY 注释 = NONE

通道 ORA_DISK_1: 备份集完成, 用时: 00:00:15

通道 ORA_DISK_1: 正在启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集内的数据文件

备份集内包括当前控制文件

通道 ORA_DISK_1: 正于 08-5月 -2019 03:25:14 启动段 1

通道 ORA_DISK_1: 完成了于 08-5月 -2019 03:25:15 启动段 1

片段句柄 = /backup/ForStandby_10u10dkp_1_1 标记 = FORSTANDBY 注释 = NONE

通道 ORA_DISK_1: 备份集完成, 用时: 00:00:01

在 08-5月 -2019 03:25:15 完成了 backup


4. 把/backup/目录下面的备份文件拷备到备机


5.将拷贝过来的备份注册到备库的控制文件中

[oracle@db5 ~]$ rman target /


恢复管理器: Release 18.0.0.0.0 - Production on 星期三 5月 8 03:25:54 2019

Version 18.3.0.0.0


Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.


已连接到目标数据库: ORCL (DBID=1530636559, 未打开)


RMAN> catalog start with '/backup/';


使用目标数据库控制文件替代恢复目录

搜索与样式 /backup/ 匹配的所有文件


数据库未知文件的列表

=====================================

文件名: /backup/ForStandby_0vu10dka_1_1

文件名: /backup/ForStandby_10u10dkp_1_1


是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes

正在编制文件目录...

目录编制完毕


已列入目录的文件的列表

=======================

文件名: /backup/ForStandby_0vu10dka_1_1

文件名: /backup/ForStandby_10u10dkp_1_1


6.使用增量备份恢复备库

RMAN> RECOVER DATABASE NOREDO;


从位于 08-5月 -2019 03:26:23 的 recover 开始

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=50 设备类型=DISK

通道 ORA_DISK_1: 正在开始还原增量数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集还原的数据文件

数据文件 00001 的还原目标: /u01/orcl/system01.dbf

数据文件 00002 的还原目标: /u01/orcl/sysaux01.dbf

数据文件 00003 的还原目标: /u01/orcl/undotbs01.dbf

数据文件 00004 的还原目标: /u01/orcl/undotbs02.dbf

数据文件 00005 的还原目标: /u01/orcl/users01.dbf

通道 ORA_DISK_1: 正在读取备份片段 /backup/ForStandby_0vu10dka_1_1

通道 ORA_DISK_1: 片段句柄 = /backup/ForStandby_0vu10dka_1_1 标记 = FORSTANDBY

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:00:15


在 08-5月 -2019 03:26:40 完成了 recover


RMAN> exit


7.在主库为备库重新备份控制文件,并scp到备库

[oracle@db1 backup]$ rman target /


恢复管理器: Release 18.0.0.0.0 - Production on 星期三 5月 8 03:27:03 2019

Version 18.3.0.0.0


Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.


已连接到目标数据库: ORCL (DBID=1530636559)


RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/backup/ForStandbyCTRL.bck';


从位于 08-5月 -2019 03:27:06 的 backup 开始

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=142 实例 = orcl1 设备类型 = DISK

通道 ORA_DISK_1: 正在启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集内的数据文件

备份集内包括备用控制文件

通道 ORA_DISK_1: 正于 08-5月 -2019 03:27:09 启动段 1

通道 ORA_DISK_1: 完成了于 08-5月 -2019 03:27:10 启动段 1

片段句柄 = /backup/ForStandbyCTRL.bck 标记 = TAG20190508T032708 注释 = NONE

通道 ORA_DISK_1: 备份集完成, 用时: 00:00:01

在 08-5月 -2019 03:27:10 完成了 backup


从位于 08-5月 -2019 03:27:10 的 Control File and SPFILE Autobackup 开始

片段句柄 = /u01/oracle/product/12.2.0/db/dbs/c-1530636559-20190508-01 注


8.备库还原控制文件:

oracle@db5 ~]$ sqlplus '/as sysdba'


SQL*Plus: Release 18.0.0.0.0 - Production on 星期三 5月 8 03:27:57 2019

Version 18.3.0.0.0


Copyright (c) 1982, 2018, Oracle.  All rights reserved.



连接到: 

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production

Version 18.3.0.0.0


SQL> shutdown immediate;

ORA-01109: 数据库未打开



已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup nomount pfile='/home/oracle/orcldg.pfile';

ORACLE 例程已经启动。


Total System Global Area 2248143960 bytes

Fixed Size                  8660056 bytes

Variable Size             620756992 bytes

Database Buffers         1610612736 bytes

Redo Buffers                8114176 bytes

SQL> exit

[oracle@db5 backup]$ rman target /


恢复管理器: Release 18.0.0.0.0 - Production on 星期三 5月 8 03:29:08 2019

Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: ORCL (未装载)

RMAN> RESTORE STANDBY CONTROLFILE FROM '/backup/ForStandbyCTRL.bck';

从位于 08-5月 -2019 03:29:48 的 restore 开始

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=39 设备类型=DISK


通道 ORA_DISK_1: 正在还原控制文件

通道 ORA_DISK_1: 还原完成, 用时: 00:00:01

输出文件名=/u01/orcl/control01.ctl

输出文件名=/u01/orcl/control02.ctl

在 08-5月 -2019 03:29:51 完成了 restore


9.重启备库到mount 

[oracle@db5 ~]$ sqlplus '/as sysdba'

SQL*Plus: Release 18.0.0.0.0 - Production on 星期三 5月 8 03:30:00 2019

Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

连接到: 

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production

Version 18.3.0.0.0

SQL> shutdown immediate;

ORA-01507: 未装载数据库


ORACLE 例程已经关闭。

SQL> startup nomount pfile='/home/oracle/orcldg.pfile';

ORACLE 例程已经启动。


10. 备机恢复

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY PARALLEL 2 USING CURRENT LOGFILE DISCONNECT FROM SESSION;


SQL> shutdown immediate;

ORA-01507: 未装载数据库

SQL> startup pfile='/home/oracle/orcldg.pfile';

ORACLE 例程已经启动。


Total System Global Area 2248143960 bytes

Fixed Size                  8660056 bytes

Variable Size             620756992 bytes

Database Buffers         1610612736 bytes

Redo Buffers                8114176 bytes

数据库装载完毕。

数据库已经打开。

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY PARALLEL 2 USING CURRENT LOGFILE DISCONNECT FROM SESSION;

数据库已更改。


11. 添加standby redolog

因为重新恢复了控制文件,所以standby redolog可能失效,需要重新添加standby redo log

alter database add standby logfile group 11 '/u01/orcl/stbredo11.log' size 200M;

alter database add standby logfile group 12 '/u01/orcl/stbredo12.log' size 200M;

alter database add standby logfile group 13 '/u01/orcl/stbredo13.log' size 200M;

alter database add standby logfile group 14 '/u01/orcl/stbredo14.log' size 200M;

alter database add standby logfile group 15 '/u01/orcl/stbredo15.log' size 200M;

alter database add standby logfile group 16 '/u01/orcl/stbredo16.log' size 200M;


12. 如果数据库是用OMF方式管理数据文件的,则需要在备库的控制文件中重新注册下数据文件,示例如下:

备注:

当使用omf方式管理表空间,需要配置初始化参数db_create_dest.当建立omf表空间会自动建立数据文件,当删除omf表空间时会自动删除omf文件。

当使用omf方式管理数据文件时,如果不指定数据文件尺寸,则其默认为100m.

SQL> show parameter db_create_file_dest;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_create_file_dest                  string

SQL> 

(如果数据文件存放在文件系统,没有使用OMF,则跳过此步骤) 参考示例

RMAN> CATALOG START WITH '+DATA/rzorcl/datafile/';


List of Files Unknown to the Database 

===================================== 

File Name: +data/rzorcl/DATAFILE/SYSTEM.309.685535773 

File Name: +data/rzorcl/DATAFILE/SYSAUX.301.685535773 

File Name: +data/rzorcl/DATAFILE/UNDOTBS1.302.685535775 

File Name: +data/rzorcl/DATAFILE/SYSTEM.297.688213333 

File Name: +data/rzorcl/DATAFILE/SYSAUX.267.688213333 

File Name: +data/rzorcl/DATAFILE/UNDOTBS1.268.688213335


Do you really want to catalog the above files (enter YES or NO)? YES 

cataloging files... 

cataloging done

List of Cataloged Files 

======================= 

File Name: +data/rzorcl/DATAFILE/SYSTEM.297.688213333 

File Name: +data/rzorcl/DATAFILE/SYSAUX.267.688213333 

File Name: +data/rzorcl/DATAFILE/UNDOTBS1.268.688213335

确保主库在这个SCN之后没有添加新的数据文件,如果有则需要单独进行备份和还原,参考文档文档 ID 836986.1

SQL> select file#,name from v$datafile where creation_change# > 3505254;

no rows selected


RMAN> SWITCH DATABASE TO COPY;

datafile 1 switched to datafile copy "+DATA/rzorcl/datafile/system.297.688213333" 

datafile 2 switched to datafile copy "+DATA/rzorcl/datafile/undotbs1.268.688213335" 

datafile 3 switched to datafile copy "+DATA/rzorcl/datafile/sysaux.267.688213333"


想我的小悠悠。。。

文章转载自小飞旅馆,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论