一.概述
1.简介
数据库备份是 DBA日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
物理备份是找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理还原是物理备份的逆过程,物理还原一般通过 DMRMAN 工具(或者 SQL 语句),把备份集中的数据内容(数据文件、数据页、归档文件)重新拷贝、写入目标文件。
2.备份和还原关系
联机备份还原:联机备份还原指数据库处于运行状态时,并正常提供数据库服务情况下进行的备份还原操作,称为联机备份还原。
脱机备份还原:脱机还原指数据库处于关闭状态时执行的还原操作。库备份、表空间备份和归档备份,可以执行脱机还原。脱机还原操作的目标库必须处于关闭状态。
备份集:备份集用来存放备份过程中产生的备份数据及备份信息。一个备份集对应了一次完整的备份。一般情况下,一个备份集就是一个目录,备份集包含一个或多个备份片文件,以及一个备份元数据文件。
二.逻辑备份
1.备份说明
DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使用 RMAN 工具进行的备份还原。物理备份还原请参考《DM8 备份与还原》。
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp 和 dimp 进行的备份还原。逻辑备份还原正是本书所要介绍的内容。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原 dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录 $DM_HOME/bin 中找到。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
数据库级(FULL):导出或导入整个数据库中的所有对象。
用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
表级(TABLES):导出或导入一个或多个指定的表或表分区。
2.备份参数
USERID:数据库连接信息用户名和密码等(SYSDBA/SYSDBA@IP:PORT)
FILE:导出文件名,默认dexp.dmp
DIRECTORY:导出文件放置目录位置
FULL/OWNER/SCHEMA/TABLES:导出级别,默认SCHEMA
FUZZY_MATCH:tables选项是否模糊匹配,默认N
QUERY:tables选项单个表过滤条件导出哪几行
PARALLEL:导出过程线程数
TABLE_PARALLEL:tables选项单表导出线程数
TABLE_POOL:导出存储表的缓冲区数
EXCLUDE:导出内容忽略的对象,对象可为CONSTRAINTS、INDEXES、ROWS、TRIGGERS、GRANTS、VIEWS、PROCEDURE、PACKAGE、SEQUENCE、TABLES,可模糊匹配和条件过滤。
INCLUDE:导出内容包括的对象,参考EXCLUDE。
CONSTRAINTS:是否导出约。
TABLESPACE:是否包含表空间,默认N。
GRANTS:是否包含权限,默认Y。
INDEXES:是否包含索引,默认Y。
TRIGGERS:是否包含触发器,默认Y
ROWS:是否包含数据,默认Y
LOG:指定导出日志,默认dexp.log
NOLOGFILE:不记录导出日志,默认N
NOLOG:屏幕不显示日志信息,默认N
LOG_WRITE:日志信息实时写入,默认N
DUMMY:交互信息处理
PARFILE:是否生成打印导出选择的参数
FEEDBACK:每x行反馈进度
COMPRESS:是否压缩,默认N
CPMPRESS_LEVEL:压缩级别0-9
ENCRYPT:是否加密
ENCRYPT_PASSWORD:加密密钥
ENCRYPT_NAME:加密算法
FILESIZE:单个文件大小
FILENUM:文件导出数量
DROP:导出是否删除原表,默认N
DESCRIBE:导出文件描述信息,记录数据文件
3.导出命令概述
dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以供查看。dexp 工具名称有两种写法 dexp 和 dexpdp。两者语法完全相同。唯一的区别在于,dexp 导出的文件必须存放在客户端,dexpdp 导出的文件必须存放在服务器端。
语法如下:
dexp PARAMETER= { PARAMETER= }
dexpdp PARAMETER= { PARAMETER= }
4.数据库级导出
4.1.并行导出
dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=omp_%U.dmp LOG=omp_date +%Y%m%d%H%M
.log DIRECTORY=/data/expback PARALLEL=4 TABLE_POOL=5 TABLE_PARALLEL=2 FULL=Y
4.2.加密导出
dexpdp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=ompexpdp_%U.dmp LOG=ompexpdp_date +%Y%m%d%H%M
.log DIRECTORY=/data/expdpback PARALLEL=4 TABLE_POOL=5 TABLE_PARALLEL=2 ENCRYPT=Y ENCRYPT_PASSWORD=abcdefg ENCRYPT_NAME=DES_CBC FULL=Y
加密算法:DES_ECB、DES_CBC、DES_CFB、DES_OFB、DESEDE_ECB、DESEDE_CBC、DESEDE_CFB、DESEDE_OFB、AES128_ECB、AES128_CBC、AES128_CFB、AES128_OFB、AES192_ECB、AES192_CBC、AES192_CFB、AES192_OFB、AES256_ECB、AES256_CBC、AES256_CFB、AES256_OFB
5.用户级导出
5.1.单用户导出
dexp USERID=SYSDBA/SYSDBA FILE=omp_user_%U.dmp LOG=omp_date +%Y%m%d%H%M
.log DIRECTORY=/data/expbackup OWNER=OMP PARALLEL=4 TABLE_POOL=5 TABLE_PARALLEL=2
5.2.多用户导出
/dexp USERID=SYSDBA/SYSDBA FILE=omp_fms_%U.dmp LOG=omp_fms_date +%Y%m%d%H%M
.log DIRECTORY=/data/expbackup OWNER=OMP,FMS PARALLEL=4 TABLE_POOL=5 TABLE_PARALLEL=2
6.模式级导出
一般情况下,OWNER与SCHEMAS导入导出是相同的。 但是用户可以包含多个模式,在这种情况下SCHEMAS的导入导出是OWNER导入导出的一个子集。
schema(模式)是数据库的组织和结构。模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、外键(foreign key)等。
模式是一组相互关联的数据库对象,如表,表列,列的数据类型,索引,外键等等
–单用户
$./dexp USERID=SYSDBA/SYSDBA FILE=omp_user_%U.dmp LOG=omp_date +%Y%m%d%H%M
.log DIRECTORY=/data/expbackup schemas=OMP PARALLEL=4
$./dexp USERID=SYSDBA/SYSDBA FILE=omp_fms_%U.dmp LOG=omp_fms_date +%Y%m%d%H%M
.log DIRECTORY=/data/expbackup schemas=OMP,FMS PARALLEL=4
7.表级导出
7.1.单表导出
dexp USERID=SYSDBA/SYSDBA FILE=omp_table_%U.dmp LOG=omp_table_date +%Y%m%d%H%M
.log DIRECTORY=/data/exptable TABLES=omp.year_2001,fms.year_2001 PARALLEL=4
dexpdp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=omp_table_%U.dmp LOG=omp_table_date +%Y%m%d%H%M
.log DIRECTORY=/data/expdptable TABLES=omp.year_2001,fms.year_2001 PARALLEL=4
7.2.模糊导出
dexpdp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=omp_table_%U.dmp LOG=omp_table_date +%Y%m%d%H%M
.log DIRECTORY=/data/expdptable TABLES=OMP.year% FUZZY_MATCH=Y PARALLEL=4
7.3.表结构导出
dexpdp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=omp_table_%U.dmp LOG=omp_table_date +%Y%m%d%H%M
.log DIRECTORY=/data/expdptable TABLES=omp.year_2001 PARALLEL=4 ROWS=N
三.逻辑恢复
1.恢复参数
USERID:数据库的连接信息 必选
FILE:输入文件,即 dexp 导出的文件 必选
DIRECTORY:导入文件所在目录 可选
FULL:导入整个数据库可选,四者中选其一。
缺省为 SCHEMAS
OWNER:导入指定的用户名下的模式
SCHEMAS:导入的模式列表
TABLES:表名列表,指定导入的 tables 名称。不支持对外部,表进行导入
PARALLEL:用于指定导入的过程中所使用的线程数目可选
TABLE_PARALLEL:用于指定导入的过程中每个表所使用的子线程数目
可选。在FAST_LOAD 为 Y 时有效
2.数据库级恢复
dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=ompexpdp_01.dmp LOG=omp_date +%Y%m%d%H%M
.log DIRECTORY=/data/expback PARALLEL=4
3.用户级恢复
./dimp USERID=SYSDBA/SYSDBA FILE=omp_user_%U.dmp LOG=omp_date +%Y%m%d%H%M
.log DIRECTORY=/data/expbackup OWNER=OMP PARALLEL=4
4.模式级恢复
/dimp USERID=SYSDBA/SYSDBA FILE=omp_fms_01.dmp LOG=omp_fms_date +%Y%m%d%H%M
.log DIRECTORY=/data/expbackup schemas=OMP,FMS PARALLEL=4
5.表级恢复
./dimp USERID=SYSDBA/SYSDBA FILE=omp_table_%U.dmp LOG=omp_table_date +%Y%m%d%H%M
.log DIRECTORY=/data/expbackup TABLES=omp.year_2001,fms.year_2001 PARALLEL=4