Oracle笔记6(Fundamentals II)

来源:互联网 发布:移动免流端口 编辑:程序博客网 时间:2024/06/05 02:51

十三、RMAN Complete Recovery


1、RMAN RECOVERY

RMAN> list backup;

RMAN> backup database format '/u01/backup/wb_%U';


启动 backup 于 15-8月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=139 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00006 name=/home/oracle/oradata/TS/mytbs.dbf
输入数据文件 fno=00001 name=/home/oracle/oradata/TS/system01.dbf
输入数据文件 fno=00003 name=/home/oracle/oradata/TS/sysaux01.dbf
输入数据文件 fno=00005 name=/home/oracle/oradata/TS/example01.dbf
输入数据文件 fno=00007 name=/home/oracle/oradata/TS/autostrace01.dbf
输入数据文件 fno=00008 name=/home/oracle/oradata/TS/app1_01.dbf
输入数据文件 fno=00002 name=/home/oracle/oradata/TS/undotbs01.dbf
输入数据文件 fno=00009 name=/home/oracle/oradata/TS/app02_01.dbf
输入数据文件 fno=00010 name=/home/oracle/oradata/TS/app3_01.dbf
输入数据文件 fno=00004 name=/home/oracle/oradata/TS/users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 15-8月 -11
通道 ORA_DISK_1: 已完成段 1 于 15-8月 -11
段句柄=/u01/backup/wb_06mk21ig_1_1 标记=TAG20110815T105612 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:02:28
完成 backup 于 15-8月 -11


启动 Control File and SPFILE Autobackup 于 15-8月 -11
段 handle=/u01/backup/ctl_c-2088014681-20110815-04 comment=NONE
完成 Control File and SPFILE Autobackup 于 15-8月 -11


RMAN> sql 'alter system archive log current';


RMAN> backup incremental level 0 database format '/u01/backup/all_%U';


启动 backup 于 15-8月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00006 name=/home/oracle/oradata/TS/mytbs.dbf
输入数据文件 fno=00001 name=/home/oracle/oradata/TS/system01.dbf
输入数据文件 fno=00003 name=/home/oracle/oradata/TS/sysaux01.dbf
输入数据文件 fno=00005 name=/home/oracle/oradata/TS/example01.dbf
输入数据文件 fno=00007 name=/home/oracle/oradata/TS/autostrace01.dbf
输入数据文件 fno=00008 name=/home/oracle/oradata/TS/app1_01.dbf
输入数据文件 fno=00002 name=/home/oracle/oradata/TS/undotbs01.dbf
输入数据文件 fno=00009 name=/home/oracle/oradata/TS/app02_01.dbf
输入数据文件 fno=00010 name=/home/oracle/oradata/TS/app3_01.dbf
输入数据文件 fno=00004 name=/home/oracle/oradata/TS/users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 15-8月 -11
通道 ORA_DISK_1: 已完成段 1 于 15-8月 -11
段句柄=/u01/backup/all_08mk21u5_1_1 标记=TAG20110815T110223 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:02:09
完成 backup 于 15-8月 -11


启动 Control File and SPFILE Autobackup 于 15-8月 -11
段 handle=/u01/backup/ctl_c-2088014681-20110815-05 comment=NONE
完成 Control File and SPFILE Autobackup 于 15-8月 -11



修改一部分的数据

做一级备份:

RMAN> backup incremental level 1 database format '/u01/backup/all_%U';


启动 backup 于 15-8月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00006 name=/home/oracle/oradata/TS/mytbs.dbf
输入数据文件 fno=00001 name=/home/oracle/oradata/TS/system01.dbf
输入数据文件 fno=00003 name=/home/oracle/oradata/TS/sysaux01.dbf
输入数据文件 fno=00005 name=/home/oracle/oradata/TS/example01.dbf
输入数据文件 fno=00007 name=/home/oracle/oradata/TS/autostrace01.
输入数据文件 fno=00008 name=/home/oracle/oradata/TS/app1_01.dbf
输入数据文件 fno=00002 name=/home/oracle/oradata/TS/undotbs01.dbf
输入数据文件 fno=00009 name=/home/oracle/oradata/TS/app02_01.dbf
输入数据文件 fno=00010 name=/home/oracle/oradata/TS/app3_01.dbf
输入数据文件 fno=00004 name=/home/oracle/oradata/TS/users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 15-8月 -11
通道 ORA_DISK_1: 已完成段 1 于 15-8月 -11
段句柄=/u01/backup/all_0bmk226g_1_1 标记=TAG20110815T110652 注释=
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:37
完成 backup 于 15-8月 -11


