- 浏览: 243438 次
最新评论
目前我的数据库里只有tinadb一个实例,要创建db link 需要再创建一个库,
因为主机资源有限,我就在本地创建了。db link也同样适用于连接远程数据库,只需要对应ip即可
1.dbca新建库sab
先打开xmanager passive
[oracle@oratest ~]$ cd /u01/oracle/bin/
[oracle@oratest bin]$ export DISPLAY=192.168.10.235:0.0 --启动图形化界面
[oracle@oratest bin]$ dbca
配置监听
[oracle@oratest rdbms]$ cd /u01/oracle/network/admin/
[oracle@oratest admin]$ vi listener.ora
tinadb =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1521))
)
)
SID_LIST_tinadb =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= tinadb)
(SID_NAME = tinadb)
(ORACLE_HOME = /u01/oracle)
)
)
sab =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1522)) --端口不能重复
)
)
SID_LIST_sab =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= sab)
(SID_NAME = sab)
(ORACLE_HOME = /u01/oracle)
)
)
启动监听lsnrctl start sab
2.database link作用
database link,它是为了更方便的在一个数据库中访问另一个数据库(包括本地和远程的,道理是一样的)而创建的一个连接字符串。
3.授权用户创建db link
1)如果是用sys用户或者拥有dba角色的用户,就不需要授权
SQL> select ROLE,PRIVILEGE,ADMIN_OPTION from role_sys_privs where role='DBA' and PRIVILEGE like '%LINK%';
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
DBA DROP PUBLIC DATABASE LINK YES
DBA CREATE DATABASE LINK YES
DBA CREATE PUBLIC DATABASE LINK YES
2)普通用户:grant create public database link,create database link to username;
4.创建db link
1)我们先在sab库中创建一个db link 连接到tinadb库
create public database link "lk_sab_tinadb" connect to "tina" identified by "tina"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =tinadb)))';
验证db link的连通性:
select 'x' from dual@lk_sab_tinadb;
2)查看db link
SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
OWNER OBJECT_NAME
---- -------------------
PUBLIC LK_SAB_TINADB
或者
select * from dba_db_links;
3)使用db link
SQL> select * from tina.t1@lk_sara_tinadb;
ID
----------
1
2
SQL> create table ts as select * from tina.t1@lk_sab_tinadb;
SQL> select * from ts;
ID
----------
1
2
4)我们也可以建立一个私有的db link,这次我们在tinadb中创建一个,连接到sab库中(用户suser是sab库中用户,表s1是sab中suser的表)
[oracle@oratest admin]$ sqlplus sys/tina@tinadb as sysdba
SQL> conn tina/tina@tinadb
Connected.
SQL> create database link "lk_tinadb_sab" connect to "suser" identified by "suser"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1522)))(CONNECT_DATA =(SERVICE_NAME =sab)))';
Database link created.
SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
OWNER OBJECT_NAME
------- -----------------------
TINA LK_TINADB_SAB
SQL> select * from suser.s1@LK_TINADB_SAB;
ID NAME
---------- ----------
1 test
2 haha
3 heihei
SQL> insert into suser.s1@lk_tinadb_sab values(4,'youyou');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from suser.s1; ---sab库中就直接被修改了。
ID NAME
---------- ----------
4 youyou
1 test
2 haha
3 heihei
5.删除db link
drop public database link dblinkname;
6.获取已创建db link的执行语句
SQL> select dbms_metadata.get_ddl('DB_LINK','LK_SAB_TINADB','PUBLIC') from DUAL;
SQL> select dbms_metadata.get_ddl('DB_LINK','LK_TINADB_SAB','TINA') from dual;
DBMS_METADATA.GET_DDL('DB_LINK','LK_TINADB_SAB','TINA') ----三个字段分别表示object_type,linkname,link owner
--------------------------------------------------------------------------------
CREATE DATABASE LINK "LK_TINADB_SAB"
CONNECT TO "suser" IDENTIFIED BY VALU ---被截断了
7.授权其他用户使用tina用户的私有db link
私有的DB Link,其它用户是不能用的,Oracle没有关于dblink的select或者execute权限。
必须转换才能实现, 如下例子:
SQL> conn tina/tina@tinadb
Connected.
SQL> create view tina.s1 as select * from suser.s1@lk_tinadb_sab; ---创建一个视图
View created.
SQL> grant select on tina.s1 to test1; --授权视图的select权限给test1
Grant succeeded.
SQL> conn test1/test1
Connected.
SQL> select * from tina.s1;
ID NAME
---------- ----------
4 youyou
1 test
2 haha
3 heihei
因为主机资源有限,我就在本地创建了。db link也同样适用于连接远程数据库,只需要对应ip即可
1.dbca新建库sab
先打开xmanager passive
[oracle@oratest ~]$ cd /u01/oracle/bin/
[oracle@oratest bin]$ export DISPLAY=192.168.10.235:0.0 --启动图形化界面
[oracle@oratest bin]$ dbca
配置监听
[oracle@oratest rdbms]$ cd /u01/oracle/network/admin/
[oracle@oratest admin]$ vi listener.ora
tinadb =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1521))
)
)
SID_LIST_tinadb =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= tinadb)
(SID_NAME = tinadb)
(ORACLE_HOME = /u01/oracle)
)
)
sab =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1522)) --端口不能重复
)
)
SID_LIST_sab =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= sab)
(SID_NAME = sab)
(ORACLE_HOME = /u01/oracle)
)
)
启动监听lsnrctl start sab
2.database link作用
database link,它是为了更方便的在一个数据库中访问另一个数据库(包括本地和远程的,道理是一样的)而创建的一个连接字符串。
3.授权用户创建db link
1)如果是用sys用户或者拥有dba角色的用户,就不需要授权
SQL> select ROLE,PRIVILEGE,ADMIN_OPTION from role_sys_privs where role='DBA' and PRIVILEGE like '%LINK%';
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
DBA DROP PUBLIC DATABASE LINK YES
DBA CREATE DATABASE LINK YES
DBA CREATE PUBLIC DATABASE LINK YES
2)普通用户:grant create public database link,create database link to username;
4.创建db link
1)我们先在sab库中创建一个db link 连接到tinadb库
create public database link "lk_sab_tinadb" connect to "tina" identified by "tina"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =tinadb)))';
验证db link的连通性:
select 'x' from dual@lk_sab_tinadb;
2)查看db link
SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
OWNER OBJECT_NAME
---- -------------------
PUBLIC LK_SAB_TINADB
或者
select * from dba_db_links;
3)使用db link
SQL> select * from tina.t1@lk_sara_tinadb;
ID
----------
1
2
SQL> create table ts as select * from tina.t1@lk_sab_tinadb;
SQL> select * from ts;
ID
----------
1
2
4)我们也可以建立一个私有的db link,这次我们在tinadb中创建一个,连接到sab库中(用户suser是sab库中用户,表s1是sab中suser的表)
[oracle@oratest admin]$ sqlplus sys/tina@tinadb as sysdba
SQL> conn tina/tina@tinadb
Connected.
SQL> create database link "lk_tinadb_sab" connect to "suser" identified by "suser"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.253)(PORT = 1522)))(CONNECT_DATA =(SERVICE_NAME =sab)))';
Database link created.
SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
OWNER OBJECT_NAME
------- -----------------------
TINA LK_TINADB_SAB
SQL> select * from suser.s1@LK_TINADB_SAB;
ID NAME
---------- ----------
1 test
2 haha
3 heihei
SQL> insert into suser.s1@lk_tinadb_sab values(4,'youyou');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from suser.s1; ---sab库中就直接被修改了。
ID NAME
---------- ----------
4 youyou
1 test
2 haha
3 heihei
5.删除db link
drop public database link dblinkname;
6.获取已创建db link的执行语句
SQL> select dbms_metadata.get_ddl('DB_LINK','LK_SAB_TINADB','PUBLIC') from DUAL;
SQL> select dbms_metadata.get_ddl('DB_LINK','LK_TINADB_SAB','TINA') from dual;
DBMS_METADATA.GET_DDL('DB_LINK','LK_TINADB_SAB','TINA') ----三个字段分别表示object_type,linkname,link owner
--------------------------------------------------------------------------------
CREATE DATABASE LINK "LK_TINADB_SAB"
CONNECT TO "suser" IDENTIFIED BY VALU ---被截断了
7.授权其他用户使用tina用户的私有db link
私有的DB Link,其它用户是不能用的,Oracle没有关于dblink的select或者execute权限。
必须转换才能实现, 如下例子:
SQL> conn tina/tina@tinadb
Connected.
SQL> create view tina.s1 as select * from suser.s1@lk_tinadb_sab; ---创建一个视图
View created.
SQL> grant select on tina.s1 to test1; --授权视图的select权限给test1
Grant succeeded.
SQL> conn test1/test1
Connected.
SQL> select * from tina.s1;
ID NAME
---------- ----------
4 youyou
1 test
2 haha
3 heihei
发表评论
-
ETL工具--kettle简介
2016-02-24 11:21 0oracle ETL工具---数据迁移 常用的有:OWB(o ... -
oracle 游标实例
2015-12-31 17:23 1226oracle游标 游标-----内存 ... -
10053事件分析
2015-12-25 17:37 8161)10053介绍: 10053 事件是oracle 提供的用 ... -
oracle绑定变量学习
2015-12-25 17:01 1621绑定变量(binding variable) ... -
oracle 绑定变量
2015-12-24 17:26 0关键词: 绑定变量(binding variable),共享池 ... -
oracle插入大量数据
2015-12-23 17:35 1441oracle插入大量数据 1.生 ... -
ORA-03113:end-of-file on communication channel
2015-12-23 14:32 1179测试上面的一个库 plsql报错:shared memory ... -
oracle分区表【转】
2015-12-23 14:20 464oracle分区表 1.表空间及 ... -
迁移数据文件到ASM【转】
2015-12-23 11:53 8001.迁移数据文件到ASM 1) ... -
adrci命令
2015-12-23 11:46 3105一、adrci说明 在oracle11g中,dump ... -
用户+角色+权限
2015-12-21 17:58 925角色与用户权限的学习 ... -
oracle回收站
2015-12-21 14:22 461oracle回收站 1.drop table books; ... -
使用nid修改sid和dbname
2015-12-21 15:29 810如非必要,不建议在生产库上对dbid进行修改 1、修改dbi ... -
rman模拟故障恢复实验
2015-12-18 16:08 1187补充1:restore database和recover da ... -
rman命令学习-tina(下)
2015-12-18 16:07 1190五、rman删除 delete命令 删除相关的 ... -
rman命令学习-tina(上)
2015-12-18 16:06 919RMAN学习-tina rman的功能非常强大,下面我们来一 ... -
oracle profile介绍
2015-12-16 17:34 656profile文件的介绍: Oracle系统中的profi ... -
oracle缩小表空间
2015-12-18 16:59 1794oracle缩小表空间: oracle常用的此类命令Alte ... -
oracle数据库的启动和关闭【转】
2015-12-16 15:02 1175数据库的启动和关闭 Or ... -
oracle的主要进程
2015-12-16 14:21 1293[size=small]oracle的主要进程 Oracle实 ...
相关推荐
Oracle DATABASE LINK,简称DBLINK,是一种在不同的Oracle数据库实例间建立连接的方式,允许用户在本地数据库上执行查询和操作远程数据库的数据。DBLINK为跨数据库的通信提供了简单且高效的解决方案。 创建DBLINK的...
综上所述,Oracle数据库链接(Database Link)是一种用于实现分布式事务处理的重要机制。通过创建合适的数据库链接,可以有效地管理和访问跨多个数据库实例的数据资源。理解其创建过程及不同类型之间的区别,对于构建...
### Oracle数据库创建DATABASE LINK详解 #### 一、概述 在Oracle数据库中,通过创建DATABASE LINK(简称DB LINK),可以实现在不同的数据库之间进行数据共享与交互。这种技术使得用户能够像操作本地数据库一样操作...
databaselink是oracle数据库连接另一个数据库(可以是非oracle数据库)用的连接
### Oracle存储过程与Database Link详解 #### 一、Oracle存储过程概述 在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL程序块,它可以接收输入参数、返回输出参数,并执行复杂的业务逻辑。存储...
Oracle 创建 Database link 方法 Oracle 创建 Database link 方法是指在 Oracle 中创建一个 Database link 的过程,这样可以实现跨库访问,即在一个数据库中可以访问另一个数据库中的数据。下面将详细介绍如何创建...
Oracle数据库的Database Link是连接不同数据库之间的一种机制,它允许用户在本地数据库上执行查询,同时访问远程数据库的数据,仿佛这些数据就在本地一样。Database Link是Oracle数据库提供的一种分布式数据库功能,...
oracle create database link
Delphi ADO连接Oracle数据库报数据类型不支持
本文档是在开发oracle过程中总结出来的,希望对想了解oracle db link的人有帮助
在创建 Database Link 时,Oracle 会在数据字典中保存相关的 Database Link 信息。在使用 Database Link 时,Oracle 通过 Oracle Net 使用用户预先定义好的连接信息访问相应的远程数据库以完成相应的工作。 创建 ...
在Oracle Database 10g中,PL/SQL还可以与其他Oracle特性结合,比如触发器(Trigger)、包(Package)和数据库链接(Database Link)。触发器是在特定数据库事件发生时自动执行的PL/SQL代码,而包是封装相关过程和...
Oracle 数据库链 Database links Oracle 数据库链 Database links 是 Oracle 数据库中的一种机制,允许用户从一个数据库中访问另一个数据库中的数据。这种机制可以实现跨数据库或跨用户的数据共享,提高了数据的可...
数据库链接(Database Link)在Oracle数据库中扮演着重要的角色,它允许用户在不同的数据库之间进行交互,无论是本地还是远程。数据库链接本质上是一个指向其他数据库的指针,它为用户提供了一个透明的方式来访问和...
3. 全局数据库链接(Global Database Link):Owner 是 PUBLIC.Global 的数据库链接是网络级的,When an Oracle network uses a directory server, the directory server automatically create and manages global ...
我们将基于"oracle_database.rar_oracle"这个压缩包中的"oracle_database.txt"文件,来探讨相关知识点。 首先,我们要理解数据库同步的基本概念。数据库同步是指将数据从一个源数据库更新到另一个目标数据库的过程...
标题“Oracle Link”指的是Oracle数据库中的数据库链接(Database Link)特性,它允许用户在不同的Oracle数据库之间建立连接,实现跨数据库的数据查询、更新和其他操作。这个特性是Oracle数据库的分布式处理能力的...
Database Link 是 Oracle 数据库中用于连接两个数据库的关键对象,它可以实现从一个数据库到另一个数据库的数据查询与操作。通过 Database Link,用户能够轻松地访问远程数据库中的数据,并执行相关的远程程序。 ##...