加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle数据库备份和规复设置详解

发布时间:2021-03-22 12:49:19 所属栏目:站长百科 来源:网络整理
导读:本文Oracle报告了数据库备份和规复设置的详解进程,也许的失败及其办理要领。 ? 失莠民型 ? 碰着的失败或错误分为两大类:物理和逻辑。物理错误一样平常是硬件错误或行使数据库的应用措施中的软件错误,而逻辑错误一样平常在终端用户级别(数据库用户和打点员)。 ?
操纵 从缓存中革新哪些缓存区 使表空间脱机 表空间中的全部块 使数据文件脱机 数据文件中的全部块 删除区间 区间中的全部块 截断表 表中的全部块 将表空间置于备份模式 表空间中的全部块 用RMAN备份数据文件 数据文件中的全部块

?

掩护联机重做日记文件


?

Oracle数据库运行时至少必要两个联机重做日记文件组, 从而可以或许在两个组之间举办切换。思量到机能身分,也许必要添加更多的联机重做日记文件组,但两组是必须的。每个组都由一个或多个成员构成,这些成员是物理文件。运行Oracle数据库只要求每个组有一个成员,可是为了安详起见,每个组至少都该当具有两个成员。

?

DBA不应承丢失当前联机日记文件组的全部备份。假如呈现这种环境,就会丢失数据。在丢失当前联机日记文件组的素有成员时,不丢失数据的独一要领是,设置一个无数据 丧失的Data Guard情形,不外较量伟大。为什么说不丢失但钱联机日记文件组的全部成员直观重要呢?谜底与实例规复有关。实例瓦解后,SMON历程会行使当前联机日记文件组的内容举办前滚规复,从而修复数据库中的任何破坏。假如当前联机日记文件组不行同,也许是因为未被多路复用,一个成员因介质受损而被粉碎,那么SMON历程无法举办前滚规复。假如SMON历程无法通过前滚批改数据库的破坏,那么不能打开数据库。

?

假如重做日记文件组的一个成员被破坏或丢失,那么数据库在存在备份成员的环境下,如故会保持打开状态。这与节制文件差异,节制文件任何副本的破坏城市使数据库当即瓦解。同样,只要存在至少两个重做日记文件组,每个组都至少有一个有用的成员,那么在数据库打开时,也可以添加或移动重做日记文件组以及组中的成员。

?

在打开数据库时,无须停机,联机重做日记就可以从头设置,而数据库在非加载模式下或完全封锁时,才气执行节制文件中的操纵。

?

V$LOG视图给每个组表现一行,V$LOGFILE视图给每个日记文件成员表现一行。

?

[email?protected] prod>select group#,sequence#,members,status from v$log;
GROUP# SEQUENCE# MEMBERS STATUS---------- ---------- ---------- ---------------- 1 10 1 CURRENT 2 8 1 INACTIVE 3 9 1 INACTIVE
[email?protected] prod>select group#,status,member from v$logfile;
GROUP# STATUS MEMBER---------- ------- ------------------------------ 3 /u01/oradata/prod/redo03.log 2 /u01/oradata/prod/redo02.log????????1????????/u01/oradata/prod/redo01.log
[email?protected]?prod>alter?system?switch?logfile;
System?altered.
[email?protected]?prod>select?group#,status?from?v$log;
GROUP# SEQUENCE# MEMBERS STATUS---------- ---------- ---------- ---------------- 1 10 1 ACTIVE 2 11 1 CURRENT????????3??????????9??????????1?INACTIVE[email?protected]?prod>

?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

然而,假如DBWn历程在实例瓦解前将某些数据块写入磁盘,那么又将呈现奈何的环境呢?John(可能另一个用户)也许频仍地从头查询与其相干的数据,而Joo对数据举办了未提交的变动,而且不再查察这些数据。因此,DBWn历程将确定在磁盘上优先写入Joo所做的改观,然后再写入John所做的改观。DBWn历程老是会在磁盘上先写入不活泼的数据块,然后再写入活泼的数据块。因此,此时数据文件中存储了JOO的未提交事宜,可是丢失了John的已提交事宜。这是最糟糕的破坏范例。不外颠末细心思量可以发明:纵然此时实例瓦解,前滚如故可以或许办理这个题目。重做流中始终存在从头构建已提交改观所需的足够信息,其缘故起因显而易见,由于提交操纵在DBWn历程完成写入之前不会竣事。不外,由于LGWR历程将全部数据块的全部改观都写至日记文件,因这天志文件中也将存在从头构建取消段所需的足够信息,从而可以或许回滚Joo未提交的事宜。

?

综上所述,由于LGWR历程老是先于DBWn历程举办写操纵,而且在提交的同时举办及时的写操纵,以是在重做流中始终存在足够的信息,从而可以或许从头构建任何已提交的未被写入数据文件的改观,回滚任何已被写入数据文件的未提交改观。只要没有受到物理破坏,重做与回滚这种实例规复机制就可以或许使Oracle数据库绝对不被粉碎。

?

执行SHUTDOWN ABORT呼吁会破坏数据库吗?谜底是绝对不会!这个呼吁不行能破坏数据库。只要联机日记文件可用,实例规复机制就老是可以规复任何破坏的数据。

?

搜查点和重做日记


?

搜查点机制

?

搜查点位置(瓦解后,重做流中的实例规复出发点)由DBWn自动前移。这个进程称为“增量搜查点(incremental checkpointing)”。除此之外,尚有“完备搜查点(full checkpointing)”和“局部搜查点(partial checkpointing)”。

?

增量搜查点是正常数据库勾当的一部门。DBWn历程抉择缓存中是否有足够的、已更新的块,是否应把个中的几个写入磁盘。选择写入哪些改观的缓冲区的算法,是基于变动时多久早年举办的,以及怎样激活缓冲区。

?

在一样平常环境下,只有缓冲区已变动,且是空闲的,才气写入该缓冲区。永久不要健忘,提交改观和把块写入磁盘之前没有相干性,DBWn只写入所需的起码块数。

?

假如将素有脏缓冲区都写入磁盘,就会呈现完备搜查点。在通例运行中,缓存中也许存在一百万个脏缓冲区,但对付增量搜查点,DBWn只写入个中的数百条。而对付完备搜查点,它将写入这些内容。为此,必需完成大量的事变:在执行搜查点时,必要很是高的CPU行使率和磁盘行使率,用户会话的机能会随之低落。完备搜查点会对营业发生负面影响。鉴于此,只有在两种环境下才执行完备搜查点,第一种环境是有序封锁,第二种环境是DBA要求这么做。

?

当行使NORMAL、IMMEDIATE或TRANSACTIONAL选项封锁数据库时,城市执行搜查点:在封锁和卸载数据库之前,DBWn会将全部的脏缓冲区革新到磁盘中。这意味着,再次打开数据库时,不必要执行任何???复操纵。在执行某些操纵(如启用归档日记模式)前,始终但愿(也有须要)执行干净封锁。行使以下呼吁,可以在任何时刻发出完备搜查点信号:

alter system check point;

?

对付某些操纵而言,局部搜查点是必需的,并会自动执行。局部搜查点影响的缓冲区因操纵而异:

?

热点阅读