有时候为了考虑数据安全我们都会备份数据库 sqlserver的备份格式一般都是bak结尾的 但覆盖时容易出问题 这里简单介绍下 需要的朋友可以参考下 有时候完全备份 当还原的时候说不时数据库文件不让还原 解决办法: 可以直接复制数据库文件 xxx mdf 和 xxx ldf (实际复制过程中需要先停止sqlserver服务才可以) 用 sp_attach_db 存储过程 就能搞定 示例 下面的示例将 pubs 中的两个文件附加到当前服务器 EXEC sp_attach_db @dbname = N pubs @filename = N c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs mdf @filename = N c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log ldf N 表示Unicode的含义 就象类型中有varchar和nvarchar一样 一个Unicode字符占两个字节 使用N 的情况主要是在双字节系统环 境中强制系统对每个字符用Unicode标准来解释 否则如果你的数据库 mdf文件是中文名而又不加N 的话 数据库加载后名称可能就变成乱码 因为系 统按单字节处理字符造成! 如果确认是SQL SERVER无法启动 请按照下面步骤 *** 作: 重装SQL SERVER(注意要保留原来数据库的数据库文件 日志文件可不要) 在SQL Analysis中用sp_attach_db将数据库加到服务器 sp_attach_db用法: sp_attach_db 将数据库附加到服务器 语法 sp_attach_db [ @dbname = ] dbname [ @filename = ] filename_n [ ] 参数 [@dbname =] dbname 要附加到服务器的数据库的名称 该名称必须是唯一的 dbname 的数据类型为 sysname 默认值为 NULL [@filename =] filename_n 数 据库文件的物理名称 包括路径 filename_n 的数据类型为 nvarchar( ) 默认值为 NULL 最多可以指定 个文件名 参数名称以 @filename 开始 递增到 @filename 文件名列表至少必须包括主文件 主文件包含指向数据库中其它文件的系统表 该列表还必须包括数据库分离后所有被移动的文件 返回代码值 (成功)或 (失败) 结果集 无 注释 只应对以前使用显式 sp_detach_db *** 作从数据库服务器分离的数据库执行 sp_attach_db 如果必须指定多于 个文件 请使用带有 FOR ATTACH 子句的 CREATE DATABASE 如果将数据库附加到的服务器不是该数据库从中分离的服务器 并且启用了分离的数据库以进行复制 则应该运行 sp_removedbreplication 从数据库删除复制 权限 只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程 lishixinzhi/Article/program/MySQL/201311/29555
sql
server本身有数据导入的 *** 作。但如果要从一个备份的文件中导入数据,则要进行另外的 *** 作。下面以一个例子进行说明。
sql
server服务器上已有一个doe数据库,并且里面有大量的数据,现准备从另外一个备份文件a1bak(不是doe数据库的备份文件)中导入另外的数据(即导入后在doe中增加一些数据表,表中已录有数据),并保持原doe的数据不变。
1、首先,在“sql企业管理器”中新建一个临时数据库a1。
2、右击a1数据库,选择:所有任务->还原数据库。
3、在“还原数据库”窗口中,选择:“从设备”。
4、点击“选择设备”。
5、点击“添加”。
6、从文件名中选择要还原的数据库文件,如a1bak。
7、点击“确定”,返回“还原数据库”窗口。
8、点击“选项”卡,进入选项设置。
9、钩选:“在现有数据库上强制还原”。
10、修改“移到物理文件名”为:“c:a1ldf”、“c:a1mdf”。
11、点确定,即可导入备份文件中的数据到临时数据库a1中。
12、此时,你可以将数据从a1导入到另外一真正要导入的数据库中,如doe数据库。
(下面的数据导入 *** 作为sql2000企业管理器的一般数据导入导出 *** 作。)
13、在“sql企业管理器”中选择“doe”数据库。
14、右击doe数据库,选择:所有任务->导入数据。
15、在“dts导入/导出向导”窗口的“选择数据源”中,数据源选择刚才建立并导入数据的临时数据库a1。点击下一步。
16、在“选择目的”中,系统已经默认为doe数据库。
17、连续点击“下一步”,直到完成。
经过上面的 *** 作,你已经成功地将备份文件a1bak中数据导入doe数据库中,并且doe数据库原有数据不变。
1
左下角点击开始,程序,Microsoft
SQL
Server
2008
R2
,找到SQL
Server
Management
Studio,进入企业管理器。
2
选择服务器\实例名,登录名选择sa,输入sa登录密码,点击连接。
3
进入企业管理器界面,鼠标右键单击“数据库”,选择“新建数据库”。
4
输入数据库名称,例如123材料,然后点击确定。然后在企业管理器里就会发现多出了一个数据库“123材料”
5
鼠标右键点击
“123材料”这个数据库,选择“任务”—“还原”—“数据库”
6
进入还原数据库页面,选择“源设备”,然后点击后面的三个小圆点。
7
点击“添加”。
8
选择要恢复的BAK文件。
9
点击下面的“选择用于还原的备份集”,把还原下面的方框全部勾选,,然后点击左侧的“选项”
10
在选项的设置里,把“覆盖现有数据库”前面的方框勾选,然后点击下面的“确定”
11
成功完成数据库的还原,大功告成!
以上就是关于SQLSERVER数据库备份后无法还原的解决办法全部的内容,包括:SQLSERVER数据库备份后无法还原的解决办法、如何通过备份文件恢复SQL Server数据库、如何通过 sql 2008 备份的数据库恢复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)