oracle导数

网友投稿 665 2022-05-29

导数原则:

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

oracle导数

impdp help=y

-----------------------------------------

未完待续

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux权限
下一篇:13.6 Linux dump
相关文章