oracle导数

举报
fei123 发表于 2022/04/01 14:59:20 2022/04/01
【摘要】 经验整理,未完待续

导数原则:

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

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

未完待续

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。