Oracle数据库备份与恢复

Oracle数据库备份与恢复

需要备份的文件

  • 数据文件
  • 控制文件 投入使用的时候备份,数据库结构变化后需要备份
  • 归档日志文件可以考虑备份 也可产生多个归档日志文件放到不同磁盘

控制文件

控制文件的备份 (两个方法)

  • 产生一个二进制映像文件
  • 在跟踪文件中产生一条creat controlfile语句

控制文件恢复(两个方法)

  1. 实例启动到nomount状态
  2. 将create controlfile语句复制到sqlplus中执行
  3. 打开数据库
alter database open;
  1. 将二进制文件复制到以前所在的每个位置,并改名为以前的名称
  2. 打开数据库
alter databser opne resetlogs;

数据文件

非归档模式下每次都需要备份整个数据数据库

归档模式下可以备份单个表空间和数据文件,针对不同的表空间执行不同方案

  • system和sysaux:只需要备份一次
  • undo表空间:不需要备份
  • 临时表空间:不需要备份
  • 只读表空间:只需要备份一次
  • 数据表空间:频繁备份

方法

  1. 查询数据字典视图dba_data_files中查询所包含数据文件;
  2. 开始备份
alter tablespace users begin backup;
  1. 将造作系统中数据文件复制到存储介质上;
  2. 结束备份
alter tablespace users end backup;

其它表空间同上。

redo log文件

在数据库打开情况下,如果某个重做日志文件损坏,由于文件无法进行归档将导致数据库停止运行,需要清空该日志,既不关闭数据库的情况下初始化震哥哥日志组。

later database clear logfile group 3;				

如果redo log 还未归档,可通过下面命令清空

alter database clear unarchived logfile group 3;

数据库的完全恢复

归档模式下可在实例open或mount状态下恢复。

  1. 将数据文件offline;

    alter tablespace users offline;
    
    alter database datafile 2 offline;
    
  2. 确定损坏的数据文件

  • 查询v$recover_file
select file#,online_status,error from v$recover_file;

  • 查看告警文件或者dbwr进程的跟踪文件
  • 重启实例时查看sqlplus中的错误提示
  1. 恢复

    1. restore:将备份文件复制到原来数据文件所在位置
    2. recover:利用redo log产生最后一段时间的数据
    • 普通表空间:可以在实例open或mount状态恢复(以下语句三选一)
    recover tablespace users;
    
    
    recover datafile 2;
    
    
    alter databaser recover datafile 2;
    
    
    • system表空间或者整个数据库:需实例转入mount状态(数据库正常时无法将system转入offline状态)
    recover database;
    recover datafile 1;
    recover tablesapce system;
    alter database recover database;
    
    
  2. 实例转入open状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值