全部博文(191)
分类: Oracle
2010-04-07 22:11:45
备份数据库实验6
1. 全备数据库一次(备份A)
2.建立数据库用户,
3.设定该用户默认表空间
4.使用该用户创建对象表并插入数据。(DML1)
5.归档日志文件
6.全备数据库一次(备份B)
7.再次数据对象表插入数据并提交(DML2)
8.归档日志文件
9.删除该用户的默认表空间。
10.全备数据库一次(备份C)
11.发现误删除表空间,需要恢复到DML2操作。完成恢复。
恢复数据思路:
1.使用第二次全备+第二次以后的归档日志文件来恢复数据。恢复到误删表空间的那个时间点。
2.利用基于时间点的方式来恢复数据。
3.从告警文件查看出误删表空间的时间。
4.恢复数据到DML2时间点。
恢复过程介绍:
1.从备份集中找到有效的全备,从备份集中找到误删除之前的最新的控制文件的备份
2.首先恢复控制文件
3.再还原数据库
4.从alert告警文件中找到误删表空间的时间点
5.基于时间点的恢复表空间
6.使用resetlogs打开数据库
7.数据恢复。
操作过程:
全备数据库
run
{allocate channel a1 type disk;
backup full filesperset 2 (database include current controlfile format 'f:\full\A\%p%s%t');
sql 'alter system archive log current';
release channel a1;
}
建立数据库用户设定默认表空间
SQL>create tablespace sun_tbs datafile 'D:\oracle\product\oradata\cisdb\sun_tbs.dbf' size 20M;
SQL> create user xylove identified by xylove123 default tablespace sun_tbs;
SQL> grant connect,resource to xylove;
使用该用户创建对象表并插入数据
SQL> create table xylove.s (id int);
SQL> insert into xylove.s values(1000);
SQL> select * from xylove.s;
ID
----------
1000
SQL> commit;
归档日志文件
SQL> alter system archive log current;
全备数据库
run
{allocate channel a1 type disk;
backup full filesperset 2 (database include current controlfile format 'f:\full\B\%p%s%t');
sql 'alter system archive log current';
release channel a1;
}
再次数据对象表插入数据并提交(DML2)
SQL> insert into xylove.s values(2000);
SQL> select * from xylove.s;
ID
----------
1000
2000
SQL> create table xylove.p (name varchar(20));
SQL> insert into xylove.p values('hans');
SQL> select * from xylove.p;
NAME
--------------------
hans
SQL> commit;
归档日志文件:
SQL> alter system archive log current;
删除该用户的默认表空间
SQL> drop tablespace sun_tbs including contents and datafiles;
全备数据库
run
{allocate channel a1 type disk;
backup full filesperset 2 (database include current controlfile format 'f:\full\C\%p%s%t');
sql 'alter system archive log current';
release channel a1;
}
发现误删除表空间,数据丢失,需要恢复到DML2操作
SQL> select * from xylove.s;
select * from xylove.s
*
第1行出现错误:
ORA-00942:表或视图不存在
SQL> select * from xylove.p;
select * from hn_xylove.p
第1行出现错误:
ORA-00942: 表或视图不存在
恢复数据:
恢复过程
1.从备份集中找到有效的全备,从备份集中找到误删除之前的最新的控制文件的备份:
RMAN> list backup;
……..
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
249 Full 372.01M DISK 00:00:33 05-4月 -10
BP 关键字: 249 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1277715562735
备份集 249 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 7171631 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSTEM01.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
250 Full 241.52M DISK 00:00:23 05-4月 -10
BP 关键字: 250 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1278715562771
备份集 250 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
3 Full 7171642 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSAUX01.DBF
8 Full 7171642 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\BLOCK.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
251 Full 66.44M DISK 00:00:07 05-4月 -10
BP 关键字: 251 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1279715562796
备份集 251 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
5 Full 7171655 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\EXAMPLE01.DBF
10 Full 7171655 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA1_01.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
252 Full 2.76M DISK 00:00:02 05-4月 -10
BP 关键字: 252 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1280715562804
备份集 252 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
4 Full 7171658 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
15 Full 7171658 05-4月 -10
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
253 Full 40.10M DISK 00:00:05 05-4月 -10
BP 关键字: 253 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1281715562807
备份集 253 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
2 Full 7171661 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS01.DBF
13 Full 7171661 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_02.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
254 Full 376.00K DISK 00:00:03 05-4月 -10
BP 关键字: 254 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1282715562814
备份集 254 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
11 Full 7171664 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\AUTOALLOCATE_TBS_01.DBF
14 Full 7171664 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\TBS.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
255 Full 824.00K DISK 00:00:02 05-4月 -10
BP 关键字: 255 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1283715562818
备份集 255 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
6 Full 7171666 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
7 Full 7171666 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS02.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
256 Full 376.00K DISK 00:00:02 05-4月 -10
BP 关键字: 256 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1284715562821
备份集 256 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
9 Full 7171668 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA_1.DBF
12 Full 7171668 05-4月 -10 D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_01.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
257 Full 8.52M DISK 00:00:02 05-4月 -10
BP 关键字: 257 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232535
段名:F:\FULL\B\1285715562825
包括的控制文件: Ckp SCN: 7171669 Ckp 时间: 05-4月 -10
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
258 Full 8.55M DISK 00:00:03 05-4月 -10
BP 关键字: 258 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T232707
段名:F:\CONTROLFILE\C-4048038982-20100405-14
包括的控制文件: Ckp SCN: 7171674 Ckp 时间: 05-4月 -10
包含的 SPFILE: 修改时间: 05-4月 -10
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
259 Full 8.55M DISK 00:00:04 05-4月 -10
BP 关键字: 259 状态: AVAILABLE 已压缩: NO 标记: TAG20100405T233025
段名:F:\CONTROLFILE\C-4048038982-20100405-15
包括的控制文件: Ckp SCN: 7172062 Ckp 时间: 05-4月 -10
包含的 SPFILE: 修改时间: 05-4月 -10
…………
(1),经过查询rman备份集,误删表空间前的最新的全备是tag= ‘TAG20100405T232535’
(2),经过查询rman备份集,误删表空间前的最新的控制文件备份是:F:\CONTROLFILE\C-4048038982-20100405-14
2.首先恢复控制文件
启动数据库到nomount状态:
RMAN> restore controlfile from 'F:\CONTROLFILE\C-4048038982-20100405-14';
启动 restore 于 05-4月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=189 devtype=DISK
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:03
输出文件名=D:\ORACLE\PRODUCT\ORADATA\CISDB\CONTROL01.CTL
输出文件名=D:\ORACLE\PRODUCT\ORADATA\CISDB\CONTROL02.CTL
输出文件名=D:\ORACLE\PRODUCT\ORADATA\CISDB\CONTROL03.CTL
完成 restore 于 05-4月 -10
3.再还原数据库
启动数据库到mount状态:
RMAN> restore database from tag='TAG20100405T232535';
………
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00004恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
正将数据文件00015恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\SUN_TBS.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\FULL\B\1280715562804
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\FULL\B\1280715562804 标记 = TAG20100405T232535
…………
4.从alert告警文件中找到误删表空间的时间点
Mon Apr 05 23:30:22 2010
drop tablespace sun_tbs including contents and datafiles
5.基于时间点的恢复表空间
RMAN> recover database until time "to_date('2010-04-05 23:30:22','YYYY-MM-DD HH24:MI:SS')";
6.使用resetlogs打开数据库
RMAN> alter database open resetlogs;
7.恢复数据
SQL> select * from xylove.p;
NAME
--------------------
hans
SQL> select * from xylove.s;
ID
----------
1000
2000
完成恢复。
2010-4-5.