oracle实验记录 (oracle 10G dataguard(9)rman恢复与dg)

rman 恢复与 standby

先将primary xh 注册一个catalog  orcl
C:\>set oracle_sid=orcl

C:\>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 11月 12 09:17:59 2009

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

已连接到空闲例程。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  289406976 bytes
Fixed Size                  1248576 bytes
Variable Size             100664000 bytes
Database Buffers          180355072 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
数据库已经打开。
SQL> select name from v$database;

NAME
---------
ORCL


SQL> create user rman identified by rman default tablespace users;

用户已创建。

SQL> grant connect,resource to rman;

授权成功。

SQL> grant recovery_catalog_owner to rman;

授权成功。

SQL>


C:\>set oracle_sid=XH

C:\>rman target '/ as sysdba' catalog rman/rman@orcl

恢复管理器: Release 10.2.0.1.0 - Production on 星期四 11月 12 09:24:18 2009

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

连接到目标数据库: XH (DBID=3098165337)
连接到恢复目录数据库

RMAN> register database
2> ;

注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync

RMAN> list backup of database;


备份集列表
===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
63      Full    594.45M    DISK        00:01:53     11-11月-09
        BP 关键字: 67   状态: AVAILABLE  已压缩: NO  标记: TAG20091111T170844
段名:G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_11_11\O1_MF_
NNNDF_TAG20091111T170844_5HNZRXQX_.BKP
  备份集 63 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 580059     11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSTEM0
1.DBF
  2       Full 580059     11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\UNDOTBS
01.DBF
  3       Full 580059     11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSAUX0
1.DBF
  4       Full 580059     11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\USERS01
.DBF
  5       Full 580059     11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\EXAMPLE
01.DBF

 

primary 设置实时应用
SQL> alter system set log_archive_dest_2='service=standby1 lgwr valid_for=(onlin   (primary)
e_logfiles,primary_role) db_unique_name=standby1';

系统已更改。

 

SQL> alter database add standby logfile group 4 'e:\standby\standby04.log' size   (standby)
50m;

数据库已更改。


SQL>  select process,client_process,status,sequence# from v$managed_standby; (standby)

PROCESS   CLIENT_P STATUS        SEQUENCE#
--------- -------- ------------ ----------
ARCH      ARCH     CONNECTED             0
ARCH      ARCH     CONNECTED             0
RFS       LGWR     IDLE                 12
RFS       ARCH     IDLE                  0
RFS       N/A      IDLE                  0

SQL> select dbid,group#,bytes,status ,first_change#,last_change# from v$standby_   (standby)
log;

DBID           GROUP#      BYTES STATUS     FIRST_CHANGE# LAST_CHANGE#
---------- ---------- ---------- ---------- ------------- ------------
3098165337          4   52428800 ACTIVE            698275       698436


SQL> create table t1  (a int) tablespace xhtr;  (primary)

表已创建。

SQL> insert into t1 values(1);  (primary)

已创建 1 行。

SQL> commit;   (primary)

提交完成。

SQL>
SQL> col file_name format a50
SQL> select file_id ,file_name from dba_data_files; (primary)

   FILE_ID FILE_NAME
---------- --------------------------------------------------
         4 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\USERS01.DBF
         3 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSAUX01.DBF
         2 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\UNDOTBS01.DBF
         1 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSTEM01.DBF
         5 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\EXAMPLE01.DBF
         6 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF

已选择6行。

SQL> alter database recover managed standby database using current logfile disco  (standby)
nnect from session;

数据库已更改。


SQL> alter database recover managed standby database cancel; (standby)

数据库已更改。

SQL> alter database open   (standby)
  2  ;

数据库已更改。

SQL> select * from t1;(standby)

         A
----------
         1


RMAN> delete noprompt backup          ~~~删除下备份
2> ;

 

实验利用standby备份 完全恢复primary

C:\>set oracle_sid=standby1

C:\>rman target '/ as sysdba' catalog rman/rman@orcl   (连接catalog ,standby 使用standby的数据文件备份)

