SQL Server数据库备份全解析

2016-11-24 01:30:21 10461

目前互联网上流行的数据库有MYSQL, SQL Server, ORACLE等类型,今天为大家解析一下关于SQL Server数据库的备份。

首先解析一下SQLServer 快速备份的十种方法。

01/硬盘来备份 磁带来存档

备份到硬盘比备份到磁带要快得多,大多数经验丰富的DBA都偏向于此法。除追求高速I/O率之外,你手边还需要有最新的备份以便做数据恢复。当做完硬盘备份后,你需要把数据存档到磁带上以便长期保存。

02/利用业余时间进行备份

要做备份时最好利用业余时间,因为?据库服务器上的操作最少,对性能影响也就越小。但是请记住,有些时候业余时间运行批量工作可能会比平时运行的工作对系统造成的压力还要大。因此监测服务器状况十分重要,要谨慎制定完全备份的时间段。

03/使用压缩软件

SQL Server备份的最好方法就是硬盘备份然后磁?归档。这样的缺点是备份文件通常和数据文件大小相当。也是因为如此,如果你有一个100G的数据库,你就需要100G的硬盘空间来进行备份。不幸的是,SQL Server不带内嵌的压缩工具。你可以使用压缩产品,但这会耗掉更多时间。所幸市场上有三种压缩工具,Idera, Quest Software Inc.和Red Gate Software Ltd.的产品都可以帮你在百忙之中创建压缩备份。使用压缩软件会增加备份成本,但你的得到的好处远远大于这点成本。

04/写入多文件

另一种方法就是将备份写入多文件,这样你就可以使用多线程进行备份了。磁带厂商和上面提到的三个公司都提供这一服务。多任务能力可以进行更快的备份,它不会对备份文件进行压缩,但能大大减少所用时间。

05/写入多物理磁盘驱动器

进行完全备份对I/O设备的操作十分频繁。每一个数据库文件都要被读取然后写入另一个文件。使用多物理硬盘,你可以达到高I/O率并更快完成备份。除写入多文件方法之外,你还可以写入多物理硬盘来处理I/O性能瓶颈。

06/运行文件或文件组备份

SQL Server提供另外一种备份选项——文件或文件组备份。这个方法是由数据库初始设置决定的。如果当初设置数据库时你创建了多文件或多文件组,你就可以只备份部分数据库而不用备份整个数据库了。这种方法可能会增加工作复杂度和安全风险,所以在使用此法进行备份前一定要制定好计划。

07/创建快照

快照是SQL Server提供的另一种备份方法。顾名思义,就是在数据库运行的某个时间点创建快照。第三方软硬件可以提供这样的工具但成本很高。使用快照的优势是你能随时进行备份。

8/本地硬盘备份Vs.网络备份

进行网络备份会对网络I/O设备造成一定压力。像硬盘I/O设备一样,利用网络进行大量数据传输同样会产生一些问题。考虑网络备份时,创建备份所使用的时间根据不同情况也会大有不同。最好的办法是备份到连接本地服务器的硬盘。备份完成后再拷贝到磁带以便归档。

09/使用连续数据保护(CDP)

一个新的数据备份方法就是连续数据保护(CDP)。这个方法可以备份发生的事务,你可以在另一台服务器上重建.mdf和.ldf文件以便进行容错,报告等任何你需要的服务。这避免了在主服务器上做完全备份的情况。上海英方软件股份有限公司就提供此项服务。

10/运行差异备份

这一选项可你使你只在上次完全备份的基础上做部分备份。差异备份只包括上次完全备份之后发生变化的部分。完全备份每周运行一次就可以,差异备份运行就更频繁了。差异备份的速度比较快但运行完全备份时还是要花很长时间。根据变化部分的不同,有时差异备份可能会和完全备份的大小一样。

除此之外,还可以使用自动定时备份,让备份变得更加省心,SQL Serve 2005 按照日期自动备份:

SQL Server自动作业备份

1、打开SQL Server Management Studio ;

2、启动SQL Server代理 ;

3、点击作业->新建作业 ;

4、"常规"中输入作业的名称 ;

5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句 ;

DECLARE @strPath NVARchar(200)

set @strPath = convert(NVARchar(19),getdate(),120)

set @strPath = replace(@strPath, ':' , '.')

set @strPath = 'D:ak' + 'databasename'+@strPath + '.bak'

BACKUP DATABASE [databasename] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT

(D:ak改为自己的备份路径,databasename修改为想备份的数据库的名称)

6、添加计划,设置频率,时间等。

确定,完成。

SQL Server 2008 自动备份数据库脚本,构建目标文件名,调用存储过程完成,可由计划任务执行。

以下代码复制到计划任务中,做少许调整即可。

declare @filename varchar(1024)

declare @path varchar(1024)

set @path = N'D:Backup';

declare @extension_name varchar(16)

set @extension_name = N'bak';

set @filename = convert(varchar(1024), getdate(), 120)

set @filename = replace(@filename, ':', '')

set @filename = replace(@filename, '-', '')

set @filename = replace(@filename, ' ', '')

set @filename = @filename + '_' + convert (varchar(3), datepart(ms, getdate())) + N'.' + @extension_name

-- 得到完整目标文件,数据库将备份到这个中

set @filename = @path + @filename

-- select @filename

-- 开始备份, MYDB 是需要备份的数据库, COMPRESSION 参数表示压缩,可节省磁盘空间

backup database [MYDB] to disk = @filename with noformat, noinit, name = N'MYDB-完整 数据库 备份', skip, norewind, nounload, stats = 10, COMPRESSION

-- 删除15天前的备份文件

declare @olddate datetime

select @olddate=getdate()-15

-- 执行删除 (SQL 2008 ?备)

execute master.dbo.xp_delete_file 0, @path, @extension_name, @olddate, 1

go

当然,如果你觉得上述这些麻烦,可以联系我们,采用i2COOPY和i2CDP,在实时备份的基础上,进行连续数据保护,让SQL Server 备份变得简单,可靠。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: