一、数据库备份
1、右键“ 数据库名称 ” → “ 任务 ”→ “ 备份(B)... ”,弹出备份页,如图:
2、其他项不变,单击“ 目标 ”项下的“ 添加 ”,如图,设置备份目录及文件名后,“ 确定 ”:
3、如上图,备份类型选择“ 完整 ”,选中自己的备份路径,单击“ 确定 ”,如图,则备份成功:
通常我们讲的还原数据库是指还原文件到数据库。注意,SQL2000,备份的文件可以还原到高版本的SQL server上,而高版备份文件却还原不了低版本的SQL server。
二、正常还原流程
首先,当然是要备份好一份SQL的数据文件。
第二步,新建跟备份的数据库名称相同的数据库;
第三步,右键新建的数据库 " 任务 → 还原(R) → 数据库(D)... ";
第四步,在弹出窗口 " 常规 " 中选择 " 源设备 " ,选择备份文件路径,如下图:
第五步,点击 " 确定 " ,如下图,勾选备份集:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA' ),若备份数据库机器与还原不在同一台计算机上,勾选 " 覆盖现有数据库 " 如下图:
第七步,如下图,还原成功:
二、常见问题
1、sql2008 " 备份集中的数据库备份与现有的xx数据库不同 "
问题:因为是在另一台电脑对同名数据库做的备份,用常规方法还原,提示不是相同数据库,不让还原。
(1)、右击系统数据库master,新建查询,执行以下SQL代码:
RESTORE DATABASE xxx
FROM DISK = 'F:\DB\xxx.bak' --bak文件路径
with replace,
MOVE 'xxx' TO 'F:\DB\TraceMVC_150107\xxx.mdf', --mdf文件路径
MOVE 'xxx_log' TO 'F:\DB\TraceMVC_150107\xxx.ldf' --ldf文件路径
注释:xxx是需要还原的数据库名称,xxx.bak是需要还原的备份文件。
(2)、上面方法执行成功后,只有部分的表结构已经还原,而且表中没有数据,这时就可以用系统默认的方法再用xxx.bak文件还原一次数据库,必须要选中 " 覆盖现有数据库 "。
2、问题:
还原 对于 服务器“YIYI-PC”失败。 (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: 介质集有 2 个介质簇,但只提供了 1 个。必须提供所有成员。 (Microsoft.SqlServer.Smo)
问题原因:备份的时候选择了两个或多个路径。
解决方法:
方案一:将所有的备份路径下的两个或者多个文件全部拷到还原的机器上,还原的时候同时添加这两个文件。
方案二:重新备份只选择一个备份路径。