简单生活 发表于 2015-1-16 22:22:12

MSSQL网站制作之Web情况下中数据的磁带备份与恢复

这里我们讨论用binlog来实现闪回的方案。web|备份|恢复|数据
完成磁带备份数据的功效有两方面的坚苦:起首,MSSQLServer所供应的数据库的全体备份及恢复功效不克不及间接满意本体系请求的数据转动备份。其次,必要办理怎样在Web情况下完成磁带数据备份功效。使用SQL中现有的数据库备份和恢复的命令和NT中的IDC手艺,完成SQL数据库中数据转动备份到磁带的功效。本体系所完成功效既能包管近一段工夫的数据总在数据库中,又能包管体系办理员可随时恢复备份数据,供用户查询。本文所完成的功效具有广泛的意义,出格合用于中小型企业开辟基于Intranet手艺的办理信息体系。
磁带数据备份及恢复的事情历程
为了充实使用SQL中现有的数据库备份与恢复功效,以下降完成磁带数据备份的价值,我们专程在硬盘上创建了一个与磁带的容量相称的数据库,我们称之为桥数据库,如FJJDBBK。可便利地完成数据的转动备份了。其事情历程是:办理员把某月的数据从主数据库移到桥数据库中;然后用SQL的备份功效把桥数据库备份到磁带上。用户必要检察磁带中的汗青数据时,体系又用SQL的恢复备份功效把磁带中的数据恢复到桥数据库中,用户间接在桥数据库中查经历史数据。别的,在数据备份到磁带后,在举行下次数据备份前,必需清空备份数据库中的数据。为了进步事情效力,我们创建了一个空缺桥数据库(没无数据时的桥数据库)。每次举行磁带备份数据之前,就用此空缺数据库恢复桥数据库。空缺数据库文件创建后要保留好,不成任意删除。
创建该备份空缺数据库历程为:先创建主数据库FJJDBBK,然后在FJJDBBK中创建与以后数据库中一样布局的表。创建这些表布局时最好的办法是先用EnterpriseManager的Object菜单下的GenerateSQLScripts功效天生创建这些表的Scripts文件,然后选择FJJDBBK数据库,用EnterpriseManager的Tools菜单下的QueryAnalyzer功效运转该文件,就创建了这些所需表。明显,这时候的FJJDBBK为空数据库。我们再使用备份命令或运转Tools菜单下的Backup/Restore功效备份该空数据库。
磁带数据备份及恢复的完成
在NT中,Web服务器IIS(InternetInformationServer)供应了完美的会见SQL的手艺IDC。IDC是一个DLL文件(HTTPODBC.DLL),实在,它经由过程ODBC接口可会见各类数据库。在详细完成Web页面会见数据库时,需创建两品种型的文件:IDC文件(*.idc)和HTML模板文件(*.htx)。IDC文件用于把持数据库的会见。它一样平常由两部分构成:
.文件头 指明体系数据源,模板文件名,用户名及口令。偶然还包含一些有关检索数据库方面的参数设置。
.文件主体 这部份内容以"SQLStatement:"为肇端标记,然后写利用数据库的尺度SQL语句。注重,每条语句以"+"号开首,它作为辨别每条SQL语句的标记。必要夸大的是,关于MSSQL数据库,IDC可用其任何尺度的命令及函数。比方界说变量,把持数据流等。
IDC的处置流程以下:起首,Web服务器IIS剖析扫瞄器传来的URL字符串。假如以后字符串以"*.idc"开头,就将该IDC哀求传给IDC接口模块,IDC将顺次读取并注释IDC文件的内容,经由过程ODBC模块向数据库服务器发服务哀求;数据库服务器将实行了局经由过程ODBC接口前往给IDC模块。接着IDC模块把了局拔出指定的的模板文件,构成一个实践的HTML文件交给IIS;最初由IIS将该HTML前往扫瞄器。
在Web信息体系中要完成完全的磁带数据备份及恢复功效必要完成以下三个功效:"数据备份"功效、"数据恢复"功效和"清算数据"功效。"数据备份"功效在包管体系办理员操纵的条件下,依据用户输出的所要备份数据的肇端日期和停止日期,从主数据库把要备份的数据转存到桥数据库中,然后使用SQL的DUMP命令完成该功效。"数据恢复"功效则在包管体系办理员操纵的条件下,供应"恢复桥数据库"和"恢复空缺桥数据库"的功效。只需使用SQL的LOAD命令便可完成上述功效;一样,"清算数据"功效也要包管在体系办理员操纵的条件下,依据用户输出的所要删除数据的肇端日期和停止日期,使用SQL中的DELETE命令删除以后数据库中数据。因而。为了"数据备份"功效和"清算数据"功效的顺遂实行,请求每一个表都有回档工夫字段。
完成本体系磁带数据备份与恢复功效的部分IDC文件以下:
/*BKUP.IDC*/
Datasource:WebSQL
Template:BKUP.htx
Username:sa
Password:sa
SQLStatement:
+if%jb%=1
+/*判别体系保护员*/
+SELECTqsrq=convert(varchar(12),getdate(),1),
zzrq=convert(varchar(12),+dateadd(day,1,getdate()),1)
+/*预置肇端日期和停止日期*/
/*BKUPCZ.IDC*/
Datasource:WebSQL
Template:BKUPCZ.htx
Username:sa
Password:sa
SQLStatement:
+INSERTFJJDBBK.DBO.JKLDSELECT*FROMFJJDB.DBO.JKLD
+whereconvert(varchar(12),gdsj,1)>=′%QSRQ%′
andconvert(varchar(12),gdsj,1)<=′%ZZRQ%′
…………
+/*把以后数据库当选定的数据转存到桥数据库中*/
+DUMPDATABASEFJJDBBKTOTAPE=′.        ape0′WITHINIT,NOUNLOAD
+/*备份数据*/
+SELECTTS=′备份数据库操纵已完成!′
/*HUIF.IDC*/
Datasource:WebSQL
Template:HUIF.htx
Username:sa
Password:sa
SQLStatement:
+if%jb%=1
+begin
+LOADDATABASEFJJDBBKFROMTAPE=′.TAPE0′WITH
NOUNLOAD
+/*恢复备份数据*/
+SELECTTS=′恢单数据库操纵已完成!′+/*
+end
/*QLSJKCZ.IDC*/
Datasource:WebSQL
Username:sa
Password:sa
Template:QLSJKCZ.htx
SQLStatement:
+deleteFJJDB.DBO.JKLD
whereconvert(varchar(12),gdsj,1)>=′%QSRQ%′and
convert(varchar(12),gdsj,1)<=′%ZZRQ%′
…………
+/*删除以后数据库当选定的数据*/
+SELECTTS=′删除操纵已完成!′
  在本体系中,主数据库包管存储4个月数据。体系划定,体系办理员每个月月初备份上月的数据到磁带。然后删除前第4个月的数据。完成了以后数据与汗青数据的同步查阅,这是Web体系的一个明显的长处
2008年1月16号MySQLAB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。

再见西城 发表于 2015-1-19 09:35:24

索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。

若天明 发表于 2015-1-25 16:09:30

比如日志传送、比如集群。。。

第二个灵魂 发表于 2015-2-3 09:30:30

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)

柔情似水 发表于 2015-2-8 20:06:21

发几份SQL课件,以飨阅者

不帅 发表于 2015-2-26 03:11:48

还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。

兰色精灵 发表于 2015-3-8 11:37:25

再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。

老尸 发表于 2015-3-15 22:25:25

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

活着的死人 发表于 2015-3-22 17:10:24

是要和操作系统进行Socket通讯的场景。否则建议慎重!
页: [1]
查看完整版本: MSSQL网站制作之Web情况下中数据的磁带备份与恢复