ITPub博客

首页 > 数据库 > Oracle > 闪回数据库测试

闪回数据库测试

原创 Oracle 作者:卖灬柴的小男孩 时间:2016-08-10 13:23:00 0 删除 编辑
-- 检查环境

-- 检查归档模式是否开启
-- 如果未开启,启动数据库到 mount 状态下, 执行 alter database archivelog; 来开启数据库归档

点击(此处)折叠或打开

  1. SYS@RAC1> archive log list
  2. Database log mode     Archive Mode
  3. Automatic archival     Enabled
  4. Archive destination     USE_DB_RECOVERY_FILE_DEST
  5. Oldest online log sequence 7
  6. Next log sequence to archive 9
  7. Current log sequence     9
-- 检查闪回目录和容量大小的设定
-- 如果未开启,运行 alter system set db_recovery_file_dest_size = 值; 和 alter system set db_recovery_file_dest = '目录名称';

点击(此处)折叠或打开

  1. SYS@RAC1> show parameter db_recovery_file

  2. NAME                 TYPE     VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. db_recovery_file_dest         string     /u01/app/oracle/flash_recovery
  5.                          _area
  6. db_recovery_file_dest_size     big integer 4G
-- 检查闪回数据库
-- 如果 FLASHBACK_ON 参数不是 YES 状态, 需要在 mount 状态下执行 alter database flashback on;
-- 如果 FORCE_logging 参数不是 YES 状态, 直接执行 alter database force logging;

点击(此处)折叠或打开

  1. SYS@RAC1> select flashback_on, force_logging from v$database;

  2. FLASHBACK_ON       FOR
  3. ------------------ ---
  4. YES                YES
-- 创建测试表

点击(此处)折叠或打开

  1. SYS@RAC1> create table t as select * from scott.emp;

  2. Table created.
-- 查询表,并且,删除一定的数据,做测试准备

点击(此处)折叠或打开

  1. SYS@RAC1> select * from t;

  2.      EMPNO ENAME JOB     MGR HIREDATE         SAL    COMM     DEPTNO
  3. ---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
  4.       7369 SMITH CLERK     7902 1980-12-17 00:00:00     800         20
  5.       7499 ALLEN SALESMAN     7698 1981-02-20 00:00:00     1600     300     30
  6.       7521 WARD SALESMAN     7698 1981-02-22 00:00:00     1250     500     30
  7.       7566 JONES MANAGER     7839 1981-04-02 00:00:00     2975         20
  8.       7654 MARTIN SALESMAN     7698 1981-09-28 00:00:00     1250    1400     30
  9.       7698 BLAKE MANAGER     7839 1981-05-01 00:00:00     2850         30
  10.       7782 CLARK MANAGER     7839 1981-06-09 00:00:00     2450         10
  11.       7788 SCOTT ANALYST     7566 1987-04-19 00:00:00     3000         20
  12.       7839 KING PRESIDENT      1981-11-17 00:00:00     5000         10
  13.       7844 TURNER SALESMAN     7698 1981-09-08 00:00:00     1500     0     30
  14.       7876 ADAMS CLERK     7788 1987-05-23 00:00:00     1100         20
  15.       7900 JAMES CLERK     7698 1981-12-03 00:00:00     950         30
  16.       7902 FORD ANALYST     7566 1981-12-03 00:00:00     3000         20
  17.       7934 MILLER CLERK     7782 1982-01-23 00:00:00     1300         10
  18. SYS@RAC1> select sysdate from dual;

  19. SYSDATE
  20. -------------------
  21. 2016-08-10 11:08:05

  22. SYS@RAC1> delete t where deptno = 10;

  23. 3 rows deleted.

  24. SYS@RAC1> select * from t;

  25.      EMPNO ENAME JOB     MGR HIREDATE         SAL    COMM     DEPTNO
  26. ---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
  27.       7369 SMITH CLERK     7902 1980-12-17 00:00:00     800         20
  28.       7499 ALLEN SALESMAN     7698 1981-02-20 00:00:00     1600     300     30
  29.       7521 WARD SALESMAN     7698 1981-02-22 00:00:00     1250     500     30
  30.       7566 JONES MANAGER     7839 1981-04-02 00:00:00     2975         20
  31.       7654 MARTIN SALESMAN     7698 1981-09-28 00:00:00     1250    1400     30
  32.       7698 BLAKE MANAGER     7839 1981-05-01 00:00:00     2850         30
  33.       7788 SCOTT ANALYST     7566 1987-04-19 00:00:00     3000         20
  34.       7844 TURNER SALESMAN     7698 1981-09-08 00:00:00     1500     0     30
  35.       7876 ADAMS CLERK     7788 1987-05-23 00:00:00     1100         20
  36.       7900 JAMES CLERK     7698 1981-12-03 00:00:00     950         30
  37.       7902 FORD ANALYST     7566 1981-12-03 00:00:00     3000         20
