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
其他问题