欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle_expdp数据迁移

程序员文章站 2023-03-27 23:14:41
oracle_expdp数据迁移,create DIRECTORY datadump as '/home/oracle/'; --创建目录对象位置(建议放在归档目录...

oracle_expdp数据迁移,create DIRECTORY datadump as '/home/oracle/'; --创建目录对象位置(建议放在归档目录下) grant read,write on DIRECTORY datadump to frs; ---给应用用户授予读写权限 select * from DBA_DIRECTORIES;--查询数据字典视图查看数据库所有的目录对象, expdb frs/frs DIRECTORY ='datadump' DUMPFILE=frs.dmp; ---此命令会在已定义的目录(/home/oracle)中产生导出的文件(frs.dmp)

导出用户 expdp frs/frs directory=dump_backup dumpfile=frs%U.dmp logfile=frs.log PARALLEL=4 schemas=frs; 导入用户 impdp frs/frs directory=dump_backup dumpfile=frs%U.dmp logfile=frs.log PARALLEL=4 remap_schema=frs:frs; 二 ,expdp导出模式有5种: a,全库导出模式(Full Export Mode),使用参数FULL指定,用户需具有DATAPUMP_EXP_FULL_DATABASE角色。 b,模式(用户)导出模式(Schema Mode),使用参数SCHEMAS指定,是默认的导出模式。 c,表导出模式(table Mode),使用参数tables指定,如果指定了参数transportable=always,则只有对象的元数据被导出。 d,表空间导出模式(Tablespace Mode),使用参数TABLESPACES指定,导出指定表空间中所有表及其依赖对象的元数据和行数据。 重要参数: COMPRESSION=[ALL|DATA_ONLY|METADATA_ONLY|NONE] 指明转存文件中数据进行压缩,DATA_ONLY只对行数据进行压缩,METADATA_ONLY只对元数据进行压缩,none表示不压缩,默认为METADATA_ONLY. CONTENT=[all|metadate_only|data_only] 默认为all, all表示导出对象的元数据,data_only只导出对象的行数据,metadata_only只导出对象的元数据。 DUMPFILE 转存导出文件名称,包含目录对象名,默认值为expdat.dmp. DIRECTORY 指定转存文件和日志文件所在位置的目录对象,该对象由DBA预先创建。 eg: expdp frs/frs DIRECTORY=datadump DUMPFILE=frs.dmp COMPRESSION=METADATA_ONLY CONTENT=METADATA_ONLY ESTIMATE=[BLOCKS|STATISTICS] 估计导出作业中每个表中的数据占用磁盘空间大小的方法 ESTIMATE_ONLY=[YES|NO] 指定导出作业占用磁盘空间大小是是否真正进行导出操作,默认为NO。 EXCLUDE 指定导出操作中要排除的对象类型和对象元数据。 FILESIZE 转存文件的最大尺寸。FILESIZE=100[B|KB|MB|GB|TB] eg: expdp frs/frs DIRECTORY=datadump DUMPFILE=frs.dmp EXCLUDE=VIEW,PACKAGE,FUNCTION FILESIZE=50MB

FULL是否进行全数据库导出,包含所有行数据与元数据。FULL=[YES|NO],默认为no.

INCLUDE 指定导出操作中导出的对象类型和对象元数据。 eg:expdp frs/frs SCHEMAS=frs DUMPFILE=FRS.DMP DIRECTORY=datadump LOGFILE=expdp.log INCLUDE=TABLE:"IN ('SYS_USER','SYS_ORG')" INCLUDE=INDEX:"LIKE 'EMP%'" INCLUDE=PROCEDURE JOB_NAME 指定导出作业名称, LOGFILE 导出日志名称,默认为export.log. PARALLEL 指定导出作业是最大的并行进程个数,默认为1. eg:expdp frs/frs DIRECTORY=datadump LOGFILE=expdp.log JOB_NAME=par4_job DUMPFILE=frs%u.dmp PARALLEL=4

QUERY 导出操作中select语句中的数据过滤条件。 eg:expdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP LOGFILE=expdp.log QUERY='SYS_USER:"WHERE ID>100 AND USER_CODE=010623"' REUSE_DUMPFILES =[YES|NO]指定是否覆盖同名的转存文件,默认为no. SAMPLE 指定导出数据的百分比。 eg:expdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP SAMPLE=70 REUSE_DUMPFILES=YES SCHEMAS 指定用户导出及用户列表。 eg: expdp system/system DIRECTORY=datadump DUMPFILE=FRS.DMP SCHEMAS=FRS,HR,OS STATUS 指定显示导出作业状态的时间间隔,默认为0, eg:expdp frs/frs DIRECTORY=datadump SCHEMAS=FRS,HR STATUS=300 TABLES 指定表模式导出及表名称列表。 eg: expdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP tables=sys_user,sys_org TABLESPACES 指定表空间模式及表空间名称列表。 eg: expdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP TABLESPACES=tbs1,tbs2

示例: 1,表导出模式: 例1:导出用户frs下的sys_user表和sys_org表,转存文件为frs.dmp,日志文件为expdp.log,作业名称exp_user_org,导出操作启动3个进程。 expdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP LOGFILE=expdp.log tables=sys_user.sys_org JOB_NAME=exp_user_org PARALLEL=3 例2:在表导出模式中,可以预先估计导出数据(不包含元数据)占用空间的大小,其结果写入日志文件中,同时终端显示。 expdp frs/frs DIRECTORY=datadump ESTIMATE_ONLY=yes tables=sys_user,sys_org locations LOGFILE=EXP.LOG 2,用户导出模式,如果导出其他用户模式需要具备DATAPUMP_EXP_FULL_DATABASE角色,默认导出当前用户的所有对象的元数据及行数据。 expdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP LOGFILE=EXP.LOG SCHEMAS=FRS JOB_NAME=EXP_JOB 3,表空间导出模式 expdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP tablespace=frs_dat 4,数据库导出模式 expdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP FULL=yes NOLOGFILE=YES 5,参数文件方式导出 创建一个文件exp.txt,其内容为:DIRECTORY=datadump DUMPFILE=FRS.DMP tables=sys_user,sys_org 然后在命令行执行:expdp frs/frs PARFILE=D:\exp.txt

三, IMPDP导入模式5种 a,全库导入模式(Full Export Mode),使用参数FULL指定,用户需具有DATAPUMP_EXP_FULL_DATABASE角色。 b,模式(用户)导入模式(Schema Mode),使用参数SCHEMAS指定,是默认的导出模式。 c,表导入模式(table Mode),使用参数tables指定,如果指定了参数transportable=always,则只有对象的元数据被导出。 d,表空间导入模式(Tablespace Mode),使用参数TABLESPACES指定,导出指定表空间中所有表及其依赖对象的元数据和行数据。 CONTENT=[all|metadate_only|data_only] 默认为all, all表示导入对象的元数据,data_only只导入对象的行数据,metadata_only只导入对象的元数据。 DIRECTORY DUMPFILE NOLOGFILE=[YES|NO] 是否生成导入日志,默认NO. REMAP_SCHEMA=frs:frsana 从用户frs的所有对象导入到frsana用户中。跨用户导入 eg: >expdp system/passwd SCHEMAS=frs DIRECTORY=datadump DUMPFILE=FRS.DMP ---导出frs用户的所有对象 >impdp system/passwd DIRECTORY=datadump DUMPFILE=FRS.DMP REMAP_SCHEMA=frs:frsana --将frs用户的所有对象导入到frsana用户中 REMAP_TABLE 导入过程中重命名表 eg: impdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP TABLES=FRS.SYS_USER REMAP_TABLE=FRS.SYS_USER:USER --将表sys_user改为表user REMAP_TABLESPACE 将源表空间所有对象导入目标表空间中 eg: impdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP REMAP_TABLESPACE=tbs1:tbs6 --将表空间tbs1的所有对象导入tbs6中。 REUSE_DATAFILES=[Y|N] 导入过程中,创建表空间时是否使用已经存在的数据文件, eg: impdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP FULL=YES LOGFILE=IMP.LOG REUSE_DATAFILES=YES SCHEMAS 用户导入模式 eg: impdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP SCHEMAS=FRS LOGFILE=IMP.LOG

SKIP_UNUSABLE_INDEXES =[YES|NO] 指定导入操作是是否跳过不可使用的索引。 STREAMS_CONFIGURATION =[yes|no] 指定是否导入存储文件中生成的流元数据。 TABLE_EXISTS_ACTION=[SKIP|APPEND|TRUNCATE|REPLACE] 指定导入过程中要创建的表已经存在时该如何操作,默认为skip。追加导入 示例: 表导入模式: impdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP TABLES=SYS_USER,SYS_ORG CONTENT=DATA_ONLY --表已经存在,只导数据 impdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP TABLES=SYS_USER,SYS_ORG NOLOGFILE=Y --导入表的元数据及行数据

impdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP TABLES=SYS_USER,SYS_ORG QUERY='SYS_USER:"where id<100"' --只导入符合条件的数据 impdp frs/frs DIRECTORY=datadump DUMPFILE=FRS.DMP TABLES=SYS_USER TABLE_EXISTS_ACTION=APPEND --向表中追加数据

用户到入模式: impdp system/passwd DIRECTORY=datadump DUMPFILE=FRS.DMP REMAP_SCHEMA=frs:frsana --将frs用户的所有对象导入到frsana用户中,跨用户

四,EXP/IMP导出与导入数据4种 全库模式:使用参数FULL,用户具有EXP_FULL_DATABASE角色或IMP_FULL_DATABASE角色。 表空间模式:使用参数TABLESPACE,指定参数TRANSPORT_TABLESPACE可以只导出表空间的所有元数据。 用户模式:使用参数OWNER,授权用户可以从指定用户模式中的对象导出,或指定FROMUSER参数将转存文件中指定的用户模式的内容导入数据库中。 表模式:使用参数TABLES,指定表或分区导出到转存文件。 BUFFER 设置数据缓冲区大小。 DIRECT 指定是否使用直接路径,默认N。 FILE 指定导出的转存文件。 CONSTRAINTS 指定是否导出约束条件,默认Y。 GRANTS 指定是否导出权限,默认Y。 INDEXES 指定是否导出索引,默认Y。 PARFILE 指定参数文件名称。 QUERY 指定查询条件,导出符合条件的数据。 TRIGGERS 指定是否导出触发器,默认Y. exp导出: eg: exp system/password FULL=y FILE='D:\BACKUP\exp.dmp' --全库导出 exp system/password OWNER=frs,hr FILE='D:\BACKUP\exp.dmp' GRANTS=Y COMPRESS=Y --用户对应模式的所有对象元数据及行数据 exp system/password TABLES=SYS_USER FILE='D:\BACKUP\exp.dmp' QUERY=\' WHERE id<100 \'

imp导入: COMMIT 指定是否导入一组数据后提交,默认N全表导入提交, DESTROY 指定是否覆盖数据库原有数据文件,默认N. DATA_ONLY 指定是否是只导入数据,默认是导入元数据和行数据,默认N. fromuser 指定导入的用户名列表。 IGNORE 指定是否忽略导入过程中创建对象时发生错误,默认N. ROWS 指定是否导入行数据。 TOUSER 指定导入的用户模式列表。 USERID 指定连接数据库的用户名和口令。 LOG 指定一个日子文件。 PARFLIE 指定存放参数文件。 GRANTS 指定是否导入权限,默认Y.