循序渐进oracle第7章:备份与恢复之RMAN镜像拷贝不完全恢复

/* 2008/06/06
*环境:Windows XP +Oracle10.2.0.1
*循序渐进oracle——数据库管理、优化与备份恢复
*循序渐进oracle第7章:备份与恢复之RMAN镜像拷贝不完全恢复
*/
7 RMAN的备份与恢复

Oracle10g开始,允许使用单条命令"backup as copy"进行数据库拷贝
RMAN> run{
2> backup as copy tag "20080605_copy" database;
3> }


一、使用rman的不完全恢复
1、插入数据
SQL> select * from scott.dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        50 support        denver
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     beijing

SQL> select * from test;

        ID TIME
---------- -------------------
         5 2008-06-06 08:00:34
         6 2008-06-06 08:13:42


SQL> drop table scott.dept;

表已删除。

SQL> insert into test values(7,sysdate);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from test;

        ID TIME
---------- -------------------
         5 2008-06-06 08:00:34
         6 2008-06-06 08:13:42
         7 2008-06-06 08:16:56

需要恢复到删除表之前的时间2008-06-06 08:13:42

2 恢复
RMAN> shutdown immediate;

数据库已关闭
数据库已卸载
Oracle 实例已关闭

RMAN> startup mount

已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载

系统全局区域总计     272629760 字节

Fixed Size                     1248476 字节
Variable Size                113247012 字节
Database Buffers             150994944 字节
Redo Buffers                   7139328 字节

RMAN> recover database until time '2008-06-06 08:13:42';

启动 recover 于 06-6月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 06/6/2008 22:49:54
ORA-01861: literal does not match format string

这个错误是由于时间日期格式设置的问题。

设置正确的时间格式,进行基于时间点的不完全恢复:

/************************来自网上的资料:start
Oracle的日期格式默认设置是DD-MON-YY,很多时候我们需要修改这种格式以满足我们的需求。
     可以通过设置NLS_DATE_FORMAT来改变日期格式,为了让这种改变永久生效,介绍下面的几种方法:
     1、修改glogin.sql文件,这个文件的路径:
     Windows下,%ORACLE_HOME%\sqlplus\admin
     UNIX下,$ORACLE_HOME/sqlplus/admin
     在文件中加上:alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
     2、修改注册表(Windows平台下)
     开始 =》运行=》regedit=》HKEY_LOCAL_MACHINE=》SOFTWARE=》ORACLE=》HOME0 =》新建 字

符串值NLS_DATE_FORMAT ,并设置其值为:YYYY-MM-DD:HH24:MI:SS
     3、修改用户环境变量配置文件(UNIX平台下),加上
     export NLS_LANG=AMERICAN
     export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
     有时候只设置了NLS_DATE_FORMAT,而不设置NLS_LANG可能日期格式不会改变(参考RollingPig的文章

),这个可能跟平台及Shell类型有关系。

    rman会话中设置nls_date_format和nls_lang

run {

......

sql 'alter session set NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"';

sql 'alter session set NLS_LANGUAGE="AMERICAN"';

......

}

/************************来自网上的资料:end


C:\>rman target/

恢复管理器: Release 10.2.0.1.0 - Production on 星期五 6月 6 08:53:05 2008

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

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

RMAN> restore database;

启动 restore 于 06-6月 -08
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在恢复数据文件00001
输入数据文件副本 recid=27 stamp=656667195 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSTEM_44JXWG2G_.DBF
数据文件 00001 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF

通道 ORA_DISK_1: 已复制数据文件 00001 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF recid=46 stamp=
656672215
通道 ORA_DISK_1: 正在恢复数据文件00002
输入数据文件副本 recid=29 stamp=656667233 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_UNDOTBS1_44JXYYF5_.DBF
数据文件 00002 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DB
F
通道 ORA_DISK_1: 已复制数据文件 00002 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DBF recid=47 stamp
=656672218
通道 ORA_DISK_1: 正在恢复数据文件00003
输入数据文件副本 recid=28 stamp=656667224 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSAUX_44JXY57B_.DBF
数据文件 00003 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF

通道 ORA_DISK_1: 已复制数据文件 00003 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF recid=48 stamp=
656672231
通道 ORA_DISK_1: 正在恢复数据文件00004
输入数据文件副本 recid=31 stamp=656667241 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_USERS_44JXZ8TV_.DBF
数据文件 00004 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF
通道 ORA_DISK_1: 已复制数据文件 00004 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF recid=49 stamp=6
56672234
通道 ORA_DISK_1: 正在恢复数据文件00005
输入数据文件副本 recid=30 stamp=656667238 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_RISE_44JXZ5L2_.DBF
数据文件 00005 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
通道 ORA_DISK_1: 已复制数据文件 00005 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF recid=50 stamp=6566
72235
通道 ORA_DISK_1: 正在恢复数据文件00006
输入数据文件副本 recid=32 stamp=656667242 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_MZL_44JXZB0Z_.DBF
数据文件 00006 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF
通道 ORA_DISK_1: 已复制数据文件 00006 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF recid=51 stamp=65667
2236
完成 restore 于 06-6月 -08

RMAN> recover database until time '2008-06-06 08:13:42';

启动 recover 于 06-6月 -08
使用通道 ORA_DISK_1

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

完成 recover 于 06-6月 -08

RMAN> alter database open resetlogs;

数据库已打开

查看数据:
SQL> select * from scott.dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        50 support        denver
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     beijing

 


 

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

转载于:http://blog.itpub.net/12778571/viewspace-332659/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值