1、打开SQL Server Management Studio,连接数据库,找到“本地” - “数据库”。
2、右键单击“还原数据库”或“还原文件和文件组”。
3、在“还原文件和文件组”界面上,输入目标数据库名称,选择“源设备”,然后单击“浏览”以选择要还原的文件。
4、您可以添加多个备份文件,选择恢复文件,单击“确定”。
5、检查要恢复的bak备份文件,单击OK,开始恢复 *** 作,根据数据量,恢复所需的时间不同,请耐心等待。
6、等待还原完成,单击“确定”,刷新数据库列表,可以看到刚恢复的数据库。此时,bak备份文件已恢复到数据库。
定期备份SQL数据库是必须的。 我们已经覆盖的方式就可以轻松备份您的所有SQL Server数据库到本地硬盘中,但这并不能防止驱动器和/或系统故障。 作为针对此类灾难的额外保护层,您可以在网络共享上复制或直接创建备份。
在本地备份,然后复制到网络共享
完成此任务的首选和最直接的方法是简单地创建数据库的本地备份,然后将相应的备份文件复制到网络共享。您可以通过创建如下所示的批处理脚本来完成此 *** 作:
SET LocalFolder = C:Program Files Microsoft SQL ServerMSSQL1MSSQLBackup
SqlCmd -E -Q“备份数据库MyDB到磁盘=%LocalFolder%MyDBbak”
XCopy“%LocalFolder%MyDBbak”“\ 1921681655BackupDatabases”/ Z / V
DEL“%LocalFolder%MyDBbak”
此脚本执行以下 *** 作(逐行):
将变量设置为本地SQL备份目录。
创建MyDB的SQL备份(使用Windows身份验证)到本地SQL备份目录。
将本地备份文件复制到网络共享。
删除本地备份文件。
同样,这是首选方法,因为它的工作原理和备份失败的可能性是最小的,因为备份是在本地磁盘上创建。 但是,如果没有足够的磁盘空间来存储备份文件的本地副本,则此 *** 作将失败。 在这种情况下,您需要添加额外的磁盘空间或直接备份到网络共享。
直接备份到网络共享
通常,当您尝试使用以下命令直接创建备份到网络共享时:
SqlCmd -E -Q“备份数据库MyDB到磁盘=\ 1921681655BackupDatabasesMyDBbak”
你很可能会得到一个错误的行:
消息3201,级别16,状态1,服务器JF,行1
无法打开备份设备\ 1921681655BackupDatabasesMyDBbak。 *** 作系统错误5(访问被拒绝。)。
消息3013,级别16,状态1,服务器JF,第1行
BACKUP DATABASE异常终止。
尽管使用Windows身份验证(-E开关)和Windows帐户作为通过Windows资源管理器访问和复制文件到共享的能力运行SQL备份命令,仍会出现此错误。
此 *** 作失败的原因是SQL命令在SQL Server服务运行的帐户的边界内执行。 当您在计算机上查看服务列表时,很可能您将看到运行为(登录为)列的SQL Server服务本地系统或网络服务,它们是没有网络访问权限的系统帐户。
在我们的系统上,网络共享命令的备份失败,因为我们有SQL Server服务作为本地系统运行,再也无法获得任何网络资源。
为了允许SQL直接备份到网络共享,我们必须将SQL Server服务作为可访问网络资源的本地帐户运行。
编辑SQL Server服务的属性,并在“登录”选项卡上将服务配置为作为具有网络访问权限的备用帐户运行。
单击“确定”后,您将收到一条提示,指示在重新启动服务之后,设置才会生效。
重新启动服务。
服务列表现在应显示SQL Server服务正在作为您配置的帐户运行。
现在当您运行命令直接备份到网络共享:
SqlCmd -E -Q“备份数据库MyDB到磁盘=\ 1921681655BackupDatabasesMyDBbak”
您应该会看到一个成功消息:
处理数据库MyDB的152页,文件1上的文件MyDB。
为数据库MyDB处理2页,文件1上的文件MyDB_log。
BACKUP DATABASE在0503秒(2493 MB /秒)中成功处理了154页。
使用备份文件现在在网络共享目录:
网络共享注意事项请务必注意,备份命令希望能够直接连接到网络共享,而不会提示您输入凭据。 您配置要运行的SQL Server服务的帐户必须与网络共享具有可信连接,其中相应的凭据允许访问,否则可能会发生以下错误:
消息3201,级别16,状态1,服务器JF,行1
无法打开备份设备\ 1921681655BackupDatabasesMyDBbak。 *** 作系统错误1326(登录失败:未知用户名或密码错误。)。
消息3013,级别16,状态1,服务器JF,第1行
BACKUP DATABASE异常终止。
此错误表示网络共享不接受帐户的用户名和密码,并且命令失败。
另一个要记住的问题是备份直接执行到网络资源,因此网络连接中的任何打嗝可能会导致您的备份失败。 因此,您只应该备份到稳定的网络位置(即可能不是***)。
安全隐患
如前所述,使用在本地备份然后复制到网络共享的方法是首选,因为它允许您将SQL服务作为仅具有本地系统访问权限的帐户运行。
通过将服务作为备用帐户运行,您打开了潜在的安全问题的大门。 例如,恶意SQL脚本可以在备用帐户下执行并攻击网络资源。 此外,对相应帐户(密码更改/到期或帐户的删除/禁用)的任何更改将导致SQL Server服务无法启动。
如果您使用备用帐户运行SQL Server实例,请务必记住这些要点。 如果采取适当的预防措施,则这些不显示阻止程序,则应考虑添加额外的硬盘驱动器空间,然后实施本地备份和复制,以便可以使用本地帐户运行SQL服务。企业管理器里 ->在所要进行备份的数据库上 右键 ->所有任务 ->维护计划 ->点四次下一步 ->
就是备份了 。
说明:这个页面上你可以点更改来 详细的配置如"每周-~周五00:00自动备份",及路径设置等。
--------------------------------------------
问题补充:强调一下,备份的文件名是“数据库名+备份日期”,每次更新的,否则会覆盖原来的备份,就没有意义了!
提问者:汉之尊 - 经理 五级
--------------------------------------------
针对你的这种做法那你尝试用存储过程吧,灵活、可以根据具体需要定制:
在要备份的数据上建立以下存储过程:
CREATE PROCEDURE [dbo][过程名] AS
declare
@filename nvarchar(100),--文件名
@NowDay int --设置时间
set @filename='D:\data'+cast(Day(GetDate()) as varchar(2))+'dat' --文件路径及文件名
Set @NowDay=Day(GetDate())
if (@NowDay>=20) or (@NowDay<=10) --这个月的20到下个月的10要备份
begin
print @filename BACKUP DATABASE [数据库名()你也可以设参数] TO DISK = @filename WITH INIT , NOUNLOAD , NAME = N'XX数据备份', NOSKIP , STATS = 10, NOFORMAT
end
自己推敲一下,相信你会实现的!
SQL2005数据库备份主要有两种方式:
1、单击:开始→程序→Microsoft SQL Server 2005→“SQL Server Management Studio”;选择要备份的数据库,右击—任务—备份 接下来一步步 *** 作就可以了
2、利用第三方工具来备份,比如说“多备份”,可以下载一个客户端或者直接在线上注册一个账号就可以开始备份了, *** 作很简单,多备份可以按期实现自动增量备份功能,只需要设置一次就可以自动 *** 作了,避免手动繁琐 *** 作
这里有:
>
以上就是关于怎么把sql server 2008 备份文件bak还原全部的内容,包括:怎么把sql server 2008 备份文件bak还原、如何将SQL数据库备份到网络共享、SQL数据库自动备份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)