闪回与归档的相关测试 详见博客:http://www.cnblogs.com/hellojesson/p/7050097.html

数据库在归档模式下的管理 详见博客:http://www.cnblogs.com/hellojesson/p/7182219.html

场景描述:

本地数据库 当前运行在非归档模式 没有开启闪回功能!!!

我们要做的操作是将:数据库切换在归档模式 ,开启数据库的闪回功能;

并且:自定义闪回恢复区路径以及大小 自定义归档日志存放路径。

补充一个操作说明:其实可以参照oracle默认的配置,将归档日志存放在闪回区的指定路径中,这里是为了说明,归档是可以自己定义指定目录存放的,因此下文中的操作,将归档日志放在了和闪回不同的目录!!!

在ORACLE10g和11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLE_BASE/flash_recovery_area)。对于这个路径,ORACLE有一个限制,就是默认只有2G的空间,而且不只是归档日志的默认路径,也是备份文件和闪回日志的默认地址,
这样的话归档日志所使用的空间就达不到2G,在没有设置好这个路径大小的情况下,很多系统都遇到过归档日志满,无法归档而导致数据库夯住的问题。虽然闪回恢复区ORACLE会自动管理,即闪回恢复区空间不足就会清理掉没用的数据,但是如果备份策略不是很完善,数据库非常繁忙的情况下,还是有可能遇到无法归档导致数据库夯住的问题,这时候通常需要修改归档日志的路径,将归档日志放到其他不受限制的路径下来解决这个问题,这种情况下就可通过下面操作来实现。

确认当前系统环境:  没有开启归档  没有开启闪回

SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 6
Current log sequence 8 SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO

(1) 首先设置 归档日志路径  设置归档日志存放格式

SQL> alter system set log_archive_dest_1='location=/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch';
System altered. SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Oldest online log sequence 6
Current log sequence 8

打开归档模式

SQL> alter database archivelog;
Database altered.

修改日志文件命名格式:

SQL> alter system set log_archive_max_processes = 5;

SQL> alter system set log_archive_format = "%t_%s_%r.dbf" scope=spfile;
--- 注意: 上方的%t_%s_%r.dbf命名格式,10g之后必须包含%t %s %r否则后续会报错!!!
出现:“ORA-19905:log_archive_format must contain %s,%t and %r”错误,实例将无法启动。 SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Oldest online log sequence 6
Next log sequence to archive 8
Current log sequence 8

(2) 开启闪回:

SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38709: Recovery Area is not enabled.
---如果出现上述 报错 需要先在数据库层面创建:闪回的路径 并指定空间大小
(有网友说这块必须得先设置空间大小再指定路径,否则报错,我这块暂没有遇到这种情况,如果提示相关错误的话,下方的操作,就先设置闪回空间大小,再指定路径),
另外还需要在操作系统层面创建相应的目录; 参考下方相关操作!!!然后再回来执行上述打开闪回的命令。

(3) 然后 设置闪回路径 设置闪回路径大小  设置闪回保存策略

设置闪回区位置:

SQL> alter system set db_recovery_file_dest='/home/oracle/u01/app/oracle/flashback_area' scope=spfile;

操作系统层面创建闪回相关目录:

[oracle@dbserver oracle]$ mkdir -p /home/oracle/u01/app/oracle/flashback_area

设置闪回路径大小

alter system set db_recovery_file_dest_size=30g scope=spfile;

设置闪回目标为5天,以分钟为单位,oracle默认1440分钟,即一天)

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

SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Oldest online log sequence 6
Next log sequence to archive 8
Current log sequence 8 SQL> select open_mode,flashback_on from v$database;
OPEN_MODE FLASHBACK_ON
-------------------- ------------------
MOUNTED YES

(4) 重启数据库

查看相关配置是否生效

SQL> select open_mode,flashback_on from v$database;
OPEN_MODE FLASHBACK_ON
-------------------- ------------------
MOUNTED YES SQL> alter database open;
SQL> shutdown immediate
SQL> startup SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Oldest online log sequence 6
Next log sequence to archive 8
Current log sequence 8 SQL> select open_mode,flashback_on from v$database;
OPEN_MODE FLASHBACK_ON
-------------------- ------------------
READ WRITE YES

查看闪回恢复区的配置

SQL> show parameter db_recovery

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /home/oracle/u01/app/oracle/account_flashback_area
db_recovery_file_dest_size big integer 5G
检查flash recovery area的使用情况,查看archivelog
SQL> set linesize 200
SQL> set pagesize 80
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE; FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE 0 0 0
REDO LOG 0 0 0
ARCHIVED LOG 0 0 0
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 1.95 0 2
FOREIGN ARCHIVED LOG 0 0 0
7 rows selected.

计算flash recovery area已经占用的空间

SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
SUM(PERCENT_SPACE_USED)*3/100
-----------------------------
.0585 SQL> select archiver from v$instance; ARCHIVE
-------
STARTED SQL> select name from v$archived_log;
NAME
-----------------------------------------------------------------------------
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_6_947091054.dbf

强制切换归档:

SQL> alter system switch logfile;
System altered. SQL> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_6_947091054.dbf
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch_1_8_947091054.log SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /home/oracle/u01/app/oracle/fl
ashback_area
db_recovery_file_dest_size big integer 30G

补充个发现:
当选择oracle默认的配置,将归档日志存放在闪回区之后,生成的归档日志,是以日期为文件夹,并且日志后缀名为.arc,
而如果归档日志是自定义指定的存放路径,那么归档日志文件是以定义的日志格式存放的,后缀名为.bdf。

