.1 操作系统备份
操作系统备份和恢复实施起来比较简单,当然也比较费时,要求系统停止使用,此过程包括关闭数据库并从系统上注销所有用户。所有访问被解除之后,系统关闭并以单用户方式重新启动,控制权交给系统管理员,这一步确保没有用户应用程序软件运行,避免修改硬盘上的数据。如果这个备份用于恢复数据库系统,那么系统配置、用户数据、用户文件在备份后的所有改动都将丢失。步骤如下:
(1). 关闭全体
先关闭所有应用程序,然后关闭Oracle Rdbms,如果在多用户环境下,关闭系统并以单用户方式启动数据库系统。
(2). 备份所有文件
在单用户方式下,利用操作系统实用工具将所有磁盘数据备份(可备份到另外的磁盘或磁带上)。
(3). 启动系统
在多用户方式下启动系统,启动Oracle数据库并打开它,允许应用程序访问。
1.2 数据库冷备份
即以正常方式关闭Oracle数据库,并备份所需的全部Oracle数据库文件,这种备份也称为脱机备份。与操作系统备份不同的是它仅仅只备份与Oracle相关的一部分文件。在关闭数据库之前关闭所有可能修改Oracle文件的任何内部和第三方软件也很重要。步骤如下:
(1). 关闭Oracle
关闭在Oracle上运行的所有与Oracle相关的内部或第三方软件,然后以正常方式关闭
Oracle Rdbms。
(2). 备份所需的Oracle文件
备份Oracle可执行文件、代码、配置文件和控制文件,备份所有Oracle数据文件和脱
机重做日志文件。
(3). 以正常方式启动Oracle
一个简单的数据库冷备份脚本coldback.sql如下:
sys/shanllow as sysdba;
shutdown immediate;
host copy e:\oracle9i\oradata\oemrep\*.* d:\backup\coldback;
startup;
冷备份的优点是:
(1). 容易归档(简单拷贝即可)。
(2). 容易恢复到某个时间点上(只需将文件再全部拷贝回去)。
(3). 低度维护,高度安全。
但冷备份也有如下不足:
(1). 单独使用时,只能提供到“某一时间点上”的恢复。
(2). 在实施备份的全过程中,数据库必须只能作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
(3). 若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
(4). 不能按表或按用户恢复。
1.3 数据库热备份
当Oracle数据库处于打开状态,并运行在archivelog模式下可采用热备份,这种备份也称联机备份,即在备份的时候数据库仍然可以正常使用。在进行实例恢复的时候,可能需要用到归档日志。当前联机日志一定要保护好或是处于镜像状态,当前联机日志的损坏,对于数据库的损坏是巨大的,那样的话只能以数据的丢失来进行数据库的恢复工作即只能实现不完全恢复。下面介绍对某一个表空间和控制文件、日志文件进行数据库热备份的步骤如下:
(1). 进行表空间的联机备份
(2). 备份归档重做日志
(3). 备份控制文件
其脚本hotback.sql如下:
alter system archive log current;
alter tablespace users begin backup;
host copy e:\oracle9i\oradata\oemrep\users01.dbf to d:\backup\hot;
alter tablespace users end backup;
alter database backup controlfile to 'd:\backup\controlbinbak.000';
alter database backup controlfile to trace;
alter system archive log current.
热备份的优点是显而易见的:
(1). 可在表空间或数据文件级备份,可选择的余地大,性能也好。
(2). 备份时数据库仍可使用,有些故障下进行恢复时数据库也可正常使用,这对于24*7
小时不停机的大型应用来说相当重要。
(3). 可恢复到某一时间点上。
(4). 可对几乎所有数据库实体作恢复。
(5). 备份时间短,恢复时间也短。
热备份的不足是:
(1). 在大量更新批作业运行时备份一个数据库的效率不高,因为在热备份模式下数据文件将产生许多重做记录。
(2). 难以维护,不允许失败,失败后难以恢复。
1.4 逻辑备份
逻辑备份创建数据库对象的逻辑拷贝,并将拷贝存入一个二进制文件,逻辑备份只备份数据库中的数据而不记录数据的位置。在执行对数据库的导出工作的时候不能对数据库做任何改变,可以通过使用restrict模式打开数据库并导出数据库来实现这个目的。逻辑备份通常比物理备份要花更多的时间。
利用Oracle提供的工具Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据导入到Oracle数据库中去。Oracle提供的Export和Import具有三种不同的操作方式:
(1). 表方式:可以将指定的表导出备份。
如 exp scott/tiger tables=xixi, rows=y导出表xixi。
(2). 全库方式:将数据库中的所有对象导出。
如 exp “sys/shanllow as sysdba”。
(3). 用户方式:可以将指定的用户相应的所有数据对象导出。
在逻辑备份方式中,提供了增量导出/导入功能,但是它只能是对整个数据库进行实施。增量导出又可以分为三种类别:
(1). 完全增量导出(Complete Export)
这种方式将把整个数据库文件导出备份,方法:
exp system/manager inctype=complete file=20060401.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其它有明确含义的字符命名)。
(2). 增量型增量导出(Incremental Export)
这种方式将只会备份上一次备份后改变的结果,方法:
exp system/manager inctype=incremental file=20060402.dmp
(3). 累积型增量导出(Cumulate Export)
这种方式的话,是导出自上次完全增量导出后数据库变化的信息。方法:
exp system/manager inctype=cumulative file=20060403.dmp
一般情况下,DBA们每周采用下面的方式进行逻辑备份:
星期一:完全备份 (A)
星期二:增量导出 (B)
星期三:增量导出 (C)
星期四:增量导出 (D)
星期五:累计导出 (E)
星期六:增量导出 (F)
星期日:增量导出 (G)
这样,我们可以保证每周数据的完整性,以及恢复时的快捷和最小限度的数据损失。恢复的时候,假设事故发生在周末,DBA可按这样的步骤来恢复数据库:
第一步:用SQL命令Create database重新生成数据库结构。
第二步:完全增量导入A:
imp system/manager inctype=RESTORE FULL=y FILE=A
第三步:累计增量导入E:
imp system/manager inctype=RESTORE FULL=Y FILE=E
第四步:最近增量导入F:
imp system/manager inctype=RESTORE FULL=Y FILE=F
逻辑备份的优点有:
(1). 导出时可以检测到数据块损坏的情况。
(2). 通过导入导出操作可以减少磁盘碎片。
(3). 导出提供了极大的灵活性,可以选择需要导出的数据和定义,可以执行完全、增量或累积导出。
(4). 对于一些特定的用户错误来说,恢复起来比物理备份更为快速高效。如,如果用户不小心删除了一个表,使用导入工具将以前的表数据恢复过来将比进行不完全恢复要容易得多。
(5). 具备可移植性,可进行跨平台的迁移。如数据可从Oracle中迁移到SQL Server、Sybase等数据库中也可以从其它数据库中迁移回来。同时也可以用于数据库升级,直接将数据导入到Oracle的更新版本中。
缺点:
(1). 不能保护介质失败。
(2). 使用逻辑备份时数据库必须处于打开状态。
(3). 如果导出大量的数据,速度会非常慢,而且占用资源严重。
阅读(1511) | 评论(0) | 转发(0) |