本文实例陈诉了oracle跨库查询dblink的用法。分享给大家供大家参谋,具体如下:

当客户要跨本地数据库,访谈此外叁个数据库表中的数额时,本地数据库中必需创造了中间距数据库的dblink,通过dblink本地数据库能够像访谈本地数据库雷同访谈远程数据库表中的数据。本文首要介绍有关dblink的大范围操作和连锁的一点oracle操作。

delete数据恢复

1.创办在此之前的行事

   在开创dblink以前,首先要翻看顾客是不是有相应的权力。针对特定的客户,使用
sqlplus user/pwd登陆后,实施如下语句:

1.开拓Flash存款和储蓄的权限

在开立dblink早前,首先要翻看客户是还是不是有对应的权能。针对特定的客商,使用
sqlplus user/pwd登陆后,实施如下语句:复制代码 代码如下:select * from
user_sys_privs t where t.privilege like
upper;在sys顾客下,显示结果为:

select * from user_sys_privs
t where t.privilege likeupper(‘ style=”margin: 0px; padding: 0px; max-width: 100%; color: rgb(139, 0, 0);”>%link%’);

   ALTER TABLE tablename ENABLE row movement ;

SYS CREATE DATABASE LINK NOSYS DROP PUBLIC DATABASE LINK NOSYS CREATE
PUBLIC DATABASE LINK NO

在sys顾客下,展现结果为:

2.把表还原到指定期间点

能够看出在数据库中dblink有两种权限:

SYS
CREATE DATABASE LINK NO

   flashback table tablename to timestamp to_timestamp(‘2008-02-28
10:40:00′,’yyyy-mm-dd hh24:mi:ss’);

CREATE DATABASE
LINK–所创造的dblink只可以是创制者能使用,别的客户选拔持续CREATE PUBLIC
DATABASE LINK–public表示所创办的dblink全部顾客都足以利用DROP PUBLIC
DATABASE LINK–删除钦定dblink

SYS
DROP PUBLIC DATABASE LINK NO

drop数据复苏(未重新建立同名的表时才有用)

假定想要改动有些客户的权限,需求在sys客商下修改:复制代码 代码如下:grant CREATE PUBLIC DATABASE
LINK,DROP PUBLIC DATABASE LINK to
scott;查看dblink,有三种方法,分别如下:

SYS
CREATE PUBLIC DATABASE LINK NO

flashback table tbl_corpinfo to before drop;

①.复制代码 代码如下:select
owner,object_name from dba_objects where object_type=’DATABASE
LINK’;②.复制代码 代码如下:select * from
dba_db_links;

能够看看在数据库中dblink有二种权限:

客商密码效期

2. 创建dblink

CREATE
DATABASE LINK–所创设的dblink只好是创制者能运用,别的客户使用持续

1.查看客户的密码情形

create public database link LINK_NAMEconnect to USRNAME identified by "PASSWORD"using '(DESCRIPTION =(ADDRESS = (HOST = XXX.XXX.XXX.XXX)(CONNECT_DATA = )';

CREATE
PUBLIC DATABASE LINK–public表示所创设的dblink全部顾客都足以使用

SELECT username,PROFILE FROM dba_users;

在意:using后跟的是二个字符串,此中确定毫无现身不要求的空格,不然会出错ORA-12514,在上头的代码中为了方便阅读之中开展了换行,也许汇合世空格而招致错误,所以选拔的时候将空格去掉就ok了。

DROP
PUBLIC DATABASE LINK–删除钦命dblink

2.翻看私下认可的密码有效时间是稍稍天

这里LINK_NAM为自定的称号;USECRUISERNAME和PASSWOHighlanderD为钦定的oracle数据库中的客商名和密码,SE逍客VICE_NAME假如不显明的话,能够通过以下语句得到:复制代码 代码如下:show parameter
service_names;大概复制代码
代码如下:select name,value from v$parameter where
name=’service_names’3.dblink的使用

 
 假使想要改换有些客户的权位,必要在sys客商下修改:

SELECT * FROM dba_profiles s WHERE s.profile=’DEFAULT’ AND
resource_name=’PASSWORD_LIFE_TIME’;

dblink的利用相对比较简单,把平常访谈本地球表面时的表名改为如下格式即可:[user.]table@link_name。复制代码 代码如下:select studentid from
abc.studeng@abc_ten;4.删除dblink

