oracle导数
导数原则:
1、数据量大的情况下,建议先导出表结构,再导出数据,最后导出索引。导入时表结构、数据、索引依次导入;
2、检查数据库版本,确认导出导入的oeacle版本是否一样,版本相差较大时要指定版本。 select version from v$instance; 也可以用sqlplus -v 查看;
3、导入时检查字符集是否与导出数据库一致(字符集不一致,不能导入) select userenv('language') from dual;
4、导出导入之前检查数据量及磁盘空间,确定是否有足够空间导出导入,决定采取什么样的方式导出及导入。
检查是否创建导数目录
select * from dba_directories;
创建目录
create or replace directory ORADUMP as '/oradump';
grant read,write on directory ORADUMP to user;(一般使用数据库管理员账号执行导出导入,使用非管理员账号执行此操作)
编辑par文件
expdp
expdp_oracle.par
普通例子
userid="/as sysdba"
directory=ORADUMP
SCHEMAS=user1,user2,user3
dumpfile=expdp_oracle_%U.dmp
logfile=expdp_oracle.log
parallel=8
COMPRESSION=ALL
exclude=statistics,grant
只导出表结构
userid='/ as sysdba'
dumpfile=exp_oracle_metadata_%U.dmp
logfile=exp_oracle_metadata.log
directory=ORADUMP
SCHEMAS=user1
PARALLEL=4
COMPRESSION=ALL
CONTENT=METADATA_ONLY
只导出数据
userid='/ as sysdba'
dumpfile=exp_coracle_data_%U.dmp
logfile=exp_oracle_data.log
directory=ORADUMP
SCHEMAS=user1
PARALLEL=8
COMPRESSION=ALL
CONTENT=DATA_ONLY
filesize=10G
---------------------------------------------------
impdp
impdp_oracle.par
导入表结构,排除主键、索引
userid="/ as sysdba"
directory=ORADUMP
dumpfile=exp_oracle_metadata_%U.dmp
logfile=imp_oracle_metadata.log
cluster=n
table_exists_action=replace
transform=segment_attributes:n
exclude=index,constraint
导入表数据
userid="/ as sysdba"
directory=ORADUMP
dumpfile=exp_oracle_data_%U.dmp
logfile=imp_oracle_data.log
cluster=n
parallel=8
table_exists_action=truncate
data_options=skip_constraint_errors
将主键索引导出到sql文件
userid="/ as sysdba"
directory=ORADUMP
dumpfile=exp_oracle_metadata_%U.dmp
logfile=imp_oracle_metadata_sql.log
cluster=n
parallel=4
include=index,constraint
sqlfile=oracle_index_ddl.sql
执行导数命令
前台运行
expdp parfile=expdp_oracle.par
impdp parfile=impdp_oracle.par
后台运行
nohup expdp parfile=expdp_oracle.par > outfile 2>&1 &
nohup impdp parfile=impdp_oracle.par > outfile 2>&1 &
------------------------------------------------------------------------------
expdp导数命令使用的参数
1、常用的参数
PARFILE 指定参数文件名。其他参数写入par文件中,执行导出的时候指定PARFILE文件导出,就不需要在导出命令中指定一堆参数。
USERID 指定使用哪个用户执行导出,必须是命令行中的第一个参数。
DIRECTORY 指定导出的目录。
SCHEMAS 要导出的数据库对象集合列表,schema名字与user名字一一对应并且相同,可以称schema为user的别名。
DUMPFILE 指定目标转储文件名。例如:DUMPFILE=expdp_user.dmp
COMPRESSION 减小转储文件的大小。有效的关键字值包括:ALL, DATA_ONLY, METADATA_ONLY,NONE。
CONTENT 指定要导出的内容,有效的关键字值为:ALL, DATA_ONLY, METADATA_ONLY,分别表示全部,仅数据,仅表结构。
PARALLEL 指定并发数,一般匹配CPU核心数较合适。
LOGFILE 指定日志文件名。
2、导数过程中较常用的参数,用于过滤导出内容
TABLES 标识要导出的表列表。例如:TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995.
TABLESPACES 标识要导出的表空间列表。
QUERY 用于导出表子集的谓词子句。例如:QUERY=employees:"WHERE department_id > 10".
VIEWS_AS_TABLES 标识要导出为表的一个或多个视图。 例如:VIEWS_AS_TABLES=HR.EMP_DETAILS_VIEW.
INCLUDE 只导出特定的对象类型。是更高级的指定。例如:INCLUDE=TABLE_DATA.
EXCLUDE 排除特定对象类型。是更高级的排除。例如:EXCLUDE=SCHEMA:"='HR'".
3、导数时有其他要求而添加的参数,
FILESIZE 以字节为单位指定每个转储文件的大小,有时导成一个文件会很大,限制单个dmp文件大小,达到限制条件时,生成一个新的dmp。
JOB_NAME 指定要创建的导出作业的名称,不指定是会自动创建默认作业名称。
REUSE_DUMPFILES 如果目标转储文件存在,则覆盖该文件[NO]。
COMPRESSION_ALGORITHM 指定应使用的压缩算法。有效的关键字值为:BASIC, LOW, MEDIUM, HIGH.
4、较少用到的参数,稍作了解,需要时可进一步研究。
FULL 导出整个数据库 [NO]。
LOGTIME 指定在导出操作期间显示的消息加时间戳。有效的关键字值包括:ALL, [NONE], LOGFILE and STATUS。
NOLOGFILE 不要写入日志文件 [NO].
REMAP_DATA 指定数据转换函数。例如,REMAP_DATA=EMP.EMPNO:REMAPKG.EMPNO。
SAMPLE 要导出的数据百分比。
SERVICE_NAME 用于约束Oracle RAC资源的活动服务和关联资源组的名称。
SOURCE_EDITION 用于提取元数据的版本。
STATUS 将监控频率(秒)作业状态,其中默认的[0]将在可用时显示新状态。
VERSION 要导出的对象的版本。有效的关键字值是: [COMPATIBLE], LATEST 或任何有效的数据库版本。
TRANSPORT_TABLESPACES 传输表空间模式,这种导出方式效率很高,时间开销主要是花在复制数据文件产生的I/O上。
了解更多导数参数执行以下命令,不需要登录数据库,在安装数据库的机器上执行以下命令:
expdp help=y
impdp help=y
-----------------------------------------
未完待续
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。