共计 3107 个字符,预计需要花费 8 分钟才能阅读完成。
本篇内容介绍了“oracle 数据库的 impdp,expdp 有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
oracle 数据库在迁移的时候如果数据库的数据量在 100G 以内,建议是用数据泵,如果数据库的数据量大于 100G,建议使用其它的数据同步工具。
如果用户对停机的时间,没有要求,可以考虑按用户进行进行数据迁移,
impdp,expdp 可以实现跨平台,跨版本的数据迁移。
oracle 数据库使用数据泵导入导出的是相同的用户名字,相同的表空间,想要看导出的情况可以加个参数 logfile= 日志的名字,查看导出导入的详细过程,如果不是相同相同的用户名字,相同的表空间,需要添加相关参数
建立目录
create directory dump_dir as /home/oracle/dump/
grant read,write on directory dump_dir to public;
数据的导出
–1) 按用户导
expdp scott/tiger@192.168.0.110:1521/orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dump_dir;
–2) 并行进程 parallel
expdp scott/tiger@192.168.0.110:1521/orcl directory=dump_dir dumpfile=scott3.dmp parallel=40 job_name=scott3
–3) 按表名导 (多张表使用逗号隔开)
expdp scott/tiger@192.168.0.110:1521/orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dump_dir;
–4) 按查询条件导
expdp scott/tiger@192.168.0.110:1521/orcl directory=dump_dir dumpfile=expdp.dmp Tables=emp query= WHERE deptno=20
–5) 按表空间导 (多个表空间使用逗号隔开)
expdp system/oracle DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
–6) 导整个数据库
expdp \ / as sysdba\ DIRECTORY=dump_dir DUMPFILE=tablespace.dmp
FULL=y;
————————————————————————————————————
数据的导入
–1) 导到指定用户下
impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=scott;
–2) 导入表
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=expdp.dmp TABLES=scott.dept;
–3) 导入表空间
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=example;
–4) 导入数据库
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
————————————————————————————————————-
如果是不同版本数据库,不同表空间,不同用户需要使用 version,remap_tablespace,remap_schema
其中
————————————————————————————————————-
如果是从原库的某个用户只是导出用户下的表结构,不导出数据,也就是我们常说的只导出某个用户下的元数据(元数据被称为管理数据的数据,比如表的结构就被成为元数据),在 expdp 的时候需要使用
content=metadata_only 参数
————————————————————————————————————-
多个表空间对象导入到一个表空间中
impdp yngtts/yngtts DIRECTORY=DATA_PUMP_DIR dumpfile=mydir:yngtts0514.dmp logfile=mydir:yngtts0514.log remap_schema=yngtts/yngtts remap_tablespace= (TS_YNGT:TS_YNGT,CWFTS:TS_YNGT,TS_EDIDB_DEFAULT:TS_YNGT)
————————————————————————————————————
TABLE_EXISTS_ACTION
TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]
SKIP 按原样离开表并移动到下一个对象。如果 CONTENT 参数设置为,则这不是有效选项 DATA_ONLY。
APPEND 从源加载行并保持现有行不变。
TRUNCATE 删除现有行,然后从源加载行。
REPLACE 删除现有表,然后从源创建并加载它。如果 CONTENT 参数设置为,则这不是有效选项 DATA_ONLY。
使用这些选项时,以下注意事项适用:
使用 TRUNCATE 或时 REPLACE,请确保受影响的表中的行不是任何引用约束的目标。
在源中使用 SKIP,APPEND 或者 TRUNCATE 现有的表依赖对象(如索引,授权,触发器和约束)不会被修改。因为 REPLACE,如果未明确或隐式排除(使用 EXCLUDE)它们并且它们存在于源转储文件或系统中,则从源中删除并重新创建从属对象。
使用 APPEND 或时 TRUNCATE,会执行检查以确保源中的行与现有表兼容,然后再执行任何操作。
如果现有表具有活动约束和触发器,则使用外部表访问方法加载它。如果任何行违反了活动约束,则加载失败并且不加载任何数据。您可以通过 DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS 在“导入”命令行上指定来覆盖此行为。
如果您有必须加载的数据,但可能导致约束违规,请考虑禁用约束,加载数据,然后在重新启用约束之前删除问题行。
使用时 APPEND,数据总是加载到新空间; 即使可用,现有空间也不会被重复使用。因此,您可能希望在加载后压缩数据。
“oracle 数据库的 impdp,expdp 有什么作用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!