-- 启动数据库到 mount 状态

点击(此处)折叠或打开

  1. SYS@RAC1> shutdown immediate
  2. Database closed.
  3. Database dismounted.
  4. ORACLE instance shut down.
  5. SYS@RAC1> startup mount exclusive;
  6. ORACLE instance started.

  7. Total System Global Area 830930944 bytes
  8. Fixed Size         2257800 bytes
  9. Variable Size         524291192 bytes
  10. Database Buffers     301989888 bytes
  11. Redo Buffers         2392064 bytes
  12. Database mounted.
-- 以时间戳的方式闪回数据库

点击(此处)折叠或打开

  1. SYS@RAC1> flashback database to timestamp(to_date('2016-08-10 11:07:56', 'yyyy-mm-dd hh24:mi:ss'));

  2. Flashback complete.
-- 启动数据库到 read only 模式,验证数据库恢复情况

点击(此处)折叠或打开

  1. SYS@RAC1> alter database open read only;

  2. Database altered.

  3. SYS@RAC1> select * from t;

  4.      EMPNO ENAME JOB     MGR HIREDATE     SAL COMM DEPTNO
  5. ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
  6.       7369 SMITH CLERK     7902 17-DEC-80     800          20
  7.       7499 ALLEN SALESMAN     7698 20-FEB-81     1600 300     30
  8.       7521 WARD SALESMAN     7698 22-FEB-81     1250 500     30
  9.       7566 JONES MANAGER     7839 02-APR-81     2975          20
  10.       7654 MARTIN SALESMAN     7698 28-SEP-81     1250 1400     30
  11.       7698 BLAKE MANAGER     7839 01-MAY-81     2850          30
  12.       7782 CLARK MANAGER     7839 09-JUN-81     2450          10
  13.       7788 SCOTT ANALYST     7566 19-APR-87     3000          20
  14.       7839 KING PRESIDENT      17-NOV-81     5000          10
  15.       7844 TURNER SALESMAN     7698 08-SEP-81     1500      0     30
  16.       7876 ADAMS CLERK     7788 23-MAY-87     1100          20
  17.       7900 JAMES CLERK     7698 03-DEC-81     950          30
  18.       7902 FORD ANALYST     7566 03-DEC-81     3000          20
  19.       7934 MILLER CLERK     7782 23-JAN-82     1300          10

  20. 14 rows selected.


-- 查询 scn 和时间戳的方法

点击(此处)折叠或打开

  1. SYS@RAC1> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

  2. Session altered.

  3. SYS@RAC1> SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME FROM V$FLASHBACK_DATABASE_LOG;

  4. OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI
  5. -------------------- -------------------
  6.              1072909 2016-08-10 09:41:39
-- scn恢复的命令

点击(此处)折叠或打开

  1. FLASHBACK DATABASE TO SCN_NUMBER;
-- 时间戳恢复命令

点击(此处)折叠或打开

  1. FLASHBACK DATABASE TO TIMESTAMP(TO_DATE('DATE','格式'));
  2. FLASHBACK DATABASE TO TIMESTAMP(系统时间-回滚时间)/






来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31369239/viewspace-2123266/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-07-02

  • 博文量
    12
  • 访问量
    11693