Oracle数据库迁移方式一:impdp+dblink

实验环境:

源库:  192.168.2.200  SID=testdb

目标库:192.168.2.100  SID=testdb

实验目的:

使用impdp+dblink的方式 将192.168.2.200数据库上的jtrms用户的所有数据导入到目标数据库192.168.2.100

注意:使用impdp+dblink 的方式,这样就节省了数据导出(expdp),然后再导入的过程。

实施步骤:

一、源库操作:

1、首先检查源库要迁移的用户信息:

SQL> select USERNAME,DEFAULT_TABLESPACE from dba_users where USERNAME like ‘JTRMS‘; ---检查用户的默认表空间

USERNAME                       DEFAULT_TABLESPACE

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

JTRMS                          TEST

2、该用户的表空间大小

SQL> select TABLESPACE_NAME,BYTES from dba_data_files where TABLESPACE_NAME like ‘TEST‘;

TABLESPACE_NAME                     BYTES

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

TEST                            314572800

SQL> show user;

USER is "JTRMS"

SQL> select * from tab;     ----检查该用户一共有97张表

TNAME                          TABTYPE  CLUSTERID

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

ECR_ANNOUNCEMENT               TABLE

ECR_APPROVAL                   TABLE

ECR_APPROVAL_TO_RECEIVE        TABLE

ECR_BP_SYN                     TABLE

ECR_CHANGE                     TABLE

JFORUM_THEMES                  TABLE

JFORUM_TOPICS                  TABLE

JFORUM_TOPICS_WATCH            TABLE

JFORUM_USERS                   TABLE

JFORUM_USER_GROUPS             TABLE

JFORUM_VOTE_DESC               TABLE

JFORUM_VOTE_RESULTS            TABLE

JFORUM_VOTE_VOTERS             TABLE

JFORUM_WORDS                   TABLE

SYS_TEMP_FBT                   TABLE

。。。。。。。

。。。。。。。

97 rows selected.

3、查看该用户下的索引信息:

SQL> set linesize 300 pagesize 300

SQL> select INDEX_NAME,TABLE_OWNER,STATUS,NUM_ROWS from user_indexes;

4、查看该用户下所有的job信息

alter session set nls_date_format = ‘yyyy-mm-dd hh24:mi:ss‘;

set linesize 300 pagesize 300

col what for a50

col interval for a50

select job,what,LAST_DATE,NEXT_DATE,SCHEMA_USER,interval from  user_jobs;

二、在目标数据库上操作

注意:在目标数据库创建用户信息之前,一定要检查目标看是否有该用户的信息,和表空间是否有重名等

1、在目标数据库上创建用户信息---一切以源库为标准

SQL> create tablespace test datafile ‘/opt/oracle/test.dbf‘ size 300M;  ---创建test表空间

SQL> create user jtrms identified by jtrms default tablespace test;  ---创建jtrms用户

SQL> grant connect,resource to jtrms;  ---对该用户授权

SQL> grant dba to jtrms;

2、在目标数据库增加源库的tns文件信息,并测试连接源库

[[email protected] ~]$ vim  tnsnames.ora

testdb =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.200)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = testdb)

)

)

---注意,增加的是源库192.168.2.200的信息

[[email protected] ~]$ sqlplus jtrms/[email protected] ; ----使用jtrms用户连接源库192.168.2.200

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 5 00:54:31 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 instance_name from v$instance;

INSTANCE_NAME

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

testdb

3、在目标数据库上创建dblink

create public database link testlink  connect to jtrms identified by jtrms

using ‘(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.200)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = testdb)

)

)‘;

注意:该dblink是连接源库用的

4、在目标数据库上,开始使用下面的命令将源库jtrms用户的数据使用dblink导入到目标库

[[email protected] ~]$ impdp jtrms network_link=testlink schemas=jtrms cluster=N PARALLEL=2 

Import: Release 11.2.0.4.0 - Production on Mon Jun 5 01:03:16 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Password:    ---输入用户的密码

5、登录数据库,验证数据是否传输成功:

[[email protected] ~]$ sqlplus ‘/as sysdba‘

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 5 01:06:34 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> conn jtrms/jtrms

SQL> select count(*) from tab;

COUNT(*)

----------

97

SQL> set linesize 300 pagesize 300

SQL> select INDEX_NAME,TABLE_OWNER,STATUS,NUM_ROWS from user_indexes;

INDEX_NAME                     TABLE_OWNER                    STATUS     NUM_ROWS

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

IDX_BOK_REL                    JTRMS                          VALID             0

IDX_BOK_USER                   JTRMS                          VALID             0

SYS_C0011373                   JTRMS                          VALID             0

SYS_C0011372                   JTRMS                          VALID             0

IDX_BANLIST_EMAIL              JTRMS                          VALID             0

-----至此,实施完成;

时间: 2024-12-28 01:03:36

Oracle数据库迁移方式一:impdp+dblink的相关文章

