SqlServer数据库-备份及还原的操作演示说明

1.背景

项目工作过程中,如果出现删除业务关键表数据的低级失误,需要采取即时的补救措施才能防止造成更大的损失。
又或者,有的项目中,服务器存储等硬件使用年限较久,同时甲方对数据库的安全备份策略基本等同于无,需要在项目实施之初就采用基础的备份策略以应对灾难性数据丢失,保障业务连续性。
备份是保护数据的唯一方法。

2.目标说明

目标1.备份de具体操作实践

目标2.备份到独立存储de操作实践

目标3.还原de具体操作实践

目标4.利用ApexSQLLog2014还原
SqlServer备份+还原

3.具体操作实践

1)备份
1.创建测试数据库,如果有测试库,忽略此步;

USE [master]
GO
CREATE DATABASE [SQLTestDB]
GO
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT getdate()
)
GO
USE [SQLTestDB]
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, ‘test1’)
INSERT INTO SQLTest (ID, c1) VALUES (2, ‘test2’)
INSERT INTO SQLTest (ID, c1) VALUES (3, ‘test3’)
INSERT INTO SQLTest (ID, c1) VALUES (4, ‘test4’)
INSERT INTO SQLTest (ID, c1) VALUES (5, ‘test5’)
GO
SELECT * FROM SQLTest
GO

2.备份
右键单击数据库,将鼠标悬停在“任务”上,然后选择“备份…” 。
右键单击数据库,将鼠标悬停在“任务”上,然后选择“备份...” 。
“目标”备份到: 删除当前的路径索引。
在这里插入图片描述
点击添加
在这里插入图片描述
点击“…”,选择你的备份文件保存路径。
在这里插入图片描述
输入备份文件名,完整备份带上.bak后缀,点击“确定”。
在这里插入图片描述
确定,确定。
在这里插入图片描述
在这里插入图片描述
备份文件在目录下显示如下图所示。
在这里插入图片描述
完整备份完成。
3.备份到非本地的独立存储。(预防本地存储硬件发生灾难,不可恢复)
建立存储过程,然后定期JOB即可.

USE [SQLTestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[P_DB_TEST]
AS
BEGIN
exec sp_configure ‘show advanced options’,1
reconfigure
exec sp_configure ‘xp_cmdshell’,1
reconfigure
declare @TimeName varchar(100)
declare @Disk1 nvarchar(100)
DECLARE @Disk2 nvarchar(100)
set @TimeName=REPLACE(REPLACE(REPLACE(SUBSTRING(
CONVERT(varchar(20),GETDATE(),120),1,19),’-’,’’),’:’,’’),’ ‘,’_’) --获得年月日时分秒例:-06-02 14:25:45 转换格式后"2012_06_02_14_25_45"
set @Disk1=’\192.168.200.205\LJS-DBTEST\ASRS_DBTEST.bak’ --’\目标IP\目标共享文件名\数据库名’+@TimeName+’.bak’
–'net use \目标IP\目标共享文件名目标机密码/user:目标机登录名
exec master…xp_cmdshell ‘net use \192.168.200.205\LJS-DBTEST /user:192.168.200.205\administrator asrs’
exec master …xp_cmdshell ‘del \192.168.200.205\LJS-DBTEST\ASRS_DBTEST.bak’
backup database SQLTestDB to disk=@disk1 WITH INIT–覆盖原有备份
EXEC sp_configure ‘xp_cmdshell’, 0
RECONFIGURE
EXEC sp_configure ‘show advanced options’, 0
RECONFIGURE
END
GO
在这里插入图片描述
或者使用工具栏导航功能中的“维护计划”。
在这里插入图片描述
异地备份效果如下,这个维护计划一开始会遇到权限问题,但是将存储过程调用,修改下设置即可正常使用,没有深究。
注意文件夹共享属性等要求!!!
在这里插入图片描述

2)还原
完整备份+差异性备份+事务日志备份 的还原。
–操作后表状态:2-12
–操作:删除ID =2
delete from SQLTest WHERE ID =2
–操作:差异备份
–操作后表状态:3-12
–操作:删除ID =3
–操作:日志备份
–操作后表状态:4-12
–操作:删除全部
–操作后表状态:NULL
以上备份操作是为了区别还原效果,个人可以根据自己情况设置测试条件。

还原时需要注意“选项”里一些选项,根据实际需求,详细内容百度之。
在这里插入图片描述
利用ApexSQLLog2014还原
在这里插入图片描述
需要完整备份模式,需要执行一下备份,完整备份或者事务备份。我试过差异备份,貌似无效。
下图为选择事务日志备份。
undo之后就可以将SQL语句copy至查询窗口,然后执行操作即可还原。
在这里插入图片描述

4.小结

1.删除业务关键表的骚操作还是少做,严谨严谨再严谨。
2.对于日常操作,还是建议先SELECT 后增删改。
3.ApexSQLLog2014在我看来毕竟不是常规的方法, 只能作为挽救数据的最后一招,特别是恢复模式设置为“简单”的情况下是无法恢复的。
2.平时应做好日常备份,有条件和需要的做镜像、Alwayson集群等。
3.对重要的业务数据表可以保存到CDC变更表(SQLSever2008+),查看和管理都会方便许多。恢复模式为简单模式一样可以进行CDC。仅供方案思路参考。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值