MYSQL教程之设置SQL Server 2000选项
DBaaS并不意味着解决方案提供者要让自己失业。与其他系统一样,在实施DBaaS解决方案时,客户可能需要部署、迁移、支持、异地备份、系统集成和灾难恢复等方面的帮助。serverSQLServer服务器的设置选项属于那种人们懂得较少且常常误用的选项。当一个手艺撑持职员请求你依照某种体例调剂一个选项、而另外一个手艺撑持职员却请求你依照另外一种完整对峙的体例调剂统一个选项时,你大概对这些选项的真正寄义感应狐疑。有关这些选项的材料很缺少,最少能够说不敷具体和分明。在SQLServer2000中,Microsoft削减了几个设置选项,让SQLServer静态设置它们,从而削减了几个简单搅浑的中央。同时,Microsoft又为SQLServer2000新增了两个服务器设置选项,调剂了一些数据库选项,从而稍许简化了数据库办理员的事情。新增的服务器选项
就象会见年夜多半企业版服务器的属性一样,我们不克不及在SQLServerEnterpriseManager中经由过程服务器属性窗口会见SQLServer2000新增的两个服务器选项。作为避免用户因为不当心而毛病设置服务器的一个平安措施,Microsoft没有把这些初级设置选项放进EnterpriseManager。相反,我们必需利用T-SQL/sp_configure体系存储历程往会见这些初级选项。我们能够用不带参数运转sp_configure的办法检察服务器确当前设置。在实行了局中,config_value是SQLServer从Master数据库syscurconfigs表提掏出来的数据,它显现了服务器确当前设置;run_value列显现了实行sp_configure时SQLServer正在利用的选项,SQLServer在sysconfigures表中存储这些数据。修正某个选项以后,我们必需实行RECONFIGURE命令(在年夜多半情形下,还要从头启动SQLServer)才干让新的run_value显现出来。本文所会商的一切选项都请求从头启动SQLServer。
服务器选项统共有36个,默许情形下,sp_configure存储历程只显现个中的10个,显现了局中不包括初级选项,并且一切新的SQLServer设置选项都不会呈现在这个精简的清单中。但是,我们可使用showadvancedoptions命令参数让SQLServer显现出一切选项。要启用showadvancedoptions,我们利用以下命令格局:
EXECsp_configureshowadvancedoptions,1RECONFIGURE
要安装一个选项,我们必需在利用sp_configure设置服务器以后运转RECONFIGURE命令。下面命令的输入了局以下:
Configurationoptionshowadvancedoptionschangedfrom0to1.RuntheRECONFIGUREcommandtoinstall.
一旦可以检察初级选项,我们就能够看到两个新的服务器选项。个中最主要的一个新选项是aweenabled选项,它可以让SQLServer企业版进步服务器的内存会见才能。默许情形下,SQLServer可以利用的最年夜RAM是3GB。在Windows2000上,使用程序能够利用AddressWindowingExtensions(AWE)API会见更多的RAM。比方,在Windows2000AdvancedServer中,我们可以利用多达8GB的内存,只要Windows2000DatacenterServer撑持64GB内存才凌驾它。明显,当SQLServer具有更多的可用内存,它将可以缓冲更多的数据,改良查询的呼应工夫。
不外,启用aweenabled选项也有反作用。启用aweenabled选项以后,SQLServer不再静态地分派内存。因为缺少内存静态分派功效,办理包袱随之增添,由于我们必需细心地监督RAM利用情形。别的,设置aweenabled选项以后,我们还必需设置maxservermemory选项。假如我们不设置maxservermemory选项,服务器RAM又即是最低请求3GB,SQLServer将在启动的时分占有呆板上几近一切的RAM,只给Windows和其他使用留下128MB的RAM。经由过程设置maxservermemory选项,我们能够限定SQLServer利用的内存总量。
aweenabled选项只能在SQLServer2000EnterpriseEdition上利用,操纵体系必需是Windows2000AdvanceServer或Datacenter。假如你在SQLServer的其他版本上利用这个选项(大概操纵体系是WinNT),SQLServer将疏忽这个选项。在某些服务器设置组合下,不得当地设置这个选项将招致不成预知的了局。比方,假如我们在Windows98操纵体系、运转SQLServerPersonalEdition的呆板上设置这个选项,SQLServer大概呈报它已中断(乃至是在它正在运转的时分),并且它将回绝中断SQLServer实例。
在SQLServerEnterpriseEdition服务器上启用AWE包含三个步骤。起首,我们必需确保启动SQLServer实例的帐号具有在内存中锁定页的权限。SQLServer安装时主动把页锁定权限授与我们指定用来启动SQLServer服务的Windows帐号;可是,假如厥后这个帐号已改动,你应当反省一下已把哪些权限授与了启动SQLServer的用户。反省帐号的权限可使用Windows2000的组战略工具。第二个步骤是运转sp_configure存储历程,把aweenabled选项设置为1。然后,我们必需实行RECONFIGURE,用手工体例从头启动SQLServer。设置命令的语法为:
EXECsp_configureaweenabled,1RECONFIGURE
注重,在Windows2000大概NT上,假如要会见高于4GB的物理内存,我们还必需接纳其他一些措施,即修正boot.ini文件,到场/pae选项。
第二个新的SQLServer2000选项用来启用C2级平安考核形式。C2是一个当局平安品级,它包管体系可以回护资本并具有充足的考核才能。C2形式同意我们监督对一切数据库实体的一切会见妄图。启用SQLServer的C2考核功效的命令以下:
EXECsp_configurec2auditmode,1RECONFIGURE
(要完成完全的C2级平安包管,Windows操纵体系也必需供应响应的撑持)启用C2考核形式偏重新启动以后,SQLServer主动在MSSQLData目次上面创立跟踪文件。我们可使用SQLServerProfiler检察这些监督服务器举动的跟踪文件。
SQLServer以128KB巨细的块为单元把数据写进跟踪文件。因而,当SQLServer非一般中断时,我们最多大概丧失128KB的日记数据。能够设想,包括考核信息的日记文件将以很快的速率增年夜。比方,某次实验只会见了三个表,跟踪文件已凌驾了1MB。当跟踪文件凌驾200MB时,C2考核将封闭旧文件并创立新文件。每次SQLServer启动的时分,它会创立一个新的跟踪文件。假如磁盘空间不敷,SQLServer将中断运转,直至我们为考核日记开释出充足的磁盘空间偏重新启动SQLServer实例。在SQLServer启动的时分,我们可使用-f参数禁用考核。
削减的服务器选项
在SQLServer2000中,Microsoft削减了原本的几个选项,让SQLServer2000主动设置这些选项。削减的选项中最有目共睹的是maxasyncIO选项。这个选项同意数据库办理员指定在单一的数据库文件上能够呈现几异步的磁盘读取和写进操纵。SQLServer7.0中的maxasyncIO选项是人们懂得起码的选项之一,它的默许值是32,但很少有办理员往调剂这个值。在SQLServer2000中,这个异步IO选项跟着SQLServer吸收的适配器反应信息静态地上升大概下落,SQLServer使用反应算法断定服务器负载和SQLServer体系可以把持的数目。
数据库选项
在SQLServer2000中,假如你已经检察过EnterpriseManager中数据库的Options选项卡,你大概会对一些通用选项的消散感应狐疑(要会见Options选项卡,在EnterpriseManager中右击数据库然后选择Properties)。Options选项卡中削减了trunc.logonchkpt.和SelectInto/BulkCopy这两个选项,如所示。为了分明和向后兼容起见,这些通用选项如今称为recoverymodel(恢复模子)选项。假如用SQLServer2000的EnterpriseManager毗连SQLServer7.0数据库,我们仍然能够看到这些老选项。之前,我们利用上面的命令为Northwind数据库开启trunc.logonchkpt.选项:
SP_DBOPTIONNorthwind,trunc.logonchkpt.,true
设置好选项以后,我们能够经由过程Options选项卡大概上面的查询反省Northwind数据库上这些选项设置是不是乐成:
SELECTDATABASEPROPERTY(Northwind,IsTruncLog)
了局为1暗示选项设置成了true;了局为0暗示选项设置成了false。假如了局为NULL,它暗示我们大概选择了一个毛病的选项,大概数据库不存在。
为了便于利用,Microsoft把trunc.logonchkpt.和SelectInto/BulkCopy选项换成了恢复模子设置。这类选项改动的目标在于确保数据库办理员可以充实了解在劫难恢复战略中恢复模子选项的意义。SQLServer2000为我们供应了三种数据库恢复模子:simple(复杂恢复),full(完整恢复),bulk_logged(年夜容量日记纪录恢复)。
复杂恢复模子最简单操纵,但它是最缺少天真性的劫难恢复战略。选择复杂恢复模子同等于把trunc.logonchkpt.设置成true。在这类恢复模子下,我们只能举行完整备份和差别备份(differentialbackup):这是由于事件日记老是被截断,事件日记备份不成用。一样平常地,关于一个包括关头性数据的体系,我们不该该选择复杂恢复模子,由于它不克不及够匡助我们把体系复原到妨碍点。利用这类恢复模子时,我们最多只能把体系恢复到最初一次乐成举行完整备份和差别备份的形态。举行恢复时,我们起首要恢复最初一次乐成举行的完整备份,然后在此基本上恢复差别备份(差别备份只能把自从数据库最初一次完整备份以后对数据库的修改施加到数据库上)。
完整恢复模子把trunc.logonchkpt.选项和SelectInto/BulkCopy选项都设置成false。完整恢复具有把数据库恢复到妨碍点或特定立即点的才能。关于回护那些包括关头性数据的情况来讲,这类模子很幻想,但它进步了设备和办理的价值,由于假如数据库会见对照频仍的话,体系将很快发生复杂的事件日记纪录。因为在这类模子中SelectInto/BulkCopy设置成了false,SQLServer将纪录包含年夜容量数据装进在内的一切事务。
最初一种恢复模子是年夜容量日记纪录恢复,它把trunc.logonchkpt.设置成false,把SelectInto/BulkCopy设置成true。在年夜容量日记纪录恢复模子中,年夜容量复制操纵的数据丧失水平要比完整恢复模子严峻。完整恢复模子纪录年夜容量复制操纵的完全日记,但在年夜容量日记纪录恢复模子下,SQLServer只纪录这些操纵的最小日记,并且没法逐一把持这些操纵。在年夜容量日记纪录恢复模子中,数据文件破坏大概招致请求手工重唱工作。下表对照了三种恢复模子的特性。
恢复模子长处事情丧失体现可否恢复到立即点?
复杂同意高功能年夜容量复制操纵。
发出日记空间,使无暇间请求最小。必需重做自最新的数据库或差别备份后所产生的变动。能够恢复就任何备份的开头处。随后必需重做变动。
完整数据文件丧失或破坏不会招致事情丧失。
能够恢复就任意立即点(比方,使用程序或用户毛病之前)。一般情形下没有。
假如日记破坏,则必需重做自最新的日记备份后所产生的变动。能够恢复就任何立即点。
年夜容量日记纪录同意高功能年夜容量复制操纵。
年夜容量操纵利用起码的日记空间。假如日记破坏,大概自最新的日记备份后产生了年夜容量操纵,则必需重做自前次备份后所做的变动。不然不丧失任何事情。能够恢复就任何备份的开头处。随后必需重做变动。
在数据库的Options选项卡中,我们能够从Model下拉列表框选择Simple把恢复模子改成复杂模子。别的,Microsoft扩大了ALTERDATABASE命令,我们能够用它设置数据库属性。比方,用上面这个T-SQL命令能够把恢复模子设置为完整恢复模子:
ALTERDATABASENorthwindSETRECOVERYFULL
SQLServer2000供应了把数据库转进单用户形式的很多选项,它们都属于那种最使人感乐趣的埋没选项。为了修改讹误或其他数据成绩,数据库办理员经常要把数据库转进单用户形式。当数据库处于这类形式时,别的用户将不克不及再会见数据,从而使得办理员可以在用户会见破坏的数据之前修改数据成绩。在SQLServer7.0中,在把数据库转进单用户形式之前,我们必需确保一切用户都已断开毗连。关于一个高速OLTP数据库体系,好比电子商务体系,断开一切用户的毗连十分坚苦,由于就在我们断开某个用户的毗连时,其他用户还会毗连数据库。SQLServer2000极年夜地改善了这个操纵历程,我们能够给用户一个指定的工夫往完成他们的事件,然后由SQLServer主动断开他们的毗连。别的,我们也能够在不供应任何提早工夫的情形下断开一切的毗连。
把数据库转进单用户形式的办法之一是在数据库的Options选项卡选中RestrictAccess反省框,然后选择Singleuser。别的,Microsoft扩大了ALTERDATABASE命令,使它可以把数据库转进单用户形式,语法以下:
ALTERDATABASENorthwindSETSINGLE_USER
实行这个命令以后,SQLServer守候一切的数据库毗连,让它们完成各自的事件。在这类形态下,一切哀求毗连数据库的用户都将吸收到显现的毛病信息,并被重定向到他们各自的默许数据库(一般是Master数据库)。的毛病信息意味着数据库处于解冻形态,直至一切用户断开毗连。假如方针服务器大概收回命令的用户没有设置querytimeout参数,客户端大概无穷期地守候查询完成,直至一切的毗连被断开。在QueryAnalyzer中,我们能够在Options屏幕(选择菜单Tools,Options)的Connections选项卡内里指定超时秒数。在单用户形式下,只要收回ALTERDATABASE命令的用户能够坚持毗连。
别的,我们还能够用ROLLBACKIMMEDIATE命令断开一切翻开数据库毗连的用户。但我们不克不及在EnterpriseManager中利用这个命令,而是应当用QueryAnalyzer实行,比方:
ALTERDATABASENorthwindSETSINGLE_USERWITHROLLBACKIMMEDIATE
实行这个命令以后,SQLServer当即断开一切的毗连并回退它们的事件。一切正在实行事件的用户城市吸收到一个毗连毛病,并且他们不克不及再毗连数据库。
我们能够指定一个工夫选项,让SQLServer在断开用户的毗连之前守候用户完成他们的事件。这个选项是可选的,它用ROLLBACKAFTER关头词指定,以下面的命令所示:
ALTERDATABASENorthwindSETSINGLE_USERWITHROLLBACKAFTER20SECONDS
实行这个命令以后,SQLServer先守候20秒钟,然后断开一切的毗连并回退它们的事件。在这个过程当中,SQLServer不再承受新的毗连哀求,它是一个数据库级的服务器停息。在这个20秒以内,一切妄图毗连数据库的新用户都将吸收到显现的毛病信息。假如实行这个命令的时分不存在已毗连的用户,数据库将当即转进单用户形式。
EnterpriseManager的数据库Options选项卡中,最初一个新的设置选项是CompatibilityLevel,如所示。要设置这个选项,我们只需从CompatibilityLevel下拉框选择一个符合的兼容级别。在这个下拉框中,SQLServer2000由80代表,7.0由70代表,6.5由65代表。兼容级别选项决意了某些数据库查询操纵的实行办法。因为SQLServer的干系引擎在开展变更,某些查询的了局在分歧的版本之间大概分歧。比方,假如我们实行上面这个查询:
SELECTDATALENGTH()
依附于我们为数据库设置的兼容级别是SQLServer2000、7.0大概6.5,上述查询大概失掉两个分歧的了局。关于SQLServer2000或7.0数据库,前往了局是0,由于SQLServer2000和7.0把空字符串视为真实的空;在SQLServer6.5兼容形式下,前往了局是1,由于SQLServer6.5把空字符串视为一个空格。SQLServer7.0也有这个兼容级别选项,但它只能经由过程sp_dbcmptlevel存储历程会见。
综上所述,在SQLServer2000中,Microsoft对服务器和数据库设置办法举行了几个本色性的修改。不要不放在眼里一切本文会商的选项和其他SQLServer设置选项――即便是一个小小的修改,它也大概对功能发生严重的正面或负面影响。在调剂SQLServer的设置选项时,你最好利用PerformanceMonitor之类的服务器监督工具,确保选项调剂不会对服务器功能发生负面影响。
而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。 还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。 而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录. 很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 入门没那么困难,精通没那么容易
页:
[1]