数据库从sql 2000迁移到SQL 2005遇到的问题
数据库2000迁移到2005遇到的问题
一、SQL Server 2005“备份集中的数据库备份与现有的数据库不同”
还原数据库的时候可能会遇到这个问题,在勾选了“选项”->“覆盖现有数据库”就可以解决。
二、SQl Server2005目录查找失败,出现操作系统错误..
在还原数据库的时候在bak文件中存储了原始数据库的存储路径,这个路径在新数据库所在机器上不存在,就发生这个错误,所以还原的时候需要更改一下mdf文件和ldf文件的位置。
方法步骤:
1、在SQL 2005 新建一个同名数据库,保存于:
C:\Program Files\Microsoft SQL Server\MSSQL\data\
2、在查询分析器中执行以下语句:
RESTORE DATABASE AcafaDb FROM DISK = 'C:\AcafaDb.bak' with replace, MOVE 'AcafaDb_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\AcafaDb_Data.MDF', MOVE 'AcafaDb_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\AcafaDb_Log.LDF'
注意:这里的 AcafaDb 是我数据库的名称。
3、成功还原后,数据库里的用户变成了孤立帐户。
所谓孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。
孤立帐户的产生一般是一下两种:
1.将备份的数据库在其它机器上还原;
2.重装系统或SQL SERVER之后只还原了用户库
解决方法是使用系统自带过程sp_change_users_login来修复:
USE AcafaDb;
GO
EXEC sp_change_users_login 'Auto_Fix', 'acafacom', NULL, 'password';
GO
意思是:把用户名“acafacom”修复,密码为“password”
查询孤立用户语句:
EXEC sp_change_users_login 'Report'
更多请参考:
http://msdn.microsoft.com/pt-br/library/ms174378.aspx