wenshao600
作者wenshao600·2013-06-23 22:33
其它·广州南天

跳过执行expdp

字数 2006阅读 2227评论 0赞 0
一、环境说明 
源数据库: 
IP地址:192.168.137.100 
sid:catalog 
用户名:rman 
密码:rman 
目标数据库: 
IP地址:192.168.137.101 
sid:orcl 
用户名:rman 
密码:rman 

二、在目标数据库上创建到源数据库的tnsname 
用oracle用户登录目标数据库,修改 $ORACLE_HOME/network/admin/tnsnames.ora文件,增加如下内容 
复制代码 代码如下:
catalog = 
(DESCRIPTION = 
(ADDRESS_LIST = 
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.100)(PORT = 1521)) 
(CONNECT_DATA = 
(SID = catalog) 

修改完这个文件之后,执行如下命令,测试创建的tnsname是否正确 
$ tnsping catalog 
如果返回结果的最后是 OK (0 msec),证明tnsname创建成功,执行下一步操作 

三、创建 dblink 
创建dblink的语句为 
CREATE DATABASE LINK <database link name> CONNECT TO <remote database user name> IDENTIFIED BY <remote database password> USING '<tnsname connect to remote>' 
用oracle用户身份登录目标数据库服务器,执行如下操作 
复制代码 代码如下:
$ sqlplus rman/rman 
sql> CREATE DATABASE LINK dmp_link CONNECT TO rman IDENTIFIED BY rman USING 'catalog'; 

************************************* 
如果出现 
复制代码 代码如下:
ERROR at line 1: 
ORA-01031: insufficient privileges 

需要用sysdba身份,执行如下语句,将创建dblink的权限授予用户,然后再次执行上面创建dblink的语句 
grant create database link to rman; 
************************************* 
然后执行如下语句,测试dblink是否创建成功,能返回结果证明dblink创建成功 
复制代码 代码如下:
SQL> select tname from tab@dmp_link; 
SQL> exit; 


四、在目标数据库上创建directory对象 
以oracle用户登录目标数据库 
1、创建一个目录,假设为 /oracle/dmp,并保证这个目录oracle用户可读写 
2、以sysdba身份登录数据库,创建directory对象,并给这个对象赋予读写权限 
3、然后登录数据库,执行如下语句: 
复制代码 代码如下:
$ sqlplus / as sysdba 
sql> create or replace directory dmp_dir as '/oracle/dmp'; 
sql> grant read,write on directory dmp_dir to public; 
sql> exit; 

五、在目标数据库上执行impdp命令,导入数据 
impdp rman/rman/orcl network_link=dmp_link remp_schema=source_schema:target:shcema remap_tablespace=source_tablespace:target:tablespace 
如果想不生成dmp文件而直接导入一个数据库,直接使用impdp带network_link ,这样可以直接impdp,而绕过了expdp的步骤.
详细出处参考:http://www.jb51.net/article/32079.htm

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广