SQLServer 快速备份的十种方法_MsSql

SQL Server备份是一项系统工程,十分耗费时间。由于运行期间数据库持续增长,所以相应的备份也要花掉更多时间。通常100G的数据库就被视为非常大的数据库了,如今100G已经是非常普遍的,现在许多数据库已经达到TB级别了。在本文中我们将分十种方法来讨论如何进行SQL Server的快速备份。
  1、硬盘来备份 磁带来存档
  备份到硬盘比备份到磁带要快得多,大多数经验丰富的DBA都偏向于此法。除追求高速I/O率之外,你手边还需要有最新的备份以便做数据恢复。当做完硬盘备份后,你需要把数据存档到磁带上以便长期保存。
  2、利用业余时间进行备份
  要做备份时最好利用业余时间,因为数据库服务器上的操作最少,对性能影响也就越小。但是请记住,有些时候业余时间运行批量工作可能会比平时运行的工作对系统造成的压力还要大。因此监测服务器状况十分重要,要谨慎制定完全备份的时间段。
  3、使用压缩软件
  SQL Server备份的最好方法就是硬盘备份然后磁带归档。这样的缺点是备份文件通常和数据文件大小相当。也是因为如此,如果你有一个100G的数据库,你就需要100G的硬盘空间来进行备份。不幸的是,SQL Server不带内嵌的压缩工具。你可以使用压缩产品,但这会耗掉更多时间。所幸市场上有三种压缩工具,Idera, Quest Software Inc.和Red Gate Software Ltd.的产品都可以帮你在百忙之中创建压缩备份。使用压缩软件会增加备份成本,但你的得到的好处远远大于这点成本。
  4、写入多文件
  另一种方法就是将备份写入多文件,这样你就可以使用多线程进行备份了。磁带厂商和上面提到的三个公司都提供这一服务。多任务能力可以进行更快的备份,它不会对备份文件进行压缩,但能大大减少所用时间。
  5、写入多物理磁盘驱动器
  进行完全备份对I/O设备的操作十分频繁。每一个数据库文件都要被读取然后写入另一个文件。使用多物理硬盘,你可以达到高I/O率并更快完成备份。除写入多文件方法之外,你还可以写入多物理硬盘来处理I/O性能瓶颈。
        6、运行文件或文件组备份
  SQL Server提供另外一种备份选项——文件或文件组备份。这个方法是由数据库初始设置决定的。如果当初设置数据库时你创建了多文件或多文件组,你就可以只备份部分数据库而不用备份整个数据库了。这种方法可能会增加工作复杂度和安全风险,所以在使用此法进行备份前一定要制定好计划。
  7、创建快照
  快照是SQL Server提供的另一种备份方法。顾名思义,就是在数据库运行的某个时间点创建快照。第三方软硬件可以提供这样的工具但成本很高。使用快照的优势是你能随时进行备份。
  8、本地硬盘备份Vs.网络备份
  进行网络备份会对网络I/O设备造成一定压力。像硬盘I/O设备一样,利用网络进行大量数据传输同样会产生一些问题。考虑网络备份时,创建备份所使用的时间根据不同情况也会大有不同。最好的办法是备份到连接本地服务器的硬盘。备份完成后再拷贝到磁带以便归档。
  9、使用连续数据保护(CDP)
  一个新的数据备份方法就是连续数据保护(CDP)。这个方法可以备份发生的事务,你可以在另一台服务器上重建.mdf和.ldf文件以便进行容错,报告等任何你需要的服务。这避免了在主服务器上做完全备份的情况。TimeSpring Software公司就提供此项服务。
  10、运行差异备份
  这一选项可你使你只在上次完全备份的基础上做部分备份。差异备份只包括上次完全备份之后发生变化的部分。完全备份每周运行一次就可以,差异备份运行就更频繁了。差异备份的速度比较快但运行完全备份时还是要花很长时间。根据变化部分的不同,有时差异备份可能会和完全备份的大小一样。
  总结
  正如你所见的,有这么多种办法进行快速备份。我始终认为你应该先备份到硬盘然后再拷贝到磁带以便归档。根据这一方法,引入第三方备份压缩软件是最简单的方法但成本颇高。根据你自身的情况,再决定使用哪种方法最适合你。

时间: 2024-09-19 15:42:20

