有时候,需要在两个Oracle数据库之间手工同步数据时,DBLink是最方便快捷的手段之一,创建DBLink的方式一般是这样:
1. create public database link <DBLink名称> connect to <被连接库的用户名> identified by <被连接库的密码> using '<Oracle客户端工具建立的指向被连接库服务名>';
2. create public database link XMDS_KF connect to XMDS identified by XMDS using 'XMDS_KF';
oracle dblink创建过程
两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。
其实dblink和数据库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码。
创建可以采用两种方式:
1、已经配置本地服务
create public database
link fwq12 connect to fzept
identified by neu using 'fjept' Create DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
2、未配置本地服务
create database link linkfwq
connect to fzept identified by neu
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = fjept)
)
)';
host=数据库的ip地址,service_name=数据库的ssid。
其实两种方法配置dblink是差不多的,我个人感觉还是第二种方法比较好,这样不受本地服务的影响。
数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.
数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样
数据库全局名称可以用以下命令查出
Select * FROM GLOBAL_NAME;
查询远端数据库里的表
Select …… FROM 表名@数据库链接名;
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。
附带说下同义词创建:
Create SYNONYM同义词名FOR 表名;
Create SYNONYM同义词名FOR 表名@数据库链接名;
删除dblink:Drop PUBLIC DATABASE LINK linkfwq。
如果创建全局dblink,必须使用systm或sys用户,在database前加public。
oracle dblink解决后台却出现锁
创建是很简单,但是在使用中后台却出现锁,查看这个锁的方法可以去console中看到或者查询数据库。其实这个锁倒不是最让人心烦的,而是每次使用dblink查询的时候,均会与远程数据库创建一个连接,dblink应该不会自动释放这个连接,如果是大量使用dblink查询,会造成web项目的连接数不够,导致系统无法正常运行。
分享到:
相关推荐
oracle 创建dblink的详细步骤,以及使用oracle快照快速的刷新,保持本地与远程数据库的同步
oracle通过DBlink连接mysql搭建过程
俩台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。
通过dblink连接oracle和mysql,将数据从oracle传输到mysql,详细记录了搭建过程和创建报错
执行存储过程,通过指定目标数据库登录信息,动态生成dblink,打开游标,按批次插入本地指定表中,每批次1万条数据。同步记录和日志信息写在自动生成的sync_log表中。同步完成后自动删除动态生成的存储过程、dblink...
本周由于公司一个系统的oracle数据库需要采集另一个系统mysql数据库的数据,于是对oracle通过dblink连接mysql进行了研究,测试环境是单实例oracle 10g 64位,折腾了半天搞定了,但是生产环境是10g rac,原本以为会很...
详细描述dblink创建过程,每一个步骤都有图示,且如何操作。并列举比较常见的异常问题及解决方法。
在SQL Server 2005 建立DBLink 到 Oracle10g 的详细过程。以及遇到的问题解决办法。
oracle通过gateway与Informix创建dblink的完全实践过程
jdbc dblink 实现,允许在 oracle 和任何其他 jdbc 可访问数据库之间创建 jdbc 链接,以通过 sql 和 pl/sql 启动查询或执行远程存储过程。 这也允许从 10.2.0 达到 Oracle 7.3.4。
多线程、多连接:可以创建多个会话/连接,多个会话可以同时运行,在运行过程中可以掌控其运行状态、可以随时中断之,在运行过程中可以继续从事编辑等工作,不必等待运行完毕才能编辑 o 提供对常用数据字典(如 ...
多线程、多连接:可以创建多个会话/连接,多个会话可以同时运行,在运行过程中可以掌控其运行状态、可 以随时中断之,在运行过程中可以继续从事编辑等工作,不必等待运行完毕才能编辑 提供对常用数据字典(如 表、...
5.5. Procedure过程 54 5.6. Procedure最简单的例子 55 5.7. 在Procedure中用序列、函数 56 6. Knowledge Module 58 6.1. 客户化KM最佳简单例子 58 7. Package及ODI工具箱 59 7.1. 概述 59 8. Web Service 61 8.1. ...
多线程、多连接:可以创建多个会话/连接,多个会话可以同时运行,在运行过程中可以 掌控其运行状态、可以随时中断之,在运行过程中可以继续从事编辑等工作,不必等待运行 完毕才能编辑 提供对常用数据字典(如 表、...
物理上存放于网络的多个Oracle数据库,逻辑上可以看成一个单个的大数据库。 用户可以通过网络对异地数据库中的数据同时进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的:开发人员无需...
实现结果:在一个数据库中某个用户下编写一个存储过程,在存储过程中使用DBLINK连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中。 二. 实现方法步骤: 1. 创建存储过程 2. ...
Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...
create public database link dblink1 connect to db1 identified by \"123*456\" using \'db11\' 20.oracle8中扩充了group by rollup和cube的操作。有时候省了你好多功夫的。 下面的语句可以进行总计 select ...
代码如下: CREATE TABLE `testtable` ( `id` int(11) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL ) 创建Link Server 下面来创建一个与MySQL交互的链接(类似Oracle 的DBLink),...