Oracle创建DBlink和Sysnonyms(同义词,表映射)的方法及常见问题处理
2015-11-03 22:49
1301 查看
Oracle创建DBlink的方法及常见问题处理
在使用oracle数据库的时候,如果我们的数据一部分在本地数据库,另一部分数据在远程数据库,这时候最便捷的方法就是需要通过本地数据库访问远程数据库,在本地数据库创建Database Link (DBLink),并创建Sysnonyms(同义词),像访问本地表一样访问访问远程数据库表中的数据,跟本文类似的帖子也有很多,不过连片赘述的较多,反而将很简单的操作搞得很复杂
1、创建DBLINK:
(1)使用SQL语句创建:
create database link 连接名
connect to 远端数据库用户名
identified by 远端数据库用户密码
using '远端数据库服务名'
例如:
create [public] database link
test_dblink connect to test identified by
password using 'DMDB';
说明:如果创建全局dblink,必须使用systm或sys用户,在database前加public。
这里的 “DBMS”是指已经在Oracle client 或者plsql 中创建的连接远程数据库的服务。
一般配置在tnsnames.ora文件中,如果没有配置服务名,可以将语句写成如下的形式,
创建一个新的远程数据库服务;
create database link linkfwq
connect to fzept identified by neu
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Host)(PORT = port))
)
(CONNECT_DATA =
(SERVICE_NAME = fservice_name)
)
)';
host=数据库的ip地址,port :数据库的端口号,service_name=数据库的ssid。
(2)、通过PLSQL等图形化数据库连接工具创建,
操作比较简单,这里不做累述。。。
删除DBLink:
Drop [PUBLIC] DATABASE LINK DMDB。
2、创建Sysnonyms(同义词,表映射):
创建好DBLink之后就可以创建同义词,进行远程数据表的访问了,
Create SYNONYM 同义词名 FOR 表名;
Create SYNONYM 同义词名 FOR 表名@数据库链接名;
同义词名:给创建的同义词去一个名字,可以跟被引用的远程数据库表的名字相同也可以不同,如果本地数据库中包含同名的数据表则应该将其区分开;
表名:这里指被引用的远程数据库中的表的名字
注意:同义词的创建需要有远程数据库表的操作权限
使用同义词查询远程数据:
Select …… FROM 同义词名
当然如果只是执行一次或几次查询操作可以不创建同义词,直接查询数据:
Select …… FROM [远程用户名]表名@DBLINK名;
删除同义词:
drop public synonym table_name;
在创建好DBlink和同义词后可能会出现以下错误:
ORA-02085: 数据库链接 TEST_DBLINK 连接到 DMDB
不要担心,这时候执行一下语句就好了:
alter system set global_names=false;
在使用oracle数据库的时候,如果我们的数据一部分在本地数据库,另一部分数据在远程数据库,这时候最便捷的方法就是需要通过本地数据库访问远程数据库,在本地数据库创建Database Link (DBLink),并创建Sysnonyms(同义词),像访问本地表一样访问访问远程数据库表中的数据,跟本文类似的帖子也有很多,不过连片赘述的较多,反而将很简单的操作搞得很复杂
1、创建DBLINK:
(1)使用SQL语句创建:
create database link 连接名
connect to 远端数据库用户名
identified by 远端数据库用户密码
using '远端数据库服务名'
例如:
create [public] database link
test_dblink connect to test identified by
password using 'DMDB';
说明:如果创建全局dblink,必须使用systm或sys用户,在database前加public。
这里的 “DBMS”是指已经在Oracle client 或者plsql 中创建的连接远程数据库的服务。
一般配置在tnsnames.ora文件中,如果没有配置服务名,可以将语句写成如下的形式,
创建一个新的远程数据库服务;
create database link linkfwq
connect to fzept identified by neu
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Host)(PORT = port))
)
(CONNECT_DATA =
(SERVICE_NAME = fservice_name)
)
)';
host=数据库的ip地址,port :数据库的端口号,service_name=数据库的ssid。
(2)、通过PLSQL等图形化数据库连接工具创建,
操作比较简单,这里不做累述。。。
删除DBLink:
Drop [PUBLIC] DATABASE LINK DMDB。
2、创建Sysnonyms(同义词,表映射):
创建好DBLink之后就可以创建同义词,进行远程数据表的访问了,
Create SYNONYM 同义词名 FOR 表名;
Create SYNONYM 同义词名 FOR 表名@数据库链接名;
同义词名:给创建的同义词去一个名字,可以跟被引用的远程数据库表的名字相同也可以不同,如果本地数据库中包含同名的数据表则应该将其区分开;
表名:这里指被引用的远程数据库中的表的名字
注意:同义词的创建需要有远程数据库表的操作权限
使用同义词查询远程数据:
Select …… FROM 同义词名
当然如果只是执行一次或几次查询操作可以不创建同义词,直接查询数据:
Select …… FROM [远程用户名]表名@DBLINK名;
删除同义词:
drop public synonym table_name;
在创建好DBlink和同义词后可能会出现以下错误:
ORA-02085: 数据库链接 TEST_DBLINK 连接到 DMDB
不要担心,这时候执行一下语句就好了:
alter system set global_names=false;
相关文章推荐
- sqlserver数据导入到oracle中
- Oracle集合操作函数:union、intersect、minus
- oracle客户端安装
- Oracle 不等于号
- Oracle EBS工作流表Subject等字段取值为空解决方法
- Oracle 导出表
- Oracle的基本操作
- 远程链接oracle-12519
- 20151103 IBM AIX oracle shutdown,shared pool分析
- Oracle &符号如何插入(转义)
- Oracle日期周详解以及周开始结束时间计算
- Oracle数据库安装和PLSQL登陆表空间创建等基础
- Oracle 数据库实例启动关闭过程实战演示
- Oracle与Mysql的区别
- hive依赖oracle执行结果
- oracle数据库学习第二天
- oracle grant 授权语句
- Oracle中语句中的”&“和单引号” ' “
- oracle回复某个表的数据到一个时间点
- CentOS7 Oracle11g安装+图示