OracleDatabase——数据库表空间dmp导出与导入
2、二者导出机制不同,exp导出的是文本型,expdp导出的是二进制,所以expdp导出的dmp文件是要小于exp导出的。3、二者导出的dmp需要对应不同的导入命令,exp对应imp,expdp对应impdp。4、exp不需要指定逻辑目录对象(directory),而expdp需要指定。5、exp/imp可在客户端执行,而expdp/impdp只能在服务端执行。1、expdp效率更高,exp是串行
·
exp与expdp命令异同
相同点:exp与expdp命令都是备份数据库的。
不同点:
1、expdp效率更高,exp是串行备份的,但expdp是并行备份的。
2、二者导出机制不同,exp导出的是文本型,expdp导出的是二进制,所以expdp导出的dmp文件是要小于exp导出的。
3、二者导出的dmp需要对应不同的导入命令,exp对应imp,expdp对应impdp。
4、exp不需要指定逻辑目录对象(directory),而expdp需要指定。
5、exp/imp可在客户端执行,而expdp/impdp只能在服务端执行。
6、oracle11g后exp不导出空表,expdp可以。
exp导出指定用户(表、视图、存储过程、同义词)到dmp文件
一般适用于单个用户只有一个表空间的情况
exp 用户名/密码@127.0.0.1:1521/ORCLCDB | |
file=备份文件.dmp | |
log=操作日志.log |
expdp导出指定用户(表、视图、存储过程、同义词)到dmp文件
#创建备份目录 | |
mkdir -p /tmp/dbbackup | |
#登录sqlplus,创建逻辑目录DB_BACKUP,映射物理目录/tmp/dbbackup | |
create or replace directory DB_BACKUP as '/tmp/dbbackup'; | |
#为备份的用户授权逻辑目录读写权限 | |
grant read,write on directory DB_BACKUP to 备份的用户名; | |
#导出备份文件到/tmp/dbbackup下 | |
expdp 用户名/密码@127.0.0.1:1521/orclcdb | |
directory=DB_BACKUP | |
dumpfile=备份文件.dmp | |
schemas=用户名 | |
logfile=操作日志.log | |
cluster=N | |
exclude=grant | |
exclude=STATISTICS | |
compression=ALL |
二、导入dmp文件
确定dmp文件是用exp与是expdp导出的
由于exp与expdp导出的文件都是dmp,而这两者导出的dmp格式不同,导入命令也不同(exp导出的用imp导入,expdp导出的用impdp导入),需要进行区分,以下是简单区分的办法:
#如果显示以TEXPORT开头,则是EXP导出的;如果是乱码则是expdp导出的。 | |
head -n 1 备份文件.dmp |
同表空间不同用户恢复表空间命令
exp导出dmp使用imp恢复,方法如下:
imp 目标用户名/密码@127.0.0.1:1521/ORCLCDB | |
fromuser=源用户名 touser=目标用户名 | |
file=备份文件.dmp | |
log=操作日志.log | |
ignore=y |
expdb导出dmp使用impdp恢复,方法如下:
impdp 目标库用户名/密码@127.0.0.1:1521/ORCLCDB | |
remap_schema=源用户名:目标用户名 | |
directory=dmp文件所在的目录 | |
dumpfile=备份库文件名.dmp | |
logfile=操作日志.log |
不同表空间不同用户恢复表空间命令
exp导出dmp使用imp恢复,方法如下:
#全局替换dmp文件中表空间名,减少导出时需transport_tablespace的麻烦 | |
sed -i "s/源表空间名/目标表空间名/g" 备份库文件名.dmp | |
#导入 | |
imp 目标用户名/密码@127.0.0.1:1521/ORCLCDB | |
fromuser=源用户名 touser=目标用户名 | |
file=备份文件.dmp | |
log=操作日志.log | |
ignore=y |
expdb导出dmp使用impdp恢复,方法如下:
#创建备份目录 | |
mkdir -p /tmp/dbbackup | |
#登录sqlplus,创建逻辑目录DB_BACKUP,映射物理目录/tmp/dbbackup | |
create or replace directory DB_BACKUP as '/tmp/dbbackup'; | |
#为备份的用户授权逻辑目录读写权限 | |
grant read,write on directory DB_BACKUP to 备份的用户名; | |
#导入 | |
impdp 目标库用户名/密码@127.0.0.1:1521/ORCLCDB | |
remap_tablespace=源表空间:目标表空间 | |
remap_schema=源用户名:目标用户名 | |
directory=DB_BACKUP | |
dumpfile=备份库文件名.dmp | |
logfile=操作日志.log |
更多推荐
已为社区贡献1条内容
所有评论(0)