启动 Control File and SPFILE Autobackup 于 15-8月 -11
段 handle=/u01/backup/ctl_c-2088014681-20110815-07 comment=NONE
完成 Control File and SPFILE Autobackup 于 15-8月 -11


关闭数据库

把数据文件删除

rman target /

RMAN> startup mount;

RMAN> restore database;

RMAN> recover database;

RMAN> alter database open;



C:\Documents and Settings\Administrator> rman target sys/odps@kevin nocatalog


恢复管理器: Release 10.2.0.1.0 - Production on 星期一 8月 15 11:15:10 2011


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


已连接到目标数据库 (未启动)


RMAN>
startup mount;


Oracle 实例已启动
数据库已装载


系统全局区域总计     285212672 字节


Fixed Size                     1218992 字节
Variable Size                159385168 字节
Database Buffers             121634816 字节
Redo Buffers                   2973696 字节


RMAN>
restore database;


启动 restore 于 15-8月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK


通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到/home/oracle/oradata/TS/system01.dbf
正将数据文件00002恢复到/home/oracle/oradata/TS/undotbs01.dbf
正将数据文件00003恢复到/home/oracle/oradata/TS/sysaux01.dbf
正将数据文件00004恢复到/home/oracle/oradata/TS/users01.dbf
正将数据文件00005恢复到/home/oracle/oradata/TS/example01.dbf
正将数据文件00006恢复到/home/oracle/oradata/TS/mytbs.dbf
正将数据文件00007恢复到/home/oracle/oradata/TS/autostrace01.dbf
正将数据文件00008恢复到/home/oracle/oradata/TS/app1_01.dbf
正将数据文件00009恢复到/home/oracle/oradata/TS/app02_01.dbf
正将数据文件00010恢复到/home/oracle/oradata/TS/app3_01.dbf
通道 ORA_DISK_1: 正在读取备份段 /u01/backup/all_08mk21u5_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = /u01/backup/all_08mk21u5_1_1 标记 = TAG20110815T110223
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:30
完成 restore 于 15-8月 -11


RMAN>
recover database;


启动 recover 于 15-8月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00001 的恢复目标: /home/oracle/oradata/TS/system01.dbf
数据文件 00002 的恢复目标: /home/oracle/oradata/TS/undotbs01.dbf
数据文件 00003 的恢复目标: /home/oracle/oradata/TS/sysaux01.dbf
数据文件 00004 的恢复目标: /home/oracle/oradata/TS/users01.dbf
数据文件 00005 的恢复目标: /home/oracle/oradata/TS/example01.dbf
数据文件 00006 的恢复目标: /home/oracle/oradata/TS/mytbs.dbf
数据文件 00007 的恢复目标: /home/oracle/oradata/TS/autostrace01.dbf
数据文件 00008 的恢复目标: /home/oracle/oradata/TS/app1_01.dbf
数据文件 00009 的恢复目标: /home/oracle/oradata/TS/app02_01.dbf
数据文件 00010 的恢复目标: /home/oracle/oradata/TS/app3_01.dbf
通道 ORA_DISK_1: 正在读取备份段 /u01/backup/all_0bmk226g_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = /u01/backup/all_0bmk226g_1_1 标记 = TAG20110815T110652
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02


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


完成 recover 于 15-8月 -11


RMAN>
alter database open;


数据库已打开


RMAN>


2、Restore to a New Location



RMAN> startup mount;


Oracle 实例已启动
数据库已装载


系统全局区域总计     285212672 字节


Fixed Size                     1218992 字节
Variable Size                171968080 字节
Database Buffers             109051904 字节
Redo Buffers                   2973696 字节


RMAN>
run {
2>          set newname for datafile 10 to '/home/oracle/oradata/app3_01.dbf;
3>          restore database;
4>          switch datafile all;
5>          recover database;
6>          alter database open;
7>        }


