RAM备份与恢复的实验

 

操作系统:WINDOWS2003

ORACLE版本:10G

ORACLE_SIDXZOA

 

一、             准备工作

 

C:\>SQLPLUS /NOLOG

SQL>CONNECT / AS SYSDBA

 

AXZOA数据库:

 

1、 创建表空间

SQL>CREATE TABLESPACE exoa

DATAFILE 'C:\oracle\product\10.2.0\oradata\XZOA\DATAFILE\EXOA.DBF'

SIZE 20M AUTOEXTEND ON NEXT 20M

MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

 

2、创建用户

SQL>CREATE USER exoa IDENTIFIED BY exoaexoa

DEFAULT TABLESPACE EXOA

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON EXOA;

 

3、给用户授权

SQL>GRANT  CONNECT,DBA,RESOURCE,EXP_FULL_DATABASE,IMP_FULL_DATABASE

TO exoa WITH ADMIN OPTION;

 

SQL>GRANT CREATE ANY INDEX,CREATE ANY TABLE,DELETE ANY TABLE,

CREATE SESSION,CREATE TABLE,CREATE VIEW,UNDER ANY TABLE,

UNLIMITED TABLESPACE TO exoa WITH ADMIN OPTION;

 

BRMAN (基于CATALOG

 

1、创建表空间

SQL>CREATE TABLESPACE space_for_backup

DATAFILE 'C:\oracle\product\10.2.0\oradata\XZOA\DATAFILE\space_for_backup.DBF'

SIZE 50M;

 

2、创建用户

SQL>CREATE USER rman IDENTIFIED BY rman

TEMPORARY TABLESPACE TEMP

DEFAULT TABLESPACE space_for_backup

QUOTA UNLIMITED ON space_for_backup;

 

3、给用户授权

SQL>GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO rman;

 

4、创建恢复资料数

RMAN>connect catalog rman/rman;登录到恢复资料数据库

RMAN>CREATE CATALOG TABLESPACE space_for_backup;创建恢复资料

 

5、注册目标数据库

RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN>register database;注册目标数据库

RMAN>report schema;查看注册是否成功

 

二、备份实例

 

1、 全库备份

RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN>backup database format 'c:\backup\db0_%s_%p_%t';

 

启动 backup 18-3 -11

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=133 devtype=DISK

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

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

输入数据文件

fno=00001 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\O1_MF_SYSTEM_6R3O30JM_.DBF

输入数据文件

fno=00003 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\O1_MF_SYSAUX_6R3O30M1_.DBF

输入数据文件

fno=00006 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\SPACE_FOR_BACKUP.DBF

输入数据文件

fno=00002 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\O1_MF_UNDOTBS1_6R3O30RW_.DBF

输入数据文件

fno=00005 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\EXOA.DBF

输入数据文件

fno=00004 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\O1_MF_USERS_6R3O30TV_.DBF

通道 ORA_DISK_1: 正在启动段 1 18-3 -11

通道 ORA_DISK_1: 已完成段 1 18-3 -11

段句柄=C:\BACKUP\DB0_1_1_746104945 标记=TAG20110318T112225 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:56

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

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

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

在备份集中包含当前的 SPFILE

通道 ORA_DISK_1: 正在启动段 1 18-3 -11

通道 ORA_DISK_1: 已完成段 1 18-3 -11

段句柄=C:\BACKUP\DB0_2_1_746105001 标记=TAG20110318T112225 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03

完成 backup 18-3 -11

 

2、 备份表空间

RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN> backup tablespace exoa format 'c:\backup\exoa_%s_%p_%t';

 

启动 backup 18-3 -11

使用通道 ORA_DISK_1

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

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

输入数据文件

fno=00005 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\EXOA.DBF

通道 ORA_DISK_1: 正在启动段 1 18-3 -11

通道 ORA_DISK_1: 已完成段 1 18-3 -11

段句柄=C:\BACKUP\EXOA_3_1_746105666 标记=TAG20110318T113425 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01

完成 backup 18-3 -11

 

3、备份归档日志

RMAN> backup archivelog all format 'c:\backup\archive_%U';

 

启动 backup 18-3 -11

当前日志已存档

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在启动存档日志备份集

通道 ORA_DISK_1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =3 记录 ID=1 时间戳=746105820

通道 ORA_DISK_1: 正在启动段 1 18-3 -11

通道 ORA_DISK_1: 已完成段 1 18-3 -11

段句柄=C:\BACKUP\ARCHIVE_04M7HAUT_1_1 标记=TAG20110318T113701 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04

完成 backup 18-3 -11

 

4、 备份控制文件

RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN> backup current controlfile format 'c:\backup\controlfile_%s_%p_%t';

 

启动 backup 18-3 -11

使用通道 ORA_DISK_1

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

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

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

通道 ORA_DISK_1: 正在启动段 1 18-3 -11

通道 ORA_DISK_1: 已完成段 1 18-3 -11

段句柄=C:\BACKUP\CONTROLFILE_6_1_746106132 标记=TAG20110318T114212 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02

完成 backup 18-3 -11

 

5、 备份参数文件SPFILE

RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN> backup spfile format 'c:\backup\spfile_%s_%p_%t';

 

启动 backup 18-3 -11

使用通道 ORA_DISK_1

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

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

在备份集中包含当前的 SPFILE

通道 ORA_DISK_1: 正在启动段 1 18-3 -11

通道 ORA_DISK_1: 已完成段 1 18-3 -11

段句柄=C:\BACKUP\SPFILE_7_1_746106297 标记=TAG20110318T114457 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02

完成 backup 18-3 -11

 

三、恢复实例

1、恢复数据库(可以将数据库文件全部删除,模拟数据库损坏现象)

 

SQL> connect / as sysdba;

已连接到空闲例程。

 

SQL> startup mount;

ORACLE 例程已经启动。

 

Total System Global Area  293601280 bytes

Fixed Size                  1248624 bytes

Variable Size             100663952 bytes

Database Buffers          188743680 bytes

Redo Buffers                2945024 bytes

数据库装载完毕。

 

RMAN> connect catalog rman/rman;

RMAN> connect target /;

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

 

RMAN> restore database;还原数据库

 

启动 restore 18-3 -11

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

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=155 devtype=DISK

 

正在略过数据文件 6; 已恢复到文件

C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\

SPACE_FOR_BACKUP.DBF

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

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

正将数据文件00001恢复到

C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\O1_MF_SYST

EM_6R3O30JM_.DBF

正将数据文件00002恢复到

C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\O1_MF_UNDO

TBS1_6R3O30RW_.DBF

正将数据文件00003恢复到

C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\O1_MF_SYSA

UX_6R3O30M1_.DBF

正将数据文件00004恢复到

C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\O1_MF_USER

S_6R3O30TV_.DBF

通道 ORA_DISK_1: 正在读取备份段 C:\BACKUP\DB0_1_1_746104945

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = C:\BACKUP\DB0_1_1_746104945 标记 = TAG20110318T112225

通道 ORA_DISK_1: 恢复完成, 用时: 00:02:05

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

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

正将数据文件00005恢复到

C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\EXOA.DBF

通道 ORA_DISK_1: 正在读取备份段 C:\BACKUP\EXOA_3_1_746105666

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = C:\BACKUP\EXOA_3_1_746105666 标记 = TAG20110318T113425

通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01

完成 restore 18-3 -11

 

RMAN> recover database;恢复数据库

 

启动 recover 18-3 -11

使用通道 ORA_DISK_1

 

正在开始介质的恢复

介质恢复完成, 用时: 00:00:03

 

完成 recover 18-3 -11

 

SQL> alter database open;

数据库已更改。

 

2、恢复表空间(可以将表空间文件文件删除,模拟表空间损坏现象)

 

SQL> connect / as sysdba

已连接到空闲例程。

 

SQL> startup

ORACLE 例程已经启动。

 

Total System Global Area  293601280 bytes

Fixed Size                  1248624 bytes

Variable Size             104858256 bytes

Database Buffers          184549376 bytes

Redo Buffers                2945024 bytes

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 5:

'C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\EXOA.DBF'

 

RMAN> connect catalog rman/rman;

RMAN> connect target /;

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

 

RMAN> run

2> {

3> restore tablespace exoa;

4> switch datafile all;

5> recover tablespace exoa;

6> }

 

启动 restore 18-3 -11

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

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=155 devtype=DISK

 

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

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

正将数据文件00005恢复到

C:\ORACLE\PRODUCT\10.2.0\ORADATA\XZOA\DATAFILE\EXOA.DBF

通道 ORA_DISK_1: 正在读取备份段 C:\BACKUP\EXOA_3_1_746105666

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = C:\BACKUP\EXOA_3_1_746105666 标记 = TAG20110318T113425

通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01

完成 restore 18-3 -11

 

启动 recover 18-3 -11

使用通道 ORA_DISK_1

 

正在开始介质的恢复

介质恢复完成, 用时: 00:00:01

 

完成 recover 18-3 -11

 

SQL> alter tablespace exoa online;

alter tablespace exoa online

*

1 行出现错误:

ORA-01109: 数据库未打开

 

SQL> alter database open;

数据库已更改。

 

SQL> alter tablespace exoa online;

表空间已更改。