当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQLServer 数据库还原和孤立用户的解决办法

MSSQL
用SQL Server为Web浏览器提供图像(三)(转)
用SQL Server为Web浏览器提供图像(四)(转)
数据库连接范例
数据访问-与数据库建立连接
SQL Server静态页面导出技术1
SQL Server静态页面导出技术2
Access数据库安全的几个问题
保护Access 2000数据库的安全
ACCESS97关于数据库安全的几个问题
如何把access转换到mysql
将Access数据转换为XML格式
通过Access从Web获取MySQL数据
如何将Access和Excel导入到Mysql中之一
如何将Access和Excel导入到Mysql中之二
如何将Access和Excel导入到Mysql中之三
ACCESS数据库向MySQL快速迁移小程序(一)
ACCESS数据库向MySQL快速迁移小程序(二)
长期使用中型Access数据库的一点经验
微软SQL Server 2005的30项顶尖特性
SQL Server2000企业版安装教程

MSSQL 中的 SQLServer 数据库还原和孤立用户的解决办法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 315 ::
收藏到网摘: n/a

先用  
  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。它有三种动作,分别是reportupdate_oneauto_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', 'test', NULL, 'testpassword'
来创建一个登录用户名为test,密码为testpassword的用户与之对应。