【实验-视频过程】闪回数据库Flashback database

一、打开闪回数据库


1、确保数据库处于归档模式,如果为非归档模式,将数据库转换成归档模式


SQL> select name,log_mode from v$database;

NAME      LOG_MODE
--------- ------------
ORCL      NOARCHIVELOG
SQL> select flashback_on from v$database;


FLASHBACK_ON
-------
NO

设置为归档模

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
Connected as SYS

档日志的路径

alter system set log_archive_dest_1='location=D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ONLINELOG';

alter system set log_archive_dest_2='location=D:\oracle\product\10.2.0\flash_recovery_area\ORCL\LOG2';

查看结果

show parameter log_archive_dest;

SQL> show parameter log_archive_dest;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string      
log_archive_dest_1                   string      location=D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ONLINELOG
log_archive_dest_10                  string      
log_archive_dest_2                   string      location=D:\oracle\product\10.2.0\flash_recovery_area\ORCL\LOG2
log_archive_dest_3                   string      
log_archive_dest_4                   string      
log_archive_dest_5                   string      
log_archive_dest_6                   string      
log_archive_dest_7                   string      
log_archive_dest_8                   string      
log_archive_dest_9                   string   

关闭数据库

shutdown immediate

启动数据mount状态:

set ORACLE_SID=ORCL

SQL> startup mount;

修改数据库为归档模式:

SQL> alter database archivelog;

打开数据库,查询:

SQL> alter database open;

修改日志文件命名格式:

SQL> alter system set log_archive_max_processes = 5;

SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;

检查是否成功

SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            D:\oracle\product\10.2.0\flash_recovery_area\ORCL\LOG2
最早的联机日志序列     6223
下一个存档日志序列   6225
当前日志序列           6225

切换一下当前日志 归档当前的重做日志文件

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

系统已更改。


2、设置闪回恢复区

设置闪回区大小:

SQL> alter system set db_recovery_file_dest_size=10g scope=spfile;

设置闪回区位置:

SQL> alter system set db_recovery_file_dest='D:\oracle\product\10.2.0\flash_recovery_area\' scope=spfile;

设置闪回目标为2天,以分钟为单位,每天为1440分钟:

SQL> alter system set db_flashback_retention_target=2880 scope=spfile;

3、打开闪回功能

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database flashback on;
SQL> alter database open;

4、确认数据库闪回特性已经启用
SQL> select flashback_on from v$database;

FLASHBACK_ON 
----------
YES

5、验证闪回数据库功能

alter user scott account unlock;

连接SCOTT用户

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
Connected as scott

删除表

SQL> drop table emp;

Table dropped

查看当前的SCN

select dbms_flashback.get_system_change_number from dual;

恢复到最老的SCN

SQL> select * from v$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- --------------------- ---------------- -------------- ------------------------
           159498340 2015/10/8 20:06:07                2880       15941632                        0

闪回操作

shutdown immediate;
startup mount;
flashback database to scn 159498340;
alter database open resetlogs;
----
conn scott/tiger;
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
DEPT                           TABLE   
EMP                            TABLE   
BONUS                          TABLE   
SALGRADE                       TABLE   

EMP表恢复成功


二、关闭闪回数据库特性:

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database flashback off;
SQL> alter database open;

三、按照时间戳来恢复

C:\Users\Administrator>sqlplus sys/oracle as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 108 23:05:54 2015

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

修改时间显示格式

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

查看当前时间

SQL> select sysdate from dual;

SYSDATE
-------------------
2015-10-08 23:07:27

切换scott用户

SQL> conn scott/tiger

删除测试表emp

SQL> drop table emp;

表已删除。

查看删除后的时间

SQL> select sysdate from dual;
SYSDATE
--------------
08-10月-15

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

会话已更改。注意:切换用户后,要重新设置日期格式

SQL> select sysdate from dual;

SYSDATE
-------------------
2015-10-08 23:08:17

开始闪回数据库 --按照时间


SQL> conn sys/oracle as sysdba
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 1610612736 bytes
Fixed Size                  2164384 bytes
Variable Size             597490016 bytes
Database Buffers         1006632960 bytes
Redo Buffers                4325376 bytes
数据库装载完毕。      

SQL>flashback database to timestamp to_timestamp('2015-10-08 22:07:27','yyyy-mm-dd hh24:mi:ss')  ;

闪回完成

read only 模式的时候可以检查 ,如果不对,回到mount模式接着恢复

SQL> alter database open read only;

数据库已更改。

SQL> select count(*) from scott.emp;

  COUNT(*)
----------
        14     

如果对了,启动数据库完成操作

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 1610612736 bytes
Fixed Size                  2164384 bytes
Variable Size             597490016 bytes
Database Buffers         1006632960 bytes
Redo Buffers                4325376 bytes
数据库装载完毕。
SQL> alter database open resetlogs;

数据库已更改。

resetlogs后就恢复工作了,不能恢复到resetlogs前面去了

视频参考
http://v.youku.com/v_show/id_XMTM1NTc2NzgyNA==.html

height="498" width="700" src="http://player.youku.com/embed/XMTM1NTc2NzgyNA==" allowfullscreen="">
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值