Oracle数据泵不同用户导入导出(表级)
就数据泵而言,个人知道的导入导出方式有三种,分别是table、schema、以及full。
明显table<schema<full
数据泵就是一个工具,那么使用工具时,只需要写一个文本文件来说明:
谁来使用这个工具(userid),
指定泵的位置(directory),
指定泵文件(dumpfile),
保留使用数据泵过程的信息(logfile),
指定是full or schema or table;
大概就是这样,可以看到,并没有指定是导入还是导出。
假设写的文本文件名为:table.par,那么导出就是expdp parfile=table.par,导入就是impdp parfile=table.par
导出:指将数据库的信息导出到数据泵文件中。
导入:指将数据泵文件的信息导入到数据库中。
先认识一个单词,schema:模式。
再来了解一个概念。
当创建一个用户的时候,会同时创建一个与用户同名的schema,这个schema的官方解释是对象的集合。
就一个集合,整这些,理解为一个包就行了,例如select * from 包名.对象名;
正如不同的包可能有同名的函数,不同的schema也可能有同名的对象名,也就是说,导出表时要指定schema(包名)。
同理,导入时也要指定数据泵文件的schema和指定导入用户的schema。
指定数据泵文件的schema是在tables属性里指定的,在表前加上schema名即可,而导入用户的schema则是用remap_schema属性指定,比如说要将数据泵里scott的表导到sys里就是remap_schema=scott:sys
在使用数据泵前设定一个directory,就是存放数据泵文件的目录。
create directory data_dump as '/data_dump';
当然,也可以查看有哪些目录
select directory_name,directory_path from dba_directories;
下面来记一些参数
userid 说明使用的是哪个用户进行操作
directory 说明使用的是哪个逻辑目录(就是上面创建的那个)
dumpfile 导出后的文件名字
logfile 导出过程中的日志文件
tables 导出的表
下面是导出脚本及expdp
cat >exp_table.par<<EOF userid=' / as sysdba' directory=data_dump dumpfile=exp_table_%u.dmp logfile=exp_table.log tables=(scott.temp,scott.tjy_test) cluster=n parallel=4 exclude=STATISTICS compression=ALL EOF
nohup expdp parfile=exp_table.par>exp_table.par.out &
tail -100f exp_table.par.out
对上面参数进行解释说明:
userid=' / as sydba' 说明用的是sys用户执行的数据泵操作
directory=data_dump 说明操作路径是data_dump(也就是上面创建的那个目录)
dumpfile=exp_table_%u.dmp 这里仅仅是说明导出后的文件命名,exp_表示这是导出的文件,table_表示表级操作,%u表示01-99的自动增长的整数,.dmp表示文件后缀
logfile=exp_table.log 跟上面的解释差不多。
tables=(scott.temp,scott.test) 说明要导出的是scott里的temp表和test表,注意这里的scott指的是schema,而不是username
其他的没什么好说的,想学自己百度。
下面是导入脚本及impdp
cat >imp_table.par<<EOF userid=' / as sysdba' directory=DATA_DUMP dumpfile=exp_table_%u.dmp logfile=imp_table.log TABLE_EXISTS_ACTION=append tables=(scott.temp,scott.test) remap_schema=scott:sys cluster=n parallel=8 EOF nohup impdp parfile=imp_table.par>imp_table.par.out & tail -100f imp_table.par.out
导入跟导出的其实没多大改变,目录还是那个目录。
需要注意的是多了一行table_exists_action=append 这行表示在原有表的基础上添加要导入的数据。
还有一行是remap_schema=scott:sys 这里冒号左边指定数据泵文件的schema,冒号右边指定导入用户的schema。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~