Oracle数据库的备份与恢复
数据库的备份与恢复
- 一、实验内容
- 二、实验目的
- 三、实验步骤
- 3.1 脱机备份与恢复
- 3.1.1 脱机备份
- 3.1.2 脱机恢复
- 3.2 联机备份
- 3.2.1 将数据库转换为归档模式
- 3.2.2 联机备份
- 3.2.3 联机恢复
- 3.3 不完全恢复
- 3.3.1 基于 cancel 的恢复
- 3.3.2 基于时间点的恢复
- 3.3.3 基于 SCN 的恢复
- 3.4 使用 EXP/IMP 命令导出/导入数据
- 3.4.1 EXP 导出命令概述
- 3.4.2 EXP 导出
- 3.4.3 使用imp导入
- 3.4.4 IMP 导入
- 3.5 使用OEM导入导出数据
- 3.5.1 备份数据
- 3.5.2 使用OEM导出数据
- 3.5.3 使用OEM导入
- 四、遇到问题
一、实验内容
包括脱机状态下和联机状态下的备份和恢复,不完全恢复,使用EXI/IMP命令导入导出数据,使用OEM导入导出数据。
二、实验目的
通过实验使掌握 Oracle 的备份与恢复方法,掌握利用EXP/IMP 命令导出/导入数据,掌握 OEM 导出/导入数据方法。
三、实验步骤
3.1 脱机备份与恢复
3.1.1 脱机备份
- 获取备份的文件
启动 swl plus,通过命令select name from v$datafile;
获取数据文件列表。
获取控制文件列表,通过语句show parameter control_file;
能够获取数据库当前控制文件。
获取联机重做日志文件列表,通过查询 v$dlogfile 视图实现,select member from v$logfile;
- 建立测试表
create table tableTest1(t char);
insert into tableTest1 values(“a”);
commit
3. 关闭数据库
命令为shutdown immediate
立即关闭数据库。
4. 建立备份的目录
复制文件到备份的目录,包括全部的数据文件、控制文件和重做日志文件,如图所示。建议以下步骤需要用管理员权限打开sql,否则会报错。
5. 启动数据库,增加测试记录
startup
conn sys as sysdba
insert into tableTest values('s');
commit;
select * from tableTest1;
6. 删除文件模拟数据库损坏
conn system/123456 as sysdba;
shutdown immediate;
$del c:\app\LSH\testlsh\user01.dbf;
startup
3.1.2 脱机恢复
- 关闭数据库,将备份的数据文件还原到原来的位置
shutdown immediate;
$copy c:\database\*.* c:\app\lsh\oradata\testlsh\*.*
$copy c:\database\control01.ctl c:\app\lsh\oradata\flash_recovery_area\testlsh\control01.ctl
2. 启动数据库,查询数据记录丢失情况
如图,数据库恢复成功,但备份之后与崩溃之前的数据丢失了。意味着这种恢复可以完全恢复到备份的点上。
3.2 联机备份
联机备份的时候,数据库还处于可操作状态,即备份的时候或备份后可能在做 DML 操作,而做这些操作会记录到联机日志文件中,当联机日志文件满后就把这些操作存入归档日志中,备份一段时间后,数据库出现问题,就可以用备份的文件与日志文件(归档日志与联机日志文件)进行恢复,保证数据不丢失,联机备份数据库应为归档模式。
3.2.1 将数据库转换为归档模式
- 创建两个目录
- 设置参数,指定归档目的地和控制归档日志文件名