手工管理的备份和恢复

 

手工管理的备份和恢复

 1.非归档模式下:只有冷备份,方法是正常关闭数据库,然后复制数据文件和控制文件到备份介质上。
 2.归档模式下:
  A:冷备份,跟非归档模式下的冷备份一样的做法。
  B:热备份, shutdown immediate;
    startup mount;
    alter database archivelog;  //配置归档模式
    alter database open;
    archive log list;  //这命令进行确认是否配置成功
    alter tablespace users begin backup; 
    ! cp $ORACLE_BASE/oradata/orcl/user*.dbf  /u02/backup/20071102
    alter tablespace users end backup;
    alter system switch logfile;  
    复制所有归档日志文件;  //强制切换一次日志,然后把所有归档日志文件都复制到备份介质上。这是因为begin backup与end backup的过程中,复制的数据文件是以操作系统块来进行操作的,而ORACLE数据块大小是操作系统数据块的整数倍,所以会发生分离数据块现象,即数据块的前半部分没改动过,而后半部分改动过的不一致现象。

 3.非归档模式下的完全恢复:
  A,在进行备份时,同时备份了联机日志文件。
   将备份的数据文件,控制文件和联机日志文件复制到原来所在的目录即可。
  B,在进行备份时,没有备份联机日志文件。
   步骤: a:关闭数据库;
    b:从最近的备份中,还原所有的数据文件和控制文件;
    c:启动数据库,会报道找不到联机日志文件或联机日志文件不匹配的错误消息;
    d:发出命令   recover database until cancel using backup controlfile,再输入cancel即可;
    e:发出命令   alter database open resetlogs;

 4.归档模式下的恢复
  如果控制文件与联机日志文件都没有损坏,而只是数据文件损坏,并且只要存在备份以及自从该备份以来所有的归档日志文件,那么就能完全恢复到发生介质损坏的那个时间点上。
  如果所有控制文件损坏,或者整个联机日志文件组丢失,又或者自从最新的备份以来丢失了某个归档日志文件,则不能进行完全恢复,必须进行不完全恢复。
  A,完全恢复
   a.recover database:在关闭数据库时使用,如果系统表空间或者undo表空间损坏,或者所有数据文件损坏,则只能采用该方式。
   b.recover tablespace <表空间的名称或者表空间编号>:打开或关闭数据库时都能使用,推荐此方式,恢复表空间之前,必须要将恢复的表空间离线。
   c.recover datafile <数据文件全路径名称或者数据文件编号>:打开数据库或关闭数据库时都能使用,打开数据库时不能用于系统表空间或undo表空间的数据文件。恢复之前,要将恢复的数据文件离线。
   
  B,不完全恢复
   基于时间点:recover database until time 'yyyy-mm-dd hh24:mi:ss';
   基于撤销(cancel-based):recover database until cancel
   基于SCN号的不完全恢复:

 

 

  

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