专业电子商务网站建设,淘宝付费推广,做的比较好的美食网站有哪些,推广口碑比较完全恢复和不完全恢复#xff1a;
一、完全恢复#xff1a;将数据库恢复到当前最新状态#xff0c;包括直至请求恢复时进行的所有已提交的数据更改 二、不完全恢复#xff1a;将数据库恢复到请求恢复操作之前指定的过去时间点 一、完全恢复过程 下面的步骤说明了执… 比较完全恢复和不完全恢复
一、完全恢复将数据库恢复到当前最新状态包括直至请求恢复时进行的所有已提交的数据更改 二、不完全恢复将数据库恢复到请求恢复操作之前指定的过去时间点 一、完全恢复过程 下面的步骤说明了执行完全恢复期间要采取的操作
1. 通过备份还原损坏或丢失的文件。
2. 根据需要应用增量备份、归档重做日志文件和联机重做日志文件中的更改。将重做日志更改应用于数据文件直到到达当前联机日志并且重新输入了最新的事务处理。在整个过程中会生成还原块。这称为前滚或高速缓存恢复。
3. 此时还原的数据文件中包含已提交和未提交的更改。
4. 还原块用于回退任何未提交的更改。有时也称为事务处理恢复。
5. 此时数据文件处于已恢复状态且与数据库中的其它数据文件一致。
二、不完全恢复过程 不完全恢复或数据库时间点恢复使用备份来生成非当前版本的数据库。也就是说不会应用最新备份之后生成的所有重做记录。仅当绝对必要时才执行此类恢复。要执行不完全恢复需要
恢复点之前生成的所有数据文件的有效脱机或联机备份
从备份时间到指定恢复时间的所有归档日志 下面列出了执行不完全恢复的过程
1.从备份还原数据文件如果还原点目标并不很新则使用的备份可能也不是最新的。这需要使用 OS 命令或 RMAN RESTORE 命令来复制文件。 2.使用 RECOVER 命令从归档重做日志文件应用重做根据需要包括尽可能多的数据以达到还原点目标。
3.恢复以后的状态此时数据文件包含一些已提交的事务处理和未提交的事务处理因为重做可以包含未提交的数据。
4.使用 ALTER DATABASE OPEN 命令应用还原块之前数据库已打开。这是为了提供更高的可用性。
5.应用还原数据应用重做时同时会应用支持还原数据文件的重做。这样还原可以应用于数据文件以便还原任何未提交的事务处理。这是接下来要完成的操作。
6.过程完成此时数据文件已恢复到所选择的时间点。 如果必须执行恢复且发现包含事务处理的归档日志丢失其中的事务处理是在还原所用的备份的创建时间与目标恢复 SCN 之间发生的则时间点恢复是唯一的选择。没有丢失的日志则没有该期间内对数据文件进行更新的记录。唯一的选择就是从还原备份的时间点恢复数据库直到未损坏的归档日志系列所允许的时间点然后使用 RESETLOGS 选项打开数据库。丢失的重做日志文件中的或之后的所有更改都将丢失。 备份和恢复的使用类型
数据库备份和恢复的类型包括
用户管理的不使用 RMAN。 --使用 OS 命令移动文件 --DBA 需要手动维护备份活动记录
服务器管理的使用 RMAN
1.执行用户管理的数据库备份 可以使用 OS 命令创建数据文件的副本从而备份数据库。操作过程取决于数据库是否处于 ARCHIVELOG 模式。如果是则通过在复制表空间的数据文件之前将每个表空间置于备份模式可以使数据库处于打开且可用状态。否则在复制数据文件之前必须先关闭数据库。
1手动备份 NOARCHIVELOG 数据库
通过关闭数据库并将所有数据文件和控制文件复制到备份目录可以对 NOARCHIVELOG 数据库进行一致的整体数据库备份。由于文件复制操作是使用 OS 命令完成的因此必须先关闭数据库。这会将数据库置于一致状态。
SQL SHUTDOWN IMMEDIATE $ cp $ORACLE_BASE/ORCL/datafile/*.dbf /u02/backup/datafile --将数据文件复制到备份位置
$ cp $ORACLE_BASE/ORCL/controlfile/*.ctl /u02/backup/controlfile --将控制文件复制到备份位置
SQL STARTUP 2手动备份 ARCHIVELOG 数据库
如果数据库处于 ARCHIVELOG 模式下则复制文件前不一定必须关闭数据库。最终会得到不一致备份但应用重做数据后会使其恢复到一致状态。
启动备份模式 复制数据文件之前必须将每个数据文件都置于备份模式。请使用 ALTER TABLESPACE 和 ALTER DATABASE 命令的 BEGIN BACKUP 子句来执行此操作。以下是每个命令的语法
ALTER TABLESPACE tablespace BEGIN BACKUP; --ALTER TABLESPACE 命令仅影响属于该表空间的那些数据文件。 ALTER DATABASE BEGIN BACKUP; --ALTER DATABASE 影响数据库中的所有数据文件。
结束备份模式 使数据文件退出备份模式非常重要。关闭数据库时不能有任何数据文件处于备份模式。如果尝试关闭处于该状态的数据库将收到错误。此外由于备份模式会导致生成额外的重做数据因此会给系统带来额外的负载。如果您不主动备份数据文件则没有理由使任何数据文件处于备份模式。
具体操作
备份数据文件 SQL select file_name, tablespace_name from dba_data_files; --查看所有数据文件位置及表空间
SQL ALTER TABLESPACE users BEGIN BACKUP; --将表空间置于备份模式
$ cp $ORACLE_HOME/oradata/orcl/users*.dbf /u02/backup/datafile --将该表空间的数据文件复制到备份位置
SQL ALTER TABLESPACE users END BACKUP; --使该表空间退出备份模式
备份控制文件的方式包括 1.创建为映像副本写入到指定名称的文件
SQL ALTER DATABASE BACKUP CONTROLFILE TO /u01/backup/controlfile.bak; Database altered. 2.生成重新创建控制文件的脚本写入到跟踪文件
SQL ALTER DATABASE BACKUP CONTROLFILE TO TRACE; Database altered. --重建控制文件的脚本在$ORACLE_BASE/diag/rdbms/prod/PROD/trace
查看刚生成脚本文件会发现里面会有两种创建控制文件的方式
NORESETLOGS ARCHIVELOG表示日志文件等完好重启数据库是不用resetlog
RESETLOGS ARCHIVELOG日志文件损坏丢失不能执行完全恢复将日志组号清零 2.执行用户管理的数据库恢复
1执行用户管理的数据库完全恢复
用户管理的数据库完全恢复
将数据库恢复到最新的 SCN 可以一次处理整个数据库也可以一次处理一个数据文件或表空间 需要当前控制文件 需要有待恢复的所有文件的备份 需要到目前为止的所有归档日志 V$RECOVER_FILE查看哪些文件需要介质恢复
V$RECOVERY_LOG查看执行恢复需要哪些归档日志
在某些情况下属于 SYSTEM 表空间的文件受到损坏时实例将自动关闭。当某些数据文件有问题时即使实例保持运行状态您也可以判定使数据库保持运行状态没有任何意义受影响的数据库对象太多了。在这种情况下请关闭数据库执行恢复。 如果数据库仍处于打开状态则可以查询 V$RECOVER_FILE 视图了解哪些数据文件需要恢复并查询 V$RECOVERY_LOG 了解需要哪些归档日志。这会指示您需要从备份中还原哪些文件如果有。 然后关闭数据库。调查介质故障确定问题原因。修复该问题以便可以从备份中还原文件。
例如您可能需要更换磁盘驱动器。 现在可使用 RECOVER 命令来执行恢复。将恢复范围限制在所需范围如数据文件或表空间。如果需要可恢复整个数据库。随后打开数据库。
SQL SELECT file#, error FROM v$recover_file; --确定需要恢复的数据文件
SQL SELECT archive_name FROM v$recovery_log; --确定完成恢复所需的归档日志文件
确定与恢复相关的文件 如果数据库仍处于打开状态请按下面的说明查询文件。否则请尝试启动实例并装载数据库发出查询。 为了确定哪些数据文件需要恢复查询 V$RECOVER_FILE 视图。ERROR 列指明文件需要恢复的原因。如果此列具备 OFFLINE NORMAL 以外的任何值则需要恢复。 要查看所有受影响的数据文件和表空间的概况可以在此查询中加入 V$DATAFILE 和 V$TABLESPACE。 下面是一个示例
SELECT r.FILE# ,d.NAME df_name ,t.NAME tbsp_name, d.STATUS ,r.ERROR ,r.CHANGE# ,r.TIME FROM V$RECOVER_FILE r, V$DATAFILE d, V$TABLESPACE t WHERE t.TS# d.TS# AND d.FILE# r.FILE#; 这可指示受损的程度帮助您确定 RECOVER 命令的对象。 V$RECOVERY_LOG 视图显示执行恢复所需的归档日志文件。如果列表显示某些文件已移出默认归档日志位置则必须将它们还原到某个位置再执行恢复。 记录这些查询的结果后关闭数据库。
还原与恢复相关的文件 确定了需要哪些数据文件和归档日志文件后将它们还原到相应的磁盘位置。通过从备份位置复制数据文件可以还原该数据文件如以下示例所示
$ cp /disk2/backup/datafile/survey01.dbf $ORACLE_BASE/oradata/ORCL/datafile/survey01.dbf 如果恢复需要任何归档日志检查这些日志是否仍位于归档日志的默认磁盘位置。这些日志可能不在默认位置 例如已将它们移至磁带或其它磁盘驱动器。如果日志已被移动则需将它们还原到默认归档日志位置或临时位置。如果默认位置由 LOG_ARCHIVE_DEST_1 初始化参数指定中有足够的可用空间在该位置还原日志。否则可以将日志置于某个其它磁盘位置。还原时可指定该备用位置来查找归档日志文件。 如果需要移动数据文件则必须将这一情况记录在控制文件中。通过执行 ALTER DATABASE RENAME FILE 命令可以完成此操作如下例所示 SQL ALTER DATABASE RENAME FILE /u01/app/oracle/oradata/ORCL/datafile/survey01.dbf TO /newdisk/ORCL/datafile/survey01.dbf; --须先启动实例并装载数据库然后才能执行 ALTER DATABASE RENAME FILE 命令。
载数据库并使所有数据文件联机如果尚未执行此操作。通过查询 V$DATAFILE 视图可以检查每个数据文件的状态。可使用如下命令使数据文件联机 SQL ALTER DATABASE DATAFILE /newdisk/ORCL/datafile/survey01.dbf ONLINE; 应用重做数据 此时数据文件已还原到过去的某个时间点。归档日志文件也已还原到其默认位置或某个其它位置仅用于此恢复。已准备就绪可执行真正的恢复步骤这意味着已应用重做且数据文件已恢复到最新 SCN。 使用 SQL*Plus RECOVER 命令执行此操作。 如果没有指定 AUTOMATIC 选项则系统会提示您指定要应用的每个重做日志文件。这样可以提高对恢复过程的控制。通常AUTOMATIC 用于完全恢复。 如果归档日志文件已还原到数据库默认位置以外的某个磁盘位置则必须指定 FROM 子句。提供存储这些文件的目录恢复过程将在该目录中寻找文件。 最后打开数据库。此时已完全恢复。
SQL RECOVER AUTOMATIC FROM /u01/arch_temp DATABASE; --使用 RECOVER 命令应用重做数据
SQL ALTER DATABASE OPEN; --打开数据库
对打开的数据库执行完全恢复 如果在数据库打开时出现介质故障则数据库将继续运行。尝试向其中的数据文件写入数据时数据文件将自动脱机。对这些数据文件进行查询不会导致其脱机但是会向发出查询的用户返回错误。 与恢复关闭的数据库类似首先需要查询需恢复的文件和归档日志。然后使包含受损数据文件的所有表空间脱机。可使用如下命令完成该操作 SQL ALTER TABLESPACE survey OFFLINE TEMPORARY; 使用 TEMPORARY 选项会导致 Oracle 对所有属于表空间的联机数据文件执行检查点操作。经过检查点操作的数据文件在重新联机后不需要进行恢复因为对于可能会影响它们的任何事务处理的最新 SCN 而言它们是最新的。尽管在此命令运行时数据文件必须可用但此选项更符合需要。问题可能是临时的可以在不产生错误的情况下使表空间联机。 检查介质以确定问题原因。可使用 DBVERIFY 实用程序来执行此操作。如果文件被永久损坏按前面就恢复关闭数据库所述的内容进行还原和恢复。还原和恢复步骤完成后应使所有表空间重新联机。
2.执行用户管理的不完全恢复
在以下情况下可将数据库恢复到过去的时间点 希望数据库处于出现用户错误或管理错误之前的状态。
数据库包含损坏的块。
由于缺少某些重做日志文件因此无法对数据库执行完全恢复。
您希望创建一个测试数据库该数据库处于过去某个时间的状态。
丢失了数据文件和一个或多个未归档重做日志文件
可通过以下方式指明何时停止应用重做数据 1.指定停止的时间 SQL RECOVER DATABASE UNTIL TIME 2005-12-14:12:10:03;
2. 指定停止的 SCN SQL recover database until change1487389; 3.在执行恢复时发出 CANCEL 命令 SQL RECOVER DATABASE UNTIL CANCEL;
执行用户管理的不完全恢复 使用以下命令执行不完全恢复 RECOVER [AUTOMATIC] DATABASE option 下面是选项的含义 AUTOMATIC自动应用归档和重做日志文件 option: UNTIL TIME YYYY-MM-DD:HH24:MI:SS UNTIL CANCEL UNTIL CHANGE integer USING BACKUP CONTROLFILE 基于取消的不完全恢复 基于取消的不完全恢复与对关闭数据库执行的完全恢复非常相似。差异在于执行 RECOVER 命令的方式指定 UNTIL CANCEL 子句。此子句将导致恢复过程提示您确认要应用的每个重做日志文件的建议名称。因此在进行恢复过程中系统会提示您确认已归档或联机的重做日志文件名而且对于每个文件名您可以接受它也可以更改它。到达要让恢复停止的时间点时请输入 CANCEL而不要接受文件名。这将停止恢复。 完成此操作后必须使用 RESETLOGS 选项打开数据库。由于数据库当前正在执行另一实例化操作因此需要重置重做日志序列号。 打开该数据库后检查预警日志中的消息。通过这种方式可以获知恢复是否已成功。要在恢复过程中自动应用重做日志文件可以使用 SQL*Plus SET AUTORECOVERY ON 命令在恢复提示符下输入 AUTO或者使用 RECOVER AUTOMATIC 命令。 基于时间和更改的不完全恢复 基于时间和更改的不完全恢复与基于取消的恢复类似区别在于使用不同标准来指定停止恢复的时间。基于时间的恢复使用在 RECOVER 命令的命令行中指定的时间来获知何时停止。基于更改的恢复使用在命令行中指定的 SCN。 与所有的不完全恢复一样之后必须使用 RESETLOGS 选项打开数据库。 执行用户管理的不完全恢复步骤
1.关闭数据库。
2.还原数据文件。
3.装载数据库。
4.恢复数据库。
5.使用 RESETLOGS 选项打开数据库。 resetlogs 将日志文件的SCN号强制置位1 执行 ALTER DATABASE OPEN RESETLOGS 打开数据库。 -----------------------------------------------------------------------------------------------------