1. 用户管理的备份与恢复包括
a . 冷备份
b . 热备份
冷备份:
1. 停掉数据库(保持数据的一致性)备份(用操作系统的复制命令)数据库中所用的数据文件、日志文件、控制文件、spfile/pfile
2. 恢复时可以完全恢复到备份的点上,把文件复制到原来的位置上只需要restore 不需要recover只能把数据库恢复的过去的一个时间点上
3. 冷备份丢数据的,在备份之后与崩溃之前的数据将全部丢失,冷备份通过拷贝数据文件日志文件等数据文件日志文件很大,这样比较消耗磁盘空间
4. 冷备份恢复比较简单
此前文章已经演示过冷备份了,再次不在演示了
热备份:
1、采用热备份,需要运行在归档模式下,可以实现数据库的完全恢复,也就是说,从备份后到数据库崩溃时的数据都不会丢失。
2、可以采用全备份数据库的方式备份,对于特殊情况,也可以只备份特定的数据文件,如只备份用户表空间(一般情况下对于某些写特别频繁的数据文件,可以单独加大备份频率)
3、如果在恢复过程中,发现损坏的是多个数据文件,即可以采用一个一个数据文件的恢复方法,也可以采用整个数据库的恢复方法。
4、如果是系统表空间的损坏,不能采用此方法
下面演示热备份并进行恢复
环境:windows xp + Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
1.创建一个表空间并在这个表空间里创建一个表并插入一条数据
SQL> create tablespace test datafile 'D:\APP\WWANG\ORADATA\MDSP\test.dbf' size 2M;
表空间已创建。
SQL> create table test1 (a number) tablespace test;
表已创建。
SQL> insert into test1 values (1);
已创建 1 行。
SQL> commit;
提交完成。
SQL>
2 . 对这个test表空间做一个备份
把表空间置于备份模式并查看v$backup:
SQL> alter tablespace test begin backup;
表空间已更改。
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------------------------ ---------- --------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 NOT ACTIVE 0
6 NOT ACTIVE 0
7 ACTIVE 2744113 01-7月 -12
已选择7行。
把文件复制(操作系统的复制)备份的位置
结束表空间的备份模式:
SQL> alter tablespace test end backup;
表空间已更改。
SQL>
3.模拟文件损坏(脱机删掉文件)并恢复
SQL> alter tablespace test offline;
表空间已更改。
查看表时报错了报文件无法读取
SQL> select * from test1;
select * from test1 *
第 1 行出现错误:
ORA-00376: 此时无法读取文件 7
ORA-01110: 数据文件 7: 'D:\APP\WWANG\ORADATA\MDSP\TEST.DBF'
把备份的文件拷贝回去
SQL> recover tablespace test; --此处也可以写recover datafile 7;
完成介质恢复。
将表空间联机:
SQL> alter tablespace test online;
表空间已更改。
SQL> select * from test1;
A
----------
1
SQL>