SQL> col name for a100
SQL> select recid, name, first_time from v$archived_log; RECID NAME FIRST_TIME
---------- ---------------------------------------------------------------------------------------------------- -------------------
1 /home/oracle/u01/app/oracle/archivelog/1_6_950980202.dbf 2017-08-02 17:10:47
2 /home/oracle/u01/app/oracle/archivelog/1_7_950980202.dbf 2017-08-03 10:13:28
3 /home/oracle/u01/app/oracle/archivelog/1_8_950980202.dbf 2017-08-03 11:48:58
4 /home/oracle/u01/app/oracle/archivelog/1_9_950980202.dbf 2017-08-03 11:49:47
5 /home/oracle/u01/app/oracle/flashback_area/ORCL/archivelog/2017_08_03/o1_mf_1_10_dr5lkd29_.arc 2017-08-03 14:44:51
6 /home/oracle/u01/app/oracle/flashback_area/ORCL/archivelog/2017_08_03/o1_mf_1_11_dr5lm0og_.arc 2017-08-03 15:01:00
7 /home/oracle/u01/app/oracle/flashback_area/ORCL/archivelog/2017_08_03/o1_mf_1_12_dr5lqxsh_.arc 2017-08-03 15:01:52
8 /home/oracle/u01/app/oracle/flashback_area/ORCL/archivelog/2017_08_03/o1_mf_1_13_dr5lstob_.arc 2017-08-03 15:04:29

oracle 闪回、归档的设置建议的更多相关文章

  1. Oracle 闪回归档(Flashback Data Archive)

    --检查权限 SELECT * FROM dba_sys_privs WHERE privilege LIKE '%FLASH%'; --设置权限 GRANT dba TO testuser;--设置 ...

  2. Oracle 闪回归档(Flashback Database)

    cmd --管理员身份打开 sqlplus / as sysdba --管理数据库 shu immediate; --独占方式开始 startup mount --修改日期模式 alter datab ...

  3. oracle闪回、闪回数据归档Flashback Data Archive (Oracle Total Recall)的真正强大之处、11gR2增强以及合理使用

    oracle的闪回很早就出来了,准确的说一直以来应该都较少被真正用户广为使用,除了dba和极少部分开发人员偶尔用于逻辑出错.误删恢复之外,较少被用于产生更有价值的用途. 各种闪回表flashback ...

  4. [Oracle]Oracle的闪回归档

    Oracle的闪回归档 场景需求,由于管理数据库的一些核心表,在实施初期会有人为误删除的问题.Oracle 11gR2提供了闪回归档的特性,可以保证不用RMAN来恢复误删除的数据.实践如下: 1.创建 ...

  5. Oracle 闪回

    Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...

  6. Oracle闪回技术详解

     概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速 ...

  7. Oracle 闪回特性(FLASHBACK DATABASE)

    --===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...

  8. oracle闪回表详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  9. 6. Oracle闪回特性

    Oracle 闪回 (flashback)是9i版本提供的新特性.这一特性:其他数据库(PostgreSQL,Mysql)是羡慕不已.对数据恢复提供非常便捷的方式.闪回技术通常用于快速简单恢复数据库中 ...

随机推荐

  1. centos7 新增ip

    1.进入network-scripts目录:cd /etc/sysconfig/network-scripts/ 2.复制ifcfg-eth0: cp ifcfg-eth0 ifcfg-eth0:0 ...

  2. s5-13 RIP 为什么会 衰败

    DV路由可能遇到的问题 路由环路( routing loop) 计数到无穷问题( Count to infinite) 收敛慢的问题( slow Convergence ) 相信错误的路由信息导致 好 ...

  3. math.net 拟合

    参考:http://blog.csdn.net/ztmsimon/article/details/50524392 在论坛中总看到有人在说Math.NET Iridium,查了一下,现在被整合到Mat ...

  4. windows10; ERROR 1010 (HY000): Error dropping database (can't rmdir './test/', errno: 17);默认数据库位置查找

    1.想要导入数据到一个数据库中,但是,无法导入,同时也无法删除数据库重新建立-----------------------------备份当前数据库 2,分析:很多资料显示说数据库下有异常文件,于是就 ...

  5. readystatechange事件

    IE为DOM文档中的某些部分readystatechange事件. 这个事件的目的是提供与文档或元素的加载状态有关的信息,但是这个事件的行为有时候也很难预测. 支持readystatechange事件 ...

  6. leaflet入门(五)API翻译(下)

    L.PointConstructor(函数构造器)Properties(属性)Methods(方法) L.BoundsConstructor(函数构造器)Properties(属性)Methods(方 ...

  7. winSockets编程(七)WSAAsyncSelect模式

    占位## #include <WinSock2.h> #include <Windows.h> #include <StrSafe.h> #pragma comme ...

  8. linux搭建简易版本的FastDFS服务器

    开发环境:centos7环境 搭建FastDFS集群搭建非常复杂,对于初期学习FastDFS来说,搭建个单机版的作为入门更为实际一些. 首先感谢“在京奋斗者“”博主的详细搭建过程,附上博客地址http ...

  9. Mysql之数据库操作

    数据库操作: 链接数据库: mysql -uroot -p masql -uroot -pmysql 退出数据库: exit/quit/ctrl + d   sql语句最后需要分号结尾: 查看时间: ...

  10. RecyclerView怎么能没有ItemClickListener?加一个!

    RecyclerView可以用来代替ListView来展现大量的数据.Google在RecyclerView中提升了性能,和更多好用的API. 简单介绍RecyclerView 使用RecyclerV ...