客户有一个需求,是将一个库中的某个用户迁移到一台新的oracle服务器上,因数据量较小,并且不涉及版本的升级,所以可以采用创建一个dblink,然后通过这个dblink直接从源库将用户数据导出并导入到新库中。

为了防止现场发生意外,因此先自己搭建一套环境进行测试,环境如下:

源库:192.168.56.100  Abbott    数据库:orcl 连接名:orcl1 导出用户:test

新库:192.168.56.40  ora-ogg  数据库:orcl 连接名:ogg   创建用户:abbott

实施步骤:

  1. 配置源库和新库的tnsnames.ora文件,使其可以互连,这里源库和新库的tnsnames.ora文件内容相同;

    [oracle@Abbott admin]$ vi tnsnames.ora
    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools. ORCL1 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.100)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    )
    ) OGG =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.40)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    )
    )

    2. 测试连接,从源库使用abbott用户连接到新库上,或者从新库用test用户连接到源库上:

    [oracle@Abbott admin]$ sqlplus abbott/abbott@ogg
    
    SQL*Plus: Release 11.2.0.4.0 Production on Wed May 24 16:01:36 2017  
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.  
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>

    3. 新库创建dblink,这里用sys用户登录,创建了一个public的dblink:

    SQL> create public database link sjdr connect to test identified by test using 'orcl1';  
    
    Database link created.

    4. 在源库授予导出用户test执行数据泵的权限:

    [oracle@Abbott admin]$ sqlplus  / as sysdba  
    
    SQL*Plus: Release 11.2.0.4.0 Production on Wed May 24 16:30:58 2017  
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.  
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> grant EXP_FULL_DATABASE to test; Grant succeeded.

    注:如果未授予该权限,在导入导出的时候将报如下错误:

    [oracle@ora-ogg admin]$ impdp system/oracle schemas=TEST network_link=sjdr  
    
    Import: Release 11.2.0.4.0 - Production on Wed May 24 16:24:25 2017  
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.  
    
    Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORA-31631: privileges are required
    ORA-39149: cannot link privileged user to non-privileged user

    5. 在新库中创建test用户所对应的表空间及数据文件:

    SQL> create tablespace test datafile '/u01/app/oracle/oradata/orcl/test.dbf' size 20m autoextend on;  
    
    Tablespace created  

    6. 执行导入导出:

    [oracle@ora-ogg admin]$ impdp system/oracle schemas=TEST network_link=sjdr  
    
    Import: Release 11.2.0.4.0 - Production on Wed May 24 16:33:16 2017  
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.  
    
    Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01": system/******** schemas=TEST network_link=sjdr
    Estimate in progress using BLOCKS method...
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    Total estimation using BLOCKS method: 64 KB
    Processing object type SCHEMA_EXPORT/USER
    Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
    Processing object type SCHEMA_EXPORT/ROLE_GRANT
    Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
    Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
    Processing object type SCHEMA_EXPORT/TABLE/TABLE
    . . imported "TEST"."T1" 1 rows
    Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" successfully completed at Wed May 24 16:33:30 2017 elapsed 0 00:00:14

    7. 检查结果:

    [oracle@ora-ogg admin]$ sqlplus / as sysdba  
    
    SQL*Plus: Release 11.2.0.4.0 Production on Wed May 24 16:33:40 2017  
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.  
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from test.t1; ID NAME
    ---------- --------------------
    1 zx

    8. 只导用户表结构,不包含表数据,并且将test用户表结构及对象导入到abbott用户下,修改test用户表空间到abbott表空间:

    [oracle@ora-ogg admin]$ impdp system/oracle remap_schema=test:abbott remap_tablespace=test:abbott network_link=sjdr content=metadata_only   

    9. 新库中abbott用户默认表空间为abbott,如果未指定remap_tablespace,而只是指定remap_schema为abbott,那么导入后对象仍然在TEST表空间中:

    [oracle@Abbott ~]$ impdp system/oracle remap_schema=test:abbott network_link=impabbott
    
    Import: Release 11.2.0.4.0 - Production on Thu May 25 23:26:00 2017
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    
    Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01": system/******** remap_schema=test:abbott network_link=impabbott
    Estimate in progress using BLOCKS method...
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    Total estimation using BLOCKS method: 64 KB
    Processing object type SCHEMA_EXPORT/USER
    ORA-31684: Object type USER:"ABBOTT" already exists
    Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
    Processing object type SCHEMA_EXPORT/ROLE_GRANT
    Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
    Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
    Processing object type SCHEMA_EXPORT/TABLE/TABLE
    . . imported "ABBOTT"."T1" 1 rows
    Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
    Processing object type SCHEMA_EXPORT/FUNCTION/GRANT/OWNER_GRANT/OBJECT_GRANT
    Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
    Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
    ORA-39082: Object type ALTER_FUNCTION:"ABBOTT"."VERIFY_FUNCTION_11G" created with compilation warnings
    Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
    ORA-39082: Object type ALTER_PROCEDURE:"ABBOTT"."MM" created with compilation warnings
    Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
    Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" completed with 3 error(s) at Thu May 25 23:26:12 2017 elapsed 0 00:00:11 [oracle@Abbott ~]$ sqlplus / as sysdba SQL> conn abbott/abbott
    SQL> select * from t1; ID NAME
    ---------- --------------------
    1 zx SQL> select segment_name,tablespace_name from dba_segments where owner='ABBOTT' and segment_name='T1'; SEGMENT_NAME TABLESPACE_NAME
    -----------------------------------------
    T1 TEST SQL> select segment_name,tablespace_name from dba_segments where segment_name='T1'; #一个test.T1 一个Abbott.T1 SEGMENT_NAME TABLESPACE_NAME
    -----------------------------------------------
    T1 TEST
    T1 TEST

    10. 使用sys无密码导入导出:

    [oracle@Abbott ~]$ impdp \'/ as sysdba\' directory=impdir dumpfile=full.dmp logfile=testim2.log remap_schema=test:abbott

    11.用户密码包含特殊符号的导入导出

  2. [oracle@Abbott ~]$ impdp \'sys/\"oracle@#123\" as sysdba\' directory=impdir dumpfile=full.dmp logfile=testim2.log