正在执行命令: SET NEWNAME


启动 restore 于 15-8月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK


通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到/home/oracle/oradata/TS/system01.dbf
正将数据文件00002恢复到/home/oracle/oradata/TS/undotbs01.dbf
正将数据文件00003恢复到/home/oracle/oradata/TS/sysaux01.dbf
正将数据文件00004恢复到/home/oracle/oradata/TS/users01.dbf
正将数据文件00005恢复到/home/oracle/oradata/TS/example01.dbf
正将数据文件00006恢复到/home/oracle/oradata/TS/mytbs.dbf
正将数据文件00007恢复到/home/oracle/oradata/TS/autostrace01.dbf
正将数据文件00008恢复到/home/oracle/oradata/TS/app1_01.dbf
正将数据文件00009恢复到/home/oracle/oradata/TS/app02_01.dbf
正将数据文件00010恢复到/home/oracle/oradata/app3_01.dbf
通道 ORA_DISK_1: 正在读取备份段 /u01/backup/all_08mk21u5_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = /u01/backup/all_08mk21u5_1_1 标记 = TAG20110815T110223
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:42
完成 restore 于 15-8月 -11




启动 recover 于 15-8月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00001 的恢复目标: /home/oracle/oradata/TS/system01.dbf
数据文件 00002 的恢复目标: /home/oracle/oradata/TS/undotbs01.dbf
数据文件 00003 的恢复目标: /home/oracle/oradata/TS/sysaux01.dbf
数据文件 00004 的恢复目标: /home/oracle/oradata/TS/users01.dbf
数据文件 00005 的恢复目标: /home/oracle/oradata/TS/example01.dbf
数据文件 00006 的恢复目标: /home/oracle/oradata/TS/mytbs.dbf
数据文件 00007 的恢复目标: /home/oracle/oradata/TS/autostrace01.dbf
数据文件 00008 的恢复目标: /home/oracle/oradata/TS/app1_01.dbf
数据文件 00009 的恢复目标: /home/oracle/oradata/TS/app02_01.dbf
数据文件 00010 的恢复目标: /home/oracle/oradata/app3_01.dbf
通道 ORA_DISK_1: 正在读取备份段 /u01/backup/all_0bmk226g_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = /u01/backup/all_0bmk226g_1_1 标记 = TAG20110815T110652
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:03


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


完成 recover 于 15-8月 -11


数据库已打开


RMAN>


3、Recover a tablespace

RMAN> run {
2>          sql 'alter database datafile 10 offline';
3>          restore datafile 10;
4>          recover datafile 10;
5>          sql 'alter database datafile 10 online';
6>        }


sql 语句: alter database datafile 10 offline


启动 restore 于 15-8月 -11
使用通道 ORA_DISK_1


通道 ORA_DISK_1: 正在恢复数据文件00010
输入数据文件副本 recid=84 stamp=759243181 文件名=/home/oracle/oradata/TS/app3_01.dbf
数据文件 00010 的恢复目标: /home/oracle/oradata/app3_01.dbf
通道 ORA_DISK_1: 已复制数据文件 00010 的数据文件副本
输出文件名=/home/oracle/oradata/app3_01.dbf recid=85 stamp=759243404
完成 restore 于 15-8月 -11


启动 recover 于 15-8月 -11
使用通道 ORA_DISK_1


正在开始介质的恢复


存档日志线程 1 序列 4 已作为文件 /home/oracle/admin/TS/archdest/1_4_759233153.arc 存在于磁盘上
存档日志线程 1 序列 5 已作为文件 /home/oracle/admin/TS/archdest/1_5_759233153.arc 存在于磁盘上
存档日志线程 1 序列 6 已作为文件 /home/oracle/admin/TS/archdest/1_6_759233153.arc 存在于磁盘上
存档日志文件名 =/home/oracle/admin/TS/archdest/1_4_759233153.arc 线程 =1 序列 =4


介质恢复完成, 用时: 00:00:02
完成 recover 于 15-8月 -11


sql 语句: alter database datafile 10 online


RMAN>


十四、User-Managed Incomplete Recovery


1、Time-Based Recovery

