数据库中的数据一般都十分重要,不能丢失,因为各种原因,数据库都有损坏的可能性(虽然很小),所以事先制定一个合适的 、 可操作的备份和恢复计划至关重要。
备份和恢复计划的制订要遵循以下两个原则:
(1)保证数据丢失的情况尽量少或完全不丢失,因为性价比的要求,这要取决于现实系统的具体要求。
(2)备份和恢复时间尽量短,保证系统最大的可用性。数据库备份按照不同方式可分为多种,这里按照备份内容分为物理备份和逻辑备份两类。
物理备份是在操作系统层面上对数据库的数据文件进行备份,物理备份分为冷备份和热备份两种。
冷备份是将数据库正常关闭,在停止状态下利用操作系统的 copy、cp、tar、cpio 等命令将数据库的文件全部备份下来,当数据库发生故障时,将数据文件复制回来,进行恢复。 热备份也分为两种,一种是不关闭数据库,将数据库中需要备份的数据文件依次置于备份状态,相对保持静止,然后再利用操作系统的 copy、cp、tar、cpio 等命令将数据库的文件备份下来,备份完毕后再将数据文件恢复为正常状态,当数据库发生故障时,恢复方法同冷备份一样。热备份的另外一种方式是利用备份软件(例如, veritas 公司的 netbackup , legato 公司的 network 等)在数据库正常运行的状态下,将数据库中的数据文件备份出来。cp copy 简写,它是 linux 操作系统的复制命令;linux 的 tar 命令用于备份文件;linux 的 cpio 命令可以从 tar 格式的归档包中存入或读取文件。
为了提高物理备份的效率,通常将完全 、 增量 、 累积三种备份方式相组合。
完全备份是将数据库的内容全部备份,作为增量 、 累积的基础; 这里的增量备份,指的是差异增量备份。即备份自上次同级或低级差异增量备份以来所有发生变化的数据块; 累积备份是累积增量备份,会备份自上次0级备份以来发生变化的数据块。一个备份周期通常由一个完全备份和多个增量 、 累积备份组成。由于增量或累计备份导出的数据少,所以其导出的文件较小,所需要的时间较少。
利用一个完全备份和多个增量 、 累积备份恢复数据库的步骤如下:
首先从完全备份恢复数据库。 然后按照时间顺序从早到晚依次导入多个增量和累积备份文件。逻辑备份是指利用各数据库系统自带的工具软件备份和恢复数据库的内容,例如, Oracle 的导出工具为 exp ,导入工具为 imp ,可以按照表 、 表空间 、 用户 、 全库等四个层次备份和恢复数据; Sybase 的全库备份命令是 dumpdatabase ,全库恢复命令是 loaddatabase ,另外也可利用 BCP 命令来备份和恢复指定表。
在数据库容量不大的情况下逻辑备份是一个非常有效的手段,既简单又方便,但现在随着数据量的越来越大,利用逻辑备份来备份和恢复数据库已力不从心,速度也很慢。针对大型数据库的备份和恢复一般结合磁带库采用物理的完全 、 增量 、 累积三种备份方式相组合来进行。但无论任何时候逻辑备份都是一种非常有效的手段,特别适合于日常维护中的部分指定表的备份和恢复。