grantCREATE必威官网手机版,PUBLICDATABASE LINK,DROPPUBLICDATABASE LINK to scott;

3.改革默许的密码有效日期为世代有效

规定要刨除的dblink名字之后,可以经过drop命令直接将其除去:复制代码 代码如下:drop public database link
abc_ten;

 确定具备了相应的权限以后,登录sqlplus即可对dblink进行相应的操作了。

   1. 查看dblink,有两种方式,分别如下:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

盼望本文所述对大家Oracle数据库程序设计具有利于。

select owner,object_name from dba_objects where object_type=’ style=”margin: 0px; padding: 0px; max-width: 100%; color: rgb(139, 0, 0);”>DATABASE
LINK’;

select * from dba_db_links;

自动聚合表空间(形似于清理碎片)

    2.
创设dblink,也会有二种情势。

alter tablespace EXAMPLE coalesce;

 
 第豆蔻梢头种是行使tnsnames.ora配置文件加多相关布置新闻,形如:

oracle 11g 空表分配空间后本事导出到dmp

chose_you_like =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = yourOracleServiceName)

    )

  )

1.先查询哪些表是空表:

然后在sqlplus终端下施行:

select table_name from user_tables where NUM_ROWS=0;

createpublicdatabase link
link_name connecttouser identified by pwd using ‘ style=”margin: 0px; padding: 0px; max-width: 100%; color: rgb(139, 0, 0);”>chose_you_like’;

2.苏醒成分配空间的言辞:

   
第三种是从来在sql语句中采纳布置新闻,语法格式如下:

select ‘alter table ‘||table_name||’ allocate extent;’ from
user_tables where num_rows=0;

createpublicdatabase link link_name connecttouser identified by pwd

using

'(DESCRIPTION =

    (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))

  )

  (CONNECT_DATA =

    (SERVER = DEDICATED)

    (SERVICE_NAME = yourOracleServerName)

  )

 )';

这里的user和pwd为指定的oracle数据库中的用户名和密码,SERVICE_NAME如果不确定的话,可以通过以下语句获得:

show parameter service_names;

或者

select name,valuefrom v$parameter where name='service_names'

SERVICE_NAME的值必须与源数据库保持一致,否则dblink创建成功后访问时会报错,错误提示如下:

3.最终执行生成出来的兼具语句,导出的时候就包罗了空表了。

ORA-12514: TNS: listener
does not currently
know of service
requested inconnectdescriptor

dblink管理远端数据

3. 使用dblink

    dblink的使用相对比较简单,把一般访问本地表时的表名改为如下格式即可:[user.]table@link_name。例如,在本机数据库上创建了一个scott_dblink的public dblink(使用远程主机

的scott用户连接),则用sqlplus连接到本机数据库,执行select * from scott.emp@scott_rmthot即可以将远程数据库上的scott用户下的emp表中的数据获取到。也可以在本地建一个同义

词来指向scott.emp@scott_rmthost,方便日常的使用。

  4. 删除dblink

    确定要删除的dblink名字以后,可以通过drop命令直接将其删除:

1.地点数据库客户demo登陆,查询dblink权限

droppublicdatabase link
dblinkname;

select * from user_sys_privs t where t.privilege like
upper(‘%link%’);

2.用sys登入,给当地数据库客户demo赋dblink权限

grant CREATE PUBLIC DATABASE LINK to demo;–demo为地面数据库客户名
grant DROP PUBLIC DATABASE LINK to demo;–demo为本地数据库客户名

3.然后以demo客户登入本地数据库

创设dblink(远端服务名:ORCL_253,link名:LINK_TO_253)

注意: 服务器上必得去配叁个ORCL_253的监听

create public database link

LINK_TO_253connect to “DEMO” identified by “DEMO” using ‘ORCL_253’;

或者

不配监听,用以下语句间接化解

create public database link

LINK_TO_253

connect to “DEMO” identified by “DEMO”

using ‘(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST =
192.168.90.253)(PORT=1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))’;

4.查询远端数据

select * from class=”underline”>rda_corp_info@LINK_TO_253;

5.删除dblink

DROP PUBLIC DATABASE LINK LINK_TO_253;

更正oracle数据库的最卢萨卡接数

需在commandSql下执行

1.查询连接数

show parameter processes;

show parameter sessions;

2.改革连接数

alter system set processes=500 scope=spfile;

alter system set sessions=500 scope=spfile;

3.重启服务   改正的连接数就能够立见成效。

相关文章