1.冷备份
如果数据库可以正常关闭,而且允许关闭足够长的时间,那么就可以采用冷备份(脱机备份),可以是归档冷备份,也可以是非归档冷备份。其方法是首先关闭数据库,然后备份所有的物理文件,包括数据文件、控制文件、联机重做日志文件等。
在SQL*Plus环境中进行数据库冷备份的步骤如下:
(1)启动SQL*Plus,以SYSDBA身份登陆数据库。
(2)查询当前数据库所有数据文件、控制文件、联机重做日志文件的位置。
SQL>SELECT file_name FROM dba_data_files;
SQL>SELECT member FROM v$logfile;
SQL>SELECT value FROM v$parameter WHERE name=’control_files’;
(3)关闭数据库。
SQL>SHUTDOWN IMMEDIATER
(4)复制所有数据文件、联机重做日志文件以及控制文件到备份磁盘。可以直接在操作系统中使用复制、粘贴方式进行,也可以使用下面的操作系统命令完成:
SQL>HOST COPY 原文件名称 目标路径名称
(5)重新启动数据库
SQL>STARTUP
冷备份优点:
只需拷贝文件即可,是非常快速的备份方法。
只需将文件再拷贝回去,就可以恢复到某一时间点上。
与数据库归档的模式相结合可以使数据库很好地恢复。
维护量较少,但安全性确相对较高。
2.热备份
虽然冷备份简单、快捷,但是在很多情况下,例如数据库运行于24*7状态时(每天工作24小时,每周工作7天),没有足够的时间可以关闭数据库进行冷备份,这时只能采用热备份。
热备份是数据库在归档模式下进行的数据文件、控制文件、归档日志文件等的备份。
在SQL*Plus环境中进行数据库完全热备份的步骤如下:
(1)启动SQL*Plus,以SYSDBA身份登陆数据库。
(2)将数据库设置为归档模式。
由于热备份是数据库处于归档模式下的备份,因此在热备份之前需要保证数据库已经处于归档模式。可以执行ARCHIVE LOG LIST命令,查看当前数据库是否处于归档日志模式。如果没有处于归档日志模式,需要先将数据库转换为归档模式,并启动自动存档。
(3)以表空间为单位,进行数据文件备份。
① 查看当前数据库有哪些表空间,以及每个表空间中有哪些数据库文件。
SQL>SELECT tablespace_name,file_name FROM dba_data_files
ORDER BY tablespace_name;
② 分别对每个表空间中的数据文件进行备份,其方法为:
SQL>ALTER TABLESPACE USERS BEGIN BACKUP;
SQL>HOST COPY
E:\app\admin\product\11.2.0\dbhome_1\oradata\ORCL\USERS01.DBF
E;\app\admin\backup\USERS01.DBF
SQL>ALTER TABLESPACE USERS END BACKUP;
对数据库中所有表空间分别采用该步骤进行备份。
(4)备份控制文件
通常应该在数据库物理结构做出修改之后,如添加、删除或重命名数据文件,添加、删除或修改表空间,添加或删除重做日志文件和重做日志文件组等,都需要重新备份控制文件。
① 将控制文件备份为二进制文件。
SQL>ALTER DATABASE BACKUP CONTROLFILE TO ‘E;\app\admin\backup\CONTROL.BKP’;
② 将控制文件备份为文本文件。
SQL>ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
(5)备份其他物理文件
① 归档当前的联机重做日志文件。
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
归档当前的联机重做日志文件,也可以通过日志切换完成。
SQL>ALTER SYSTEM SWITCH LOGFILE;
② 备份归档重做日志文件,将所有的归档重做日志文件复制到备份磁盘中。
③ 备份初始化参数文件,将初始化参数文件复制到备份磁盘中。