• Oracle数据库的热备份与完整恢复测试


    数据库热备份与完整恢复测试: 

    1.首先,必需保证数据库在归档模式下。 

    2.热备份数据文件,通过alter tablespace xxx begin backup把表空间设为备份状态,可以手工或在sql下运行host copy把数据文件复制到指定地方,最后把表空间改为正常状态(alter tablepace xxx end backup)。 

    3.数据库恢复:使用语句rcover datafile,alter database open即可以实现数据库的完整恢复。 

    具体的步骤如下: 

    SQL> conn / as sysdba 

    已连接。 

    //确定数据库在归档模式下。 

    SQL> select log_mode from v$database; 

    LOG_MODE 

    ------------ 

    ARCHIVELOG 

    //查询表空间对应的数据文件,一般表空间名跟对应数据文件名是相同的,可以跳过这一步。 

    SQL> select v$tablespace.name,v$datafile.name from v$tablespace, v$datafile 

    2 where v$tablespace.ts#=v$datafile.ts#; 

    NAME 

    ------------------------------ 

    NAME 

    -------------------------------------------------------------------------------- 


    SYSTEM 

    F:\ORACLE\ORADATA\EBOOK\SYSTEM01.DBF 


    UNDOTBS1 

    F:\ORACLE\ORADATA\EBOOK\UNDOTBS01.DBF 


    CWMLITE 

    F:\ORACLE\ORADATA\EBOOK\CWMLITE01.DBF 


    DRSYS 

    F:\ORACLE\ORADATA\EBOOK\DRSYS01.DBF 


    EXAMPLE 

    F:\ORACLE\ORADATA\EBOOK\EXAMPLE01.DBF 


    INDX 

    F:\ORACLE\ORADATA\EBOOK\INDX01.DBF 


    ODM 

    F:\ORACLE\ORADATA\EBOOK\ODM01.DBF 


    TOOLS 

    F:\ORACLE\ORADATA\EBOOK\TOOLS01.DBF 


    USERS 

    F:\ORACLE\ORADATA\EBOOK\USERS01.DBF 


    XDB 

    F:\ORACLE\ORADATA\EBOOK\XDB01.DBF 

     

    已选择10行。 

     

    //将表空间设为备份状态. 

    SQL> alter tablespace system begin backup; 

    表空间已更改。 

    //将数据文件备份到目录f:\oracle\backuparea下. 

    SQL> host copy f:\oracle\oradata\ebook\system01.dbf f:\oracle\backuparea\ 

    已复制 1 个文件。 

    SQL> alter tablespace system end backup; 

    表空间已更改。 

    //建表test的目的为测试此恢复是否是完整恢复。 

    SQL> create table scott.test(t int); 

    表已创建。 

    SQL> insert into scott.test values(1); 

    已创建 1 行。 

    SQL> insert into scott.test values(2); 

    已创建 1 行。 


    SQL> commit; 


    提交完成。 

     

    SQL> shutdown immediate 

    数据库已经关闭。 
      已经卸载数据库。 
    ORACLE 例程已经关闭。 
     
    //删除system01.dbf或移动到其他目录造成数据库崩溃。 

    SQL> startup 
    ORACLE 例程已经启动。 
    Total System Global Area 135338868 bytes 
    Fixed Size 453492 bytes 
    Variable Size 109051904 bytes 
    Database Buffers 25165824 bytes 
    Redo Buffers 667648 bytes 
    数据库装载完毕。 
    ORA-01157: 无法标识/锁定数据文件 1 - 请大家参阅 DBWR 跟踪文件 
    ORA-01110: 数据文件 1: ’F:\ORACLE\ORADATA\EBOOK\SYSTEM01.DBF’ 
    //将备份的数据文件复制回目录f:\oracle\oradata\ebook\下. 

    SQL> $ copy f:\oracle\backuparea\system01.dbf f:\oracle\oradata\ebook\ 
    已复制 1 个文件。 

    //恢复数据文件system01.dbf。 
    SQL> recover datafile ’f:\oracle\oradata\ebook\system01.dbf’; 
    完成介质恢复。 
    SQL> alter database open; 

    数据库已更改。 

    //此说明数据库是完整恢复了。 

    SQL> select * from scott.test; 

    ---------- 

    总结: 
    1.热备份必须在数据库归档模式下进行 
    2.在备份的同时,数据库的用户可以进行操作。因此,数据库对应的物理文件的内容是不断变化的,对这些物理文件内容的更新是保留到有关操作已经写到重做日至文件中 
    后再进行。(这句引自别人叙述,我对后半句正确与否存在疑问,希望大家讨论)。 
    3.归档日志必须是备份后的所有日至才可以实现数据库的完全恢复。 
    4.可以备份除临时文件以外的所有数据文件,如果在恢复过程中,发现损坏的是多个数据文件,即可以采用一个一个数据文件的恢复方法 
    5。 特别当损坏的不是系统表空间,可以先将损坏的表空间文件脱机,这时可以在恢复损坏文件前打开 
    数据库,再完成恢复。例如: 

    SQL> alter tablespace tools begin backup; 

    表空间已更改。 

    SQL> $ copy f:\oracle\oradata\ebook\tools01.dbf f:\oracle\backuparea 
    已复制 1 个文件。 

    SQL> alter tablespace tools end backup; 

    表空间已更改。 

    SQL> shutdown immediate 
    数据库已经关闭。 
    已经卸载数据库。 
    ORACLE 例程已经关闭。 

    //删除tools01.dbf造成数据库无法正常启动. 

    SQL> startup 
    ORACLE 例程已经启动。 

    Total System Global Area 135338868 bytes 
    Fixed Size 453492 bytes 
    Variable Size 109051904 bytes 
    Database Buffers 25165824 bytes 
    Redo Buffers 667648 bytes 
    数据库装载完毕。 
    ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件 
    ORA-01110: 数据文件 8: ’F:\ORACLE\ORADATA\EBOOK\TOOLS01.DBF’ 
     
    SQL> alter database datafile ’f:\oracle\oradata\ebook\tools01.dbf’ offline; 

    数据库已更改。 

    SQL> alter database open; 

    数据库已更改。 

    SQL> $ copy f:\oracle\backuparea\tools01.dbf f:\oracle\oradata\ebook\ 
    已复制 1 个文件。 

    SQL>recover datafile ’f:\oracle\oradata\ebook\tools01.dbf’; 
    介质恢复完成。
  • 相关阅读:
    win 8升级win8.1的几个问题
    使用ghost硬盘对拷备份系统
    在odl中怎样实现rpc
    ASP.NET常见内置对象(一)
    [Xcode 实际操作]六、媒体与动画-(12)检测UIView动画的结束事件:反转动画并缩小至不可见状态
    [Xcode 实际操作]六、媒体与动画-(11)UIView视图卷曲动画的制作
    [Xcode 实际操作]六、媒体与动画-(10)UIView视图翻转动的画制作
    [Xcode 实际操作]六、媒体与动画-(9)使用CATransaction Push制作入场动画
    [Xcode 实际操作]六、媒体与动画-(8)使用CATransaction Reveal制作渐显动画
    [Xcode 实际操作]六、媒体与动画-(7)遍历系统提供的所有滤镜
  • 原文地址:https://www.cnblogs.com/tiasys/p/1154472.html
Copyright © 2020-2023  润新知