SQLSERVER数据库备份后无法还原的解决办法

 更新时间:2013年08月01日 19:35:09   作者:  
有时候为了考虑数据安全我们都会备份数据库,sqlserver的备份格式一般都是bak结尾的,但覆盖时容易出问题,这里简单介绍下,需要的朋友可以参考下
有时候完全备份, 当还原的时候说不时数据库文件不让还原, 解决办法:
可以直接复制数据库文件, xxx.mdf 和 xxx.ldf (实际复制过程中需要先停止sqlserver服务才可以)

用 sp_attach_db 存储过程 就能搞定.

示例
下面的示例将 pubs 中的两个文件附加到当前服务器。

EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'


N表示Unicode的含义,就象类型中有varchar和nvarchar一样,一个Unicode字符占两个字节.使用N'的情况主要是在双字节系统环境中强制系统对每个字符用Unicode标准来解释,否则如果你的数据库.mdf文件是中文名而又不加N'的话,数据库加载后名称可能就变成乱码,因为系统按单字节处理字符造成!


............................................................


如果确认是SQL SERVER无法启动,请按照下面步骤操作:
1.重装SQL SERVER(注意要保留原来数据库的数据库文件,日志文件可不要)
2.在SQL Analysis中用sp_attach_db将数据库加到服务器

sp_attach_db用法:
sp_attach_db
将数据库附加到服务器。

语法
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]

参数
[@dbname =] 'dbname'

要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。

[@filename1 =] 'filename_n'

数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。

返回代码值
0(成功)或 1(失败)

结果集


注释
只应对以前使用显式 sp_detach_db 操作从数据库服务器分离的数据库执行 sp_attach_db。如果必须指定多于 16 个文件,请使用带有 FOR ATTACH 子句的 CREATE DATABASE。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。

权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程。

相关文章

  • MsSQL数据库基础与库的基本操作方法

    MsSQL数据库基础与库的基本操作方法

    文章主要介绍了数据库的基础知识,包括数据库的定义、主流数据库系统(如MySQL、PostgreSQL等)、数据库操作(如创建、修改、删除数据库,备份和恢复等)以及查看连接情况,感兴趣的朋友一起看看吧
    2025-02-02
  • sql 查询慢的原因分析

    sql 查询慢的原因分析

    sql 查询慢的48个原因分析。
    2009-07-07
  • sqlserver中存储过程的递归调用示例

    sqlserver中存储过程的递归调用示例

    这篇文章主要介绍了sqlserver中存储过程的递归调用示例,本文直接给出示例代码,需要的朋友可以参考下
    2015-07-07
  • 数据库性能优化一:数据库自身优化提升性能

    数据库性能优化一:数据库自身优化提升性能

    数据库自身优化包括:增加次数据文件,设置文件自动增长、表分区,索引分区、分布式数据库设计、整理数据库碎片等等.需要了解的朋友可以参考下
    2013-01-01
  • SQL 注入式攻击的本质

    SQL 注入式攻击的本质

    SQL 注入式攻击,又是注入式攻击,没想到2008年这个老掉牙的东西又出来搅风搅雨,更没想到的是这么老掉牙的东西居然还能跑出来搅风搅雨,而且造成了如此大的破坏
    2008-12-12
  • SQL Transcation的一些总结分享

    SQL Transcation的一些总结分享

    相信大家对于SQL Transcation再熟悉不过,它确保了数据库的数据一致性和安全性,尤其在对数据执行增删时,如果发生异常和错误它就会触发事务回滚,从而确保了我们数据的一致性和安全性,下面我们将通过分四部分介绍事件(Transcation)
    2012-08-08
  • 实例讲解sql server排名函数DENSE_RANK的用法

    实例讲解sql server排名函数DENSE_RANK的用法

    这篇文章主要以一个实例讲解了sql server排名函数DENSE_RANK的用法,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 安装MSDE2000提示为了安全起见,要求使用强 SA 密码的解决方法

    安装MSDE2000提示为了安全起见,要求使用强 SA 密码的解决方法

    今天下载了一个msde2000A,本想按照平时的安装习惯,找到了setup.exe安装程序,错误提示弹出一个对话框:为了安全起见,要求使用强 SA 密码。请使用SAPWD开关提供同一密码。有关详细信息,请参阅自述文件。安装程序将立即退出
    2013-08-08
  • 一文详解如何远程连接SQLServer数据库

    一文详解如何远程连接SQLServer数据库

    sql server是一款数据库管理工具,其中有非常多实用的功能可以帮助用户完成数据库的管理操作,也有一些用户在操作这款软件的时候会需要用到远程连接功能,这篇文章主要给大家介绍了关于如何远程连接SQLServer数据库的相关资料,需要的朋友可以参考下
    2023-10-10
  • 关于SQL Server数据库中的用户权限和角色管理功能实现

    关于SQL Server数据库中的用户权限和角色管理功能实现

    在本文中,我们介绍了在SQL Server中创建用户、分配权限和管理角色的基础知识,请记住定期审查和更新用户权限,以符合您组织的安全政策和数据访问要求,这篇文章主要介绍了关于SQL Server数据库中的用户权限和角色管理,需要的朋友可以参考下
    2024-03-03

最新评论