当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

用户管理的几种场景的数据库恢复

先简单说明两种用户管理的备份方式
1.冷备份
  shutdown immediate/normal/transactional
  copy/cp备份所有的文件
  alter database open
2.热备份--必须在归档模式下
  alter tablespace tbs_name begin backup
  备份(copy/cp)tbs_name表空间对应的所有文件
  alter tablespace tbs_name end backup
 或者
  alter database datafile 文件号  或 '<file_name>' begin backup
  备份对应的数据文件
  alter database datafile 文件号  或 '<file_name>' end backup

下面具体说明几种场景的恢复
1)关闭数据库的恢复
     a)系统表空间坏了,会自动关闭数据库
     b)undo表空间坏了,会自动关闭数据库
     c)所有数据文件坏了
  这三种情况只能关闭数据库恢复,同时可以考虑:是不是归档模式,有没有归档模式的备份,否则就有数据丢失了
   模拟: shutdown immediate,删除system表空间对应的文件
   startup; --报错,查看状态为mount,select status from v$instance
   select * from v$backup --可以查询哪个文件丢失(status=active)
   restore(copt/cp)丢失的文件
   --在mount状态下执行
   recover datafile 文件号 或 '文件名'
   alter database open

2)Open 状态下数据文件恢复,必须在归档模式下
   a)某个普通数据文件损坏   b)shutdown以后出现普通文件损坏
   模拟a: 创建一个表空间test,备份,alter system switch logfile
   alter tablespace test offline
   删除test对应的文件
   --查看那些文件需要恢复
   select * from v$recover_file;
   --字段ERROR,'OFFLINE NORMAL'表示不要恢复,NULL表示未知原因,
     'FILE NOT FOUNT'等
   select * from  v$backup; //Status = Active
   --不用关闭数据库,直接将备份文件复制到数据文件目录下
   recover tablespace test;
   alter tablespace test online;

   b)先启动,使坏了的表空间offline,再恢复

3)没有任何备份的恢复
   条件:必须是在归档模式起用后再创建的文件和所有之后的归档都存在
   模拟:已起用归档模式
       create tablespace test datafile '.... est.dbf' size 5M;
       create table t(id int, mc varchar2(10)) tablespace test;
       insert into values(1,'test');
       commit;
       alter system switch logfile;
       alter system switch logfile;
       --多做几次,确保归档
      --破坏数据文件,没有备份
       alter tablespace test offline;
       删除文件 test.dbf
       alter tablespace test online;
         报错
       --恢复
         alter database create datafile 文件号 或 '文件名'
         recover datafile  文件号 或 '文件名'
          --或recover tablespace test;
         alter tablespace test online
       --如果是drop了,就只能做不完全恢复了(时间点等)

4)将文件移到另一个磁盘
   只要rename (比如文件存放的磁盘损坏时使用)
    alter tablespace test offline
    将备份的文件复制到另一个地方
    alter database rename file '文件名' to '新文件夹文件名'
    recover datafile 文件号 或 '文件名'
    alter tablespace test online

相关内容
赞助商链接