如何解决dblink过多的问题

如何解决dblink过多的问题,第1张

能不能不用dblink,我现在用dblink都怕了。用dblink会同步两个数据库的scn值,万一有一台出问题。另外一台也会出问题的。你这样又是程序,又是trigger,很容易出事的,另外,如果你的Oracle是101及以下版

本,建议尽快升级

,这个版本的dblink有问题的。

ora-02068是由链接超时导致,重点问题在ora-03135,也就是你的DBlink上,先保证你的DBlink账号是通的,如果你的DBlink账号,在PLSQL客户端可以正常查询远程Oracle,接下来就检查你的程序中账号是否是dblink账号,权限以及防火墙是否正确。

删了重新创建一个联邦吧。

DB2联邦数据库建立,相当于Oracle的Db-Link

|字号 订阅

在同一台机器上,用同一用户建立联邦数据库

一、环境:

本机:数据库 a

“远程”:数据库 b

用户实例:db2inst1

二、步骤:

1、在DB2命令窗口运行DB2 GET DBM CFG 来查看当前实例的配置参数,并确保FEDERATED参数设置为YES,您可以通过运行DB2 UPDATE DBM CFG USING FEDERATED YES来设置这个参数。修改这个参数后,必须重新启动实例才会生效(DB2STOP/DB2START)

2、

db2 catalog tcpip node node1 remote 192168050 server 48000

db2 catalog db b as bb at node node1

db2 TERMINATE (必须使用该命令否则可能导致catalog更新不能生效

测试连通性

db2 attach to node1 user db2inst1 using db2inst1

db2 connect to bb user db2inst1 using db2inst1 (若出现问题,修改当前用户主目录下sqllib/instance/db2rfecfg 文件,使其remote =connection 的 值为YES,ENABLE AUTHENICAION=YES,先要db2stop,再执行/db2rfe -f 使其生效)

db2connect reset

3、建立包装器

连接到本地数据库 db2 connect to a

(本地为unix环境)create wrapper DRDA;

(本地为windows环境) create wrapper "DRDA" LIBRARY 'db2drdadll' OPTIONS( ADD DB2_FENCED 'N');

4、

建立服务器(此命令最好在db2 CLP 下执行,不能解析引号)

create server yj type db2/udb version 97 wrapper drda authorization "db2inst1" password "db2inst1" options(node 'node1',dbname 'bb')

此步骤options node 有疑问,待解决,好像Node 存在不存在都可以

5、

用户映射

db2 "create user mapping for "db2inst1" server yj options (add remote_authid 'db2inst1' ,add remote_password 'db2inst1')"

6、

建立别名

db2 "create nickname yj_test for yjdb2inst1test"

CREATE NICKNAME remote_t_usertable FOR remoteserver_195db2inst1t_usertable;

(其中,wrapper使用DB2数据源的缺省名称DRDA server名称是remoteserver_195,t_usertable表在local_db数据库中的nickname是remote_t_usertable)

7、连接到本地数据库

db2 conncet to a

db2 "select from db2inst1yj_test"

db2 update dbm cfg using FEDERATED YES

db2 connect to mydb1

--这里需要注意的是这个语句不能使用db2 ""执行,而是需要进入到db2 Command Line Processor 交互模式。这点是进行了很多尝试才发现的问题,注意问题是在password后面的字符串必须是双引号

--drda是默认的适配器

db2

create server f_mydb2 type db2/udb version 97 wrapper drda authorization db2inst2 password "" options(dbname 'mydb2')

db2 "create user mapping for "db2inst1" server f_mydb2 options (add remote_authid 'db2inst2' , add remote_password '')"

--db2inst2中存在一个表tb2

db2 "create nickname mydb2_tb2 for f_mydb2db2inst2tb2"

db2 "select from mydb2_tb2"

db2 "select from tb1 a inner join mydb2_tb2 b on bid = aid"

我不是dba,不过看你的SQL目测是一样的查询条件,就位置不同。看了个文章说where条件顺序有影响,oracle是从右往左执行的,你说表数据量大,试试把筛选到最少的条件放到最右边

文章链接:网页链接

在Spring Boot连接Oracle数据库时,如果出现连接超时问题,可以尝试以下几种解决方法:

1 增加连接超时时间:在Spring Boot应用程序的配置文件中,可以增加连接Oracle数据库的超时时间,例如可以在applicationproperties文件中添加以下配置:

````

springdatasourceoracleconnectionTimeout=60000

```

这里的60000表示超时时间为60秒。根据实际情况可以适当调整超时时间。

2 检查Oracle数据库的配置:确保Oracle数据库的配置正确无误,包括端口号、IP地址、用户名、密码等。

3 检查数据库连接池配置:如果使用了数据库连接池,需要检查连接池的配置是否正确。例如可以检查最大连接数、最小连接数、连接超时时间等配置。

4 检查网络连接:如果连接Oracle数据库的网络不稳定,可能会导致连接超时问题。可以尝试重新启动网络设备或者更换网络。

5 检查防火墙设置:如果防火墙设置不正确,可能会阻止Spring Boot应用程序连接到Oracle数据库。可以检查防火墙设置,确保允许Spring Boot应用程序连接到Oracle数据库的端口。

通过以上几种方法,应该能够解决Spring Boot连接Oracle数据库时出现的连接超时问题。

以上就是关于如何解决dblink过多的问题全部的内容,包括:如何解决dblink过多的问题、Oracle连接DB2,Dblink报错 Ora-28500 Ora-02063、oracle数据库db link查询极慢,求dba解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9670703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存