oracle_expdp数据迁移
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.
上一篇: oracle用户创建及权限设置命令教程
推荐阅读
-
Sql Server 2008 还原数据库 3154错误
-
CodeIgniter自带的数据库类使用介绍
-
mysql数据库子分区教程
-
自定义用于ASP Web站点的SQL 7.0数据库_MySQL
-
javascript - html5 单页面应用如何合理的安排后台管理数据
-
OA (ssh) 基本实现(poi 生成 Excel , struts2动态下载 mysql数据
-
岛娱链打造新一代物联数据共享的创新型商业模式
-
MongoDB的操作因素和数据模型
-
ASP.NET Core 中使用EF Core 将实体映射到数据库表的方法(SQL Server)
-
中小型数据库 RMAN CATALOG 备份恢复方案(一)