You are on page 1of 10

北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.

com

时代朝阳会员专区:Oracle 日常管理
闪回数据库

工作目标
1 在启动闪回数据库后,recover writer(RVWR)写进程将定期的把发生变化的数据块
写到闪回日志里,闪回日志是在闪回恢复区自动生成的,而不需要管理员进行维
护。因此,闪回数据库可以无需使用备份而使数据库快速恢复到误操作前的一个
时间点或者 SCN 状态。当然,可以闪回的时间范围和闪回恢复区大小以及设定的
闪回数据保存时间都有关系。

达成的目标/方案
1 闪回数据库需要的设置
2 使用闪回数据库恢复用户的误操作

软硬件系统配置
配置说明:

1 硬件环境:1G 内存、本地存储、NAS 存储
C:\Documents and Settings>hostname
winserv4
C:\Documents and Settings>ipconfig

Windows IP Configuration

Ethernet adapter 本地连接:

Connection-specific DNS Suffix . :


IP Address. . . . . . . . . . . . : 192.168.3.99
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
2 软件环境:操作系统:Windows

时代朝阳会员专区 第 1 页
www.zhaoyang-db.com/huiyuan
北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.com

数据库版本:Oracle10g Release 10.2.0.1.0

3 C:\:第一块硬盘,安装操作系统
数据库安装:C:\oracle\product\10.2.0\db_1
Z:\:闪回恢复区 :z:\flash_area
4 用户信息(用户名/口令):
Oracle:sys/oracle as sysdba
system/oracle
5 Oracle 安装信息:

数据实例名 Sdzy(ORACLE_SID)
数据库连接模式确定 独占模式
数据文件位置 文件系统模式:
C:\oracle\product\10.2.0\oradata\sdzy
日志文件位置 文件系统模式:
C:\oracle\product\10.2.0\oradata\sdzy
控制文件位置 文件系统模式:
C:\oracle\product\10.2.0\oradata\sdzy
参数文件位置 C:\oracle\product\10.2.0\db_1\dbs
口令文件位置 C:\oracle\product\10.2.0\db_1\dbs
跟踪文件位置 C:\oracle\product\10.2.0\admin\sdzy\ bdump
C:\oracle\product\10.2.0\admin\sdzy\ udump
C:\oracle\product\10.2.0\admin\sdzy\ cdump
是否归档模式 是
回闪工作区 Z:\flash_area
审计数据存放目录 C:\oracle\product\10.2.0\admin\sdzy\ adump
数据库用户 sys/oracle SYSDBA
system/oracle

时代朝阳会员专区 第 2 页
www.zhaoyang-db.com/huiyuan
北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.com

scott/tiger

详细操作过程描述
1 配置闪回数据库
1)确保数据库处于归档模式

C:\Documents and Settings>sqlplus "/as sysdba"


SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 1 月 8 11:41:16 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> connect / as sysdba


Connected.
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 3
下一个存档日志序列 5
当前日志序列 5

2)配置快速恢复区(未配置)

SQL> show parameter recovery_file;

时代朝阳会员专区 第 3 页
www.zhaoyang-db.com/huiyuan
北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.com

NAME TYPE VALUE


------------------------------------ -----------
------------------------------
db_recovery_file_dest string
C:\oracle\product\10.2.0/flash
_recovery_area
db_recovery_file_dest_size big integer 200G

3)设置保留时间

SQL> alter system set db_flashback_retention_target=2880


2 scope=both;
System altered.

SQL> show parameter flashback


NAME TYPE VALUE
------------------------------------ ----------- ----------
db_flashback_retention_target integer 2880

SQL> alter system set db_recovery_file_dest='z:\flash_area' scope=both;


系统已更改。
SQL> show parameter recovery_file;

NAME TYPE VALUE


------------------------------------ ----------- ----------------------
db_recovery_file_dest string z:\flash_area
db_recovery_file_dest_size big integer 200G
SQL>

时代朝阳会员专区 第 4 页
www.zhaoyang-db.com/huiyuan
北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.com

4)启动闪回数据库
SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
NO

SQL> shutdown immediate


数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。.

SQL> startup mount


ORACLE 例程已经启动。

Total System Global Area 612368384 bytes


Fixed Size 1250428 bytes
Variable Size 192940932 bytes
Database Buffers 411041792 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> alter database flashback on;

数据库已更改。

时代朝阳会员专区 第 5 页
www.zhaoyang-db.com/huiyuan
北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.com

SQL> alter database open;


数据库已更改。

SQL> select flashback_on from v$database;


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

2 查询能够闪回的最低的 SCN 及时间

SQL> select oldest_flashback_scn,


2 to_char(oldest_flashback_time,'yyyy-mm-dd hh24:mi:ss')
3 from v$flashback_database_log;

OLDEST_FLASHBACK_SCN TO_CHAR(OLDEST_FLAS
-------------------- -------------------
625172 2008-01-08 13:32:04

时代朝阳会员专区 第 6 页
www.zhaoyang-db.com/huiyuan
北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.com

3 模拟错误删除 SCOTT 用户:


1)查看当前系统时间

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')


2 from dual;

TO_CHAR(SYSDATE,'YY
-------------------
2008-01-08 13:34:50

2)查看数据库用户

SQL> select username from dba_users where username like '%SCOTT%';

USERNAME
------------------------------
SCOTT

3)删除数据库用户 SCOTT

SQL> drop user scott cascade;


用户已删除。

时代朝阳会员专区 第 7 页
www.zhaoyang-db.com/huiyuan
北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.com

4 闪回数据库以恢复被删除的用户 SCOTT,参见前面第三步中查询的时间。

SQL> shutdown immediate;


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

Total System Global Area 612368384 bytes


Fixed Size 1250428 bytes
Variable Size 197135236 bytes
Database Buffers 406847488 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。

SQL> flashback database to timestamp(


2 to_date('2008-01-08 13:34:50','yyyy-mm-dd hh24:mi:ss'));
闪回完成。

SQL> alter database open resetlogs;

数据库已更改。

时代朝阳会员专区 第 8 页
www.zhaoyang-db.com/huiyuan
北京时代朝阳数据库技术中心 Trail 实验室 www.zhaoyang-db.com

5 验证

SQL> select username from dba_users where username like '%SCOTT%';

USERNAME
------------------------------
SCOTT

被删除的用户 SCOTT 得以恢复。

体会与总结
本实践包含了以下几个方面的内容:
1 配置闪回数据库;
2 利用闪回数据库特性来恢复人为的误操作(删除了 scott 模式)。

时代朝阳会员专区 第 9 页
www.zhaoyang-db.com/huiyuan

You might also like