恢复管理器: Release 10.2.0.1.0 - Production on 星期四 11月 12 10:11:47 2009

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

连接到目标数据库: XH (DBID=3098165337)
连接到恢复目录数据库

RMAN> backup  datafile 6;

启动 backup 于 12-11月-09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=147 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00006 name=E:\STANDBY\DATAFILE\XHTR.DBF *****************
通道 ORA_DISK_1: 正在启动段 1 于 12-11月-09
通道 ORA_DISK_1: 已完成段 1 于 12-11月-09
段句柄=E:\STANDBY\ARCHIVE\STANDBY1\BACKUPSET\2009_11_12\O1_MF_NNNDF_TAG20091112T
101239_5HPVRQMK_.BKP 标记=TAG20091112T101239 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 12-11月-09

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF;

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  289406976 bytes
Fixed Size                  1248576 bytes
Variable Size             113246912 bytes
Database Buffers          167772160 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF'


SQL> alter database datafile 6 offline;(primary)

数据库已更改。

 


C:\>set oracle_sid=XH

C:\>rman target '/ as sysdba' catalog rman/rman@orcl

恢复管理器: Release 10.2.0.1.0 - Production on 星期四 11月 12 10:25:03 20

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

已连接到目标数据库: XH (DBID=3098165337, 未打开)
连接到恢复目录数据库
RMAN> run{restore datafile 6;
2> recover datafile 6;
3> }

启动 restore 于 12-11月-09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=139 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00006恢复到G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF
通道 ORA_DISK_1: 正在读取备份段 E:\STANDBY\ARCHIVE\STANDBY1\BACKUPSET\2009_11_12
\O1_MF_NNNDF_TAG20091112T101239_5HPVRQMK_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:\STANDBY\ARCHIVE\STANDBY1\BACKUPSET\2009_11_12\O1_MF_NNNDF_TAG2009111
2T101239_5HPVRQMK_.BKP 标记 = TAG20091112T101239
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:04
完成 restore 于 12-11月-09

启动 recover 于 12-11月-09
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:00

完成 recover 于 12-11月-09

RMAN>


SQL> alter database datafile 6 online; (primary)

数据库已更改。

SQL> select * from t1; (primary)

         A
----------
         1


standby controlfile丢失 恢复

SQL> show parameter control (standby)

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7
control_files                        string      E:\STANDBY\DATAFILE\CONTROL01.
                                                 CTL
SQL> shutdown immediate; (standby)
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del  E:\STANDBY\DATAFILE\CONTROL01.CTL   (standby)

SQL> startup   (standby)
ORACLE 例程已经启动。

Total System Global Area  289406976 bytes
Fixed Size                  1248576 bytes
Variable Size              96469696 bytes
Database Buffers          184549376 bytes
Redo Buffers                7139328 bytes
ORA-00205: ?????????, ??????, ???????

 


SQL> alter database create standby controlfile as 'e:\standby\datafile\control01  (primry)
.ctl';

数据库已更改。


SQL> alter system switch logfile;(primary)

系统已更改。

primary要 切换一起,否则 standby open时报 ORA-16004:

SQL> alter database recover managed standby database disconnect from session;  (standby)

数据库已更改。

SQL> alter database recover managed standby database cancel;(standby)

数据库已更改。

SQL> alter database open;(standby)

数据库已更改。


standby datafile 丢失

SQL> shutdown immediate; (standby)
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del e:\standby\datafile\xhtr.dbf  (standby)

SQL> startup  (standby)
ORACLE 例程已经启动。

Total System Global Area  289406976 bytes
Fixed Size                  1248576 bytes
Variable Size              96469696 bytes
Database Buffers          184549376 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
ORA-16004: 备份数据库需要恢复
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\STANDBY\DATAFILE\XHTR.DBF'

 


C:\>rman target system/a831115@standby1 catalog rman/rman@orcl


