千家信息网

oracle 12c使用数据泵复制数据库结构的注意事项有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"oracle 12c使用数据泵复制数据库结构的注意事项有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"oracle 12c使
千家信息网最后更新 2026年11月03日oracle 12c使用数据泵复制数据库结构的注意事项有哪些

这篇文章主要为大家展示了"oracle 12c使用数据泵复制数据库结构的注意事项有哪些",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"oracle 12c使用数据泵复制数据库结构的注意事项有哪些"这篇文章吧。

1. 创建目录

create or replace directory dp_dir as '/u02/files';

2. 导出用户SH,HR的所有结构,不需要数据

vi scott_meta.par

userid="/ as sysdba"

directory=dp_dir

dumpfile=scott_expdp.dmp

schemas=sh,hr

content=metadata_only

开启4个并行来执行导出

expdp parfile=scott_meta.par parallel=4

3. 导出数据库表空间结构

vi scott_tbs.par

userid="/ as sysdba"

directory=dp_dir

dumpfile=scott_tbs.dmp

include=tablespace

full=y

content=metadata_only

开启2个并行来执行导出

expdp parfile=scott_tbs.par parallel=2

4. 复制密码校验规则脚本

源库使用了密码规则,通过修改下面的文件可以获得。

cd $ORACLE_HOME/rdbms/admin

cp utlpwdmg.sql scott_utlpwdmg.sql

根据需要修改脚本内容,如果只是需要一个密码验证的话可以按照下面的方式来修改。

vi scott_utlpwdmg.sql

...省去部分内容

ALTER PROFILE DEFAULT LIMIT

/*

PASSWORD_LIFE_TIME 90

PASSWORD_GRACE_TIME 3

PASSWORD_REUSE_TIME 365

PASSWORD_REUSE_MAX 20

FAILED_LOGIN_ATTEMPTS 3

PASSWORD_LOCK_TIME 1

*/

PASSWORD_VERIFY_FUNCTION ora12c_verify_function;

...省去部分内容

5. 复制profile脚本

源库用户有app_profile限制,需要手工导出

SYS@cdb > select distinct profile from dba_profiles;

PROFILE

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

APP_PROFILE

DEFAULT

select profile,resource_name,limit from dba_profiles where profile='APP_PROFILE';

通过上面的查询结构修改脚本为

vi app_profile.sql

CREATE PROFILE "APP_PROFILE" LIMIT

CPU_PER_SESSION UNLIMITED

CPU_PER_CALL UNLIMITED

CONNECT_TIME UNLIMITED

IDLE_TIME UNLIMITED

SESSIONS_PER_USER UNLIMITED

LOGICAL_READS_PER_SESSION UNLIMITED

LOGICAL_READS_PER_CALL UNLIMITED

PRIVATE_SGA UNLIMITED

COMPOSITE_LIMIT UNLIMITED

FAILED_LOGIN_ATTEMPTS UNLIMITED

PASSWORD_LOCK_TIME UNLIMITED

PASSWORD_GRACE_TIME UNLIMITED

PASSWORD_LIFE_TIME UNLIMITED

PASSWORD_REUSE_MAX UNLIMITED

PASSWORD_REUSE_TIME UNLIMITED

PASSWORD_VERIFY_FUNCTION NULL;

scp 表空间结构脚本、schema脚本、密码校验脚本、profile脚本到目标数据库

scp scott_tbs.dmp scott_expdp.dmp scott_utlpwdmg.sql app_profile.sql oracle@:/home/oracle/files

目标端

5. 创建一个目录

create or replace directory dp_dir as '/home/oracle/files';

6. 使用数据泵的sqlfile参数将表空间语句导出

impdp \'/ as sysdba\' directory=dp_dir dumpfile=scott_tbs.dmp sqlfile=scott_tbs.sql

脚本内容是create tablespace xxx ...

语句执行完毕后会生成名为scott_tbs.sql的脚本,包含数据库中创建所有表空间的语句。我们需要将业务所需的表空间(除去安装系统时候自带的system/sysaux/undo/users/temp)的脚本提取出来。如果目标端磁盘空间较小,需要将数据文件调小后再运行。

7. 创建表空间

SQL >@/home/oracle/files/scott_tbs.sql

8. 创建密码约束

SQL >@/home/oracle/files/scott_utlpwdmg.sql

9. 创建用户profile。如果没有这个步骤在在导入脚本创建用户的时候会找不到profile而报错。

SQL > @/home/oracle/files/app_profile.sql

10. 导入表结构。在这一步会创建用户,授权,创建表等操作。

impdp \'/ as sysdba\' directory=dp_dir dumpfile=scott_expdp.dmp logfile=scott_expdp.log parallel 4

总结:

数据泵的content=metadata_only选项为导出结构的需求提供了方便。导出对象可以为全库full=y,表空间inclue=tablespace等等。

使用impdp的sqlfile参数可以导出dmp文件中的创建语句。使用dbms_metadata.get_ddl也可以导出表空间、表的创建语句。

在导入具体用户结构之前需要将创建用户所需的密码规则和相关profile创建好再impdp导入,避免创建用户时出错。

以上是"oracle 12c使用数据泵复制数据库结构的注意事项有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 脚本 结构 空间 用户 内容 数据库 密码 语句 事项 注意事项 文件 目标 篇文章 规则 面的 参数 时候 目录 空间结构 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 哈尔滨大商圈互联网科技有限公司 互联网核心科技是什么 互联网下的科技发展 九亚互联网科技 易通互联网络科技有限公司 上游互联网科技 互联网教育科技公司vipkid 互联网为啥属于高科技 岳阳华臻互联网科技有限公司 花神(南京)互联网科技有限公司 华夏互联网科技业 知域互联网科技有限公司大骗子 中国互联网十大科技股排名 互联网公司黑科技创始人 明优互联网科技有限公司 互联网金融科技名词解释 四川互联网展示科技馆设计 科技互联网经济论坛 高科技和互联网的现代国家 手冲咖啡和咖啡机区别 九亚互联网科技 海南科技产业互联网平台 广州新华互联网科技学校电竞方面 阿里互联网科技企业 上海同邻互联网科技有限公司规模 互联网科技手抄报图片 北京互联网科技类企业分布 互联网科技品牌 前海云享互联网科技
0