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

Oracle数据库的闪回恢复区及多归档路径的设置

2024/4/19 18:44:25发布15次查看
oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过undo实现的。这个功能有很大的限制,就是
oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过undo实现的。这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了。oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力,这是通过引入一种新的flashback log实现的。flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback log则将数据库往后滚。为了保存管理和备份恢复相关的文件,oracle10g提供了一个叫做闪回恢复区(flashback recovery area)的新特性,可以将所有恢复相关的文件,比如flashback log,archive log,backup set等,放到这个区域集中管理。
1.设置闪回恢复区
闪回恢复区主要通过3个初始化参数来设置和管理
db_recovery_file_dest:指定闪回恢复区的位置
db_recovery_file_dest_size:指定闪回恢复区的可用空间大小
db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的 flash log。所以这个参数要和db_recovery_file_dest_size配合修改。
2.启动flashback database
设置了闪回恢复区后,可以启动闪回数据库功能。
首先,数据库必须已经处于归档模式
那么如何设置归档呢?很简单的步骤
1.关闭数据库
sql> shutdown immediate;
2.启动数据库为mount模式
sql> startup mount
3.显示和修改归档模式
sql> archive log list
sql> alter database archivelog;
sql> alter database open
4.设置归档日志的格式
sql>alter system set log_archive_format='arc%s%t%r.log' scope=spfile;
5.设置归档日志的存放路径
sql>alter system set log_archive_dest='+data/arcl' scope=spfile;
sql>shutdown immediate
sql>startup
6.强制切换归档日至
sql>alter system switch logfile;
7.取消归档
sql>alter database noarchivelog;
参数
1.格式参数
%s 日志序列号
%s 日志序列号(带前导的0)
%t 重做线程编号
%a 活动的id号
%d 数据库id号
%r reselogs的id值
sql> archive log list;
database log mode              archive mode
automatic archival             enabled
archive destination            use_db_recovery_file_dest
oldest online log sequence     156
next log sequence to archive   158
current log sequence           158
然后,启动数据库到mount状态
sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup mount
oracle instance started.
total system global area 285212672 bytes
fixed size                  1218992 bytes
variable size              75499088 bytes
database buffers          205520896 bytes
redo buffers                2973696 bytes
database mounted.
sql>alter database flashback on;
数据库已更改。
sql> alter database open;
数据库已更改。
sql>selectflashback_onfrom v$database;
flashback_on
------------------------------------
yes
3.取消闪回恢复区
将db_recovery_file_dest参数设置为空,可以停用闪回恢复区。
如果已经启用flashback database,则不能取消闪回恢复区。
sql> alter system set db_recovery_file_dest='';
alter system set db_recovery_file_dest=''
*
第 1 行出现错误:
ora-02097: 无法修改参数, 因为指定的值无效
ora-38775: 无法禁用快速恢复区 - 闪回数据库已启用
所以,,必须先禁用flashback database,才能取消闪回恢复区
sql> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
oracle 例程已经关闭。
sql> startup mount;
oracle 例程已经启动。
total system global area 142606336 bytes
fixed size 1247732 bytes
variable size 83887628 bytes
database buffers 50331648 bytes
redo buffers 7139328 bytes
数据库装载完毕。
sql>alter database flashback off;
数据库已更改。
sql> alter database open;
数据库已更改。
sql> alter system set db_recovery_file_dest='';
系统已更改。
4.闪回恢复区的内容
所有和恢复相关的文件都可以存放到闪回恢复区
sql>select file_type from v$flash_recovery_area_usage;
file_type
------------------------
controlfile
onlinelog
archivelog
backuppiece
imagecopy
flashbacklog
已选择6行。
上面的视图中可以看出,包括controfile,online redo logfile,archive logfile,rman backup
piece,rman image copy, flashback log等,都可以利用闪回恢复区来存放、管理。
5.闪回恢复区的一些限制
如果设置了闪回恢复区,则log_archive_dest和log_archive_duplex_dest将不可用
alter system set log_archive_dest='e:/'
*
第 1 行出现错误:
ora-02097: 无法修改参数, 因为指定的值无效
ora-16018: 无法将 log_archive_dest 与 log_archive_dest_n 或
db_recovery_file_dest 一起使用
sql> alter system set log_archive_duplex_dest='e:/';
alter system set log_archive_duplex_dest='e:/'
*
第 1 行出现错误:
ora-02097: 无法修改参数, 因为指定的值无效
ora-16018: 无法将 log_archive_duplex_dest 与 log_archive_dest_n 或
db_recovery_file_dest 一起使用
该用户其它信息

VIP推荐

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