sqlserver数据库几种备份方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver数据库几种备份方法相关的知识,希望对你有一定的参考价值。

数据库备份可以分为4个备份类型。

l 全备份:创建备份完成时数据库内存在的数据的副本。

l 差异备份:只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。

l 日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。

l 文件组备份:可以备份和还原数据库中的个别文件。可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。

不同的备份类型适用的范围也不同。全备份,可以只用一步操作完成数据的全部备份,但执行时间比较长。差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。文件备份必须与事务日志备份一起使用,所以文件备份只适用于完全恢复模型和大容量日志记录恢复模型。

每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方式的配合来完成数据库的备份。

经常使用备份方式组合有以下几种:

l 全备份+差异备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行差异备份。

l 全备份+日志备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行日志备份。

l 文件组备份+日志备份:备份周期取决于数据库的大小和能力,每周期分别进行一部分数据文件备份,每天进行日志备份。
参考技术A 备份机器:塔迈备份一体机
备份内容:数据库
备份方法:
定时备份:可以按照月周日进行周期备份,也可以在指定时间备份
实时备份:当文件系统发生变化时自动同步到塔迈
完整备份:可以手动或定期对指定的文件夹所有内容进行完整备份
差异备份:可以定期或实时仅备份指定文件夹中发生了变化的内容

Sqlserver数据库备份的几种方式

在实际的数据库Sqlserver的运维的过程中,很多时候我们需要做到数据的备份操作,可以做到定时备份,也可以进行手动数据库备份。在实际的过程中,有时候因业务需要备份出完整数据库,而有时候又因为实际业务只需要影响到一张表或者几张表,备份整个数据库未必是最优的方案,此时可采用生成脚本或者Select Into的方式对单表进行备份。DBA在运维过程中备份数据差不多用的就是以上几种操作方式,下面就详细说下这几种备份方式。

(1)数据库整库备份

此方式备份数据库是最完整的,可以将数据库中所有的对象都备份下来生成个.Bak文件,后续如果出现问题,可以直接通过.bak文件还原数据库,但备份的耗时会比较长,并且占用磁盘空间会比较大。此方法备份的操作是直接在Sqlserver数据库管理软件中选中数据库,右键选择任务,然后选择备份,如下图

技术图片

 

 

然后进入备份界面后选择备份存放的路径以及设置好备份文件名称,点击确定即可进行备份,如下图

技术图片

 

(2)通过生成脚本的方式单表备份

有时候我们业务系统的更新可能只涉及到一张表或者几张表,此时可以通过对每个数据表进行单表备份的方式来操作,只备份这几张涉及到变更操作的数据表。操作的方法为在Sqlserver数据库管理软件中选中数据库,右键选择任务,然后选择生成脚本,参考方法一中的第一个图。然后进入生成脚本界面,选择下一步进入设置界面:

技术图片

 

 

进入设置界面后,选择特定的数据库对象,然后再从中选择你需要备份的数据表,如下图:

技术图片

 

 

然后点击下一步,进入存储路径以及导出设置界面,保存到文件可以选择保存为单个文件或者每个对象一个文件。此处关键一点记得选择高级按钮,在里面设置要编写脚本的数据类型,否则默认规则导出来的文件中只含有表的架构语句(即创建table的SQL语句),不含有任何表数据。如下图

技术图片

 

选择高级按钮后,进入高级设置项,将下拉菜单下拉到最后可以看到一个设置项叫做要编写脚本的数据的类型。将之设置为架构和数据或者仅限数据。只有这两种方式导出来的文件中才包含表格中的数据,仅限架构导出来的只是创建table的语句。

技术图片

 

设置好上述信息后点击完成,自动创建备份文件到指定的存储路径下,生成的文件是.sql后缀的数据库SQL文件。

 

(3)通过Select Into语句将一个表快速备份到一个临时新表中。

此备份方法是将查找出来的数据快速写入到指定的备份新表中,自动创建table。

如将A数据库中的Product表所有数据快速备份到ABackUp数据库中的Product_0228表中,可使用以下语句操作,直接在新建查询窗口执行即可。

Select   *   Into  ABackUp.dbo.Product_0228  FROM A.dbo.Product;

执行此语句要求into后面的表在执行之前不存在,存在的话上述语句无法执行。这个Product_0228表格也无需手动处理,上述语句在执行的时候自动创建跟Product表一致的结构。

以上是关于sqlserver数据库几种备份方法的主要内容,如果未能解决你的问题,请参考以下文章

如何备份sqlserver数据

如何设置将SQL SERVER2012数据库备份还原到SQL SERVER2008上

SQL SERVER 2012数据库自动备份的方法

sql server 2008 数据库的迁移都有哪些方法

sql server 2008 数据库的迁移都有哪些方法

sql server 2000 日志备份