1、我们如果要创建全局的DBLink,就是说无论什么角色都可以使用,那么我们需要先确定用户是否有DBLink权限,如果没有则需要使用sysdba角色给用户授权:
查看用户是有有DBLink权限:
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
没有,则使用sysdba授权:
grant create public database link to dbusername;
2、使用语句创建DBLink:
create database link 要创建的dblink名称 connect to 要连接数据库的用户名 identified by 要连接数据的密码 using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 连接数据库主机IP地址)(PORT = 端口号)) ) (CONNECT_DATA = (SERVICE_NAME = 连接数据库服务名) ) )';
如果创建全局 dblink,必须使用 systm 或 sys 用户,在 database 前加 public:
create public database....例如,在testdb2中创建test_dblink,来操作主机192.168.1.254中testdb1数据库:
create database link tset_dblink connect to username identified by password1 using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = testdb1) ) )';3、使用DBLink:
查询另一个数据库中的数据,其他修改、删除是一样的使用,都是另一个数据库表名@本数据库创建dblink名称:
select xxx FROM 表名@dblink名称;
例如我们在testdb2中使用dblink查看testdb1中tb_user表中的数据:
select * from tb_user@tset_dblink;
查看数据中创建的dblink:
select owner,object_name from dba_objects where object_type='DATABASE LINK'; select * from dba_db_links;删除相应的dblink:
drop database link dblink名称;关闭dblink连接:
alter session close database link 'dblink_name'
附:
DBlink创建方式2:PL/sql图形配置界面
打开PL/sql图形界面,找到Database links ,选中Database links,单击右键,选中new,按照配置界面一步一步填写内容即可完成创建。
DBlink创建方式3:利用tnsnames.ora文件中配置的主机字符串名,例如
tnsnames.ora文件中配置了一个主机字符串名:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )
那么创建sql语句如下:
create database link tset_dblink connect to username identified by password1 using 'ORCL';'ORCL'对应中tnsnames.ora文件中的'ORCL'。