Oracle 10g中增加了一个新特性: flash recovery area 闪回恢复区。因此,在安装oracle数据库时默认会启用闪回恢复区,主要用来存放归档日志,rman备份集,控制文件,spfile文件等等。
闪回恢复区由两个参数控制:db_recovery_file_dest和db_recovery_file_dest_size. 前者是存储位置,后者是存储的大小。
数据库非归档――>归档:
一旦有了闪回恢复区, 我们将数据库从非归档变为归档就变得非常容易。 只需将数据库设置为mount状态,然后设alter database archivelog; alter database open;就可以了。
db_recovery_file_dest_size参数控制:
这个参数主要是控制闪回区大小的。既是磁盘空间足够大,但是如果db_recovery_file_dest_size设置为1G,那么一旦闪回区的文件达到1G之后,就不会再增加了; 严重的话,会导致数据库的挂起。
如何解决这个问题呢? 如果简单认为将db_recovery_file_dest指定目录中的文件清空就可以解决的话, 那么你就大错特错了。因为你rm *只是告知os清空目录, 可是oracle并不知道你已经清空。你可以试试在sqlplus中, 看一下SELECT NAME, space_limit, space_used FROM v
r
e
c
o
v
e
r
y
f
i
l
e
d
e
s
t
;
结
果
显
示
你
的
s
p
a
c
e
u
s
e
d
并
没
有
减
少
。
怎
么
让
它
减
少
呢
?
这
就
要
用
到
r
m
a
n
了
。
首
先
连
接
进
入
r
m
a
n
,
检
查
一
下
目
前
的
归
档
日
志
的
情
况
(
l
i
s
t
a
r
c
h
i
v
e
l
o
g
a
l
l
;
)
如
果
磁
盘
上
的
归
档
日
志
文
件
已
经
被
o
s
删
除
,
那
么
还
需
要
c
r
o
s
s
c
h
e
c
k
一
下
(
c
r
o
s
s
c
h
e
c
k
a
r
c
h
i
v
e
l
o
g
a
l
l
;
)
。
然
后
就
可
以
删
除
了
(
c
h
a
n
g
e
a
r
c
h
i
v
e
l
o
g
a
l
l
d
e
l
e
t
e
;
)
这
时
候
你
在
检
查
一
下
v
recovery_file_dest; 结果显示你的space_used并没有减少。 怎么让它减少呢? 这就要用到rman了。 首先连接进入rman,检查一下目前的归档日志的情况(list archivelog all;)如果磁盘上的归档日志文件已经被os删除, 那么还需要crosscheck一下(crosscheck archivelog all;)。 然后就可以删除了(change archivelog all delete;) 这时候你在检查一下v
recoveryfiledest;结果显示你的spaceused并没有减少。怎么让它减少呢?这就要用到rman了。首先连接进入rman,检查一下目前的归档日志的情况(listarchivelogall;)如果磁盘上的归档日志文件已经被os删除,那么还需要crosscheck一下(crosscheckarchivelogall;)。然后就可以删除了(changearchivelogalldelete;)这时候你在检查一下vrecovery_file_dest视图,就可以发现space_used已经清空了。
[oracle] flash recovery area 闪回恢复区
最新推荐文章于 2023-06-05 19:05:28 发布