SQL Server2000-数据库迁移及孤立用户的解决办法


        有时候,我们会需要将一个数据库从一个服务器移到另一个服务器上。这种迁移分两种情况,一种是整个数据服务器全部迁移,一种是只移其中的个别数据库。
        相对来说,全部迁移比较好办,问题比较少,不过一般要考虑数据库停用造成的服务停顿问题。具体来说,全部迁移我一般采用以下两种简便方法:一、在目标机上做好服务后,目标机和源机都停止服务,直接将所有数据库文件拷到目标机上,此法要求两机数据库文件的目录一致。二、备份源机上所有数据库,包括系统表,然后在目标机上用这些备份文件一个一个数据库还原,注意系统数据库要求用单用户模式才能还原(停数据库,从命令提示符输入:sqlservr.exe -c -m)。此外,如果源与目标数据库的路径不一致时,要设置好还原到什么路径,否则还原也不能成功。
        全部还原一般不会出现与用户有关的问题,而迁个别数据库则容易产生用户问题,产生这些问题的原因是保存在数据库的sysusers表中的用户的ID和保存在master.dbo.syslogins的登录ID有出入,造成用户和数据库登录不能联系起来,引起存储过程不能用,权限不能归还用户等等问题,而且这种孤立在数据库中的用户是不能在企业管理器中删除、修改的。
        其实在M$的帮助中,这种用户账号叫做“孤立用户”,同时它也提供了解决的方案--把那个用户删除。
         可是删除这些用户并不是好方法,因为你以前做的跟这个用户有关的操作又要重新做,所以最好的办法是为这些用户找回与登录的关联。

None.gif exec  sp_configure  ' allow updates ' , 1   reconfigure   with  override
None.gif
update  db  set  sid = s.sid
None.gif
from  dbname.dbo.sysusers db 
None.gif
join  master.dbo.syslogins s  on  db.name = s.name
None.gif
where  db.sid  !=  s.sid  and  db.islogin = 1  
None.gif
exec  sp_configure  ' allow updates ' , 0   reconfigure   with  override

前提是先建立好了对应的登录。


 

浅文,高手免开骂口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值