SQLServer数据库备份方案.docx
《SQLServer数据库备份方案.docx》由会员分享,可在线阅读,更多相关《SQLServer数据库备份方案.docx(18页珍藏版)》请在冰点文库上搜索。
![SQLServer数据库备份方案.docx](https://file1.bingdoc.com/fileroot1/2023-6/20/76fb7d2c-e12f-4b80-824e-4e1deade7b9a/76fb7d2c-e12f-4b80-824e-4e1deade7b9a1.gif)
SQLServer数据库备份方案
SQLServer2000数据库备份方案
sqlserver数据库备份方案
2020-08-0513:
15
SQLServer数据库备份方案
为了保证SQLServer数据的平安,数据库治理员应按期备份数据库,在不同情形下应采纳不同备份数据库备份策略,一方面维持数据的平安性,另一方面也可维持SQLServer能顺畅运行。
尽最大的尽力减少由于数据的损坏对客户造成的损失。
概念
1)备份工作计划
运算机软硬件的稳固性还未达到超级稳固的状态,运算机中的数据仍有损失或损坏的情形发生。
存在于运算机内的数据不平安,即便采纳容错设备,也无法保证数据库100%平安。
运算机硬件的费用可能很高,但运算机数据更宝贵,做好数据备份,可保证在各类意外发生情形时,仍能维持有数据库的完整性。
治理员必需花时刻来备份数据库,但SQLSERVER也提供很多自动化功能。
2)备份方式
数据库——完全
确实是备份整个数据库的内容。
假设将整个数据库的内容都备份下来,需很多的存储空间来寄存备份数据,但其益处是在还原数据库时,也只要将整个数据库从一份数据库备份还原到SQLSERVER中就能够够了。
它是其他备份的基础,在做其他备份之前,必需得做此种方式的备份。
数据库——不同(Differential)
只备份从上一次执行“完全”数据库备份后有改动的数据,因此所需要的备份时刻和备份空间都比“完全”方式少,因此此方式最适合作为常常性的备份方式。
事务日记(TransactionLog)
只备份事务记录文件的内容,由于事务日记文件只会记录咱们在前一次数据库备份或事务日记记录备份以后,对数据库所做的变更进程,也确实是只记录某一段时刻的数据库变更情形,因此在做事务记录备份之前,必需做一次“完全”的数据库备份
文件和文件组:
若是数据库的内容分散存储于多个文件或文件组,而且数据库已超级大,大到进行一次完整的数据库备份会有时刻和存储空间上的问题。
这时就能够够利用此方式来备份数据库的部份文件或文件组。
由于每次只备份部份的文件或文件组,因此需做数次不同的备份才能完成整个数据库的备份。
才用此方式备份也有个益处,确实是当损坏的数据只是数据库中的某个文件或文件组时,也只要还原坏的文件或文件组备份就能够够了。
3)备份方案制订原那么
计划数据库的备份策略,需要考虑备份的各项变量,必需同时考虑到还原作业的进行。
在做备份时,可考虑以下几点。
(1)有多少时刻和在那些时段可进行备份
(2)数据库变更的频率如何
(3)数据库大小
(4)当数据库出问题时,用户情愿等待多久让数据库还原完毕
(5)应采纳何种备份方式,做如何的搭配
(6)要利用哪一种存储介质
4)备份方案
(1)完全数据库备份配合事务日记备份
关于数据库数据比较大,但天天的变更的内容小,可考虑采纳此方式。
可按期做一次完整的数据库备份,例如:
每周或每一个月做一次“完全”数据库备份。
然后再以较段短的周期,如天天或每两天做一此事务日记备份。
如此平常备份工作负担比较轻,发生之外时,可将数据还原到最近期的状态。
(2)完全数据库备份配合不同式备份
此方式是将前一种方式中的事务日记备份方式改成不同式备份。
其优势是在做还原时,只需在做完最近一次数据库备份的还原后,再用前一天的不同备份来还原就能够够了,不像利用事务记录备份时,需一天一天还原。
缺点是在比较后的日子里,每次做不同备份所需的时刻和空间会增加。
(3)三种备份方式的综合利用
由于事务记录备份和不同备份各有其优缺点,因此咱们能够将两种方式结合起来利用。
关于数据信息超级重要,每一、2小时备份一次,可能的损失只是一、2个小时的数据。
(4)当数据库过大,有不易备份的问题时,能够采纳文件或文件组备份方式,可考虑将数据库分开存于不同的文件和文件组中,然后以文件和文件组的方式将整个数据库分数次备份。
另外,若是数据库中只有部份表常常变更,另一部份很少变更,也可考虑将这两部份存于不同的文件和文件组中,然后用不同的备份频率来备份其内容。
采纳此方式备份数据的缺点是:
必需数次操作才能备份完数据。
(5)利用备用效劳器
采纳此方式是再预备一台效劳器,先在原效劳器上做完全的备份,再把此备份放到备份效劳器上做还原,使两边的数据同步,以后能够按期对原数据库做事务日记备份,把事务日记放到备份效劳器上还原。
当原效劳器显现问题既可利用备份效劳器接上网络提供效劳。
注意:
系统数据库的备份与还原是很多用户在概念数据库备份方案中容易忽略的,系统数据库中尽管不保留业务数据,但它保留了很多SQLServer的设置,若是不备份系统数据库,那么在效劳器发生故障致使系统损坏时,从头配置所有的SQLServer设置将是一个噩梦DEMO
方案一数据库备份(经常使用方案)
在SQLServer备份窗口,能够通过调度设置,将当前进行的备份处置设置为按时自动处置的作用。
具体的步骤如下:
1.展开一个效劳器组。
2.展开一个效劳器(SQLServer实例)。
3.展开【数据库】,右单击要备份的数据库,在弹出的菜单当选择【所有任务】—〉【备份数据库】命令。
4.在随后打开的SQLServer备份窗口中,设置备份的相关选项。
参见前面的备份方案
单击【常规】选项卡,在【调度】项中,选中【调度】复选框,然后单击【调度】复选框后的【…】按钮。
在随后显现的【编辑调度】对话框中,设置时刻调度安排。
5.设置完成后,单击【确信】按钮,SQLServer将执行备份操作,同时在【SQLServer代理】—〉【作业】中自动成立对应的作业。
6.在【SQLServer代理】—〉【作业】窗口中,能够像处置一般作业一样修改或删除数据库备份窗口中概念的备份打算。
演示
方案二数据转换法(DTS)
具体的方案确实是:
1.主效劳器和备份效劳器装载完全一样的操作系统和数据库软件,和相应编制的治理软件;
2.事前选定需要按期更新的表、视图、存储进程等等,必要时可选择全数数据库更新;
3.利用SQLServer提供的数据转换效劳导入/导出向导(以SQLServer2000为例),利用复制SQLServer对象任务,将MicrosoftSQLServer对象从SQLServer的一个实例复制到另一个SQLServer中;
4.编辑反复显现的作业调度,确信发生的频率和具体时刻,一样情形下,由于数据量较大,不提倡每日发生多次,尽可能安排在网络空余时刻发生。
那个方案优势是:
1.本钱低、靠得住性高,操作简单,较易保护;
2.系统转换时刻短,备份系统替换主效劳器只需几分钟。
即便显现意外,备份系统专门快就会恢复正常,只损失少量数据,从头输入即可;
3.本地和异地备份都是利用晚上网络空闲时刻进行的,没有增加日常网络流量,可不能增加网络负担。
注意选择传输对象,相同版本的SQLServer能够彼此,或由低版本向高版本SQLServer备份,如:
SQLServer的实例备份到SQLServer2000的实例。
SQLServer2000的实例备份到另一个SQLServer2000的实例。
备份的操作步骤:
1.打开企业治理器,选择SQLServer效劳器的数据库,单击鼠标右键,选择“所有任务”,并点选“导入数据”或“导出数据”。
若是是在主效劳器上进行操作,选导出数据;在备份效劳器上进行操作,那么选导入数据。
2.第一步操作后,调出“数据转换效劳导入/导出向导”界面,单击“下一步”,进入“DTS导入/导出向导”的选择数据源界面,选择“目的”,选择“制定表复制或查询”,选择要复制的对象。
弱
做选择时,第一依照具体的客户端选择数据源,若是是OLEDB客户端,选择“用于SQLServer的Microsoft提供的OLEDB程序”。
然后选择提供数据源的效劳器,接下来选择进入数据库的方式,可选择“利用Windows身份验证”或“利用SQLServer身份验证”。
若是选“利用SQLServer身份验证”,须填写SQLServer认可并对数据有修改权的用户,一样可选“SA”及其密码。
最后选择要复制的数据库。
“制定表复制和查询”中,选择“在SQLServer数据库之间复制对象和数据”,然后单击下一步。
选择具体复制对象和相应的选项等等.。
4.通过保留调度和复制包,定制进行复制的时刻和频率。
5.全数设置完成后,提示会列出源、目的、采纳的方式、数据库等选项,由你确认完成。
6.若是设置终止后要进行定制时刻修改,在企业治理器中,通过效劳器、数据库、治理、SQLserver代理、作业,然后选择具体的作业,调出界面进行修改。
至此,你就能够够在自己的中小企业环境中,轻松实现多台数据库效劳器间的按时自动数据备份了。
演示
方案三数据库保护打算+Xcopy命令(推荐利用)
1.展开一个效劳器组
2.展开一个效劳器实例(SQLServer实例)。
3.展开【治理】,右击【数据库保护打算】,在弹出的快捷菜单当选择【新建保护打算】命令。
4.在随后显现的【数据库保护打算—(Local)】对话框中,单击【下一步】按钮跳过欢迎页,在接下来的【选择数据库】步骤中,概念要备份的数据库。
5.单击【下一步】按钮,跳过与数据库备份无关的步骤,在【指定数据库备份打算】步骤中,选择【作为保护打算的一部份来备份数据库】复选框;通过单击【磁带】或【磁盘】单项选择按钮来选择备份设备;单击【调度】选项右边的【更改】按钮,能够在随后显现的【编辑反复显现的作业调度】对话框中设置保护打算的时刻安排。
6.单击【下一步】按钮,若是在步骤(5)中,备份设备选择的是【磁盘】设备,那么会进入【指定备份磁盘目录】步骤,依如实际情形,设置此步骤中的内容。
7.单击【下一步】按钮,进入【指定事务日记备份打算】步骤,若是需要进行事务日记备份,那么选择【作为保护打算的一部份来备份事务日记】复选框。
备份事务日记的其他设置步骤参考(5)~(6)。
8.依照需要设置其他步骤,最后进入【正在完成数据库保护打算向导】步骤,设置好【打算名】,单击【完成】按钮完成数据库保护打算的概念。
9.完成步骤
(1)~(8)后,单击【数据库保护打算】,在企业治理器操纵台右边的详细信息窗口中就能够够看到概念好的数据库保护打算,同时,展开【SQLServer代理】—〉【作业】,能够【作业】右边的详细窗口中,能够看到保护打算自动成立的备份前途作业。
10.通过有机保护打算,选择【属性】命令,能够修改已经概念的保护打算。
11.通过右击保护打算,选择【删除】命令,能够删除已经概念的保护打算,同时【SQLServer代理】—〉【作业】中的相关作业也会自动删除。
新建一个批文件具体脚本如下:
@echooff
title正在传输数据库备份文件到远程备份效劳器上!
echo提示:
开始验证效劳器上是不是存在备份文件!
echo请稍候!
ifexistF:
\DBback\*.bak(gotoProcess)elsegotoUnFound
:
Process
echo提示:
在效劳器上找到了备份文件!
echo-------------------------------------------------------------------------------
echo提示:
开始删除远程备份效劳器上的原始文件!
rem备注:
以下IP地址为远程备份效劳器的IP地址!
del\\/q/s/f
del\\/q/s/f
iferrorlevel0gotosuccess
:
success
echo提示:
成功删除原始文件!
echo-------------------------------------------------------------------------------
echo提示:
开始复制数据库备份文件到远程备份效劳器\\!
echo请稍候!
rem备注:
请具体更改\\为效劳器备份文件寄存的位置。
\\为备份效劳器上寄存的位置!
xcopy\\\\/y/f
rem备注:
当Xcopy命令终止后返回的Errorlevel为4说明磁盘控件不足。
当Xcopy命令返回0时说明成功完成操作!
iferrorlevel4gotolowmemory
iferrorlevel0gotoshowmessage
:
lowmemory
echo警告:
请查看磁盘空间是不是不足!
:
UnFound
echo警告:
在效劳器上找不到备份文件,批任务将要终止。
效劳器备份工作似乎没有正常进行,请确认效劳器是不是正常生成备份文件!
gotoexit
:
showmessage
echo提示:
批任务完成!
echo提示:
成功复制数据库备份到远程效劳器\\!
echo按任意键终止退出!
echo--------------------------------------------------------------------------------
:
exit
pause
echo成功复制PersonnelM数据库备份到远程效劳器\\上!
Pause
利用Windows任务打算来调度批任务
1.单击“开始”—〉“程序”—〉“附件”—〉“系统工具”—〉“任务打算”
2.双击“新建任务打算”,弹出“任务打算向导”单击“下一步”。
在选择任务窗体当选择“阅读”。
咱们选择要调度执行的文件。
3.在接下来弹出的窗体中为咱们的任务打算起个名称而且选择执行频率。
那个地址咱们选择“天天”
4.在密码确认窗体中输入本机的密码。
单击“下一步”选择“完成”。
至此任务打算设置完成。
(有需要的话能够单击选择“在单击完成时,打开此任务的高级属性”复选框以便对此任务进行高级设置!
)
方案四同步备份效劳器(脚本)
--第一,创建一个演示用的数据库(主数据库)
CREATEDATABASEDb_test
ON
(NAME=Db_test_DATA,
FILENAME='c:
\')
LOGON
(NAME=Db_test_LOG,
FILENAME='c:
\')
GO
--对数据库进行备份
BACKUPDATABASEDb_testTODISK='c:
\'WITHFORMAT
GO
--把数据库还原成备用数据库(演示主数据库与那个备用数据库之间的同步)
RESTOREDATABASEDb_test_bakFROMDISK='c:
\'
WITHREPLACE,STANDBY='c:
\'
MOVE'Db_test_DATA'TO'c:
\'
MOVE'Db_test_LOG'TO'c:
\'
GO
--启动SQLAgent效劳
EXECmaster..xp_cmdshell'netstartsqlserveragent',no_output
GO
--创建主效劳器数据训与备用效劳器数据库之间同步的作业
DECLARE@jogiduniqueidentifier
EXECmsdb..sp_add_job
@job_id=@jogidOUTPUT,
@job_name=N'数据同步处置'
--创建同步处置步骤
EXECmsdb..sp_add_jobstep
@job_id=@jogid,
@step_name=N'数据同步',
@subsystem='TSQL',
@command=N''
--主数据库中进行日记备份
BACKUPLOGDb_testTODISK="c:
\"WITHFORMAT
--备用数据库中还原主数据库的日记备份(应用主数据库中的最新转变
--实际应该时主数据库备份与备用数据库的还原作业应该别离在主效劳器和备用效劳器上成立,而且备份文件应该放在主效劳器和备用都能访问的共享目录中
RESTORELOGDb_test_bakFROMDISK='c:
\'WITHSTANDBY='c:
\',
@retry_attempts=5,
@retry_interval=5
--创建调度(每分钟执行一次)
EXECmsdb..sp_add_jobschedule
@job_id=@jogid,
@name=N'时刻安排',
@freq_type=4,
@freq_interval=1,
@freq_subday_type=0x4,
@freq_subday_interval=1,
@freq_recurrence_factor=1
--添加目标效劳器
EXEC=@jogid,
@server_name=N'(local)'
GO
--通过上述处置,主数据库与备用数据库之间的同步关系已经设置完成
--下面开始测试是不是能实现同步
--在主数据库中创建一个测试用的表
CREATETABLEint)
GO
--等待1分钟30秒(由于同步的时刻距离设置为1分钟,因此要延时才能看到成效)
WAITFORDELAY'00:
01:
30'
GO
--查询一下备用数据库,看看同步是不是成功
SELECT*FROM测试成功
GO
--最后删除所有的测试
DROPDATABASEDb_test,Db_test_bak
EXECmsdb..sp_delete_job@job_name=N'数据同步处置'
GO
--1.若是主数据库损坏,无法备份出最新的日记,能够直接利用下面的语句使备用数据库可读写(丢失最近一第二天志还原后的所有数据)。
RESTORELOGDb_test_bakWITHRECOVERY
--2.若是主数据库能够备份出最新日记,那么能够利用下面的语句。
--先备份主数据库的最新的事务日记
BACKUPLOGDb_testTODISK=''c:
\''WITHFORMAT
--再在备用数据库中恢复最新的事务日记,而且使备用数据库可读写(升级为主数据库)
RESTORELOGDb_test_bakFROMDISK='c:
\'
方案五复制定阅
开始学习之前咱们先弄清楚以下几个概念:
复制(Replication)确实是将数据由某处复制到一个或多个目的地,由于对数据库分散式应用的需求日渐增加,SQLSever也提供了复制的功能。
SQLServer的复制功能大体上是利用“发布效劳器(Publisher)”和“定阅效劳器”(Subscriber)的结构,这整个结构中包括了数个不同的组件。
(1)发布效劳器(Publisher):
在复制中,发布效劳器确实是负责发布数据库内容给其他效劳器的SQLServer(一样的咱们把主效劳器看成发布效劳器,形象一点比喻发布效劳器就仿佛是一本书的作者)
(2)定阅效劳器(Subscriber):
定阅效劳器确实是指受发布效劳器所发布数据的SQLSERVER,通常发布效劳器只有一个,但定阅效劳器能够有多个。
(形象比喻定阅效劳就像是读者,购买相同图书的读者能够有很多。
)
(3)分发效劳器(Distributor):
除发布效劳器和定阅效劳器这两个大体外,另一个能够由SQLSERVER在整个复制结构中扮演的角色确实是分发效劳器。
分发效劳器是负责将发布效劳器所发布的数据库发布、传输到各定阅效劳器的效劳器。
在简单的复制结构中,发布效劳器和分发效劳器一般是利用同一个SQLSERVER。
设置为分发效劳器的SQLSERVER,会有个名为distribution的系统数据库寄存复制信息。
(4)发布项(Article):
发布效劳器所发布的数据称为发布项,发布项是进行复制时的复制单位,发布项能够是表或存储进程等数据库对象,也能够知识表中的某几列或某几项数据。
(5)发布(Publish):
一组特定的发布项组合就称为发布,也确实是SQLSERVER进行复制时所复制的数据合。
当定阅效劳器向发布效劳器定阅数据时,是以发布为单位,而不是以发布项为单位的。
即,定阅效劳器只能接收整个发布中的所有article。
而不能只选择其中几个发布项类定阅,每一个发布只有来自单一数据库的内容,但咱们能够为数据库设置多个发布。
(6)为适应不同的复制需求,SQLSERVER提供了发送(Push)和请求(Pull)两种不同的定阅方式。
区别如下:
(a)发送定阅(PushSubscription也称为强制定阅):
所谓的发送定阅确实是由发布效劳器主动传送发布给定阅效劳器,也确实是由发布效劳器操纵复制的操作,只要指定进行复制的时刻一到,不管定阅效劳器有无提出要求,发布效劳器都会将数据传送给定阅效劳器。
(b)请求定阅(PullSubscription):
请求定阅和发送定阅相反,是由定阅效劳器自行依照排定的日程向发布效劳器要求定阅发布,通常在定阅效劳器数量较多,或是不需要即时取的最新的数据内容时,可采纳此种定阅方式。
步骤:
下介绍实现复制的步骤。
(以快照复制为例)
预备工作:
1.发布效劳器,定阅效劳器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
--我的电脑
--操纵面板
--治理工具
--运算机治理
--用户和组
--右键用户
--新建用户
--成立一个隶属于administrator组的登岸windows的用户
2.在发布效劳器上,新建一个共享目录,做为发布的快照文件的寄存目录,操作:
我的电脑--D:
\新建一个目录,名为:
BakPUB
--右键那个新建的目录
--属性--共享
--选择"共享该文件夹"
--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
--确信
3.设置SQL代理(SQLSERVERAGENT)效劳的启动用户(发布/定阅效劳器均做此设置)
开始--程序--治理工具--效劳
--右键SQLSERVERAGENT
--属性--登岸--选择"此账户"
--输入或选择第一步中创建的windows登录用户名
--"密码"中输入该用户的密码
4.设置SQLServer身份验证模式,解决连接时的权限问题(发布/定阅效劳器均做此设置)
企业治理器
--右键SQL实例--属性
--平安性--身份验证
--选择"SQLServer和Windows"
--确信
企业治理器
--右键SQLServer组
--新建SQLServer注册...
--下一步--可用的效劳器中,输入你要注册的远程效劳器名--添加
--下一步--连接利用,选择第二个"SQLServer身份验证"
--下一步--输入用户名和密码
--下一步--选择SQLServer组,也能够创建一个新组
--下一步--完成
6.关于只能用IP,不能用运算机名的,为其注册效劳器别名
(在连接端配置,比如,在定阅效劳器上配置的话,效劳器名称中输入的是发布效劳器的IP)
开始--程序--MicrosoftSQLServer--客户端网络有效工具
--别名--添加
--网络库选择"tcp/ip"--效劳器别名输入SQL效劳器名
--连接参数--效劳器名称中输入SQL效劳器ip地址
--若是