免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5243 | 回复: 9
打印 上一主题 下一主题

关于跨库查询的副作用问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-09 20:41 |只看该作者 |倒序浏览
前段时间为了解决某一问题运用了informix的跨库查询。 同一个informix服务下有A,B两个库 A库的所有者是 Aowner   B库的所有者是 Bowner,为了实现跨库查询给Bowner授予了 A库的dba权限.这样代码中就可以使Bowner 在连接了 B库(用 exec sql database B 的同时 通过执行形如"select * from A:tabname"语句而查询A库中的表。按理说执行完以上语句 Bowner应该从A库断开了才是。但现在我再备份A库时提示我有其他用户在访问该库不能备份。(我在应用中不能把数据库服务停了,因为B库还要一直运行下去,只是想备份A库),想请教大家怎样把 Bowner跨库对A库的连接断开而顺利的进行对A库的备份.用onstat -g ses 等命令查看到的信息显示 当前所连接的库是 B库(因为代码中运用了 exec sql database B ,而体现不出有 Bowner 对A的跨库访问.   谢谢大家!!

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2010-11-09 20:46 |只看该作者
没听说过数据库在访问就不能备份的~{:3_194:}{:3_194:}

论坛徽章:
0
3 [报告]
发表于 2010-11-09 20:52 |只看该作者
本帖最后由 gulpgg 于 2010-11-09 21:01 编辑

回复 2# liaosnet


    谢谢您的回答,我再执行 dbexport  A 的时候,报有其它用户再访问。
-425 - Database is currently opened by another user.
-107 - ISAM error:  record is locked.

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
4 [报告]
发表于 2010-11-09 20:57 |只看该作者
回复  liaosnet


    谢谢您的回答,我再执行 dbexport  A 的时候,报有其它用户再访问。
gulpgg 发表于 2010-11-09 20:52



    这个需要独占权限~ 这个也不叫备份,这种方法一般用于导库、迁移。。
    备份一般用ontape / onbar

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
5 [报告]
发表于 2010-11-09 21:03 |只看该作者
回复 3# gulpgg


    你可以考虑使用onmode -z 杀掉连接到数据库的进程,然后再执行dbexport

论坛徽章:
0
6 [报告]
发表于 2010-11-09 21:06 |只看该作者
回复 4# liaosnet


    谢谢,学习了, 那是我平时的叫法不对,请问我怎么把Bower对A的跨库连接真正的断开而使对A的这个导库操作能够做下去呢?

论坛徽章:
0
7 [报告]
发表于 2010-11-09 21:11 |只看该作者
回复 5# liaosnet


    我用onstat -e ses 看到的  ID 是我 用 语句 exec sql database B 所建立的会话。 如果把这个会话杀掉的话,那对B库的所有连接都断开了.我不想断开B的连接只是想断开 Bowner在访问B的同时而跨库访问A的连接。想断开的是这个跨库的对A的连接。再次感谢您。

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
8 [报告]
发表于 2010-11-09 21:24 |只看该作者
你要在那个库上做dbexport,就需要在那个库上onmode -z.
如果你不想onmode -z,那么,请你在程序中显式的退出操作。

论坛徽章:
0
9 [报告]
发表于 2010-11-09 21:35 |只看该作者
回复 8# liaosnet


    请问有没有一个命令完成  断开对A库的所有连接,而不影响对B库的连接呢?

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
10 [报告]
发表于 2010-11-09 21:38 |只看该作者
回复  liaosnet


    请问有没有一个命令完成  断开对A库的所有连接,而不影响对B库的连接呢?
gulpgg 发表于 2010-11-09 21:35



    onmode -sy  / onmode -jy
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP