我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

数据库数据备份(sql数据库如何备份)_1876人推荐

1、在做计划之前,需要先启用SQLServer代理,并将启动模式设为自动。2、接下来,依次点击“SQLServerManagementStudio”--“管理”--“维护计划”--“维护计划向导”--“维护计划向导”3、在这里由于这里有三项计划,并且每项计划周期不同,所以选择“每项任务单独计划”。4、接着根据需求选择维护任务,我这边选择的是“备份数据库(完整)”、“备份数据库(差异)”、“清楚维护”任务”这三项5、接着开始定义每一项任务,首先是定义“备份数据库(完整)”任务,我这边要对SharePoint进行备份,所以选择了特定数据库SharePoint的内容数据库WSS_Content,并且选定了备份集过期时间为晚于14天(这里的设置对清楚维护任务有用),最后选择你需要写入备份的文件夹,比如D:/Backup/Full;6、然后是定义“备份数据库(差异)”任务,同样的选择特定的WSS_Content数据库,选定过期时间为14天,选定需要写入备份的文件夹,比如D:/Backup/Diff;7、最后,定义“清楚维护”任务,在删除以下类型的文件中选择“备份文件”,在文件位置处选择搜索文件夹D:/Backup,文件扩展名bak,勾选包括一级子文件夹,在文件保留时间中选择2周,更改计划“在每天的22:00:00执行”。8、然后一直点击“下一步”,直到完成维护计划向导,但是到这里维护计划并没有结束,前两项任务并没有做计划,需要单独为它们做计划。本文介绍如何备份sqlserver数据库材料/工具sqlserver2008方法1、选择要备份的数据库-->右击-->任务-->备份2、选择备份之后会出现如图所示窗口,数据源用来选择要备份的数据库,可以选择数据库的备份类型,以及备份后的数据库存放位置,最后点击确定之后就可以了。在开始菜单中点击“SQLServerManagementStudio”在弹出的界面点击连接,在数据库选项中选择需要备份的数据库文件,然后右击选择“任务”中的“备份”在备份数据库TOBHIS,数据库选择“tobhis”,备份类型选择“完整”然后点击“添加”按钮在出现的界面中点击文件夹后面的“...”选择按钮。 在“定位数据库文件中”选择“backup”文件路径,以及文件类型,还有写入数据库名称,然后点击“确定”按钮在出来的界面中就可以看到备份文件的名称以及路径了。然后点击确定按钮。方法/步骤:在开始菜单中点击“SQLServerManagementStudio”在弹出的界面点击连接,在数据库选项中选择需要备份的数据库文件,然后右击选择“任务”中的“备份”在备份数据库TOBHIS,数据库选择“tobhis”,备份类型选择“完整”然后点击“添加”按钮在出现的界面中点击文件夹后面的“...”选择按钮。在“定位数据库文件中”选择“backup”文件路径,以及文件类型,还有写入数据库名称,然后点击“确定”按钮在出来的界面中就可以看到备份文件的名称以及路径了。然后点击确定按钮。然后数据库就会执行备份程序,备份成功后会出现如下面的提示框。 为了确定数据库备份是否成功,我们可以找到刚才的备份路径来查看有没有备份好的数据。在要备份的数据库上鼠标右键单击,选择任务-》备份单击添加按钮,选择备份路径,和备份文件名后单击确定即可。 1、SQL数据库恢复模型----------------------------------------------------------------------1)完全恢复模型-----------------(1)备份时要备份数据库的数据文件和日志文件(2)还原时使用数据库的备份的数据文件副本和全部日志信息来恢复数据库。(3)能还原全部数据,并可以将数据库恢复到任意指定的时刻。(4)为保证实现即时点恢复,对数据库的所有*作都将完整地记入日志,这样,日志占用空间较大,对性能也有所影响。------------------(2)大容量日志记录恢复模型------------------(1)备份时要备份数据库的数据文件和日志文件(2)还原时使用数据库的备份的数据文件副本和全部日志信息来恢复数据库。(3)日志中不记录*作细节(如selectinto、createindex等),而只记录*作的最终结果,因此占用日志空间小。 (4)只支持将数据库还原到事务日志备份的时刻,而不支持即时点恢复,因此可能产生数据丢失。-------------------(3)简单恢复模型-------------------(1)备份时只备份数据文件,还原时也用备份的数据文件恢复数据库。(2)只能将数据恢复到数据文件备份的时刻,可能产生最多的数据丢失。(3)不适于生产系统和大规模*作环境下选用。-----------------------------------------alterdatabased1setrecoverysimple--设置数据库恢复模型alterdatabased1setrecoverybulk_loggedalterdatabased1setrecoveryfull。其他数据库有点备份/回复功能,sqlserver都有。 所以多数时,诟病主要来自它基于windows产生的性能和安全性的不足。 分为热备份和准予备份冷备的优缺点:1).是非常快速的备份方法(只需拷贝文件)2).容易归档(简单拷贝即可)3).容易恢复到某个时间点上(只需将文件再拷贝回去)4).能与归档方法相结合,作数据库“最新状态”的恢复。5).低度维护,高度安全。冷备份不足:1).单独使用时,只能提供到“某一时间点上”的恢复。2).在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。 3).若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。4).不能按表或按用户恢复。热备的优缺点1).可在表空间或数据文件级备份,备份时间短。2).备份时数据库仍可使用。3).可达到秒级恢复(恢复到某一时间点上)。 4).可对几乎所有数据库实体作恢复。5).恢复是快速的,在大多数情况下在数据库仍工作时恢复。热备份的不足是:1).不能出错,否则后果严重。2).若热备份不成功,所得结果不可用于时间点的恢复。3).因难于维护,所以要特别仔细小心,不允许“以失败而告终”。 以上是我曾经在一个论坛上看到的。sqlserver2008提供了四种备份方式分别是:完整备份、差异备份、事务日志备份、文件和文件组备份。◆完整备份:备份整个数据库的所有内容,包括事务日志。该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据时,也只要还原一个备份文件。◆差异备份:差异备份是完整备份的补充,只备份上次完整备份后更改的数据。相对于完整备份分来说,差异备份的数据量比完整数据备份小,备份的速度也比完整备份要快。 因此,差异备份通常作为常用的备份方式。在还原数据时,要先还原前一次做的完整备份,然后还原最后一次所做的差异备份,这样才能让数据库里的数据恢复到与最后一次差异备份时的内容相同。◆事务日志备份:事务日志备份只备份事务日志里的内容。事务日志记录了上一次完整备份或事务日志备份后数据库的所有变动过程。事务日志记录的是某一段时间内的数据库变动情况,因此在进行事务日志备份之前,必须要进行完整备份。与差异备份类似,事务日志备份生成的文件较小、占用时间较短,但是在还原数据时,除了先要还原完整备份之外,还要依次还原每个事务日志备份,而不是只还原最后一个事务日志备份(这是与差异备份的区别)。 ◆文件和文件组备份。如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方式。使用文件和文件组备份方式可以只备份数据库中的某些文件,该备份方式在数据库文件非常庞大时十分有效,由于每次只备份一个或几个文件或文件组,可以分多次来备份数据库,避免大型数据库备份的时间过长。另外,由于文件和文件组备份只备份其中一个或多个数据文件,当数据库里的某个或某些文件损坏时,可能只还原损坏的文件或文件组备份。 数据库备份可以分为4个备份类型。l全备份:创建备份完成时数据库内存在的数据的副本。l差异备份:只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。l日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。 l文件组备份:可以备份和还原数据库中的个别文件。可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。不同的备份类型适用的范围也不同。全备份,可以只用一步操作完成数据的全部备份,但执行时间比较长。差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。文件备份必须与事务日志备份一起使用,所以文件备份只适用于完全恢复模型和大容量日志记录恢复模型。 每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方式的配合来完成数据库的备份。经常使用备份方式组合有以下几种:l全备份+差异备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行差异备份。l全备份+日志备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行日志备份。l文件组备份+日志备份:备份周期取决于数据库的大小和能力,每周期分别进行一部分数据文件备份,每天进行日志备份。备份组件选择“数据库”将备份整个数据库。 选择“文件和文件组”将只备份部分数据库。如果选择此选项,请提供文件或文件组名称。如果在“数据库”框中选择了多个数据库,只能对“备份组件”指定“数据库”。若要执行文件或文件组备份,请为每个数据库创建一个任务。 数据库备份介绍1、备份位置在SQLServer上,有多种备份位置可以选择,如本地磁盘,网络磁盘,远程地址,磁带等。各种备份位置均有自己的优点和缺点。2、逻辑备份设备在SQLServer上,可以通过创建逻辑备份设备来完成备份。使用逻辑备份设备的好处是,当变更备份地址时,不需要更改备份脚本,只需要更改逻辑备份设备的定义即可。创建逻辑备份设备的脚本如下:SQLcodeEXECsp_adddumpdevice@devtype=’disk’,@logicalname=’MYBackup’,@physicalname=’D:\backup\mydb.bak’删除备份设备的脚本:SQLcodeSp_dropdevice@logicalname=’MYBackup’上述脚本只是删除逻辑备份设备的定义,下述脚本将同时删除备份文件:SQLcodeSp_dropdevice@logicalname=’MYBackup’,@devfile=’DELFILE’使用逻辑备份设备的方法如下:SQLcodeBackupdatabasemydbtoMYBackup当然,还可在逻辑备份设备上指定过期时间等备份属性,如:SQLcodeBackupdatabasemydbtoMYBackupWITHEXPIREDATE=’13/01/2010’或:SQLcodeBACKUPDATABASEmydbtoMYBackupWITHRETAINDAYS=73、备份集与存储集每一份备份包含于一个备份集,而一个备份集包含于一个存储集。通过系统GUI进行备份时,SQLServer会自动指定备份集和存储集,目的则是为了简化管理。 用T-SQL显示指定则用如下语法:SQLcodeBACKUPDATABASEmydbtoMYBackupWITHRETAINDAYS=7,NAME=’FULL’,MEDIANAME=’ALLBackups’NAMEs是指备份集名称,MEDIANAME是指存储集名称。4、全备份不管恢复模式是哪一个,所有的备份都必须要有一个全备份,特别是日志备份和差异备份,如果没有全备份的话,将无法进行恢复。简单的全备份脚本如下所示,也可以通过维护计划来指定全备份:SQLcodeBACKUPDATABASEmydbtoDISK=’D:\Backup\mydb.bak’但需要注意的是,上述命令是将数据库备份附加到当前的存在的文件上,如果不存在则创建它,并不会覆盖原有文件。要覆盖同名的备份文件,需要指定INIT参数。SQLcodeBACKUPDATABASEmydbtoDISK=’D:\Backup\mydb.bak’WITHINIT5、日志备份在完全恢复模式或者大容量日志恢复模式下,日志备份不仅仅是恢复的需要,同时也是手工管理事务日志文件的一种方式。 如果从不进行备份的话,在完全恢复模式或者大容量恢复模式下,事务日志将会持续增长,直至消耗完所在磁盘。日志备份的脚本如下:SQLcodeBACKUPLOGmydb_logTODISK=’D:\backup\mydb.trn’需要养成使用.trn为日志备份的扩展名的习惯。每个在数据库上的动作都会被安排一个LogSequenceNumber(LSN)。如果需要还原到指定的时间点,需要有持续的LSN记录。也就是说,在完全恢复模式或者大容量日志模式下,一个不被打断的事务日志备份链是恢复数据库的基本要求。 6、差异备份使用日志备份来恢复时,无疑是一个很慢的过程,特别是上一个全备份的历史比较悠久时。使用差异备份,便能缩短恢复时间。事实上,差异备份只是BACKUPDATABASE的一个选项,如下:SQLcodeBACKUPDATABASEmydbTODISK=’D:\backup\mydb.dif’WITHDIFFERENTIAL,INIT进行数据库恢复时,先恢复数据库全备份,再恢复数据库差异备份,最后才恢复日志备份。差异备份是与上一次全备份紧密相连的,不管期间有多少次日志备份和差异备份,差异备份还是会从上一次全备开始备份。因此,经常会遇到这样的一种情况,在生产库上需要临时使用数据库时,便用BACKUPDATABASE…TODISK=’..’进行了一个备份,下一次的差异备份便会以这回的还原数据库 全备为准,如果过后把这个临时全备删除掉后,后面的差异备份就没用了。 差异备份并不意味着磁盘空间肯定会少,这取决于实际情况。当期间大量操作发生时,差异备份还是会变得很大。7、错误检测在备份过程中,备份进程会同时验证数据,或者校验不完整页(tornpage),或者验证校验和(checksum)。要使用该功能,需要激活该选项。不完整页检测(Torn-pagedection)仅仅检查每一个页看是否已经写完成。如果发现一个页只有部分被写入,那么就将其标记为torn。 校验和验证(checksumvalidation)是一种新的页验证机制。它会为每个页添加一个值来表明该页实际的大小。虽然看起来是个代价很高影响性能的操作,但事实上,它的效率非常高,与torn-page差不多。备份进程在备份数据库时,会通过比较在数据库里的和随着备份页写入硬盘时这两个之间的值来进行验证。但是,这个验证并不是自动完成的,需要显示指定,在GUI页面上是个选项。如果通过T-SQL来备份的话,语句如下:SQLcodeBACKUPDATABASEmydbTODISK=’D:\data\mydb.bak’WITHCHECKSUM如果备份过程中,发现了错误,SQLServer会错误信息写入MSDB上的SUSPECT_PAGE表里面。 同时,在默认情况下,备份行为会停止的(STOP_ON_ERROR),以便管理员排查错误。但备份过程中的校验和验证还有另外一个选项(CONTINUE_ON_ERROR),也就是说,如果发现错误,备份过程并不会中断,而是将错误页信息记录在MSDB..SUSPECT_PAGE上而已。需要注意的是,SUSPECT_PAGE表是有行限制的,最多只能达到1000行,如果达到了的话,备份同样会失败。激活校验和验证的话,很明显会影响备份的性能。但还是很有必要的。8、安全备份完全备份和日志备份语句还支持使用密码属性,如:SQLcodeBACKUPDATABASEmydbTODISK=’D:\mydb.bak’WITHPASSWORD=’mydb’所指定的密码是很容易破解的。 因此,如果确实需要对某些备份数据进行加密的话,可以将备份存放于加密的文件系统或者其它安全的存储设备上。同时,SQLServer还提供了对真实列进行加密的功能。该加密功能是工业标准。9、条带备份有些情况下,单独一个硬盘无法存储一个完整的数据库备份时,可以将数据库备份分成多个部分存储在不同的磁盘上,这种备份方式成为条带备份。使用条带备份的优点很明确,就是能很好的利用空间,但如果某部分备份丢失或者损坏,那整个备份将无效。其语句如下:SQLcodeBACKUPDATABASEmydbTODISK=’D:\mydb.bak’,DISK=’E:\mydb.bak’WITHINIT,CHECKSUM,CONTINUE_ON_ERROR上述D盘和E盘上的备份是不可分割的。 10、镜像备份与条带备份在多个磁盘上保留同一份备份不同的是,镜像备份是在不同磁盘上保留多份备份。其语句如下:SQLcodeBACKUPDATABASEmydbTODISK=’D:\mydb.bak’MIRRORTODISK=’E:\mydb.bak’WITHINIT,CHECKSUM,CONTINUE_ON_ERROR在实际情况下,对日志备份采取镜像备份方式会比较合适。11、COPY-ONLY备份在差异备份里曾提到过,差异备份是建立在上一个全备份的基础上的。因此如果在一个事先安排好的备份计划里,如果在全备份和差异备份之间再进行了一次全备份后,其差异备份会被打断,如果把临时全备份删除掉后,就产生了数据丢失。在SQLSERVER2005以后,SQLSERVER提供了一个选项copy-only.使用copy-only选项进行的全备份便不会打算原先的备份计划,语句如下:SQLcodeBACKUPDATABASEmydbTODISK=’D:\mydb.bak’WITHINIT,CHECKSUM,COPY_ONLY三、文件和文件组备份在SQLSERVER7.0以后,SQLServer提供了filegroup的概念。 文件组不仅仅提供了一个逻辑的存储地址,还允许将不同的表和索引放在不同的文件组上来提高性能和减少备份时间。在数据存储概述上,提到了数据库有三类数据文件,一般来说,数据库至少需要两个(.mdf和.ldf)或者更多的文件。SQLServer不仅允许有多个文件存在(.ldf),还允许多个文件组存在。一个文件组可以有多个文件,每个文件需要仔细规划好初始大小及增量。1、默认文件组在创建对象时,如果未明确指定文件组,那么该对象将会存放在默认的文件组上。在默认情况下,默认的文件组是primary,但由于primary文件组不仅可以包含用户数据,同时还存储着数据库结构等技术信息,因此一般建议添加额外的一个文件组,并将其指定为默认文件组。 SQLServer只能有一个默认的文件组。修改默认文件组的语句如下:SQLcodeALTERDATABASEmydbMODIFYFILEGROUPmydbDEFAULT;2、为对象指定文件组当创建表或者索引时,不管是用户还是系统都需要将表或索引放在某个文件组上。如果在创建表或索引时指定文件组,那么表或索引将会存储在指定的文件组上,而不是默认的文件组。其指定语句如下:SQLcodeCREATETABLEtest([id]int,[notes]text)onmydbdata也可以通过GUI创建表的页面来指定文件组。3、将对象迁移至指定文件组如果需要变更对象的存储位置,最简单的方式则是通过GUI属性页面来进行修改通过该方法,可以直观的看到对象的迁移过程。同时也可以通过T-SQL来修改,例如:SQLcodeALTERTABLEtestdropconstraintPK_testWITH(MOVETODATA)4、备份数据文件备份数据文件同样可以通过BACKUPDATABASE语句来实现。 如下:SQLcodeBACKUPDATABASEmydbFILE=’D:\Data\mydb.ndf’TODISK=’E:\Backup\mydbdata.bak’上述语句相当于数据文件级别的全备份,与数据库级别的备份类似,文件级别上的备份也有差异备份,当然前提是要有相对应的文件全备份。差异备份的语句如下:SQLcodeBACKUPDATABASEmydbFILE=’D:\Data\mydb.ndf’WITHDIFFERENTIALTODISK=’E:\Backup\mydbdata_dif.bak’5、备份文件组与单独备份文件类似,也可以对文件组进行类似的备份操作。备份文件组的方式也有两种,一种是通过GUI界面指定,一种则是通过T-SQL。T-SQL的语句如下:SQLcodeBACKUPDATABASEmydbFILEGROUP=’PRIMARY’TODISK=’E:\Backup\mydbpri.bak’6、不完全备份(partialbackup)在文件组备份上,不完全备份其实相当于完全备份,可以通过指定关键字READ_WRITE_FILEGROUPS来实现不完全备份。语句如下:SQLcodeBACKUPDATABASEmydbREAD_WRITE_FILEGROUPSTODISK=’D:\mydb.bak’那不完全备份到底是什么意思呢?什么时候需要不完全备份?如果对一个文件组设置了只读,而这只读的文件组又需要进行一次备份,这时,可以不用BACKUPDATABASE语句进行备份,只需要挑个时间停止实例,然后执行不完全备份。

在线留言