[置顶] 【实验-视频过程】闪回数据库Flashback database
2015-10-08 21:06
633 查看
一、打开闪回数据库
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 星期四 10月 8 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
相关文章推荐
- mysql学习笔记(3)-其他性能优化方法
- Oracle-oracleSQL对单表各种查询操作及函数的使用
- mysql学习笔记(2)-创建MySQL索引
- mysql的collation
- 操作MySQL数据库
- Mysql创建后表的修改
- redis 主从切换
- mysql 安装配置相关
- sql server2012光盘中有management studio,安装时选择客户端。
- ThinkPHP 7.使用redis扩展
- redis的持久化
- 【mongoDB高级篇③】综合实战(1): 分析国家地震数据
- 数据库的命令行操作
- SQL Server无法打开用户默认数据库,登录失败,用户‘sa’登录失败,错误:4064的解决方法
- 数据库事务隔离级别与索引的优化
- Mysql常用功能操作实现
- 应用迁移,流量切换,数据切换. mysql 同步. 同构,异构两种情况分析.
- 常见的MySQL命令大全
- 由Typeahead想到的搜索的本质,和OO和数据库是统一的
- SQL Server基础--SQL语句