SQLServer 数据库还原和孤立用户的解决办法
先用 ?
? RESTORE ? FILELISTONLY ? ? FROM ? DISK ? = ? 'd:comcrm.dat' ? ? ? 可以看到备份集里的LogicalName和PhysicalName ? ? PhysicalName先不管,你记下LogicalName就好了 ? ? ? ? ? ? RESTORE ? DATABASE ? comcrm20041217 ? --新库名 ? ? FROM ? DISK ? = ? 'd:comcrm.dat' ? --存放你备份文件的位置及文件名 ? ? WITH ? MOVE ? 'comcrm_Data' ? TO ? 'c:tcomcrm20041217.mdf',? --数据文件还原后存放的新位置 ? ? MOVE ? 'comcrm_Log' ? TO ? 'c:comcrm20041217.ldf' ? ----日志文件还原后存放的新位置 ? ? ? ? comcrm_Data,comcrm_Log就是开始记下的数据文件和日志文件的LogicalName ? ? ? ? 'c:tcomcrm20041217.mdf','c:comcrm20041217.ldf' ? 是还原成的新库的物理文件名?? ================================================================= ? ? 1.你可以试试直接恢复: ? ? restore ? database ? comcrm20041217 ? ? from ? disk='x:comcrm.dat' ? ? ? ? ? ? ? ? ? 2.如果恢复出错,则要知道备份文件的具体内容才好恢复 ? ? ? ? ? ? 首先要知道你的备份文件中包含了多少个备份及每个备份的详细信息,用SQL语句: ? ? RESTORE ? HEADERONLY ? from ? disk='x:comcrm.dat' ? ? ? ? ? ? 这样,可以从上面的结果集(结果集列的含义参考SQL联机帮助,下同)中,知道你应该恢复的数据库的备份号Position列) ? ? 然后,就可以从备份文件中获取你要恢复的这次备份的详细信息: ? ? restore ? filelistonly ? from ? disk='x:comcrm.dat' ? with ? file=xx ? --xx是备份号 ? ? ? ? 最后,你就可以用下面的语句来恢复了 ? ? restore ? database ? comcrm20041217 ? ? from ? disk='x:comcrm.dat' ? ? ? with ? file=xx ? ?,move ? '数据文件名' ? to ? '实际恢复后数据文件存放的目录及文件名' ? ? --这些信息根据上面的语句查询出来的结果进行修改 ? ?,move ? '日志文件名' ? to ? '实际恢复后日志文件存放的目录及文件名'?? ? ============================================================ 解决复制数据库后 孤立用户的问题 ? sql server数据库进行还原的时候需要先执行解决孤立用户的sql语句, ?????? sp_change_users_login 'report'?? // 查看孤立用户 ???????sp_change_users_login 'update_one','bt31user','bt31user'? //bt31user 是需要解决的孤立用户,该语句是将孤立用户关联到系统库。 ? ? 这里可以使用存储过程 sp_change_users_login 。它有三种动作,分别是 report , update_one 和 auto_fix 。 ?????? 运行 sp_change_users_login 'report' ,系统会列出当前数据库的孤立用户数。 ?????? 我们只需要选择当前数据库为 testdb ,然后运行 ?????? sp_change_users_login 'update_one','test','test' sp_change_users_login 'update_one','hbbt31User','hbbt31User' ?????? 系统就会提示修复了一个孤立用户。 ?????? 如果没有建立 test 的登录用户,还可以用 sp_change_users_login 'Auto_Fix',NULL,'testpassword' 来创建一个登录用户名为 test ,密码为 testpassword 的用户与之对应。 ? ================================================== ?
孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。
孤立帐户的产生一般是以下两种:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – 不使用子查询的不同行的计数
- sql-server – Linux python3 – 无法打开lib’SQL Server’
- Netbeans的环境下连接SQLSERVER数据库
- mssqlserver 复制拷贝附件sql脚本(二)之异地服务器导出
- 带你熟悉SQLServer2016中的System-Versioned Temporal Tabl
- 黑客经验谈 MSSQL SA权限入侵的感悟
- sql – 计算具有相同关系的行
- sqlserver锁表、解锁、查看销表的方法
- SQL2005CLR函数扩展-数据导出的实现详解
- sql-server – sql server avg_user_impact