Oracle数据库迁移-基础

Oracle数据库迁移-基础 作为一个开发人员,数据库知识肯定是需要我们掌握的.但是目前公司的数据库都是有专门的DBA维护的,一般都是给我们一个环境地址,然后我们书写CRUD SQL.而且公司产品要求是可以跨数据源的,这样平时基本上都不太关心特定数据库平台的操作.结果导致自己的DB知识严重不足.今天因为一些原因,需要在外网服务器上搭建演示环境,结果需要"悲剧"的自己操作数据库. 任务:在外网服务器上搭建演示环境,包括服务器.代码.数据库.     解决方案: (1)找一个新的产品安装程

oracle数据库迁移步骤思路

背景:做为一名DBA,oracle数据库迁移是经常要遇到的事情,正好最近我也在迁移一个业务系统,数据库就是oracle,顺便记录一下. 说明:为了方便说明,旧的数据库称为A,新的为B.用户和密码是IRP/IRP ,  B是全新的环境. 步骤思路: 1.从 A 上导出数据文件. sqlplus /nolog conn / as sysdba EXP IRP/IRP BUFFER=64000 FILE=D:\test.DMP log=D:\test.log OWNER=IRP 2.在A机器上查看用户

atitit.客户端连接oracle数据库的方式总结

客户端连接oracle数据库的方式总结 目录 Java程序连接一般使用jar驱动连接..... 1 桌面GUI一般采取c语言驱动oci.dll1 直接连接... 1 间接连接(需要配置tns及其envi var)... 1 JDBC驱动的4种类型... 1 Java程序连接一般使用jar驱动连接.. 标识字符串为thin...也叫thin驱动. 当然也可以使用oci  c类库驱动,标识字符串为oci.不过考虑到jni的调用,层次增多,不一定能提升性能.. 作者老哇的爪子 Attilax 艾龙, 

Oracle数据库迁移的几种方式

面试: 一.exp/imp逻辑备份与恢复: 二.Storage存储迁移: 将数据文件.控制文件.日志文件.spfile挂到新机器上,然后在新机器上启动数据库. 三.利用data guard迁移: 四.用rman做迁移: 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上.迁移到远程的机房.迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一.exp/imp逻辑备份与恢复:  它是最常用最简单的方法,一般是基于应用的owner级做导出导入.  操作方法为: 在新库建立好o

Oracle数据库迁移问题(备份、还原、数据导入导出、PLSQL)IMP - 0009 错误

最近在做Oracle数据迁移,从一个服务器迁移到另外一台服务器上去,遇到各种问题,比如 导入DMP文件的时候,遇到 IMP - 0009 错误,折腾了半天,发现原来是我 连接到服务器导出DMP文件时,用的Oracle客户端版本与服务器上Oracle版本不一致,导致导出来的DMP文件实际上有损坏,所以怎么都不能导入到新服务器的Oracle数据库中去. 总结:最好严格保证Oracle版本及环境一致性,免得遇到各种问题.

Linux平台下使用rman进行oracle数据库迁移

    实验目的:将oracle数据库从一台机器迁移到另外的一台机器(同为linux平台),设置为不同的路径,不同的实例名 源端: ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 ORACLE_SID=test 数据文件位置:/oradata/test 目标端: ORACLE_BASE=/u02/app/oracle ORACLE_HOME=/u02/app/oracle/product/10

连接oracle数据库的方式

一.在配置文件中,存放oracle连接字符串 1.连接字符串: "data source=127.0.0.1/TEST;user id=xxx;password=xxx;provider='OraOLEDB.Oracle'" 2.provider[提供商],有两种:'OraOLEDB.Oracle' 为oracle公司提供,'msdaora'为微软公司提供.如果采用'msdaora',blob字段的获取会有异常. 二.连接方式 1.NET 4.0之前,可采用System.Data.Or

使用Microsoft SQL Server Migration Assistant for Oracle将Oracle数据库迁移到SQL Server 2008 R2

必须要安装SSMAforOracleExtensionPack_7.10.0或者SSMA for Oracle.6.0.0.ExtPack! 必须要安装SSMAforOracleExtensionPack_7.10.0或者SSMA for Oracle.6.0.0.ExtPack! 必须要安装SSMAforOracleExtensionPack_7.10.0或者SSMA for Oracle.6.0.0.ExtPack! 这个Microsoft SQL Server Migration Assi

oracle数据库迁移expdp/impdp(分享四)

本项目是疾控中心的一个oracle小数据量迁移过程分享,具体显示结果就不显示. 迁移数据分为以下几个步骤: 分为如下五个部分: 源数据库库环境确认 目标数据库操作 源数据库端导出数据 目标数据库导入数据 迁移后检查 源数据库库环境确认 查看数据库创建时间 select dbid,name,to_char(created,'yyyy-mm-dd hh24:mi:ss'),log_mode from v$DATABASE; 查看数据库字符集(一定目标库也一样) select userenv('lan