仅为个人学习记录
一、简述
1、DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原
2、物理备份还原
(1)对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原
(2)数据库本身的backup命令,dmrman的backup&restore&recover命令
3、逻辑备份还原
(1)对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原
(2)dexp&dimp
(3)逻辑备份有物理备份所不具有的灵活性
二、dexp导出解析
1、基础参数
(1)USERID
用户连接参数
dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236
userid=可省略,连接本地5236端口时,@127.0.0.1:5236可省略
连接密码中带有特殊字符 (/,@.:等, ), 需 要外加三层双引号("""""" )
如:sysdba/”””sys@dba”””
(2)FILE
导出的文件名,可以包含路径,默认名为dexp.dmp
- 如果 FILE 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径 ;
- 如果 FILE 没有指定路径时,使用 DIRECTORY 中指定的路径 ;
- 如果 FILE 和 DIRECTORY 都没有指定路径,则使用系统当前路径。
(3)LOG
导出时的日志文件名,可以包含路径,默认名为dexp.log
- 如果 LOG 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径 ;
- 如果 LOG 没有指定路径时,使用 DIRECTORY 中指定的路径 ;
- 如果 LOG 和 DIRECTORY 都没有指定路径,则使用系统当前路径。
(4) DIRECTORY
指定导出文件及日志文件生成的路径
2、导出级别参数
(1)full 全库导出
例:dexp USERID=SYSDBA/SYSDBA FILE=db_full.dmp LOG=db_full.log FULL=Y DIRECTORY=/mnt/data/dexp
(2)OWNER,用户导出
例:导出属于myuser1和myuser2用户的所有对象,一个用户可以拥有多个模式
dexp USERID=SYSDBA/SYSDBA FILE=db_full.dmp LOG=db_full.log OWNER=MYUSER1,MYUSER2
(3)SCHEMAS,模式导出
例:导出属于myuser1和myuser2模式的所有对象
dexp USERID=SYSDBA/SYSDBA FILE=db_full.dmp LOG=db_full.log SCHEMAS=MYUSER1,MYUSER2
(4)TABLES
导入一个或多个指定的表或表分区。导出所有数据行、约束、索引
dexp USERID=SYSDBA/SYSDBA FILE=db_full.dmp LOG=db_full.log TBLES=MYTAB1,MYTAB2
3、其他参数
(1)EXCLUDE
设置导出时忽略的对象种类
语法:
- EXCLUDE=(<对象种类名>{,<对象种类名>})
- EXCLUDE=TABLES:<表名>{,<表名>}
- EXCLUDE=SCHEMAS:<模式名>{,<模式名>}
<对象种类名>:包括 CONSTRAINTS、INDEXES、ROWS、TRIGGERS、GRANTS。
(2)INCLUDE
设置导出时包含的对象种类
语法
- INCLUDE=(<对象种类名>{,<对象种类名>})
- INCLUDE=TABLES:<表名>{,<表名>}
(3)单独设置对象种类
和EXCLUDE INCLUDE一样作用,选其一就可以
- CONSTRAINTS=N:设置不导出约束。可选参数。缺省该参数为 Y,导出约束。
- TABLESPACE=Y:设置导出的对象定义中包含表空间。可选参数。缺省该参数为 N,不包含表空间。
- GRANTS=N:设置不导出权限。可选参数。缺省该参数为 Y,导出权限。
- INDEXES=N:设置不导出索引。可选参数。缺省该参数为 Y,导出索引。
- TRIGGERS=N:设置不导出触发器。可选参数。缺省该参数为 Y,导出触发器。
- ROWS=N:设置不导出数据。可选参数。缺省该参数为 Y,导出数据。
(4)PARFILE
PARFILE用于将常用的参数设置保存到文件中,然后使用参数文件PARFILE进行导出、导入操作。
PARFILE=<path>
parfile内容格式例:
FILE=db_exp.dmp
LOG=db_exp.log
TABLES=table1
DIRECTORY=/mnt/data/dexp
(5)COMPRESS
是否压缩,缺省不压缩
(6)QUERY
指定过滤条件来对表数据进行导出
例:dexp USERID=SYSDBA/SYSDBA FILE=db_exp.dmp LOG=db_exp.log TABLES=OTHER.READER QUERY="WHERE AGE=19"
(7)FUZZY_MATCH
指定 TABLES 选项是否支持模糊匹配,缺省为N
例:dexp USERID=SYSDBA/SYSDBA FILE=db_exp.dmp LOG=db_exp.log TABLES=OTHER.R% FUZZY_MATCH=Y
(8)PARALLEL
指定导出的过程中所使用的线程数目
PARALLEL=<num>,缺省为1,范围时1-100;
三、dimp导出解析
多数参考dexp参数即可
1、常用参数
(1)TABLE_EXISTS_ACTION
要导入的表已经存在时的处理方式,默认直接报错
TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]
- SKIP:跳过此表。
- APPEND:直接向现有表中导入数据
- TRUNCATE:先删除现有表中的数据,再向表中导入数据
- REPLACE:先删除现有表,再导数据
(2)REMAP_SCHEMA
将源模式中的数据导入到目标模式中
REMAP_SCHEMA=SRC_SCHEMA:DEST_SCHEMA
- <SRC_SCHEMA>:源模式。如果指定的源模式不存在,则导入到对象原来所在的模式。
- <DEST_SCHEMA>:目标模式。如果目标模式不存在,先创建目标模式,再继续导入。
四、dexp&dimp应用举例
1、并行导出test用户下所有数据并压缩
dexp USERID=SYSDBA/SYSDBA FILE=db_full.dmp LOG=db_full.log OWNER=test
2、导入
dimp USERID=SYSDBA/SYSDBA FILE=db_full.dmp LOG=db_full_imp.log OWNER=test