Oracle数据库导入导出(普通和数据泵方式)

数据库导入导出两种方式,导入导出生成日记,把下面例子修改一下信息复制到一个.bat文件中运行即可。

修改以下导入导出例子的用户、密码和实例、导出文件名称、日记名称即可使用

创建数据泵(名称和地址)(创建一个后即可,以后的数据库.dmp和.log都放这里了):

(1)创建数据泵(myname:名称,as 地址)

 create directory myname as 'D:\companys\fszjxx\datapump';

(2)授予权限(myname:名称,to 用户名称)

 grant read,write on directory myname to C##fszfbz;

(3)、查看权限(直接复制查询)

SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;

DIRECTORY=myname即数据泵地址相当于:

DIRECTORY=D:/companys/fszjxx/datapump

数据泵导入

例子(REMAP_SCHEMA=旧用户:新用户):

directory使用上面创建的数据泵路径!

@echo off
set logfile=fs#zfbz2018-8-17.log
impdp C##fszfbz/fs#zfbz@orcl 
DIRECTORY=myname  
SCHEMAS=C##fszfbz (用户同名使用这个)
REMAP_SCHEMA=fs#zfbz:C##fszfbz  (用户不同名使用这个)
DUMPFILE=EXPDPFS#ZFBZ_NO_LOG20180813.DMP 
logfile=%logfile%
pause

数据泵导出

例子(SCHEMAS=导出用户,exclude=排除表):

directory使用上面创建的数据泵路径!

@echo off
set logfile=fs#zfbz2018-8-17.log
expdp C##guest/guest@orcl 
directory=myname 
dumpfile=guest20181026dp.dmp 
exclude=table:\"in \(\'DB_PEOPLEINFO\',\'DB_FAMILYINFO\'\)\" 
SCHEMAS=C##GUEST
logfile=%logfile%
pause

普通导入(full=n:导入当前用户名的数据库):

导入单个用户例子(fromuser=旧用户,touser=新用户):

导入数据库.dmp文件和日记.log文件在当前.bat文件运行路径!

@echo off
set logfile=fs#zfbz2018-8-17.log
imp username/pwd@orcl 
file=20171108.dmp 
fromuser=username 
touser=username full=n
log=%logfile%
pause

普通导出

例子(full=n:导出当前用户名的数据库):

导出数据库.dmp文件和日记.log文件在当前.bat文件运行路径!

@echo off
set logfile=fs#zfbz2018-8-17.log
exp C##guest/guest@localhost:1521/orcl 
file=guest20181026.DMP 
full=n
log=%logfile%
pause

 

 

以下为一些解释

一、exp 和imp导入导出

导出命令 (exp)

exp [用户名]/[密码]@[主机ip]:[端口号]/[SID/service] file=d:\zhpt.dmp full=n
file是导出路径
full=n,表示是否导出主机数据库上全部用户,n表示否,y表示是

 

导入数据库(imp)

# full 表示是否导出全部数据,一定要设置
# log 输出日志文件
# fromuser 从哪一个用户导入
# touser 导入到哪个用户
# ignore=y buffer=100000000; 修改缓冲区大小,有时sql语句过长,会造成缓冲区空间不足

例子:
imp username/pwd@实例名 file=zhpt.dmp log=logname.log full=y ignore=y buffer=100000000;

二、数据泵方式(推荐,体积小,使用expdp和impdp导入导出)

# my_dir是数据泵位置代名称

# exclude table:"in(表名,列名2,……)"不导出某些表

# SCHEMAS 模式

导出数据(expdp,导出到上面设置的那个数据泵目录文件夹中

expdp test/test@127.0.0.1:1521/orcl directory=my_dir dumpfile=my.dmp exclude=table:\"in \(\'DEPT\',\'EMP\'\)\" SCHEMAS=FSJSCX

其他问题

参考:https://www.jianshu.com/p/967762221fba

posted @ 2018-08-20 23:05  夯实点  阅读(1109)  评论(0编辑  收藏  举报