重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要为大家展示了“oracle 12c使用数据泵复制数据库结构的注意事项有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“oracle 12c使用数据泵复制数据库结构的注意事项有哪些”这篇文章吧。
成都创新互联公司主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、营销型网站建设、网站程序开发、HTML5响应式成都网站建设、手机网站制作、微商城、网站托管及成都网站维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为玻璃隔断行业客户提供了网站建设服务。
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@
目标端
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使用数据泵复制数据库结构的注意事项有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!