记一次数据库迁移遇到问题

接通知要给客户做演示,要临时搭软件环境。系统是子公司搞出来的。部署后十几个库,几十个站点。到现在还没谁能在一天搭建好的,那个复杂那个狗血,想想都冒汗。

看下大小,12+G!备份再还原懒得搞,所以直接停了服务器。开始压缩文件,又解压,漫长的等待。

用sp_attach_db命令先写好脚本,跑跑秒秒钟的事,数据库部署OK。然后就是部署站点,几十个那叫一个痛苦。
听说可以导出服务器的再导入就好了。可IIS中没看到有这功能,可能是系统或iis版本问题(win7 x64 iis6.1)

一切部署好,接着就是一堆问题出来了。各种问题排查—— 关防火墙,混合模式登录,允许远程连接, IIS应用程序池 fw版本、管道模式、标识、启用32位应用程序

到此常见的问题原因排查得差不多了。登录失败的问题还是存在。

要说明的是,这些库不是SA创建的,是自己创建的特定用户创建。

错误只是简单的登录失败,也没详细原因,只能找搜索引擎了,一个个方法的试。

问题出现的原因是在不同的机器还原或附加数据库后,该数据据库的用户只是孤立用户,只有用户名而没有登录名,
在sqlserver组的安全性里登录里会看不到该用户的名字。

网上给出的解决办法是:使用sp_change_users_login来修复

--列出当前数据库的孤立用户
exec sp_change_users_login 'REPORT'

--可以自动将用户名所对应的同名登录添加到syslogins中
exec sp_change_users_login 'AUTO_FIX','用户名'

--将用户名映射为指定的登录名。
exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'

 

具体步骤:

1.创建同名登录名

2.选择登录失败库,执行脚本一二就可以了。

posted @ 2015-05-19 15:24  jewely  阅读(226)  评论(0编辑  收藏  举报