rekcah0 发表于 2009-02-11 11:08

请教在多对一的数据库复制中,uid应该如何处理呢?

在sybase数据库复制的配置中, 应该保证主备库中用户uid一致.包括master..syslogins,master..sysusers,master..sysroles,被复制应用库..sysusers,被复制应用库..sysroles等表

现有两个生产机上的两个不同生产库,分别是DB1和DB2, 想将该两库复制到第三台机上复制服务器中的DB11和DB22中,即多个源库复制到一个复制服务器中的多个备库,那么存在这样的问题,DB1,DB2的master..syslogins,master..sysusers,master..sysroles中uid可能是不一致的,比如myuser在DB1的master库中uid是101,而myuser在DB2的master库中uid是102,那么复制服务器中master库里面,myuser的uid如何设置?要和DB1的master库中uid=101保持一致的话,就不能和DB2的master库中uid=102保持一致了,反过来也是一样,那么应该如何进行处理呢?

谢谢前辈指点!!!

camham 发表于 2009-02-17 17:07

全库复制的时候需要uid相同,你可以建立一个库全库复制,一个库表复制就解决了

hobbylu 发表于 2009-02-18 08:52

手动修改系统表,sysusers

rekcah0 发表于 2009-02-18 13:47

请问楼上老大, 是指将两个源库的UID先手工改为一致吗? 谢谢!!!

hobbylu 发表于 2009-02-18 14:52

跟两个库之间没有关系,只要和你的syslogins对应起来就可以了

camham 发表于 2009-02-18 17:26

MSA need same suid. And it's very bad idea to modify system table. If u modify uid in system table, then u need to modify all the tables owner to the new uid.

rekcah0 发表于 2009-02-19 12:57

晕了,不知道到底修改sysuser,还是syslogin,是master..sysuser,还是被复制库..sysuser....

而且楼上说的有道理啊.那得需要改所有表的属主ID? 所以,两个源库之间是不能直接修改UID为一致的,

那么,在两个源库的uid不一致的情况下,将这两个源库复制到一个复制服务器中的两个备库中,这个复制服务器的的uid怎么设?比如myuser在DB1的master库中uid是101,而myuser在DB2的master库中uid是102,那么复制服务器中master库里面,myuser的uid如何设置?

又回到原来的起点了,还请前辈高人们再耐心指正一把,感激不尽啊...

[ 本帖最后由 rekcah0 于 2009-2-19 13:02 编辑 ]

ehero 发表于 2009-02-19 22:18

原帖由 rekcah0 于 2009-2-19 12:57 发表 http://bbs3.chinaunix.net/images/common/back.gif
晕了,不知道到底修改sysuser,还是syslogin,是master..sysuser,还是被复制库..sysuser....

而且楼上说的有道理啊.那得需要改所有表的属主ID? 所以,两个源库之间是不能直接修改UID为一致的,

那么,在两个源库 ...

为什么要修改master..sysuser中的UID 啊?
两个源库的UID不同,但name相同,复制到备份库,没什么影响啊。照样可以使用,只要记得它们的密码搞成一样就行了。

你自己可以做一个实验,
设原来该库user为登录user0,备份一个库之后,新建一个登录user2,和一个demo库,将demo库默认给user2。
再删掉登录user0。重新建一个登录user0,前后它的UID肯定不一样。
然后恢复刚备份的库。这个库使用新建的user0,一切都好用啊。
页: [1]
查看完整版本: 请教在多对一的数据库复制中,uid应该如何处理呢?