oracle 使用db_link 导入导出小结的更多相关文章

  1. 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

    在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...

  2. Oracle 数据泵导入导出总结

    Oracle 数据泵(IMPDP/EXPDP)导入导出总结 Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常 ...

  3. ORACLE数据库在导入导出时序列不一致的问题

    ORACLE数据库在导入导出时序列不一致的问题   在使用ORACLE数据库时,当给一个表设置自增字段时,我们经常会使用到序列+触发器来完成.但当你需要对数据库进行导入导出时,序列很容易出问题. 当你 ...

  4. Oracle之 dmp导入/导出、数据库操作等过程中的字符集问题

    影响Oracle数据库字符集最重要的参数是NLS_LANG参数. 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言.地域和字符集),每 ...

  5. oracle数据库数据导入导出步骤(入门)

    oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...

  6. oracle数据库的导入 导出实例

    oracle数据库的导入 导出实例 分类: DataBase2011-09-07 23:25 377人阅读 评论(0) 收藏 举报 数据库oraclefileusercmdservice 我要从另外一 ...

  7. oracle数据的导入导出(两种方法三种方式)

    大概了解数据库中数据的导入导出.在oracle中,导入导出数据的方法有两种,一种是使用cmd命令行的形式导入导出数据,另一种是使用PL/SQL工具导入导出数据. 1,使用cmd命令行导入导出数据 1. ...

  8. Linux 中 Oracle dmp 文件导入导出

    a. 用户名 system 密码 manager 导出到D:/daochu.dmp中 exp system/manager@SID file=d:/daochu.dmp full=y b. 将数据库中 ...

  9. Oracle imp exp 导入导出 执行脚本

    一:用命令 imp/exp 的方式进行数据的导入和导出 一:文件后缀名: 二:oracle  导出 exp 命令 echo 开始备份数据库 if not exist D:\oracle_bak\fil ...

随机推荐

  1. Weblogic中可以使用的脚本

    启动被管服务器的脚本 rm -rf ../servers/server5002/stage/* rm -rf ../servers/server5002/tmp/* sleep 20 USER_MEM ...

  2. Mac修改文件权限:You don’t have permission to save the file

    1.从互联网上或者其他途径拿过来的工程代码,往往会报下面的提示: (1)打开文件的时候出现窗口提示You don’t have permission to save the file “project ...

  3. 一起学Python:多线程-共享全局变量

    多线程-共享全局变量 from threading import Thread import time g_num = 100 def work1(): global g_num for i in r ...

  4. iOS中,MRC和ARC混编

    假设一个project为MRC,当中要加入ARC的文件: 选择target -> build phases -> compile sources -> 单击ARC的文件将compil ...

  5. Notes on OpenSSL and Qt(ssl.pri,qsslocket_openssl_symbols.cpp)

    Libraries name of openssl? The "library" portion of OpenSSL consists of two libraries. On ...

  6. TensorFlow 学习(十)—— 工具函数

    1. 基本 tf.clip_by_value() 截断,常和对数函数结合使用 # 计算交叉熵 crose_ent = -tf.reduce_mean(tf.log(y_*tf.clip_by_valu ...

  7. Enhancing network controls in mandatory access control computing environments

    A Mandatory Access Control (MAC) aware firewall includes an extended rule set for MAC attributes, su ...

  8. 类的XML序列化(XML Serialization)

    最近做的一个ASP.NET项目中,需要在一个页面中维护一个类的数组,在每次页面刷新的使其前一次的状态保持不变.开始错误的使用了static,导致了致命的共享错误.后来突然想起C#类能够使用XML序列化 ...

  9. dot net core 使用 usb

    原文:dot net core 使用 usb 本文告诉大家如何在 dot net core 使用 usb 目录 获得通知 读写 串口通信 LGPL 首先需要打开 Nuget 安装 CoreCompat ...

  10. Struts2——(4)OGNL与struts标签

    一.OGNL Object Graphic Navigation Language  对象图导航语言 依赖于 ognl.jar包 OGNL不是Struts框架独有的,它是和框架独立的一种技术. 例如: ...