SQL Server 整库备份
E:\>sqlcmd -S "localhost\SQLEXPRESS"
1> use master
2> go
已将数据库上下文更改为 'master'。
备份
1> backup database test to disk='e:\test.dat'
2> go
恢复
1> restore database test from disk='e:\test.dat'
2> go
已为数据库 'test',文件 'Test' (位于文件 1 上)处理了 232 页。
已为数据库 'test',文件 'Test_log' (位于文件 1 上)处理了 2 页。
RESTORE DATABASE 成功处理了 234 页,花费 0.184 秒(9.898 MB/秒)。
B. sqlserver怎么设置自动备份
1、对象资源管理——展开管理——右键点维护计划——打开维护计划向导。
2、维护计划向导的开始界面直接下一步即可,我之前设置不再提示,所以我没有第一个界面了,直接跳到第二个。
4、选择维护项目。
下一个界面是确认下,直接下一步就可以了,不上图了。
5、设置备份数据库,这里选择你要备份的数据库,点确定即可。
设置自动备份文件的保存地址和后缀名,设置完下一步就行
6、然后就是设置清除计划
后面都是下一步就可以的东西,不需要上图了,设置完成后运行他做个验证保证设置的正确性。
C. mssql数据库如何备份
一、通过
企业管理器
进行单个
数据库备份
。打开SQL
SERVER
企业管理器,展开SQL
SERVER组LOCAL下的数据库,
右键
点击你要
备份
的数据库,在弹出的
菜单
中选择所有
任务
下的备份数据库,弹出备份数据库对话框:
点击添加
按钮
,填写
备份文件
的
路径
和
文件名
,点击确定添加备份文件,点击备份对话框上的备份,开始进行备份。
二、通过企业管理器多数据定时库备份。打开SQL
SERVER
企业管理器,展开SQL
SERVER组下的管理
节点
,右键单击数据库维护计划,选择新建维护计划。在弹出的欢迎对话框中选择下一步,然后显示如下对话框:
选择你想要备份的数据库,下一步。在接下来的一步中,我们默认所有选项,下一步。在当前对话框中可以选择是否检查数据库的
完整性
,这里我们默认就可以进行下一步就行了。对话框入图所示:
选中作为维护计划的一部分来备份数据库,点击更改按钮修改备份数据库的时间,单击下一步
在这里,我们可以选择“使用此目录”为备份指定路径,选中“删除早于此时间的文件”可以指定备份文件的
保留时间
。
下面的几个
步骤
我们都选择默认设置,最后在完成对话框里为备份起一个名字,点击完成后,数据库会在你指定的时间进行备份。关于数据库维护计划的更多知识请查看其它
相关资料
。
三、备份
数据库文件
。打开SQL
SERVER
企业管理器,展开SQL
SERVER组LOCAL下的数据库,右键点击你要备份的数据库,选择属性。在弹出的对话框中选择
数据文件
,在这里显示了数据文件的路径,
打开SQL
SERVER
服务管理器,将SQL
SERVER
停止。然后打开
我的电脑
,找到数据文件路径,将其
拷贝
出来进行备份(注意同时备份.LDF文件)。
最后开启SQL
SERVER服务
四、回复数据库备份文件(适用于用企业管理器备份的数据库)。打开SQL
SERVER
企业管理器,展开SQL
SERVER组LOCAL下的数据库,右键点击你要还原的数据库,选择所有任务下的还原数据库,弹出如下对话框:
选择
从设备
,点击选择设备,为还原添加备份文件路径,然后进行确定还原。
五、还原数据库备份文件。在企业管理器中对数据库节点右键单击,选择所有任务下的附加数据库,弹出附加数据库对话框。
选择一个你之前拷贝的数据文件,然后点击确定即可附加成功
D. 教你如何用SQL备份和还原数据库
数据库的备份和恢复一、备份数据库1、打开SQL企业管理器,在控制台根目录中依次点开MicrosoftSQLServer2、SQLServer组--双击打开你的服务器--双击打开数据库目录3、选择你的数据库名称(如论坛数据库Forum)--然后点上面菜单中的工具--选择备份数据库4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份二、还原数据库
1、打开SQL企业管理器,在控制台根目录中依次点开MicrosoftSQLServer
2、SQLServer组--双击打开你的服务器--点图标栏的新建数据库图标,新建数据库的名字自行取
3、点击新建好的数据库名称--然后点上面菜单中的工具--选择恢复数据库
4、在弹出来的窗口中的还原选项中选择从设备--点选择设备--点添加--然后选择你的备份文件名--添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)--然后点击上方常规旁边的选项按钮
5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项
在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指弊旁定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:/ProgramFiles/MicrosoftSQLServer/MSSQL/Data,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是zw0001mdf,现在的数据库是zw0002,就改成zw0002mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:/sqldata/zw0002mdf或者d:/sqldata/zw0002ldf),否则恢复将报洞纤错
6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名租颤橡错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复三、设定每日自动备份数据库1、打开企业管理器,在控制台根目录中依次点开
E. 在做SQL备份时应该先开启什么服务
不用开启服务,要暂停下SQL,避免数据损坏。
F. MSsql每天自动备份数据库并每天自动清除log的脚本
1、每日自动备份
打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。
在指定备份计划时候,由于需要每日备份,因此要更改调度。点击“更改”编辑调度。发生频率选择每天;每日频率选择作业开始时间,最好选择数据库访问量小时进行,多为半夜时间,可根据流量图确定具体时间;持续时间通常不用做改动,开始日期为编辑日期,无结束日期。
编辑好上述维护计划后,还要注意下
sql
server代理服务是否启动了,因为每日调度维护计划是要启动这个服务才能执行的。如果该服务没有启动,需要手动启动一下,这是可以在其子项“作业”中看到刚刚添加过的数据库维护计划。
2、定期自动清理数据库日志文件
数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。手工清除单个数据库的还好说,但数据库多了,或者临时没有来得及清理,可能硬盘空间就会占满了,影响访问。因此设置自动清理数据库日志文件还是比较实用的。
手动清理方法:右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭;再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清除日志文件,最后记得重新选择“属性”,将故障还原模型设置为完全。
自动清理方法:同样是利用sql
server代理服务,执行自动作业。
打开企业管理器,进入“管理”-“sql
server代理服务”-“作业”,在右侧窗口点击右键,选择“新建作业”。“常规”选项卡中,填写作业名称,具体描述,注意所有者最好还是用sa或者默认的管理帐号。
转到“步骤”选项卡,新建作业步骤,填写步骤名称,类型为脚本,数据库为需要清理日志的数据库,在下边命令中填写以下命令:
DUMP
TRANSACTION
数据库名称
WITH
NO_LOG
DBCC
SHRINKFILE(数据库日志文件名,1)
上边的数据库名称填写需要维护的数据库名称,数据库日志文件名填写其对应的日志文件名,注意,不是资源管理器里看到的带后缀名的那个名字,而是企业管理器里,数据库属性里日志选项卡中日志的名字(通常也只是差一个后缀名……),确定后添加一个作业步骤。
如果需要维护多个数据库,用上述方法重复添加作业步骤,注意每个步骤成功或失败后的动作即可,最后选择一下开始的步骤。
在“调度”选项卡中,类似备份的维护计划,填写调度周期,即定期清理的周期,不再细述。如果需要,可以在最后的“通知”选项卡上设置作业完成后的通知项,需要设置操作员,以及设置相应的服务,这里也不具体说明了,通常不用……
G. 怎么才能建立数据库的自动备份机制.,越详细越好//谢谢
sql server数据库备份方案2008-08-05 13:15SQL Server 数据库备份方案
为了保证SQL Server 数据的安全,数据库管理员应定期备份数据库,在不同情况下应采用不同备份数据库备份策略,一方面维持数据的安全性,另一方面也可保持SQL Server 能顺畅运行。尽最大的努力减少由于数据的损坏对客户造成的损失。
概念
1) 备份工作规划
计算机软硬件的稳定性还未达到非常稳定的状态,计算机中的数据仍有损失或毁坏的情况发生。存在于计算机内的数据不安全,即使采用容错设备,也无法保证数据库 100%安全。 计算机硬件的费用可能很高,但计算机数据更珍贵,做好数据备份,可保证在各种意外发生情况时,仍能保持有数据库的完整性。 管理员必须花时间来备份数据库,但 SQL SERVER也提供不少自动化功能。
2)备份方式
数据库——完全
就是备份整个数据库的内容。若将整个数据库的内容都备份下来,需很多的存储空间来存放备份数据,但其好处是在还原数据库时,也只要将整个数据库从一份数据库备份还原到 SQL SERVER 中就可以了。它是其他备份的基础,在做其他备份之前,必须得做此种方式的备份。
数据库——差异 (Differential)
只备份从上一次执行“完全”数据库备份后有改动的数据,因此所需要的备份时间和备份空间都比“完全” 方式少,所以此方式最适合作为经常性的备份方式。
事务日志(Transaction Log)
只备份事务记录文件的内容,由于事务日志文件只会记录我们在前一次数据库备份或事务日志记录备份之后,对数据库所做的变动过程,也就是只记录某一段时间的数据库变动情况,因此在做事务记录备份之前,必须做一次“完全”的数据库备份
文件和文件组:
如果数据库的内容分散存储于多个文件或文件组,而且数据库已非常大,大到进行一次完整的数据库备份会有时间和存储空间上的问题。这时就可以使用此方式来备份数据库的部分文件或文件组。由于每次只备份部分的文件或文件组,因此需做数次不同的备份才能完成整个数据库的备份。才用此方式备份也有个好处,就是当毁坏的数据只是数据库中的某个文件或文件组时,也只要还原坏的文件或文件组备份就可以了。
3)备份方案制订原则
规划数据库的备份策略,需要考虑备份的各项变量,必须同时考虑到还原作业的进行。在做备份时,可考虑以下几点。
(1) 有多少时间以及在那些时段可进行备份
(2) 数据库变动的频率如何
(3) 数据库大小
(4) 当数据库出问题时,用户愿意等待多久让数据库还原完毕
(5) 应采用何种备份方式,做怎样的搭配
(6) 要使用哪种存储介质
4)备份方案
(1)完全数据库备份配合事务日志备份
对于数据库数据比较大,但每天的变动的内容小,可考虑采用此方式。可定期做一次完整的数据库备份,例如:每周或每月做一次“完全”数据库备份。然后再以较段短的周期,如每天或每两天做一此事务日志备份。这样平时备份工作负担比较轻,发生以外时,可将数据还原到最近期的状态。
(2)完全数据库备份配合差异式备份
此方式是将前一种方式中的事务日志备份方式改成差异式备份。其优点是在做还原时,只需在做完最近一次数据库备份的还原后,再用前一天的差异备份来还原就可以了,不像使用事务记录备份时,需一天一天还原。缺点是在比较后的日子里,每次做差异备份所需的时间和空间会增加。
(3)三种备份方式的综合使用
由于事务记录备份和差异备份各有其优缺点,因此我们可以将两种方法结合起来使用。对于数据信息非常重要,每1、2小时备份一次,可能的损失只是1、2个小时的数据。
(4)当数据库过大,有不易备份的问题时,可以采用文件或文件组备份方式,可考虑将数据库分开存于不同的文件和文件组中,然后以文件和文件组的方式将整个数据库分数次备份。此外,如果数据库中只有部分表经常变动,另一部分很少变动,也可考虑将这两部分存于不同的文件和文件组中,然后用不同的备份频率来备份其内容。 采用此方式备份数据的缺点是:必须数次操作才能备份完数据。
(5)使用备用服务器
采用此方式是再准备一台服务器,先在原服务器上做完全的备份,再把此备份放到备份服务器上做还原,使两边的数据同步,以后可以定期对原数据库做事务日志备份,把事务日志放到备份服务器上还原。当原服务器出现问题既可使用备份服务器接上网络提供服务。
注意:系统数据库的备份与还原是很多用户在定义数据库备份方案中容易忽略的,系统数据库中虽然不保存业务数据,但它保存了很多SQL Server的设置,如果不备份系统数据库,那么在服务器发生故障导致系统损坏时,重新配置所有的SQL Server设置将是一个噩梦DEMO
方案一 数据库备份(常用方案)
在SQL Server备份窗口,可以通过调度设置,将当前进行的备份处理设置为定时自动处理的作用。具体的步骤如下:
1. 展开一个服务器组。
2. 展开一个服务器( SQL Server实例)。
3. 展开【数据库】,右单击要备份的数据库,在弹出的菜单中选择【所有任务】—〉【备份数据库】命令。
4. 在随后打开的SQL Server备份窗口中,设置备份的相关选项。参见前面的备份方案
单击【常规】选项卡,在【调度】项中,选中【调度】复选框,然后单击【调度】复选框后的【…】按钮。在随后出现的【编辑调度】对话框中,设置时间调度安排。
5. 设置完成后,单击【确定】按钮,SQL Server将执行备份操作,同时在【SQL Server 代理】—〉【作业 】中自动建立对应的作业。
6. 在【SQL Server 代理】—〉【作业 】窗口中,可以像处理普通作业一样修改或删除数据库备份窗口中定义的备份计划。
演示
方案二 数据转换法(DTS)
具体的方案就是:
1.主服务器和备份服务器装载完全一样的操作系统和数据库软件,以及相应编制的管理软件;
2.事先选定需要定期更新的表、视图、存储过程等等,必要时可选择全部数据库更新;
3.使用SQL Server 提供的数据转换服务导入/ 导出向导(以SQL Server2000 为例) ,利用复制 SQL Server 对象任务,将 Microsoft SQL Server 对象从SQL Server 的一个实例复制到另一个SQL Server 中;
4.编辑反复出现的作业调度,确定发生的频率和具体时间,一般情况下,由于数据量较大,不提倡每日发生多次,尽量安排在网络空余时间发生。
这个方案优点是:
1.成本低、可靠性高,操作简单,较易维护;
2.系统转换时间短,备份系统替换主服务器只需几分钟。即使出现意外,备份系统很快就会恢复正常,只损失少量数据,重新输入即可;
3.本地和异地备份都是利用晚上网络空闲时间进行的,没有增加日常网络流量,不会增加网络负担。
注意选择传输对象,相同版本的SQL Server 可以相互,或者由低版本向高版本SQL Server 备份,如:
SQL Server 7.0 的实例备份到 SQLServer 2000 的实例。
SQL Server 2000 的实例备份到另一个 SQL Server 2000 的实例。
备份的操作步骤:
1.打开企业管理器,选择SQLServer 服务器的数据库,单击鼠标右键,选择“所有任务”,并点选“导入数据”或“导出数据”。 如果是在主服务器上进行操作,选导出数据;在备份服务器上进行操作,则选导入数据。
2.第一步操作后,调出“数据转换服务导入/ 导出向导”界面,单击“下一步”,进入“DTS 导入/ 导出向导”的选择数据源界面,选择“目的”,选择“制定表复制或查询”,选择要复制的对象。 弱
做选择时,首先根据具体的客户端选择数据源,如果是OLE DB客户端,选择“用于SQL Server的Microsoft提供的OLEDB 程序”。
然后选择提供数据源的服务器,接下来选择进入数据库的方式,可选择“使用Windows 身份验证”或“使用SQL Server 身份验证”。 如果选“使用SQL Server 身份验证”,须填写SQL Server 认可并对数据有修改权的用户,一般可选“SA”及其密码。最后选择要复制的数据库。
3.在“制定表复制和查询”中,选择“在SQL Server数据库之间复制对象和数据”,然后单击下一步。选择具体复制对象和相应的选项等等.。
4.通过保存调度和复制包,定制进行复制的时间和频率。
5.全部设置完成后,提示会列出源、目的、采用的方式、数据库等选项,由你确认完成。
6.如果设置结束后要进行定制时间修改,在企业管理器中,通过服务器、数据库、管理、SQL server 代理、作业,然后选择具体的作业,调出界面进行修改。
至此,你就可以在自己的中小企业环境中,轻松实现多台数据库服务器间的定时自动数据备份了。
演示
方案三 数据库维护计划+X命令(推荐使用)
1. 展开一个服务器组
2. 展开一个服务器实例(SQL Server实例)。
3. 展开【管理】,右击【数据库维护计划】,在弹出的快捷菜单中选择【新建维护计划】命令。
4. 在随后出现的【数据库维护计划 —(Local)】对话框中,单击【下一步】按钮跳过欢迎页,在接下来的【选择数据库】步骤中,定义要备份的数据库。
5. 单击【下一步】按钮,跳过与数据库备份无关的步骤,在【指定数据库备份计划】步骤中,选择【作为维护计划的一部分来备份数据库】复选框;通过单击【磁带】或者【磁盘】单选按钮来选择备份设备;单击【调度】选项右边的【更改】按钮,可以在随后出现的【编辑反复出现的作业调度】对话框中设置维护计划的时间安排。
6. 单击【下一步】按钮,如果在步骤(5)中,备份设备选择的是【磁盘】设备,则会进入【指定备份磁盘目录】步骤,根据实际情况,设置此步骤中的内容。
7. 单击【下一步】按钮,进入【指定事务日志备份计划】步骤,如果需要进行事务日志备份,则选择【作为维护计划的一部分来备份事务日志】复选框。备份事务日志的其他设置步骤参考(5)~(6)。
8. 根据需要设置其他步骤,最后进入【正在完成数据库维护计划向导】步骤,设置好【计划名】,单击【完成】按钮完成数据库维护计划的定义。
9. 完成步骤(1)~(8)后,单击【数据库维护计划】,在企业管理器控制台右边的详细信息窗口中就可以看到定义好的数据库维护计划,同时,展开【SQL Server代理】—〉【作业】,可以【作业】右边的详细窗口中,可以看到维护计划自动建立的备份出路作业。
10. 通过有机维护计划,选择【属性】命令,可以修改已经定义的维护计划。
11. 通过右击维护计划,选择【删除】命令,可以删除已经定义的维护计划,同时【SQL Server 代理】—〉【作业】中的相关作业也会自动删除。
新建一个批文件 Copy.bat具体脚本如下:
@echo off
title 正在传输数据库备份文件到远程备份服务器上!
echo 提示:开始验证服务器上是否存在备份文件!
echo 请稍候!
if exist F:\DBback\*.bak (goto Process ) else goto UnFound
:Process
echo 提示:在服务器上找到了备份文件!
echo -------------------------------------------------------------------------------
echo 提示:开始删除远程备份服务器上的原始文件!
rem 备注:下列IP地址为远程备份服务器的IP地址!
del \\192.168.244.24\DBback /q /s /f
del \\192.168.244.24\DBback\*.* /q /s /f
if errorlevel 0 goto success
:success
echo 提示:成功删除原始文件!
echo -------------------------------------------------------------------------------
echo 提示:开始复制数据库备份文件到远程备份服务器\\192.168.244.24\DBback!
echo 请稍候!
rem 备注:请具体更改\\192.168.244.1\DBback为服务器备份文件存放的位置。\\192.168.244.24\DBback为备份服务器上存放的位置!
x \\192.168.244.1\DBback \\192.168.244.24\DBback /y /f
rem 备注:当X命令结束后返回的Errorlevel为4说明磁盘控件不足。当X命令返回0时说明成功完成操作!
if errorlevel 4 goto lowmemory
if errorlevel 0 goto showmessage
:lowmemory
echo 警告:请查看磁盘空间是否不足!
:UnFound
echo 警告:在服务器上找不到备份文件,批任务将要结束。服务器备份工作似乎没有正常进行,请确认服务器是否正常生成备份文件!
goto exit
:showmessage
echo 提示:批任务完成!
echo 提示:成功复制数据库备份到远程服务器\\192.168.244.24\DBback!
echo 按任意键结束退出!
echo --------------------------------------------------------------------------------
:exit
pause
echo 成功复制PersonnelM数据库备份到远程服务器\\192.168.244.24\1上!
Pause
利用Windows 任务计划来调度批任务
1. 单击“开始”—〉“程序”—〉“附件”—〉“系统工具”—〉“任务计划”
2. 双击“新建任务计划”,弹出“任务计划向导”单击“下一步”。在选择任务窗体中选择“浏览”。我们选择要调度执行的Copy.bat文件。
3. 在接下来弹出的窗体中为我们的任务计划起个名称并且选择执行频率。这里我们选择“每天”
4. 在密码确认窗体中输入本机的密码。单击“下一步”选择“完成”。至此任务计划设置完成。(有需要的话可以单击选择“在单击完成时,打开此任务的高级属性”复选框以便对此任务进行高级设置!)
方案四 同步备份服务器(脚本)
/*该部分参考了邹建的脚本*/
/*--说明:
下面的代码演示了如何利用日志还原功能,将主数据库中的数据变化及时反馈到备用数据库中
备用数据库的数据可以随时用于查询,但不能被更新(备用数据库只读)。
--*/
--首先,创建一个演示用的数据库(主数据库)
CREATE DATABASE Db_test
ON
( NAME = Db_test_DATA,
FILENAME = 'c:\Db_test.mdf' )
LOG ON
( NAME = Db_test_LOG,
FILENAME = 'c:\Db_test.ldf')
GO
--对数据库进行备份
BACKUP DATABASE Db_test TO DISK='c:\test_data.bak' WITH FORMAT
GO
--把数据库还原成备用数据库(演示主数据库与这个备用数据库之间的同步)
RESTORE DATABASE Db_test_bak FROM DISK='c:\test_data.bak'
WITH REPLACE,STANDBY='c:\db_test_bak.ldf'
,MOVE 'Db_test_DATA' TO 'c:\Db_test_data.mdf'
,MOVE 'Db_test_LOG' TO 'c:\Db_test_log.ldf'
GO
--启动 SQL Agent 服务
EXEC master..xp_cmdshell 'net start sqlserveragent',no_output
GO
--创建主服务器数据训与备用服务器数据库之间同步的作业
DECLARE @jogid uniqueidentifier
EXEC msdb..sp_add_job
@job_id = @jogid OUTPUT,
@job_name = N'数据同步处理'
--创建同步处理步骤
EXEC msdb..sp_add_jobstep
@job_id = @jogid,
@step_name = N'数据同步',
@subsystem = 'TSQL',
@command = N''
--主数据库中进行日志备份
BACKUP LOG Db_test TO DISK="c:\test_log.bak" WITH FORMAT
--备用数据库中还原主数据库的日志备份(应用主数据库中的最新变化
--实际应该时主数据库备份与备用数据库的还原作业应该分别在主服务器和备用服务器上建立,并且备份文件应该放在主服务器和备用都能访问的共享目录中
RESTORE LOG Db_test_bak FROM DISK='c:\test_log.bak' WITH STANDBY='c:\test_log.ldf',
@retry_attempts = 5,
@retry_interval = 5
--创建调度(每分钟执行一次)
EXEC msdb..sp_add_jobschele
@job_id = @jogid,
@name = N'时间安排',
@freq_type=4,
@freq_interval=1,
@freq_subday_type=0x4,
@freq_subday_interval=1,
@freq_recurrence_factor=1
-- 添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
@job_id = @jogid,
@server_name = N'(local)'
GO
--通过上述处理,主数据库与备用数据库之间的同步关系已经设置完成
--下面开始测试是否能实现同步
--在主数据库中创建一个测试用的表
CREATE TABLE Db_test.dbo.TB_test(ID int)
GO
--等待1分钟30秒(由于同步的时间间隔设置为1分钟,所以要延时才能看到效果)
WAITFOR DELAY '00:01:30'
GO
--查询一下备用数据库,看看同步是否成功
SELECT * FROM Db_test_bak.dbo.TB_test
/*--结果:
ID
-----------
(所影响的行数为 0 行)
--*/
--测试成功
GO
--最后删除所有的测试
DROP DATABASE Db_test,Db_test_bak
EXEC msdb..sp_delete_job @job_name=N'数据同步处理'
GO
/*===========================================================*/
/*--服务器宕机处理说明
使用这种方式建立的数据库同步,当主数据库不可用时(例如,主数据库损坏或者停机检修)
可以使用以下两种方法使备用数据库可用。
--*/
--1. 如果主数据库损坏,无法备份出最新的日志,可以直接使用下面的语句使备用数据库可读写(丢失最近一次日志还原后的所有数据)。
RESTORE LOG Db_test_bak WITH RECOVERY
--2. 如果主数据库可以备份出最新日志,则可以使用下面的语句。
--先备份主数据库的最新的事务日志
BACKUP LOG Db_test TO DISK=''c:\test_log.bak'' WITH FORMAT
--再在备用数据库中恢复最新的事务日志,并且使备用数据库可读写(升级为主数据库)
RESTORE LOG Db_test_bak FROM DISK='c:\test_log.bak'
方案五 复制订阅
开始学习之前我们先搞清楚以下几个概念:
复制(Replication)就是将数据由某处复制到一个或多个目的地,由于对数据库分散式应用的需求日渐增加,SQL Sever也提供了复制的功能。
SQL Server 的复制功能基本上是使用“发布服务器(Publisher) ”和“订阅服务器”(Subscriber)的结构,这整个结构中包含了数个不同的组件。
(1) 发布服务器(Publisher):在复制中,发布服务器就是负责发布数据库内容给其他服务器的SQL Server (一般的我们把主服务器当作发布服务器,形象一点比喻发布服务器就好像是一本书的作者)
(2) 订阅服务器(Subscriber):订阅服务器就是指受发布服务器所发布数据的SQL SERVER,通常发布服务器只有一个,但订阅服务器可以有多个。(形象比喻订阅服务就像是读者,购买相同图书的读者可以有很多。)
(3) 分发服务器(Distributor):除了发布服务器和订阅服务器这两个基本外,另一个可以由 SQL SERVER 在整个复制结构中扮演的角色就是分发服务器。分发服务器是负责将发布服务器所发布的数据库发布、传输到各订阅服务器的服务器。在简单的复制结构中,发布服务器和分发服务器通常是使用同一个 SQL SERVER。设置为分发服务器的 SQL SERVER,会有个名为 distribution 的系统数据库存放复制信息。
(4) 发布项(Article):发布服务器所发布的数据称为发布项,发布项是进行复制时的复制单位,发布项可以是表或存储过程等数据库对象,也可以知识表中的某几列或某几项数据。
(5) 发布(Publish):一组特定的发布项组合就称为发布,也就是 SQL SERVER进行复制时所复制的数据合。当订阅服务器向发布服务器订阅数据时,是以发布为单位,而不是以发布项为单位的。即,订阅服务器只能接收整个发布中的所有 article。而不能只选择其中几个发布项类订阅,每个发布只有来自单一数据库的内容,但我们可以为数据库设置多个发布。
(6) 为适应不同的复制需求,SQL SERVER提供了发送(Push)和请求(Pull)两种不同的订阅方式。区别如下:
(a) 发送订阅(Push Subscription也称为强制订阅):所谓的发送订阅就是由发布服务器主动传送发布给订阅服务器,也就是由发布服务器控制复制的操作,只要指定进行复制的时间一到,不管订阅服务器有没有提出要求,发布服务器都会将数据传送给订阅服务器。
(b) 请求订阅(Pull Subscription):请求订阅和发送订阅相反,是由订阅服务器自行根据排定的日程向发布服务器要求订阅发布,通常在订阅服务器数量较多,或是不需要即时取的最新的数据内容时,可采用此种订阅方式。
步骤:
下介绍实现复制的步骤。(以快照复制为例)
准备工作:
1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
--我的电脑
--控制面板
--管理工具
--计算机管理
--用户和组
--右键用户
--新建用户
--建立一个隶属于administrator组的登陆windows的用户
2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:
我的电脑--D:\ 新建一个目录,名为: BakPUB
--右键这个新建的目录
--属性--共享
--选择"共享该文件夹"
--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
--确定
3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)
开始--程序--管理工具--服务
--右键SQLSERVERAGENT
--属性--登陆--选择"此账户"
--输入或者选择第一步中创建的windows登录用户名
--"密码"中输入该用户的密码
4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)
企业管理器
--右键SQL实例--属性
--安全性--身份验证
--选择"SQL Server 和 Windows"
--确定
5.在发布服务器和订阅服务器上互相注册
企业管理器
--右键SQL Server组
--新建SQL Server注册...
--下一步--可用的服务器中,输入你要注册的远程服务器名--添加
--下一步--连接使用,选择第二个"SQL Server身份验证"
--下一步--输入用户名和密码
--下一步--选择SQL Server组,也可以创建一个新组
--下一步--完成
6.对于只能用IP,不能用计算机名的,为其注册服务器别名
(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)
开始--程序--Microsoft SQL Server--客户端网络实用工具
--别名--添加
--网络库选择"tcp/ip"--服务器别名输入SQL服务器名
--连接参数--服务器名称中输入SQL服务器ip地址
--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号
==============================================================================
正式开始:
1.配置发布服务器
a. 选中指定 [服务器] 节点
b. 从 [工具] 下拉菜单的 [复制] 子菜单中选择 [发布、订阅服务器和分发] 命令
c. 系统弹出一个对话框点 [下一步] 然后看着提示操作
--直到"指定快照文件夹"
--在"快照文件夹"中输入准备工作中创建的目录: \\<服务器名>\ BakPUB
一[下一步] 直操作到完成。
d. 当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器
同时也生成一个分发数据库(distribution)
---------------------------------------------------------------------------
2.创建发布
a. 选中指定的服务器
b. 从 [工具] 菜单的 [复制] 子菜单中选择 [创建和管理发布] 命令。此时系统会弹出
一个对话框
c. 选择要创建发布的数据库,然后单击 [创建发布]
d. 在 [创建发布向导] 的提示对话框中单击 [下一步] 系统就会弹出一个对话框。对话
框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个
大家可以去看看帮助)
e. 单击 [下一步] 系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在
不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行
"SQL SERVER 2000"的数据库服务器
f. 单击 [下一步] ,选择要发布的对象(如表,视图,存储过程,一般是表)
g. 然后 [下一步] 直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了
一个共享数据库。
---------------------------------------------------------------------------
3.设计订阅
a. 选中指定的订阅服务器
b. 从 [工具] 下拉菜单中选择 [复制] 子菜单的 [请求订阅]
c. 按照提示单击 [下一步] 操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行
复制操作的前提条件是SQL SERVER代理服务必须已经启动。
d. 单击 [完成] 完成订阅操作。
----------------------------------------------------------------------------
完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?
这里可以通过这种方法来快速看是否成功。
展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度
把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。
接下来就是判断复制是否成功了打
开C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\下面
看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。
H. mssql数据库操作手册
mssql数据库操作手册
一 备份数据库
打开SQL企业管理器 在控制台根目录中依次点开Microsoft SQL Server SQL Server组 >双击打开你的服务器 >双击打开数据库目录 选择你的数据库名称(如系统数据库Newasp) >然后点上面菜单中的工具 >选择备份数据库 备份选项选择完全备份 目的中的备份到如果原来有路径和名称则选中名称点删除 然后点添加 如果原来没有路径和名称则直接选择添加 接着指定路径和文件名 指定后点确定返回备份窗口 接着点确定进行备份
二 还原数据库
打开SQL企业管理器 在控制台根目录中依次点开Microsoft SQL Server SQL Server组 >双击打开你的服务器 >点图标栏的新建数据库图标 新建数据库的名字自行取 点击新建好的数据库名称(如系统数据库Newasp) >然后点上面菜单中的工具 >选择恢复数据库 在弹出来的窗口中的还原选项中选择从设备 >点选择设备 >点添加 >然后选择你的备份文件名 >添加后点确定返回 这时候设备栏应该出现您刚才选择的数据库备份文件名 备份号默认为 (如果您对同一个文件做过多次备份 可以点击备份号旁边的查看内容 在复选框中选择最新的一次备份后点确定) >然后点击上方常规旁边的选项按钮 在出现的窗口中选择在现有数据库上强制还原 以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项 在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录) 逻辑文件名不需要改动 移至物理文件名要根据你所恢复的机器情况做改动 如您的SQL数据库装在D:Program FilesMicrosoft SQL ServerMSSQLData 那么就按照您恢复机器的目录进行相关改动改动 并且最后的文件名最好改成您当前的数据库名(如原来是NewCloud_data mdf 现在的数据库是Newasp 就改成Newasp_data mdf) 日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是*_log ldf结尾的) 这里的恢复目录您可以自由设置 前提是该目录必须存在(如您可以指定d:sqldataNewCloud_data mdf或者d:sqldataNewCloud_log ldf) 否则恢复将报错 修改完成后 点击下面的确定进行恢复 这时会出现一个进度条 提示恢复的进度 恢复完成后系统会自动提示成功 如中间提示报错 请记录下相关的错误内容并询问对SQL操作比较熟悉的人员 一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误 数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作 如果还提示正在使用的错误可以将SQL服务停止然后重起看看 至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复
三 收缩数据库
一般情况下 SQL数据库的收缩并不能很大程度上减小数据库大小 其主要作用是收缩日志大小 应当定期进行此操作以免数据库日志过大 设置数据库模式为简单模式 打开SQL企业管理器 在控制台根目录中依次点开Microsoft SQL Server >SQL Server组 >双击打开你的服务器 >双击打开数据库目录 >选择你的数据库名称(如系统数据库Newasp) >然后点击右键选择属性 >选择选项 >在故障还原的模式中选择“简单” 然后按确定保存 在当前数据库上点右键 看所有任务中的收缩数据库 一般里面的默认设置不用调整 直接点确定 收缩数据库完成后 建议将您的数据库属性重新设置为标准模式 操作方法同第一点 因为日志在一些异常情况下往往是恢复数据库的重要依据
四 设定每日自动备份数据库
强烈建议有条件的用户进行此操作! 打开企业管理器 在控制台根目录中依次点开Microsoft SQL Server >SQL Server组 >双击打开你的服务器 然后点上面菜单中的工具 >选择数据库维护计划器 下一步选择要进行自动备份的数据 >下一步更新数据优化信息 这里一般不用做选择 >下一步检查数据完整性 也一般不选择 下一步指定数据库维护计划 默认的是 周备份一次 点击更改选择每天备份后点确定 下一步指定备份的磁盘目录 选择指定目录 如您可以在D盘新建一个目录如 d:databak 然后在这里选择使用此目录 如果您的数据库比较多最好选择为每个数据库建立子目录 然后选择删除早于多少天前的备份 一般设定 - 天 这看您的具体备份要求 备份文件扩展名一般都是bak就用默认的 下一步指定事务日志备份计划 看您的需要做选择 >下一步要生成的报表 一般不做选择 >下一步维护计划历史记录 最好用默认的选项 >下一步完成 完成后系统很可能会提示Sql Server Agent服务未启动 先点确定完成计划设定 然后找到桌面最右边状态栏中的SQL绿色图标 双击点开 在服务中选择Sql Server Agent 然后点击运行箭头 选上下方的当启动OS时自动启动服务 这个时候数据库计划已经成功的运行了 他将按照您上面的设置进行自动备份
修改计划 打开企业管理器 在控制台根目录中依次点开Microsoft SQL Server >SQL Server组 >双击打开你的服务器 >管理 >数据库维护计划 >打开后可看到你设定的计划 可以进行修改或者删除操作
五 数据的转移(新建数据库或转移服务器)
lishixin/Article/program/MySQL/201311/29538