oracle物理备份与恢复,ORACLE数据库备份与恢复详解

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

ORACLE数据库备份和恢复的详细说明

学习过程的总结,如果您有兴趣,不妨看一下,如果有什么问题,高手不要无情! !

Oracle的备份和恢复具有三种标准模式,大致分为两类:备份和恢复(物理)和导入和导出(逻辑),以及备份和恢复。根据数据库的工作模式,可以分为非归档模式(Nonarchivelog样式)和归档模式(Archivelog样式)。通常,我们将非归档模式称为冷备份,并将相应的归档模式称为热备份,它们之间的关系如下

7c3a1d6174a4045e8009a2f942032b16.png

三种方法中的每一种都有其优点。让我们做个比较(这是用Fireworks绘制的,有点粗糙):

4db8f116794c6008719f8220a9712262.png

热备份和冷备份的优点和缺点

热备份的优点是:

\ 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 =完整文件= 20041125.dmp(为了方便检索和事后查询,通常我们将按日期或其他名称(具有明确含义的文件)备份文件)

\ 2,增量导出(Incremental Export) 此方法仅备份自上次备份以来所做的更改结果; exp系统/管理器inctype =增量文件= 20041125.dmp

3,累计出口(Cumulate Export) 这样,在上一次完全增量导出后数据库更改将被导出信息。 exp系统/管理员inctype =累积文件= 20041125.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(通常为2004-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(通常为2004-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; ; 更改数据库打开;

这样,即使我们的热回收完成了,也已经写了很长时间,最后还是被写了。如果您要添加任何内容,请写下来。请不要客气。这些是这两天中汲取的一些教训。希望大家谢谢您的来信。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重做操作系统后oracle数据库恢复 文件夹中文件说明: ora.reg oracle主要注册项的恢复参考文件 oraodbc.reg odbc驱动项的恢复参考文件 oraole1~4.reg ole 驱动项的恢复参考文件 恢复中重要操作说明: 1、恢复前提,数据库系统文件(初始化配置文件、数据文件、重作日志文件、控制文件)没有遭到破坏。 2、注册表的恢复 3、监听程序重新恢复,注意监听配置、tns配置中机器名的核对 4、oracle实例服务的恢复 5、注册表中本地默认实例的恢复 6、计算机管理-用户组中ORA_DBA角色的恢复 操作步骤: 1、系统环境变量的恢复 在系统环境变量path项之前增加oracle系统可执行程序及动态链接库资源如"D:\oracle\ora90\bin;" 2、注册表的恢复 a、oracle数据库系统变量的恢复,ora.reg中饱含了oracle的主要系统参数,其中home项包含了不同的版本信息,导入注册表后可以根据情况修改、增加或者删除对应的home信息。 b、oracle odbc驱动参数的恢复,需要导入oraodbc.reg,此处以oracle90为例,针对不同的oracle版本需要修改相应的参数。导入后,除了检查版本及修改上述参数外还需要手工在注册表(regedit.exe)hkey_local_machine->software->odbc->odbcinst.ini->odbc drivers一项中参考其它字符串,增加一个oracle驱动程序名称(如Oracle in OraHome90)。恢复后可以通过系统odbc管理工具进行配置、测试。最后,如果不需要使用ODBC连接数据库,就不需要进行此处的恢复。 c、oracle oledb驱动参数的恢复,需要导入oraole1~4.reg,实际只需要导入1~2两个文件即可,其它两个属于注册表的副件。同样需要针对不同版本修改相应的参数。恢复后,可以通过配置一个 oledb测试,最快捷的方法为,新建一个文本文件,然后将后缀改为".udl"然后就可以继续操作了。最后,同ODBC一样,如果确定不需要使用ole驱动访问数据库,也可以不进行这部分的恢复操作。 ******此处的操作需要对windows操作系统注册表非常熟悉,对于linux平台,恢复操作类似,只不过需要对环境变量的操作熟悉。 3、监听程序的恢复 a、配置参数的恢复oracle_home\network\admin\listener.ora,检查本地机器名是否有变化,以确定监听参数中监听地址项是否需要修伽。 b、本地访问服务名tnsnames.ora的配置,同样需要检查机器名或ip地址是否有变化。此步骤可以省略 c、监听服务的恢复,运行 lsnrctl,执行start,会自动向系统服务中增加并启动监听服务。可以通过启动时的提示确定服务是否启动成功。确认服务启动成功后,在系统服务管理台里将服务启动属性从“手动”改为“自动”。 ******此处操作需要对lsnrctl工具熟悉。 4、本地默认实例的恢复 在注册表hkey_local_machine->software->oracle->home0->oracle_sid项,确认内容和你要恢复的实例名一致。进行这个操作,主要方便在本地sqlplus或其它客户端登录时不用指定数据库本地网络服务名。 5、系统ORA_DBA组的恢复 在"计算机管理"控制台中->系统工具->本地用户和组->组中,增加名称为"ORA_DBA",描述为"Members can connect to the Oracle database as a DBA without a password"的组,并将系统管理员用户如"Administrator"添加到组中。执行这样的操作,是为了能够在本机上不输入数据库用户名/密码,直接以dba角色登录数据库进行管理。 6、实例的恢复 a、确认数据库的初始化配置文件、数据文件、重作日志文件、控制文件等没有被损坏或缺失。 b、使用oradim工具重建实例服务。如oradim -new -sid test -startmode m -pfile d:\oracle\admin\test\pfile\init.ora oradim是oracle实例管理工具,具体参数说明,可以在命令行中直接输入oradim查看帮助提示。使用它能够创建、修改、删除,启动、停止本机上的oracle实例服务,有兴趣的,可以使用它实现一个单数据库多实例的案例。 c、使用sqlplus以dba身份登录确认数据库是否正常启动。 ******此处操作需要对oradim工具、oracle实例的概念熟悉。 7、恢复完成。可以打开其它应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值