SQLServer备份

数据库备份是开发中很重要的一环,对于重要的数据,需要进行定时备份,对于临时进行的高危更新操作,需要备份表,防止类似于delete  from  table 忘记加where条件指定范围而把整张表删除的情况。在软件开发中,定时备份是一个好习惯,不用依赖于日志还原,依赖日志还原的方法比较复杂,花费的时间比较多。

1.sql复制表备份

这种备份用临时表的方法进行备份,快捷方便,不过需要手动维护。

if exists object_id("backName") then
drop table backname
select * into backName  from tableName
--把tableName表的数据备份到backName中

这个sql语句通过判断backName是否存在,不存在时会先在数据库中建一个backname的表,然后将数据从tablename表中导入到backname中。

2.SQLServer Management导出文件备份表

这种情况可以不在原数据库上新建表,而是通过把数据导出成文件的方式备份。

(1).在窗口执行语句:select * from tableName
(2).查询出来的结果,直接在查询结果框全选右击 -》将结果另存为.txt文件或者.csv文件

(3)导入时可以利用数据库向导-单击数据库右键》任务-》导出数据-》平面文件源...>然后自己编辑映射导入。

3.sql对数据库的备份

backup database TBC2016 to disk='d:\TBC2016_Backup.bak'
--其中TBC2016为你要备份的数据库的名字
--TBC2016_Backup.bak前缀可以任意,后缀为.bak就ok

备份成功如下图显示:

这时在你设定的目录下可以看到备份的文件。

另外:如果你连的是服务器的数据库,你必须要在服务器的磁盘里找这个文件。

如果你设定的路径文件目录不存在,会出现消息 3201(系统找不到指定的路径。)

之前我就是因为操作的不是本地的数据库,所以明明创建了文件目录却一直报3201的错误。。。

 

4.SQLServer Management定时备份作业

(1)创建SQL Server代理作业

1新建作业

 

(1.1)新建作业,输出常规信息

 

 

如上图:输入作业名称(如:BackupJobTest),这里所有者和类别都是默认的,输入说明(就跟写代码要写注释一样,利人利己)

 

(1.2)设置作业执行步骤

3新建步骤

 

点击左边“选择页”中的步骤属性选项卡,点击“新建”按钮

3作业步骤属性

 

作业步骤属性窗口中,类型选择(T-SQL),选择要备份的数据库,并粘贴上调试好的SQL 备份脚本,由于我也是第一次写,贴一段示例在这里,读者可以自行参考修改:

--将SQL脚本赋值给变量
declare @SqlBackupDataBase as nvarchar(1000)
set @SqlBackupDataBase=N'BACKUP DATABASE YourDataBaseName TO DISK = ''E:\DBBackup\YourDataBaseName-'+
CONVERT(varchar(11),GETDATE(),112)+REPLACE(CONVERT(varchar(12),GETDATE(),108),':','')+'.bak'''
--备份文件格式:YourDataBaseName-20140626233410.bak
print @SqlBackupDataBase --打印出来(为了方便调试,可省略)
exec sp_executesql @SqlBackupDataBase --调用系统存储过程,执行SQL

注:CONVERT()函数的第三个参数是时间样式ID;用REPLACE()函数替换掉了时间中的冒号(因为Windows中文件名不能包含该字符)

(1.3)设置作业执行计划

 

4.新建计划

 

在计划选项卡中,点击“新建”按钮新建计划:

 

4.新建计划2

 

设置完成后,点击”确定“按钮,另外三个属性“警报”、“通知”、“目标”如果需要可以自行设置,这里不再讲述。

 

完成计划设置后,点击上级的“确定”按钮,作业就创建完成了。

 

(2)手动验证作业执行的正确性

 

右键单击作业节点下刚建立的作业(图中的“BackupJobTest”),选择‘作业开始步骤(T)’

 

5执行作业1

 

执行结果如下,表示成功:

 

5执行作业

 

点击“查看历史记录(V)”,可查看日志:

6

只要有了备份文件,就不用费劲心思从日志还原了。

 

 

你可能感兴趣的:(数据库)