您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle 11g开启闪回功能Flashback

2025/3/26 15:20:34发布44次查看
在oracle的建库过程中,通常会提示是否开启闪回并指定闪回恢复区大小,我一般会选择不开启。这样,如果需要使用闪回功能,就需要
在oracle的建库过程中,通常会提示是否开启闪回并指定闪回恢复区大小,我一般会选择不开启。这样,如果需要使用闪回功能,就需要手动开启。
1.环境准备
我们在oracle11g上进行测试。
点击(此处)折叠或打开
sql> select * from v$version;
banner
--------------------------------------------------------------------------------
oracle database 11g enterprise edition release 11.2.0.3.0 - production
pl/sql release 11.2.0.3.0 - production
core 11.2.0.3.0 production
tns for linux: version 11.2.0.3.0 - production
nlsrtl version 11.2.0.3.0 - production
sql>
2.查询闪回功能是否开启
可以通过查询v$database视图的flashback_on字段来获取闪回功能的状态,该字段是一个布尔类型,yes表示开启,no表示未开启。
点击(此处)折叠或打开
sql>
sql> select flashback_on from v$database;
flashback_on
------------------
no
sql>
 3.开启归档功能 在开启闪回功能之前,我们必须首先开启数据库归档,,否则数据库会报错。
点击(此处)折叠或打开
sql>
sql> archive log list;
database log mode no archive mode
automatic archival disabled
archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
oldest online log sequence 16
current log sequence 20
sql>
sql> alter database flashback on;
alter database flashback on
*
error at line 1:
ora-38706: cannot turn on flashback database logging.
ora-38707: media recovery is not enabled.
sql>
ora-38706和ora-38707两个报错提醒我们要开启数据库归档,步骤如下;
点击(此处)折叠或打开
sql>
sql> alter database archive;
alter database archive
                    *
error at line 1:
ora-02231: missing or invalid option to alter database
sql> alter database archivelog;
alter database archivelog
*
error at line 1:
ora-01126: database must be mounted in this instance and not open in any
instance
sql> 
sql>
sql> shutdown immediate
database closed.
database dismounted.
oracle instance shut down.
sql>
sql> startup mount
oracle instance started.
total system global area 941600768 bytes
fixed size 1348860 bytes
variable size 536873732 bytes
database buffers 398458880 bytes
redo buffers 4919296 bytes
database mounted.
sql>
sql> alter database archivelog;
database altered.
sql>
sql> alter database open;
database altered.
sql>
sql> archive log list;
database log mode archive mode
automatic archival enabled
archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
oldest online log sequence 16
next log sequence to archive 20
current log sequence 20
sql>
sql>
4.开启闪回功能
4.1设置参数
闪回功能和两个初始化参数有关,我们先认识一下,其中,db_recovery_file_dest_size表示闪回恢复区大小,db_recovery_file_dest表示闪回恢复区路径。
点击(此处)折叠或打开
sql>
sql> show parameter db_recovery
name type value
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
sql>
在开启闪回功能前,必须设置这两个参数,而且,二者还有先后顺序,如果顺序搞错了系统也会报错并给出提示信息。
点击(此处)折叠或打开
sql>
sql> alter system set db_recovery_file_dest=\'/home/oracle/flashback\';
alter system set db_recovery_file_dest=\'/home/oracle/flashback\'
*
error at line 1:
ora-02097: parameter cannot be modified because specified value is invalid
ora-19802: cannot use db_recovery_file_dest without db_recovery_file_dest_size
sql>
sql> alter system set db_recovery_file_dest_size=2g;
system altered.
sql>
sql> alter system set db_recovery_file_dest=\'/home/oracle/flashback\';
system altered.
sql>
sql> show parameter db_recovery
name type value
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /home/oracle/flashback
db_recovery_file_dest_size big integer 2g
sql>
4.2开启闪回功能
需要注意的一点是,在10g中,如果要开启数据库级别的闪回,需要设置相关的参数,并且使数据库处于归档模式,然后再在mount状态下开启闪回。在11g中,如果设置了相关的参数及其开启了归档,那么可以再open状态下打开闪回。这也算是oracle 11g的一个新特性。
点击(此处)折叠或打开
sql>
sql> select status from v$instance;
status
------------
open
sql>
sql> alter database flashback on;
database altered.
sql>
sql> select flashback_on from v$database;
flashback_on
------------------
yes
sql>
这样,我们就开启了数据库闪回功能,进而可以实现闪回数据库等功能。
5.关闭闪回功能
关闭闪回功能十分简单,一条语句就能搞定。
点击(此处)折叠或打开
sql>
sql> alter database flashback off;
database altered.
sql> select flashback_on from v$database;
flashback_on
------------------
no
sql>
6.总结
从上面的过程来看,需要注意几点:
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product