首页 > 开发 > 综合 > 正文

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

2024-07-21 02:33:03
字体:
来源:转载
供稿:网友
先简单说明两种用户治理的备份方式
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 open2)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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表