- 浏览: 238328 次
最新评论
目前我的数据库里只有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 1195oracle游标 游标-----内存 ... -
10053事件分析
2015-12-25 17:37 7801)10053介绍: 10053 事件是oracle 提供的用 ... -
oracle绑定变量学习
2015-12-25 17:01 1583绑定变量(binding variable) ... -
oracle 绑定变量
2015-12-24 17:26 0关键词: 绑定变量(binding variable),共享池 ... -
oracle插入大量数据
2015-12-23 17:35 1409oracle插入大量数据 1.生 ... -
ORA-03113:end-of-file on communication channel
2015-12-23 14:32 1138测试上面的一个库 plsql报错:shared memory ... -
oracle分区表【转】
2015-12-23 14:20 429oracle分区表 1.表空间及 ... -
迁移数据文件到ASM【转】
2015-12-23 11:53 7631.迁移数据文件到ASM 1) ... -
adrci命令
2015-12-23 11:46 3043一、adrci说明 在oracle11g中,dump ... -
用户+角色+权限
2015-12-21 17:58 889角色与用户权限的学习 ... -
oracle回收站
2015-12-21 14:22 422oracle回收站 1.drop table books; ... -
使用nid修改sid和dbname
2015-12-21 15:29 758如非必要,不建议在生产库上对dbid进行修改 1、修改dbi ... -
rman模拟故障恢复实验
2015-12-18 16:08 1143补充1:restore database和recover da ... -
rman命令学习-tina(下)
2015-12-18 16:07 1150五、rman删除 delete命令 删除相关的 ... -
rman命令学习-tina(上)
2015-12-18 16:06 873RMAN学习-tina rman的功能非常强大,下面我们来一 ... -
oracle profile介绍
2015-12-16 17:34 618profile文件的介绍: Oracle系统中的profi ... -
oracle缩小表空间
2015-12-18 16:59 1749oracle缩小表空间: oracle常用的此类命令Alte ... -
oracle数据库的启动和关闭【转】
2015-12-16 15:02 1130数据库的启动和关闭 Or ... -
oracle的主要进程
2015-12-16 14:21 1179[size=small]oracle的主要进程 Oracle实 ...
相关推荐
主要介绍了Oracle DATABASE LINK(DBLINK)创建与删除方法,需要的朋友可以参考下
Database Link详细讲解oracle分布式.文档详细,精简,供大家学习!
Oracle数据库如何创建DATABASE LINK
oracle调用存储过程方法,包括带返回参数和列表参数; oracle创建databaselink的方法和语法,以及对应举例说明。
databaselink是oracle数据库连接另一个数据库(可以是非oracle数据库)用的连接
oracle create database link
Oracle创建Database link方法
Oracle数据库如何创建Database Link呢?本文我们主要就介绍一下这部分内容,Oracle数据库创建Database Link有两种方式,一种是通过菜单,一种是通过SQL
本文档是在开发oracle过程中总结出来的,希望对想了解oracle db link的人有帮助
在创建database link的时候,Oracle再数据字典中保存相关的database link的信息,在使用database link的时候,Oracle通过Oracle Net用用户预先定义好的连接信息访问相应的远程数据库以完成相应的工作。 建立database...
目前通过Oracle11g连接SAP的HANA数据库Oracle11g的透明网关插件gateways中没有该选项,只能通过ODBC创建dblink连接HANA数据库,文档中包含有如何创建本地数据源ODBC,如何创建并配置相关ora文件,如何创建dblink等...
oracle 12c for windows 安装向导
create database link link_zhangli connect to zhangli identified by zhangli using' (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = ...
主要介绍了通过PLSQL Developer创建Database link,DBMS_Job,Procedure,实现Oracle跨库传输数据,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
1.3.8 数据库链(Database Link) 20 第2章 管理ORACLE数据库 21 2.1 基本概念 21 2.1.1 数据字典 21 2.1.2 事务管理 23 2.1.3 数据库管理员(DBA) 24 2.1.4 ORACLE的四种状态 25 2.2 SQL*Plus方式的ORACLE数据库启动...
Oracle Core: Essential Internals for DBAs and Developers by Jonathan Lewis provides just the essential information about Oracle Database internals that every database administrator needs for ...
oracle不同数据库间导入导出表的方法有两种方法, 最后利用pl/sql里面的database link 方法。 自己也是菜鸟,也是经高人指点后,才用的该方法
前一阵领导安排了一个任务:定时将集团数据库某表的... Database link:使用户可以通过一个数据库访问到另外一个远程数据库 DBMS_Job:使ORACLE数据库定期执行特定的任务 Procedure:用来完成特定的数据操作(比如修