使用datapump 导出导入同义词(export and import synonym using datapump)

php中文网
发布: 2016-06-07 17:29:56
原创
1585人浏览过

对于同义词的备份我们有多种方式来实现,如直接通过脚本生成同义词的创建脚本,或者使用dbms_metadata.get_ddl来提取同义词的定义

对于同义词的备份我们有多种方式来实现,如直接通过脚本生成同义词的创建脚本,或者使用dbms_metadata.get_ddl来提取同义词的定义脚本。然而在使用传统的exp或是datapump expdp实现schema级别数据迁移时,不能导出公共同义词。尽管如此,我们依旧可以使用导出导入的方式来实现。所不同的是,我们使用full=y的方式来单独导出同义词,,然后再将其导入的目标数据库。下文是对此进行的描述,末尾也给出了手动创建同义词的脚本。

1、环境

--源数据库
SQL> select * from v$version where rownum

BANNER
----------------------------------------------------------------
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

SQL> show parameter db_nam

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string XM6320
SQL> select count(*) from dba_synonyms where table_owner='GOEX_ADMIN';

COUNT(*)
----------
1042

--目标数据库
--目标数据库schema goex_admin的所有数据均来源于源数据库,但是使用datapump导入后,无同义词
SQL> select * from v$version where rownum

BANNER
----------------------------------------------------------------
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

SQL> show parameter db_name

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string KM3625

MindShow
MindShow

MindShow官网 | AI生成PPT,快速演示你的想法

MindShow 1492
查看详情 MindShow

--下面的查询中仅有两个同义词,这两个同义是在创建DB的时候手动创建的,非使用datapump导入产生的
SQL> select count(*) from dba_synonyms where table_owner='GOEX_ADMIN';

COUNT(*)
----------
2

2、从源数据库导出公共同义词

oracle@BKDB01p:~> env | grep SID
ORACLE_SID=XM6320
#使用下面的方式导出公共同义词,对于可导出的对象我们可以查询数据字典 DATABASE_EXPORT_OBJECTS
oracle@BKDB01p:~> expdp goex_admin/xxx directory=db_dump_dir dumpfile=syns.dmp logfile=exp_syns.log full=y \
> include=PUBLIC_SYNONYM/SYNONYM:\"IN \(SELECT synonym_name FROM dba_synonyms WHERE table_owner=\'GOEX_ADMIN\'\)\"

Export: Release 10.2.0.3.0 - 64bit Production on Wednesday, 19 June, 2013 16:11:19

Copyright (c) 2003, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
Starting "GOEX_ADMIN"."SYS_EXPORT_FULL_01": goex_admin/******** directory=db_dump_dir dumpfile=syns.dmp logfile=exp_syns.log
full=y include=PUBLIC_SYNONYM/SYNONYM:"IN (SELECT synonym_name FROM dba_synonyms WHERE table_owner='GOEX_ADMIN')"
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 0 KB
Processing object type DATABASE_EXPORT/SCHEMA/PUBLIC_SYNONYM/SYNONYM
Master table "GOEX_ADMIN"."SYS_EXPORT_FULL_01" successfully loaded/unloaded
******************************************************************************
Dump file set for GOEX_ADMIN.SYS_EXPORT_FULL_01 is:
/u02/database/XM6320/BNR/dump/syns.dmp
Job "GOEX_ADMIN"."SYS_EXPORT_FULL_01" successfully completed at 16:11:23

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号