Until Time Recovery

    (1)shut down and backup

    (2)Restore all datafiles

    (3)Mount the database

    (4)Archived log file

    (5)Open with Resetlogs

    (6)Backup the database


SQL> startup mount;
ORACLE 例程已经启动。


Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size             167773776 bytes
Database Buffers          113246208 bytes
Redo Buffers                2973696 bytes
数据库装载完毕。

SQL> select file#,checkpoint_change# from v$datafile;


     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1            5158908
         2            5158908
         3            5158908
         4            5158908
         5            5158908
         6            5158908
         7            5158908
         8            5158908
         9            5158908


已选择9行。


SQL> select file#,checkpoint_change# from v$datafile_header;


     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1            5158907
         2            5158907
         3            5158907
         4            5158907
         5            5158907
         6            5158907
         7            5158907
         8            5158907
         9            5158907


已选择9行。


SQL>
recover database until time '2011-09-18:13:44:55';
完成介质恢复。
SQL>
alter database open resetlogs;


数据库已更改。


SQL>
select * from usr1.t2;


        ID NAME
---------- --------------------
         0 aaa
         1 bbb


SQL>


2、Time-Based Recovery

创建controlfile脚本s1.sql

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TS" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/home/oracle/oradata/TS/redo01.log'  SIZE 50M,
  GROUP 2 '/home/oracle/oradata/TS/redo02.log'  SIZE 50M,
  GROUP 3 '/home/oracle/oradata/TS/redo03.log'  SIZE 50M
DATAFILE
  '/home/oracle/oradata/TS/system01.dbf',
  '/home/oracle/oradata/TS/undotbs01.dbf',
  '/home/oracle/oradata/TS/sysaux01.dbf',
  '/home/oracle/oradata/TS/users01.dbf',
  '/home/oracle/oradata/TS/example01.dbf',
  '/home/oracle/oradata/TS/mytbs.dbf',
  '/home/oracle/oradata/TS/autostrace01.dbf',
  '/home/oracle/oradata/TS/app1_01.dbf',
  '/home/oracle/oradata/TS/app02_01.dbf'
CHARACTER SET AL32UTF8
;


-- Configure RMAN configuration record 1
VARIABLE RECNO NUMBER;
EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');
-- Configure RMAN configuration record 2
VARIABLE RECNO NUMBER;
EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CHANNEL','DEVICE TYPE DISK FORMAT   ''/u01/backup/md_%U''');
-- Configure RMAN configuration record 3
VARIABLE RECNO NUMBER;
EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE','DISK TO ''/u01/backup/ctl_%F''');
-- Configure RMAN configuration record 4
VARIABLE RECNO NUMBER;
EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('DEVICE TYPE','DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET');



SQL> conn / as sysdba
Connected to an idle instance.
SQL> @/tmp/s1.sql
ORACLE instance started.


Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size             176162384 bytes
Database Buffers          104857600 bytes
Redo Buffers                2973696 bytes


Control file created.




PL/SQL procedure successfully completed.




PL/SQL procedure successfully completed.




PL/SQL procedure successfully completed.




PL/SQL procedure successfully completed.


SQL> recover database using backup controlfile until cancel;
ORA-00279: change 5175813 generated at 08/15/2011 19:20:49 needed for thread 1
ORA-00289: suggestion :
/home/oracle/flash_recovery_area/TS/archivelog/1_3_759258220.arc    ----归档日志文件中有的
ORA-00280: change 5175813 for thread 1 is in sequence #3




Specify log: {<RET>=suggested | filename | AUTO | CANCEL}


ORA-00279: change 5176755 generated at 08/15/2011 19:28:15 needed for thread 1
ORA-00289: suggestion :
/home/oracle/flash_recovery_area/TS/archivelog/1_4_759258220.arc    ----归档日志文件中没有的
ORA-00280: change 5176755 for thread 1 is in sequence #4
ORA-00278: log file
'/home/oracle/flash_recovery_area/TS/archivelog/1_3_759258220.arc' no longer needed for this recovery




Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;


Database altered.


SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/home/oracle/oradata/TS/temp01.dbf'
      2  SIZE 25165824  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;


Tablespace altered.


SQL> select * from usr1.t2;


        ID NAME
---------- ----------
         0 aaa
         1 bbb
         2 ccc

原创粉丝点击