[转帖]Oracle的ORA-02063错误解决方法(Wallet相关?)_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2190 | 回复: 1   主题: [转帖]Oracle的ORA-02063错误解决方法(Wallet相关?)        上一篇   下一篇 
忧郁小王子
注册用户
等级:列兵
经验:86
发帖:1
精华:0
注册:2016-10-12
状态:离线
发送短消息息给忧郁小王子 加好友    发送短消息息给忧郁小王子 发消息
发表于: IP:您无权察看 2019-9-18 14:31:10 | [全部帖] [楼主帖] 楼主

1 问题:

前面说到我的项目中创建了一个定时刷新的物化视图,这个物化视图是基于一个左连接两个远端机器的表的的查询。

大概样子就是这样:

create materialized view VIEW_NAME


refresh 字句

select (.....)
from Table1@DBLINK_NAME t1
left join Table2@DBLINK_NAME t2


on t1.id = t2.sid开始的时候Table1只有几十条数据,这个物化视图创建没问题,也能定时更新。

后来当Table1的数据量增大到34万条之后,物化视图就不再更新了,最后重新执行物化视图发现报出【ORA-02063: preceding line from DBLINK_NAME】这个错误。

北京联动北方科技有限公司

2 思考解决方法的过程:

报出错误之后我发现焦点聚焦到了t2这个地方,恰好发现旁边的人在使用PL_SQL软件,连接到了这个远端的数据库,并且打开了t2这个表,然后我就觉得可能是因为数据库表死锁导致这个物化视图不能执行。

然后把吧PL_SQL关掉,发现还是有这个问题。。。 其实我再想想发现有点天真,select语句怎么可能和PL_SQL软件竞争呢。。。除非是update/insert等语句倒是有可能。

然后我继续尝试,发现:

(1)吧左连接去掉,单独通过DBLINK来查询t1来建立物化视图,或者单独通过DBLINK来查询t2来建立物化视图,都是OK的;

(2)还是保留左连接,仅仅执行创建物化视图语句中的select语句部分(即左连接两个DBLINK的表),还是报这个错误;

由此可见这个错误和物化视图毫无关系,而且一定和左连接有关系。。。。

3 解决方法:

后来又上网查了一下,发现有人说可能是因为创建DBlink时,密码没有用双引号括起来,就会导致ORA-02063这个错误。。。 明天去公司一定要试一下。

今天试了一下,不通过DKLink了,而是直接在远端那个数据库上执行物化视图中的这段查询语句。报出了这个错误:

北京联动北方科技有限公司

看来这个问题和DBLink没有丝毫关系,也和物化视图没有丝毫关系,而是和这个表所在的表空间加密,或者这个表数据量太大有关(不确定)。

我把t1(32w条数据)表所在的表空间改大,查询语句就好使了,而且也能建立物化视图了。

然后我又把表空间大小又给改回去原来的值,再次查询和建立物化视图竟然也没问题了。。。。费解!!!

这个表空间是加密了的,我感觉最有可能的原因是: 访问这个表空间的时候,我这个用户没有在Wallet的某个配置文件中配置自己导致的,但是怎么改表空间能解决呢???

哎。。。这个错误不好重现了啊!!!

4 后续思考总结:

其实针对一个解决方案遇到错误,努力尝试解决时对的,但是同时也要跳出这个圈子,想想这个解决方案是否有替换解决方案。

就像这个问题,因为放弃左连接,为远端的单个表建立物化视图是没有问题的(34W条数据也没问题)。

所以其实我这个物化视图可以换一种解决方案,就是:

---------- 分别基于t1和t2这两个远端表各自建立一个物化视图,然后再本机上建立一个这两个表的左连接的普通视图,不就解决了么!!!

而且还能增量刷新呢。




赞(0)    操作        顶端 
联动大白
注册用户
等级:列兵
经验:91
发帖:0
精华:0
注册:2015-5-27
状态:离线
发送短消息息给联动大白 加好友    发送短消息息给联动大白 发消息
发表于: IP:您无权察看 2019-11-10 0:30:00 | [全部帖] [楼主帖] 2  楼

为了方便大家阅读,我对文章中错误号来解释一下吧!

Error Id: ORA-02063

Title: preceding stringstring from stringstring

Description:

preceding stringstring from stringstring

Action:

refer to the preceding error message(s)

Cause:

an Oracle error was received from a remote database link.


也许你已明白,但对一个人有用也是我存在的理由!^_^ By:持之以恒的大白

-- 来自: 北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论