通过建立dblink将数据库用expdp导出到远程服务器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、需求
  • 二、创建DBLINK
    • 1.测试环境
    • 2.创建dblink
      • 2.1查看当前用户是否有权限创建dblink
      • 2.2创建dblink的方法
        • 2.2.1方法一
        • 2.2.2方法二
      • 2.3删除dblink的方法
      • 2.4查看dblink的方法
      • 2.5测试dblink
  • 三、远程导出


一、需求

用EXPDP/IMPDP搭建测试库,本地无可用空间,需要直接将数据导出到测试机。

二、创建DBLINK

1.测试环境

通过建立dblink将数据库用expdp导出到远程服务器_第1张图片

2.创建dblink

2.1查看当前用户是否有权限创建dblink

在sys as sysdba下查看是否有权限创建dblink

SQL> select * from user_sys_privs t where t.privilege like upper('%link%');

USERNAME		       PRIVILEGE				   ADM
------------------------------ ---------------------------
SYS			       DROP PUBLIC DATABASE LINK		NO
SYS			       CREATE DATABASE LINK			    NO
SYS			       CREATE PUBLIC DATABASE LINK		NO

sys as sysdba用户有创建私有dblink、公有dblink和删除dblink的权限

换一个普通用户test查看一下是否有权限

SQL> conn test
Enter password: 
Connected.
SQL> select * from user_sys_privs t where t.privilege like upper('%link%');

no rows selected

查询发现无权限,在sys as sysdba下给用户test授权

SQL> grant create database link to test;

Grant succeeded.

SQL> grant create public database link to test;

Grant succeeded.

SQL> conn test
Enter password: 
Connected.
SQL> select * from user_sys_privs t where t.privilege like upper('%link%');

USERNAME		       PRIVILEGE				       ADM
------------------------------ --------------------------------
TEST			       CREATE PUBLIC DATABASE LINK		NO
TEST			       CREATE DATABASE LINK			    NO

2.2创建dblink的方法

2.2.1方法一
create public database link HISDBLINK connect to system identified by manager using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.101.122)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
2.2.2方法二
create public database link HISDBLINK connect to system identified by manager using '192.168.101.122/orcl';

2.3删除dblink的方法

drop (public) database link HISDBLINK;

2.4查看dblink的方法

SQL> select * from dba_db_links;

2.5测试dblink

源库t2表数据内容
SQL> select * from t2;
NAME
--------------------
uu
ning
远程库t2表内容
SQL>  select * from sys.t2@HISDBLINK;
NAME
--------------------
uu

注:
HISDBLINK:dblink名,自己随便写,只要不和现有dblink名冲突。
private dblink(创建时不加public选项): 只有创建的schema才能删除,sys也删除不了;
public dblink: 任意schema都可以删除,只要权限够。

三、远程导出

1.将远程主机hisdb上的数据库导出到hisdg主机上并产生dmp和log文件存放在hisdg的directory里

[oracle@hisdg dump]$ expdp system/manager directory=dir_dp dumpfile=t2.dmp logfile=t2.log full=y network_link=HISDBLINK;

2.直接将远程主机hisdb上的数据库导入到hisdg主机上的数据库中不产生dmp文件(导入之前要建好对应表空间和数据文件)

全库导入
impdp system/manager  network_link=HISDBLINK full=y
按用户导入
impdp system/manager network_link=HISDBLINK schemas=test

你可能感兴趣的:(Oracle数据库基础,oracle,数据库,database)