(1)如图:选中需要备份的数据库,右击数据库 选择 :“任务”—“备份”:
点击备份出现:
备份的类型:
(1)完全备份:它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但是呢,它也需要花费更多的时间和空间。
(2)事物日志备份:事务日志备份的内容是从还未被备份的事务日志开始,直到备份结尾的最后一个事务日志为止。
(3)差异性数据库备份:包括自从上一次完整性备份以来所有改变的数据页,以及备份结尾的部分活动事物日志。
当然具体该选取那种备份方式,参考:
http://blog.csdn.net/tjvictor/article/details/5214035
点击添加,选择备份路径,点击确定,备份成功!
在备份路径,发现出现一个后缀名为.bak数据库文件。
自动备份需要的数据库,在时间、效率上都要比手动备份更加优化。
首先保证Sql Server的代理服务是开启的。右键点击SQL Server代理–启动
选中“对象资源管理器”中的“管理”下的“维护计划”,右击选择“维护计划向导”
在如下弹出的“维护计划向导”界面中,输入名称,选择“整个计划统筹安排或无计划”,单击“更改”。
设置自动备份的频率,单击“确定”按钮。
单击下一步后,界面如下图;勾选备份数据库,此时可以选择:完整、差异、事务日志三种类型的备份
单击下一步,选择需要备份的数据库。比如勾选了“beifen”。
右击SQL Server代理 作业,新增作业
选择步骤,点击新建
DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = REPLACE(@strPath, ':' , '-')
set @strPath = 'E:\backup_ceimm2\' +'ceimm2_DB_' +@strPath + '.bak'
BACKUP DATABASE ceimm2 TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT
说明:备份选中的数据库(如ceimm2 )到E:\backup_ceimm2 路径下,
并且备份文件取名格式 如:ceimm2_DB_2019-01-06 01-00-00
2019-01-06 01-00-00 为任务计划执行时间。
选择计划,新建计划
设置在每天1:00备份,所以前面文件生成格式的由来。
前面备份了数据库文件,如果手动删除是不现实的
DECLARE @OLDDATE DATETIME
SELECT @OLDDATE=GETDATE()-20
EXECUTE master.dbo.xp_delete_file 0,N'E:\backup_ceimm2\',N'bak',@olddate
说明:删除E:\backup_ceimm2 目录下,格式为bak的20天前的文件。
进入管理-维护计划
打开SQL server 数据库,右击数据库在列表中选择还原数据库,会弹出还原数据库的窗口,选择原设备按钮,然后点击原设备右边的文件选择按钮。
目标数据库需要与你要还原的数据库一致,在下拉菜单中有,直接选择就可以了。
如果出现
标题: Microsoft SQL Server Management Studio
------------------------------
还原数据库“frame”时失败。 (Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------
其他信息:
System.Data.SqlClient.SqlError: 因为数据库正在使用,所以无法获得对数据库的独占访问权。 (Microsoft.SqlServer.SmoExtended)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=1100.60+((SQL11_RTM).120210-17+)&LinkId=206
------------------------------
按钮:
确定
------------------------------
数据库还原问题:
System.Data.SqlClient.SqlError: 因为数据库正在使用,所以无法获得对数据库的独占访问权。 (Microsoft.SqlServer.SmoExtended)。出现此问题的原因是在还原数据库时,有其他用户正在使用数据库。还原数据库要求数据库工作在单用户模式。通常就是DBA在操作时,不允许其他用户连接数据库。
解决方案1.
如果你使用管理工具还原数据库并且在Microsoft SQL Server Management Studio 2016或以上版本的话,可以在还原的时候勾选"关闭到目标数据库的现有链接"
解决方案2:
如果你的SqlServer Management Studio的版本比较低,可以设置数据库为单用户模式,执行完还原操作后,恢复为多用户模式
方法一(最方便):右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -> 选择Single-> 确定。然后还原。
方法二(最直接):断开数据库连接
方法三(最暴力):注销/重启数据库服务器
方法四(最麻烦):写代码修改数据库相关属性,虽然麻烦,有的时候还是要用到,那就用到的时候再研究。
方法五(终级解决方案):
关键SQL语句:
ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE
用完之后再
ALTER database [ datebase] set online
如果你觉得本篇文章对你有所帮助的话,麻烦请点击头像右边的关注按钮,谢谢!
技术在交流中进步,知识在分享中传播