JAVA某个用户的数据迁移_[Z] 【IMPDP】同一数据库实例不同用户间数据迁移复制——NETWORK_LINK参数...

本文介绍了一种使用Oracle的IMPDP工具结合DATABASE LINK高效复制一个用户数据到另一个用户的方案,包括跨数据库的情况。此方法避免了生成中间dump文件,简化了操作步骤并降低了出错率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@URL > http://space.itpub.net/519536/viewspace-631571如何快速的复制一个用户的数据到另外一个用户(这个用户可能在不同的数据库中)?

一般答案:使用EXP(EXPDP)与IMP(IMPDP)相结合完成用户数据的导入和导出

高级方法:IMPDP工具提供的NETWORK_LINK参数可以一步到位的完成此项艰巨的任务。

这种方法非常类似于使用CTAS方法在表复制中的应用,只不过这里我们实现的是用户间的数据复制。

使用这种方法的一般步骤如下:

a.创建database link;

b.使用IMPDP的network_link、schemas和remap_schema相结合完成用户的数据的迁移;

真实的感受一下此项技术带给我们的快乐。

实现案例:同一个实例中不同用户间的迁移复制。

1.创建指向自身的DATABASE LINK

1)确认tnsnames.ora文件中的连接串

secooler@secDB /home/oracle$ cat $ORACLE_HOME/network/admin/tnsnames.ora

# tnsnames.ora Network Configuration File: /oracle/ora11gR2/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = secDB)(PORT = 1526))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = secooler)

)

)

2)在数据库系统中创建一个指向自身的DATABASE LINK

sys@secooler> create public database link dblink_to_myself connect to system identified by sys using 'SECOOLER';

Database link created.

2.复制sec用户的数据到secooler用户

1)确认sec用户下的T表及其数据量

sys@secooler> conn sec/sec

Connected.

sec@secooler> select * From cat;

TABLE_NAME                     TABLE_TYPE

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

T                              TABLE

sec@secooler> select count(*) from t;

COUNT(*)

----------

71325

2)查看secooler用户

sys@secooler> conn secooler/secooler

Connected.

secooler@secooler> select * from cat;

no rows selected

此时secooler用户中不包含任何T表信息。

3)使用IMPDP工具实现数据从sec用户向secooler用户复制的功能

secooler@secDB /home/oracle$impdp system/sys network_link=dblink_to_myself schemas=sec remap_schema=sec:secooler

Import: Release 11.2.0.1.0 - Production on Thu Apr 8 10:01:16 2010

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

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining,

Oracle Database Vault and Real Application Testing options

Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01":  system/******** network_link=dblink_to_myself schemas=sec remap_schema=sec:secooler

Estimate in progress using BLOCKS method...

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 9 MB

Processing object type SCHEMA_EXPORT/USER

ORA-31684: Object type USER:"SECOOLER" 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 "SECOOLER"."T"                               71325 rows

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at 10:02:45

3.查看secooler用户数据,验收迁移成果

secooler@secDB /home/oracle$ sqlplus secooler/secooler

SQL*Plus: Release 11.2.0.1.0 Production on Thu Apr 8 10:04:55 2010

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining,

Oracle Database Vault and Real Application Testing options

secooler@secooler> select * from cat;

TABLE_NAME                     TABLE_TYPE

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

T                              TABLE

secooler@secooler> select count(*) from t;

COUNT(*)

----------

71325

令人激动地时刻到了,sec用户下的T表及其数据已经成功的“复制”到了secooler用户中。

4.小结

使用IMPDP工具完成用户数据复制的优点:

1)节省了大量的磁盘空间,因为不用生成中间的dump文件;

2)操作简便,步骤精简;

3)因为操作环节的减少,整个操作过程不易出错。

Good luck.

secooler

10.04.07

-- The End --

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值