RMAN> run{set  newname for datafile 6 to 'e:\standby\datafile\xhtr.dbf';
2> restore datafile 6;
3> }

 

SQL> alter database recover managed standby database disconnect from session; (standby)

数据库已更改。


SQL> alter database recover managed standby database cancel;(standby)

数据库已更改。

SQL> alter database open;(standby)

数据库已更改。

SQL> select * from t1;(standby)

         A
----------
         1


SQL> insert into t1 values(2);(primary)

已创建 1 行。

SQL> commit;(primary)

提交完成。

SQL> alter database recover managed standby database using current logfile disco  (standby)
nnect from session;

数据库已更改。

SQL> alter database recover managed standby database cancel;  (standby)

数据库已更改。

SQL> alter database open ;  (standby)

数据库已更改。

 

SQL> select * from t1;  (standby)

         A
----------
         1
         2

SQL>
SQL> select count(*) from v$archived_log; (standby)

  COUNT(*)
----------
         4
SQL> select applied from v$archived_log;(standby)

APP
---
YES
YES
YES
YES
SQL> insert into t1 values(3);(primary)

已创建 1 行。

SQL> commit;(primary)

提交完成。
SQL> alter database recover managed standby database using current logfile disco  (standby)
nnect from session;

数据库已更改。

SQL> alter database recover managed standby database cancel; (standby)

SQL> shutdown immediate; (standby)
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del e:\standby\datafile\xhtr.dbf; (standby)

SQL> startup  (standby)
ORACLE 例程已经启动。

Total System Global Area  289406976 bytes
Fixed Size                  1248576 bytes
Variable Size              96469696 bytes
Database Buffers          184549376 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
ORA-16004: 备份数据库需要恢复
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\STANDBY\DATAFILE\XHTR.DBF'

SQL> alter database recover managed standby database using current logfile disco   (standby)
nnect from session;

数据库已更改。

SQL> alter database recover managed standby database cancel;  (standby)

数据库已更改。

SQL> alter database open;  (standby)
alter database open
*
第 1 行出现错误:
ORA-16004: 备份数据库需要恢复
ORA-01152: 文件 6 没有从过旧的备份中恢复
ORA-01110: 数据文件 6: 'E:\STANDBY\DATAFILE\XHTR.DBF'


SQL> alter database recover managed standby database disconnect from session; (standby)

数据库已更改。

SQL> alter database recover managed standby database cancel; (standby)

数据库已更改。

SQL> alter database open; (standby)
alter database open
*
第 1 行出现错误:
ORA-16004: 备份数据库需要恢复
ORA-01152: 文件 6 没有从过旧的备份中恢复
ORA-01110: 数据文件 6: 'E:\STANDBY\DATAFILE\XHTR.DBF'

RMAN> run{set  newname for datafile 6 to 'e:\standby\datafile\xhtr.dbf';  
2> restore datafile 6;
3> recover datafile 6;
4> }
RMAN-03002: recover 命令 (在 11/12/2009 13:56:52 上) 失败
RMAN-06067: RECOVER DATABASE 要求一个备份控制文件或创建的控制文件
SQL> alter system switch logfile;

系统已更改。

SQL> select count(*) from v$archived_log;(primary)

  COUNT(*)
----------
         5

SQL> alter database recover managed standby database using current logfile disco (standby)
nnect from session;

数据库已更改。

SQL> alter database recover managed standby database cancel;(standby)

数据库已更改。

SQL> alter database open ;(standby)

数据库已更改。

SQL> select * from t1;(standby)

         A
----------
         1
         2
         3

总结:如果恢复standby丢失的datafile,需要使用归档到standby_file_dest的 archived log,如果向上面 一样 使用实时应用 并没有 归档到standby 的standby file dest,那么恢复restore 到standby的datafile没有可以应用的archived log,无法恢复完成,此时需要primary 执行一个归档~~让standby 产生一个归档,并应用既可.

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12020513/viewspace-619719/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12020513/viewspace-619719/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值