SQLServer 快速备份的十种方法_MsSql的相关文章

SQLServer 快速备份的十种方法

SQL Server备份是一项系统工程,十分耗费时间.由于运行期间数据库持续增长,所以相应的备份也要花掉更多时间.通常100G的数据库就被视为非常大的数据库了,如今100G已经是非常普遍的,现在许多数据库已经达到TB级别了.在本文中我们将分十种方法来讨论如何进行SQL Server的快速备份. 1.硬盘来备份 磁带来存档 备份到硬盘比备份到磁带要快得多,大多数经验丰富的DBA都偏向于此法.除追求高速I/O率之外,你手边还需要有最新的备份以便做数据恢复.当做完硬盘备份后,你需要把数据存档到磁带上以

sqlserver进程死锁关闭的方法_MsSql

1.首先我们需要判断是哪个用户锁住了哪张表. --查询被锁表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' 查询后会返回一个包含spid和tableName列的表. 其中spid是进程名,tableName是表名. 2.了解到了究竟是哪个进程锁了哪张表后,需要通过进程找到锁

SQLServer数据库的各种管理方法_MsSql

本文适用范围:全面阐述SQLServer数据库的各种操作,分虚拟主机和服务器两种情况. 这篇文章比较长,请使用下面的提纲访问. 提纲 一.虚拟主机 1.安装在线企业管理器     2.注册远程企业管理器(SQL2000)     3.注册远程企业管理器(SQL2005/2008)    4.使用管理面板备份还原     二.服务器或VPS 1.新建数据库     2.附加数据库     3.备份数据库     4.还原数据库     虚拟主机 这种情况下,我们只有空间商提供的数据库IP地址.用户

sqlserver找回企业管理器的方法_MsSql

打开SQL Server企业管理器,突然弹出一个窗口,内容是: 错误提示: "Microsoft Management Console --------- MMC 不能打开文件 C:Program FilesMicrosoft SQL Server80ToolsBinnSQL Server Enterprise Manager.MSC. 这可能是由于文件不存在,不是一个 MMC 控制台,或者用后来版本的 MMC 创建.也可能是由于您没有访问此文件的足够权限. 郁闷,前一分钟还是好好的,怎么现在就

清除SQLServer日志的两种方法_MsSql

日志文件满而造成SQL数据库无法写入文件时,可用两种方法: 一种方法:清空日志. 1.打开查询分析器,输入命令 DUMP TRANSACTION 数据库名 WITH NO_LOG 2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了. 另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失.

查询SQLServer启动时间的三种方法_MsSql

上午在分析索引的使用情况,想看一下数据库什么时候启动的,确保统计的数据没有问题,可以使用下面三种方法查询: --2008及之后版本才有 SELECT sqlserver_start_time FROM sys.dm_os_sys_info select crdate from master..sysdatabaseswherename='tempdb' SELECT login_time FROMsysprocesses WHEREspid= 1 以上是小编为您精心准备的的内容,在的博客.问答.

Windows7下快速备份输入法的方法

我们在使用win 7系统中,有些朋友想备份输入法,可是不懂怎么备份,今天三聯網就要为大家介绍下载win7系统中如何备份输入法!希望对大家有所帮助. 1.在Windows 7操作系统桌面上,右击"计算机"图标,在弹出的快捷菜单中选择"打开"选领.执行相应操作后,即可打开"计算机"窗口.在"计算机"窗口的菜单栏中单击"工具"菜单,在弹出的菜单列表中单击"文件夹选项"命令. 2.执行操作后,即

教你几种在SQLServer中删除重复数据方法_MsSql

方法一 复制代码 代码如下: declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount

通过SQLSERVER重启SQLSERVER服务和计算机的方法_MsSql

昨天和朋友在网上谈到SQL语句的应用,我朋友的远程服务器出现了无法连接的现象,问题的原因是远程服务器到达了最大连接数,为了实现远程重新启动,从而想到了用SQL语句命令实现这个功能,但是具体的命令格式给忘记了,找了点资料,把方法写在下面, 希望可以给大家一些帮助吧,呵呵 首先在本地计算机--创建重启脚本 复制代码 代码如下: declare @o int,@f int,@t int,@ret int exec sp_oacreate 'scripting.filesystemobject',@o