oracle数据库远程不落地导入本地数据库

oracle数据库远程不落地导入本地数据库 ---2013.09.29

1. 在要导入数据库的本地主机创建exp(dp)、imp(dp)目录,此处我用的是impdp/expdp:

SQL> create directory dpdump as '/oradata/dpdump';

Directory created.

SQL> select * from dba_directories;查看目录

SQL> grant read,write on directory dpdump to vhfs;

Grant succeeded.

2. 在要导入数据库的本地主机创建dblink

1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库(即数据库导入的源端数据库的tns)。

增加tnsnames.ora文件远程数据库的tnsnames.ora的信息如下:

ORATEST1 =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oratest1)

)

) 上面这个是本地主机原来的tnsnames.ora文件

Oratest2 =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oratest2)

)

) 后来增加的远程数据库tnsnames.Ora的文件

在本地主机上开始创建dblink,在开始创建前要保证本地tnsping oratest2(远程数据库tns) 能通。 (本例中我的数据库实例名和主机名是一样的,这个根据自己环境的实际情况来填写)

以sys用户登录

SQL>create public database link

oratest2_rt connect to oracle identified by oracle using ‘oratest2'

 其中oratest2_rt是你创建的dblink名字,oratest2是远程数据库的实例名(instance),oracle/oracle是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'oratest2'中oracle.tech表sql语句如下所示

SQL> select * from oracle.tech@orc6_rt;

NAME ID PROJECT

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

白雪 55 钢琴

黎明 22 化学

大猫 29 生物

小猫 18 语文

 

2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库,

 create database link oratest2_rt

 connect to oracle identified by oracle

 using ‘(DESCRIPTION =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oratest2)

) 

  )';

  第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。第一种情况tnsnames.ora文件中信息如下:

  Oratest2=

  (DESCRIPTION =

  (ADDRESS_LIST =

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

  )

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = oratest2)

  )

)

删除及创建DBlink

SQL> drop public database link oratest2_rt;

Database link dropped.

SQL> create public database link

oratest2_rt connect to oracle identified by oracle using 'oratest2';

3. 根据以上步骤创建数据库连接完成后,可以做下面的操作

本地数据库操作远程数据库不落地导入数据:

impdp oracle/oracle DIRECTORY=dpdump NETWORK_LINK=oratest2_rt schemas=oracle

oracle/oracle是远程数据库的用户名和密码,DIRECTORY=dpdump是expdp、impdp目录(此处的目录在不落地导入的时候,只是作为一个中转站,不会有数据存在),NETWORK_LINK=oratest2_rt是DBlink,schemas=oracle是要导入的用户。

注意:

一、在本地数据库下要建立好与远程数据库同样数量和大小的数据文件,然后创建同样的用户oracle并授权,

命令如下:

Sys登录

SQL>create user oracle identified by oracle

default tablespace MGRVHFSTBSDEF 此处是设置默认表空间。

temporary tablespace TEMP 此处是设置默认临时表空间。

profile DEFAULT

quota unlimited on mgrvhfstbs2005 此处是设置可操作的其他表空间

quota unlimited on mgrvhfstbsdef; 此处是设置可操作的其他表空间

用户授权

SQL>grant connect to oracle;

SQL>grant dba to oracle;

SQL>grant unlimited tablespace to oracle;

二、如果用户已存在,则删除用户下所有数据,并重建用户。

1.删除用户

SQL> drop user oracle cascade;

2.创建用户

SQL>create user oracle identified by oracle

default tablespace MGRVHFSTBSDEF 此处是设置默认表空间。

temporary tablespace TEMP 此处是设置默认临时表空间。

profile DEFAULT

quota unlimited on mgrvhfstbs2005 此处是设置可操作的其他表空间

quota unlimited on mgrvhfstbsdef; 此处是设置可操作的其他表空间

用户授权

SQL>grant connect to oracle;

SQL>grant dba to oracle;

SQL>grant unlimited tablespace to oracle;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king_harry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值