|
闪回日志在哪里?
SQL> show parameter recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /orcldata/fast_recovery_area
db_recovery_file_dest_size big integer 4182M
recovery_parallelism integer 0
SQL> !
[william@orcl ~]$ cd /orcldata/fast_recovery_area/
ORCL
[william@orcl fast_recovery_area]$ cd ORCL/flashback/
[william@orcl flashback]$ pwd
/orcldata/fast_recovery_area/ORCL/flashback #这里就是闪回日志所在的位置
[william@orcl flashback]$ ls
o1_mf_b1htdog9_.flb o1_mf_b1htdt8x_.flb
恢复写入器是哪个?
[william@orcl ~]$ ps -ef|grep "william"
william 3128 1 0 09:11 ? 00:00:00 /opt/app/william/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -inherit
william 3221 1 0 09:11 ? 00:00:00 ora_pmon_orcl
william 3223 1 0 09:11 ? 00:00:00 ora_psp0_orcl
william 3225 1 0 09:11 ? 00:00:08 ora_vktm_orcl
william 3229 1 0 09:11 ? 00:00:00 ora_gen0_orcl
william 3231 1 0 09:11 ? 00:00:00 ora_diag_orcl
william 3233 1 0 09:11 ? 00:00:00 ora_dbrm_orcl
william 3235 1 0 09:11 ? 00:00:01 ora_dia0_orcl
william 3237 1 0 09:11 ? 00:00:00 ora_mman_orcl
william 3239 1 0 09:11 ? 00:00:00 ora_dbw0_orcl
william 3241 1 0 09:11 ? 00:00:00 ora_lgwr_orcl
william 3243 1 0 09:11 ? 00:00:00 ora_ckpt_orcl
william 3245 1 0 09:11 ? 00:00:00 ora_smon_orcl
william 3247 1 0 09:11 ? 00:00:00 ora_reco_orcl
william 3249 1 0 09:11 ? 00:00:01 ora_mmon_orcl
william 3251 1 0 09:11 ? 00:00:00 ora_mmnl_orcl
william 3253 1 0 09:11 ? 00:00:00 ora_d000_orcl
william 3255 1 0 09:11 ? 00:00:00 ora_s000_orcl
william 3262 1 0 09:11 ? 00:00:00 ora_rvwr_orcl #这个就是恢复写入器
william 3265 1 0 09:11 ? 00:00:00 ora_arc0_orcl
william 3267 1 0 09:11 ? 00:00:00 ora_arc1_orcl
william 3269 1 0 09:11 ? 00:00:00 ora_arc2_orcl
william 3271 1 0 09:11 ? 00:00:00 ora_arc3_orcl
william 3273 1 0 09:11 ? 00:00:00 ora_fbda_orcl
william 3275 1 0 09:11 ? 00:00:00 ora_qmnc_orcl
william 3289 1 0 09:11 ? 00:00:00 ora_cjq0_orcl
william 3435 1 0 09:11 ? 00:00:00 ora_q000_orcl
william 3437 1 0 09:11 ? 00:00:00 ora_q001_orcl
william 3500 1 0 09:16 ? 00:00:00 ora_smco_orcl
william 4285 1 0 10:36 ? 00:00:00 oracleorcl (LOCAL=NO)
william 4287 1 0 10:36 ? 00:00:00 oracleorcl (LOCAL=NO)
root 4292 2817 0 10:38 ? 00:00:00 sshd: william [priv]
william 4294 4292 0 10:38 ? 00:00:00 sshd: william@pts/0
william 4295 4294 0 10:38 pts/0 00:00:00 -bash
william 4377 1 0 10:46 ? 00:00:00 ora_w000_orcl
william 4460 4295 0 10:56 pts/0 00:00:00 ps -ef
william 4461 4295 0 10:56 pts/0 00:00:00 grep william
|
|
undo_management string AUTO #只有在自动回滚段管理的情况下才能使用闪回数据库?
undo_tablespace string UNDOTBS1 #默认的回滚表空间
db_recovery_file_dest string /orcldata/fast_recovery_area #指定闪回日志存储位置
db_recovery_file_dest_size
big integer 4182M
#指定db_recovery_file_dest的上限,与db_flashback_retention_target组合作用
db_flashback_retention_target integer 1440 #指定闪回日志支持的回滚时间的上限(单位min),与db_recovery_file_dest_size组合作用
|
|
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /orcldata/archivelog
Oldest online log sequence 3
Next log sequence to archive 5
Current log sequence 5
SQL> alter system set db_recovery_file_dest='/orcldata/fast_recovery_area';
System altered.
SQL> alter system set db_recovery_file_dest_size=4182M;
System altered.
SQL> alter system set db_flashback_retention_target=1440;
System altered.
SQL> show parameter undo_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
SQL> alter database flashback on;
Database altered.
|
|
最基本的层次是确认确实启用了闪回数据库:
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
在Unix/Linux上可以看到RVWR进程是一个操作系统进程;在Windows上它将是ORACLE.EXE内的另一个线程。
为了监视当前的闪回能力并估计为满足目标时间闪回日志所需的空间,可以查询V$FLASHBACK_DATABASE_LOG视图。V$FLASHBACK_DATABSE_STAT提供了一个有关数据文件、联机重做日志文件盒闪回日志文件所占磁盘I/O比例的历史视图。
SQL>
select
retention_target,flashback_size,to_char(oldest_flashback_time,'yyyy-mm-dd
hh24:mi:ss') from v$flashback_database_log;
RETENTION_TARGET FLASHBACK_SIZE TO_CHAR(OLDEST_FLAS
---------------- -------------- -------------------
1440 209715200 2014-09-17 11:29:10
RETENTION_TARGET:闪回日志保留目标时间(1440min)
FLASHBACK_SIZE:闪回日志文件占用的实际空间(209715200字节)
oldest_flashback_time:可以把数据库回退到的确切时间(2014-09-17 11:29:10)
SQL>
select to_char(end_time,'yyyy-mm-dd hh24:mi:ss')
end_time,flashback_data,db_data,redo_data from
v$flashback_database_stat;
END_TIME FLASHBACK_DATA DB_DATA REDO_DATA
------------------- -------------- ---------- ----------
2014-09-17 12:52:49 278528 188416 112128
2014-09-17 12:44:35 4767744 7028736 2294784
显示为了启用闪回数据库而付出的代价,计量单位是每小时必需的I/O字节数。首行总是显示到当前时间为止。
Flashback_data:每小时产生的闪回日志大小
Db_data:每小时产生的数据文件大小
Redo_data:每小时产生的重做日志大小
SQL> select * from v$sgastat where name='flashback generation buff';
POOL NAME BYTES
------------ -------------------------- ----------
shared pool flashback generation buff 15937344 #≈15M
闪回缓冲区的大小不受DBA控制,但是要查看其当前大小,查询V$SGASTAT视图。
|
|
SQL> conn hr/hr
Connected.
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2014-09-17 11:32:19
SQL> desc employees
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> update employees set last_name='WENG' where employee_id=199;
1 row updated.
SQL> commit;
Commit complete.
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2253784 bytes
Variable Size 1023413288 bytes
Database Buffers 620756992 bytes
Redo Buffers 7094272 bytes
Database mounted.
SQL> flashback database to timestamp to_timestamp('2014-09-17 11:32:19','yyyy-mm-dd hh24:mi:ss');
Flashback complete.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
Database altered.
SQL> conn hr/hr
Connected.
SQL> select * from employees where employee_id=199;
EMPLOYEE_ID
FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER
HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID
DEPARTMENT_ID
-----------
-------------------- -------------------------
------------------------- -------------------- ------------ ----------
---------- -------------- ---------- -------------
199 Douglas Grant DGRANT 650.507.9844
13-JAN-08 SH_CLERK 2600 124 50
|
|
SCOTT@orcl>drop table bonus;
Table dropped.
SCOTT@orcl>show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
BONUS BIN$A6Kgm8gMEePgUwEAAH++3A==$0 TABLE 2014-09-22:14:37:16
SCOTT@orcl>flashback table "BIN$A6Kgm8gMEePgUwEAAH++3A==$0" to before drop;
Flashback complete.
SCOTT@orcl>desc bonus
Name Null? Type
----------------------------------------- -------- ----------------------------
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
SAL NUMBER
COMM NUMBER
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29209863/viewspace-2128254/ ,如需转载,请注明出处,否则将追究法律责任。