在线QQ客服:1922638
专业的SQL Server、MySQL数据库同步软件
ORACLE数据库备份和恢复的详细说明
学习过程的总结,如果您有兴趣,不妨看一下,如果有什么问题,高手不要无情! !
Oracle的备份和恢复具有三种标准模式,大致分为两类:备份和恢复(物理)和导入和导出(逻辑),以及备份和恢复。根据数据库的工作模式,可以分为非归档模式(Nonarchivelog样式)和归档模式(Archivelog样式)。通常,我们将非归档模式称为冷备份,并将相应的归档模式称为热备份,它们之间的关系如下
三种方法中的每一种都有其优点。让我们做个比较(这是用Fireworks绘制的,有点粗糙):
热备份和冷备份的优点和缺点
热备份的优点是:
\ 1.可以在表空间或数据文件级别进行备份,备份时间短。
\ 2.备份期间仍可以使用该数据库。
\ 3.可以达到二级恢复(到特定时间点的恢复)。
\ 4.可以还原几乎所有数据库实体。
\ 5.恢复速度很快,在大多数情况下,它是在数据库仍在工作时恢复的。
热备份的缺点是:
1.不要犯错误,否则后果将是严重的。
2.如果热备份不成功,则获得的结果将不能用于时间点恢复。 3.由于难以维护,因此必须格外小心,以免”以失败而告终”
冷备份的优点是:
1.这是非常重要的。快速备份方法(仅复制文件)
2.易于存档(简单的复制就足够了)
\\ 3。易于还原到一定的时间点(只需将文件复制回来) )
4.可以与归档方法结合使用来恢复数据库的”最新状态”。
5.维护成本低,安全性高。
冷备份不足是:1.仅当单独使用时,它只能在”特定时间点”提供恢复。
2.在执行备份的整个过程中,数据库必须备份,无法完成其他工作换句话说,必须关闭数据库。
\ 3.如果磁盘空间有限,则只能将其复制到其他外部存储设备(例如磁带),这将非常慢。
\ 4.不能按表或用户还原它。
$ A:现在,我们介绍逻辑备份的方法,即使用”导出”从数据库中提取数据,然后使用”导入”来提取数据,然后将数据发送回Oracle数据库。理论基础:Oracle提供的导出和导入具有三种不同的操作模式(即备份数据输出(输入)类型):
\ 1.表法(T) 您可以导出指定的表进行备份;
; 2,完整的库(已满) 导出数据库中的所有对象;
3.用户模式(U) 可以导出与指定用户相对应的所有数据对象;
*在导入和导出备份方法中,提供了一种非常强大的方法,即增量导出/导入,但是必须将其用作系统来完成增量导入和导出,并且只能对整个数据库实施。增量导出可以分为三类:
1,完成导出 这样,整个数据库文件将被导出以进行备份; exp系统/管理器inctype =完整文件= 1125.dmp(为了方便检索和事后查询,通常我们将按日期或其他名称(具有明确含义的文件)备份文件)
\ 2,增量导出(Incremental Export) 此方法仅备份自上次备份以来所做的更改结果; exp系统/管理器inctype =增量文件= 1125.dmp
3,累计出口(Cumulate Export) 这样,在上一次完全增量导出后数据库更改将被导出信息。 exp系统/管理员inctype =累积文件= 1125.dmp
通常,所有DBA所需要做的就是遵循企业指定的标准或他们自己的习惯(如果您指定的是标准,建议编写计划说明)。通常,我们采用以下公认的每日增量备份方法:
星期一:完整备份(A)
周二:增量导出(B)
周三:增量出口(C)
周四:增量出口(D)
星期五:\ 累计出口(E)
周六:增量导出(F)
Sun:增量导出(G)
这样,我们可以保证每周数据的完整性以及恢复时间的快和最大数量的损失。恢复时,假设事故发生在周末,则DBA可以按照以下步骤恢复数据库:
步骤1:使用命令CREATE DATABASE重新生成数据库结构;
\ 步骤2:创建一个足够大的附加回滚。
\ 第三步:完成增量导入A:
imp系统/管理器inctype = RESTORE FULL = y FILE = A
\ 步骤:累积增量导入E:
系统/管理器inctype = RESTORE FULL = Y FILE = E
\ 步骤5:最近增量导入F:
imp system/manager inctype = RESTORE FULL = Y FILE = F 在通常情况下,即使由DBA完成的导入和导出备份已完成,只要备份依法科学地进行操作,可以将数据丢失降至最低,并可以提供更可靠的服务。另外,最好让DBA对每个备份进行更详细的描述,以使数据库恢复更加可靠。
$ B物理备份的冷备份(Condition-NonArchiveLog):
当数据库可以暂时关闭时,我们需要在稳定的时刻将其与数据相关的文件传输到安全区域。当数据库损坏时,将备份的数据库相关文件从安全区域复制回原始位置。这样,就可以完成快速安全的数据传输。因为它处于数据库不提供服务的关闭状态,所以称为冷备份。冷备份具有许多出色的功能,例如我们在上图中提到的功能,快速,便捷和高效。完整的冷备份的步骤应为:
\ 1.首先关闭数据库(正常关闭)
\ 2.将相关文件复制到安全区域(使用操作系统命令复制数据库等(包括路径)的所有数据文件,日志文件,控制文件,参数文件,密码文件)
\ 3.重新启动数据库(启动)
\ 我们可以使用脚本来完成上述步骤:
\ su – oracle \ lt; sqlplus/nolog
\ 连接/作为sysdba
\\ ub26; 即时;
\ \! cp档案备份位置(所有日志,数据,控制和参数文件);
\ 启动;
\ nb sp; 出口;
\ 这样,我们已经完成了冷备份,请确保您对这些对应的目录(包括用于写入的目标文件夹)进行写操作具有适当的权限。
恢复时,它相对简单。我们停止数据库,将文件复制回相应的位置,然后重新启动数据库。当然,也可以使用脚本来完成。
$ C物理备份的热备份:(Condition-ArchiveLog)
当我们需要进行高精度备份并且无法停止数据库(进行少量访问)时,在这种情况下,我们需要以存档模式进行备份,这是下面讨论的热备份。热备份可以非常准确地备份表空间级别和用户级别的数据。由于它是根据存档日志的时间表进行备份和还原的,因此从理论上讲,它可以还原到上一个操作,甚至是上一个秒的操作。具体步骤如下:
\ 1,通过查看v $数据库,检查数据库是否处于存档模式: SQL \从v $数据库中选择log_mode;
\ 和/font>
\ 然后将数据库设置为以存档模式运行:SQL \\立即关闭
SQL \启动安装
\\ ub26; \ b; \ b; \ n; sp; SQL \更改数据库存档日志;
\ bn \\ n ; SQL \更改数据库打开;
如果自动存档显示为”已启用”,则数据库存档方法为自动存档。否则,您需要手动存档或修改存档模式以进行自动存档,例如:
nbsp \; 正常关闭数据库后,将以下参数添加到参数文件中的init.ora中。 ; SQL \立即关闭
修改init.ora:
\ nb ;; LOG_ARCHIVE_START = TRUE
\\ ub26; \ n; sp LOG_ARCHIVE_DEST1 = ORACLE_HOME/admin/o816/arch(归档日期值存储位置可以定义您自己的)
SQL \启动
然后,重新启动数据库。此时,Oracle数据库将在具有自动归档的存档模式下工作。参数LOG_ARCHIVE_DEST1是指定存档日志文件的路径。建议使用与Oracle数据库文件不同的硬盘。一方面,它减少了磁盘I/O竞争。另一方面,它也可以避免在数据库文件损坏的硬盘后丢失文件。存档路径也可以直接指定为其他物理存储设备(例如磁带),但是可以考虑诸如读写速度,可写条件和性能之类的因素。
注意:当数据库处于ARCHIVE模式时,必须确保可以写入指定的存档路径,否则数据库将挂起直到可以存档所有已存档的信息,然后才能使用它。另外,为了创建有效的备份,在创建数据库时,必须对整个数据库执行冷备份,这意味着该数据库需要以存档模式运行,然后数据库才能正常关闭,并且所有数据库组件都已备份。此备份是整个备份的基础,因为备份提供了所有数据库文件的副本。 (反映了冷备份和热备份之间的协作关系以及强大的功能)
2,备份表空间文件:
\ a,首先,修改表空间文件作为备份; ALTER TABLESPACE tablespace_name开始备份;
b,然后,将表空间文件复制到安全区域! CP tablespace_name D_PATH;
c,最后,关闭表空间备份模式。 ALTER TABLESPACE tablespace_name END BACKUP;
> 3.备份已归档的日志文件:
\ \ nb sp; 停止归档过程-> \\ u>备份存档日志文件->开始存档过程
如果日志文件很多,我们会将它们写入文件中以用作恢复参考:$ 文件`ls \ lt;存档文件的路径/arch *.dbf`;导出文件
4,备份控制文件:
SQL \将数据库备份控制文件更改为” controlfile_back_name(通常为-11-20的形式)”重用;
当然,我们也可以将上述内容编写为脚本,可以在需要时执行。准备就绪:
\ 示例脚本:
\ \ nb sp; su – oracle \ lt; brn \ brn; sqlplus; 连接/作为sysdba
\\ ub26; \ n; ALTER TABLESPACE tablespace_name BEGIN BACKUP
\! CP tablespace_name D_PATH
\ ; ALTER TABLESPACE tablespace_name END BACKUP
\ ; 将数据库备份控制文件更改为” controlfile_back_name(通常为-11-20的形式)”重用;
\ nb sp; \!文件`ls \ lt;存档文件的路径/arch *.dbf`;导出文件
热备份的恢复不仅需要有效的日志备份,而且还需要在归档模式下有效的完整数据库备份,以恢复归档数据库。理论上,存档备份可以避免数据丢失,但是对硬件和操作员的要求相对较高。当我们使用存档备份时,整个库的物理备份也非常重要。在存档模式下,数据库的恢复要求从完全备份到故障点的所有日志都完整无缺。
\ 恢复步骤:LOG_ARCHIVE_DEST_1
\ bn \\ n \ n;关闭数据库。
\ \ n; sp; 将完整的备份数据文件放入原始系统目录。
\ \ n; sp; 将所有备份到故障点的存档日志放入参数LOG_ARCHIVE_DEST_1指定的位置。
\ \ n; sp; 使用sqlplus登录到空实例。 (以sysdba连接/)
\ bn \\ n ; 然后\启动安装
\\ ub26; bn \\ n ; \ n; ; 在
上设置自动恢复 \ n; sp; \ n; sp; \ n; ; 恢复数据库;
\ bn \\ n ; \ n; ; 更改数据库打开;
这样,即使我们的热回收完成了,也已经写了很长时间,最后还是被写了。如果您要添加任何内容,请写下来。请不要客气。这些是这两天中汲取的一些教训。希望大家谢谢您的来信。