全部博文(191)
分类: Oracle
2010-03-22 02:49:29
备份实验
要求:
使用catalog备份第一次
使用controlfile备份第二次
使用catalog备份第三次
目的:第三次catalog备份是否成功,用第一次的catalog备份恢复是否能成功。
环境:
已经完成创建:两个数据库分别是cisdb和catalog。cisdb为目标数据库,catalog为恢复目录数据库
已经完成设置网络服务名:cisdb与catalog(同一台设备)
备份实验过程:
一、catalog数据库恢复目录创建
1. SQL> conn sys/sun123@catalog as sysdba
已连接。
2. SQL> create tablespace catalog_tbs datafile 'F:\oracle\product\catalog\catalog_tbs_01.dbf' size 100m
表空间已创建。
3. SQL> create user catalog_rman identified by catalog_rman
2 default tablespace users
3 temporary tablespace temp
4 ;
用户已创建。
5. SQL> alter user catalog_rman quota unlimited on catalog_tbs;
用户已更改。
6. SQL> grant recovery_catalog_owner to catalog_rman;
授权成功。
7. SQL> grant connect,resource to catalog_rman;
授权成功
8. C:\>rman
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3月 18 15:42:01 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
9 . RMAN> connect catalog catalog_rman/catalog_rman@catalog
连接到恢复目录数据库
10. RMAN> create catalog tablespace catalog_tbs;
恢复目录已创建
11.RMAN> exit
恢复管理器完成。
12. C:\>rman target sys/sun123@cisdb catalog catalog_rman/catalog_rman@catalog
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3月 18 15:56:45 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: CISDB (DBID=4048038982)
连接到恢复目录数据库
13. RMAN> register database;
注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
二、测试两个数据库的联通性
C:\>tnsping catalog
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-3月 -2010 15:49:34
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
D:\oracle\product\database\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.101)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = catalog)))
OK (20 毫秒)
C:\>tnsping cisdb
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-3月 -2010 15:49:56
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
D:\oracle\product\database\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.101)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = cisdb)))
OK (10 毫秒)
三、备份过程:
1. 使用Catalog的方式备份(第一次备份)
以备份表空间的方式来实验,备份users表空间。
1)C:\>rman target sys/sun123@cisdb
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 3月 21 20:40:18 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: CISDB (DBID=4048038982)
2)RMAN> connect catalog catalog_rman/catalog_rman@catalog;
连接到恢复目录数据库
RMAN>
RMAN> run{
2> allocate channel c001 device type disk format 'f:\backup_U%';
3> backup tablespace users tag='usrs_backup';
4> }
分配的通道: c001
通道 c001: sid=168 devtype=DISK
启动 backup 于 21-3月 -10
通道 c001: 启动全部数据文件备份集
通道 c001: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
通道 c001: 正在启动段 1 于 21-3月 -10
通道 c001: 已完成段 1 于 21-3月 -10
段句柄=F:\BACKUP_U% 标记=USRS_BACKUP 注释=NONE
通道 c001: 备份集已完成, 经过时间:00:00:07
完成 backup 于 21-3月 -10
释放的通道: c001
2. 使用controlfile方式备份(第二次备份)
C:\>rman target sys/sun123@cisdb
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 3月 21 22:36:58 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: CISDB (DBID=4048038982)
RMAN>
RMAN> run{
2> allocate channel c001 device type disk format 'd:\backup_U%';
3> backup tablespace users tag='usrs_backup_nocatalog';
4> }
使用目标数据库控制文件替代恢复目录
分配的通道: c001
通道 c001: sid=186 devtype=DISK
启动 backup 于 21-3月 -10
通道 c001: 启动全部数据文件备份集
通道 c001: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
通道 c001: 正在启动段 1 于 21-3月 -10
通道 c001: 已完成段 1 于 21-3月 -10
段句柄=D:\BACKUP_U% 标记=USRS_BACKUP_NOCATALOG 注释=NONE
通道 c001: 备份集已完成, 经过时间:00:00:03
完成 backup 于 21-3月 -10
释放的通道: c001
3.使用catalog方式备份(第三次备份)
C:\>rman target sys/sun123@cisdb
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 3月 21 22:44:42 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: CISDB (DBID=4048038982)
RMAN> connect catalog catalog_rman/catalog_rman@catalog;
连接到恢复目录数据库
RMAN> run{
2> allocate channel c001 device type disk format 'f:\backup_03_U%';
3> backup tablespace users tag='usrs_backup_catalog_03';
4> }
分配的通道: c001
通道 c001: sid=168 devtype=DISK
启动 backup 于 21-3月 -10
通道 c001: 启动全部数据文件备份集
通道 c001: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
通道 c001: 正在启动段 1 于 21-3月 -10
通道 c001: 已完成段 1 于 21-3月 -10
段句柄=F:\BACKUP_03_U% 标记=USRS_BACKUP_CATALOG_03 注释=NONE
通道 c001: 备份集已完成, 经过时间:00:00:07
完成 backup 于 21-3月 -10
释放的通道: c001
四、恢复过程:
4.使用第一次catalog备份进行恢复(恢复users表空间)
假设users表空间损坏或遗失
1)SQL> shutdown immediate
删除users表空间数据库文件users01.dbf ,users02.dbf
USERS表空间下有表HIRE_DATES
TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAM
------------------------------ ------------------------------ ------------------------------ -------
EMPLOYEES EXAMPLE
JOB_HISTORY EXAMPLE
HIRE_DATES USERS
AUTOEXTENTS AUTOALLOCATE_TBS
UNIFORMEXTENTS UNIFORM_TBS
UN_DATA UNIFORM_TBS
AUTO_DATA AUTOALLOCATE_TBS
SYS_TEMP_FBT
COUNTRIES
DEPARTMENTS EXAMPLE
EMP01 USERS
TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAM
------------------------------ ------------------------------ ------------------------------ -------
JOBS EXAMPLE
LOCATIONS EXAMPLE
REGIONS EXAMPLE
SQL> select * from HIRE_DATES;
ID HIRE_DATE
---------- --------------
1 14-1月-10
2 14-1月-10
3 16-1月-10
2) 数据库无法open
SQL> conn sys/sun123@cisdb as sysdba
已连接到空闲例程。
SQL>
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 163580804 bytes
Database Buffers 440401920 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4: 'D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF'
3)使用第一次catalog备份的数据来恢复users表空间
首先:在mount下离线users表空间数据文件
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter database datafile 4 offline;
数据库已更改。
SQL> alter database datafile 6 offline;
数据库已更改。
其次:打开数据库到open状态
SQL> alter database open;
数据库已更改。
再次:离线users表空间
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> alter tablespace users offline immeidate;
alter tablespace users offline immeidate
SQL> alter tablespace users offline immediate;
表空间已更改
最后:进入catalog恢复目录数据库执行数据恢复
C:\>rman target sys/sun123@cisdb
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 3月 21 23:28:25 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: CISDB (DBID=4048038982)
RMAN> connect catalog catalog_rman/catalog_rman@catalog;
连接到恢复目录数据库
RMAN>
RMAN> run{
2> restore tablespace users;
3> recover tablespace users;
4> }
启动 restore 于 21-3月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=174 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00004恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
正将数据文件00006恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\BACKUP_03_U%
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\BACKUP_03_U% 标记 = USRS_BACKUP_CATALOG_03
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:07
完成 restore 于 21-3月 -10
启动 recover 于 21-3月 -10
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:01
完成 recover 于 21-3月 -10
使users表空间online
SQL>alter tablespace users online;
4). Users表空间完成恢复,其下数据文件users01.dbf和users02.dbf已经恢复过来。
可以正常访问。
SQL> CONN HR/HR@CISDB
已连接。
SQL> SELECT * FROM HIRE_DATES;
ID HIRE_DATE
---------- --------------
1 14-1月 -10
2 14-1月 -10
3 16-1月 -10
结论:
1.第三次catalog备份成功
2.自动使用第三次catalog备份恢复了数据,没有使用第一次catalog备份来恢复数据。
五:恢复过程(2)
使用第一次catalog备份来恢复表空间,把第三次catalog备份删除掉。
C:\>rman target sys/sun123@cisdb
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 3月 22 00:30:26 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: CISDB (DBID=4048038982)
RMAN> connect catalog catalog_rman/catalog_rman@catalog;
连接到恢复目录数据库
RMAN> run{
2> restore tablespace users;
3> recover tablespace users;
4> }
启动 restore 于 22-3月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=173 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00004恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
正将数据文件00006恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\BACKUP_03_U%
故障转移到上一个备份
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00004恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
正将数据文件00006恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\BACKUP_01_U%
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\BACKUP_01_U% 标记 = USRS_BACKUP_CATALOG_01
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:07
完成 restore 于 22-3月 -10
启动 recover 于 22-3月 -10
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:02
完成 recover 于 22-3月 -10
RMAN> sql 'alter tablespace users online';
sql 语句: alter tablespace users online
结论:使用第一次catalog备份也能恢复数据
目的:第三次catalog备份是否成功,用第一次的catalog备份恢复是否能成功。
第三次catalog备份成功
第一次catalog备份不能用于恢复数据。
当删除第三次的catalog备份,就可以使用第一次的catalog备份恢复成功。