操作步骤:
1、以SYSDBA用户登录,可以使用如下SQL查看数据文件、重做日志文件、控制文件:
<span style="font-family:Microsoft YaHei;">select * from v$dbfile;
select * from v$logfile;
select * from v$controlfile;</span>
2、创建测试表并插入测试数据:
<span style="font-family:Microsoft YaHei;">SQL> create table t6(id number,name varchar2(10));
Table created.
SQL> insert into t6 values(1,'a');
1 row created.
SQL> insert into t6 values(2,'b');
1 row created.
SQL> insert into t6 values(3,'c');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t6;
ID NAME
---------- ----------
1 a
2 b
3 c</span>
3、关闭数据库:
<span style="font-family:Microsoft YaHei;">SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL></span>
4、备份数据文件、重做日志文件、控制文件:
<span style="font-family:Microsoft YaHei;">cp -r /export/app/oradata/ORCL/* /home/oracle/coldbk/</span>
5、重新启动数据库startup
SQL> startup
ORACLE instance started.
Total System Global Area 2471931904 bytes
Fixed Size 2291376 bytes
Variable Size 889194832 bytes
Database Buffers 1577058304 bytes
Redo Buffers 3387392 bytes
Database mounted.
Database opened.
6、再次插入一条测试数据并模拟误操作
SQL> insert into t6 values(4,'d');
1 row created.
SQL> commit;
Commit complete.
SQL> drop table t6;
Table dropped.
7、关闭数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
8、恢复之前备份的数据文件、重做日志文件及控制文件
cp -r coldbk/* /export/app/oradata/ORCL/
9、启动数据库至mount状态,执行基于取消的恢复并以resetlogs的方式打开数据库
SQL> startup mount
ORACLE instance started.
Total System Global Area 2471931904 bytes
Fixed Size 2291376 bytes
Variable Size 889194832 bytes
Database Buffers 1577058304 bytes
Redo Buffers 3387392 bytes
Database mounted.
SQL> recover database until cancel;
Media recovery complete.
SQL> alter database open resetlogs;
Database altered.
10、验证测试表,可以发现最后插入的那条记录,并没有恢复,至此实践完成。
SQL> select * from t6;
ID NAME
---------- ----------
1 a
2 b
3 c
脱机备份优缺点:
优点:只需拷贝文件,速度比较快。将文件拷贝回去,数据库就可以恢复到某个时间点。若结合数据库的归档模式可以很好的恢复数据库。维护量较少但安全性较高。
缺点:脱机备份,数据库必须关闭。单独使用脱机备份,数据库只能基于某一时间点恢复。若磁盘空间有限,使用磁带等外设时速度较慢。脱机备份不能按表或用户恢复。