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
    发现,备份之后又更新的数据没有丢失!

  • 相关阅读:
    Combine 框架,从0到1 —— 4.在 Combine 中使用计时器
    Combine 框架,从0到1 —— 4.在 Combine 中使用通知
    Combine 框架,从0到1 —— 3.使用 Subscriber 控制发布速度
    Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布
    使用 Swift Package Manager 集成依赖库
    iOS 高效灵活地配置可复用视图组件的主题
    构建个人博客网站(基于Python Flask)
    Swift dynamic关键字
    Swift @objcMembers
    仅用递归函数操作逆序一个栈(Swift 4)
  • 原文地址:https://www.cnblogs.com/Amaranthus/p/1985164.html
Copyright © 2011-2022 走看看