zoukankan      html  css  js  c++  java
  • Oracle 热备份

    热备份较冷备份的主要区别就是不会丢失在备份后更新的数据,
    下面为SQL脚本:

    CREATE TABLE TEST
    (
     T_ID NUMBER,
     T_VALUE VARCHAR2(30)
    );
    /
    INSERT INTO TEST VALUES(100,'WANG');
    INSERT INTO TEST VALUES(200,'DONG');
    COMMIT;
    SELECT * FROM TEST;

     T_ID T_VALUE
    -----------------------
     100 WANG
     200 DONG

    1.SHUTDOWN IMMEDIATE;//关闭数据库
    2.STARTUP MOUNT//启动数据实例,加载数据库
    注:STARTUP NOMOUNT//启动数据实例
        STARTUP MOUNT//启动数据实例,加载数据库
        STARTUP //启动数据实例,加载数据库并打开数据库
    3.ALTER DATABASE ARCHIVELOG;//设置数据库日志为存档模式
    4.ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;//重启数据库
    5.ALTER DATABASE OPEN;//打开数据库
    6.ALTER TABLESPACE USERS BEGIN BACKUP;//将数据库设置备份模式
    7.HOST COPY D:\oracle\oradata\orcl\*.dbf D:\BAK\ //拷贝数据文件至备份文件中
    8.ALTER TABLESPACE USERS END BACKUP;//结束备份状态
    9.ALTER SYSTEM SWITCH LOGFILE;//切换日志,使当前日志归档
    --------至此,热备份已经完成,备份文件保存在D:\BAK\目录下--------

    此时再插入数据,
    INSERT INTO TEST VALUES(300,'XIN');
    COMMIT;

    以下是故障重现
    1.SHUTDOWN IMMEDIATE
    2.STARTUP MOUNT
    3.HOST DEL D:\oracle\oradata\orcl\USER01.dbf //故意删除一个数据文件,制造故障
    4.SHUTDOWN IMMEDIATE
    5.STARTUP
     //此时会警告,无法找到指定的文件DATA FILE 4,即是刚才删掉的数据文件,DATA FILE 4只是

    个代号,也有可能是DATA FILE 1,DATA FILE 2,等等
    6.ALTER DATABASE DATAFILE 4 OFFLINE DROP;//让这个出故障的文件暂时先脱机
    7.ALTER DATABASE OPEN;//打开数据库
    8.HOST COPY D:\BAK\ HOST COPY D:\oracle\oradata\orcl\*.dbf//将前面备份的文件拷贝到系统目录中
    9.RECOVER DATAFILE 4;//这一步,偶尔会出错,无法正确执行,而且无法正常关闭数据库,请如此这般

    操作,SHUTDOWN ABORT; STARTUP;
    10.ALTER DATABASE DATAFILE 4 ONLINE;
    11.SELECT * FROM TEST;

     T_ID T_VALUE
    -----------------------
     100 WANG
     200 DONG
     300 XIN
    发现,备份之后又更新的数据没有丢失!

  • 相关阅读:
    xp_cmdshell
    常用SQL语句
    SQL Server Select的递归查询-交叉表
    Sql Server 2005 行转列的实现(横排)
    sql导入导出
    使用正则表达式验证手机号、车牌号
    页面功能:设为首页和加入收藏
    两个文本框同步输入
    最常用的200个JS代码
    .NET 获取时间
  • 原文地址:https://www.cnblogs.com/Amaranthus/p/1985164.html
Copyright © 2011-2022 走看看