仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 742|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网站制作之SQL Server的无效安装

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:28:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因此我们的保存数据方法就是:在删除的动作开始之前,把表数据备份起来,然后留一个空表,在空表上执行“删除”操作。server
微软老是试图使它的软件安装尽量地复杂顺畅,SQLServer2000的安装也不破例。你从安装光盘的x86etup文件夹启动setupsql.exe、在安装对话框中填进一些细节后,几分钟内,安装将在没有效户参与的情形下持续实行。你乃至能够乐成的安装SQLServer2000而不必分明那些选择意味着甚么――只需在年夜多半安装对话框中点击“下一步”。但是,我激烈倡议你不要云云草率地看待安装;寄望每个选项而且确保你完整了解你所作的每一个选择的影响。一些优良的决意,好比毛病的排序划定规矩设置,大概很难被修复;其他的,好比承受默许的身份考证形式,大概创立了平安毛病。



让我们看一些有关尺度安装的重点,包含实例设置、平安性、排序划定规矩和收集库。然后让我们探究无人值守和远程安装的初级选项。



实例

当你入手下手安装时,常常实行尺度安装(与远程或无人值守安装比拟)。你挪用setupsql.exe程序来启动安装导游。在入手下手的两个对话框――接待和呆板名――以后,你必要对你的实例设置作选择。SQLServer2000撑持在一台呆板上安装多个SQLServer的实例。安装程序显现两个对话框来给你安装实例的选项。

起首,安装选择对话框显现了让你选择是不是安装一个新的实例大概晋级一个已存在的安装。假如你选择安装一个新的实例,你将看到“实例名对话框”显现出来。你能够指明一个实例名或选择默许来安装一个默许实例――假如默许实例还未安装在呆板上。

在做有关安装实例的选择时你必要思索几件事。假如呆板上没有默许实例、你盘算在统一台呆板上利用SQLServer2000和7.0,确信你未将SQLServer2000作为默许实例安装。SQLServer7.0不撑持定名实例,以是它必需成为默许实例。除卸载和从头安装SQLServer,你不克不及把定名实例改成默许实例大概相反。你一样也不克不及在实例安装后变动实例名。但是,你能够在安装SQLServer2000后再安装SQLServer7.0――假如你还没有安装一个默许实例的话。

假如一个SQLServer7.0的安装已存在,你能够将它晋级――经由过程在安装选择对话框当选择晋级路径并在后一个对话框中申明你想要晋级默许实例。但是,SQLServer2000将成为默许实例,SQLServer7.0在这台呆板大将不复存在。要两个版本都保存,把SQLServer2000作为一个定名实例来安装。

安装完SQLServer2000后,你可使用备份和恢复、分别和毗连、数据转换服务大概复制数据库导游来把SQLServer7.0的数据库调到SQLServer2000中来。注重,当你晋级一个先前的版本到SQLServer2000时,不管选择何种体例,你不克不及对数据库一样的拷贝指明凌驾一个的安装,以是每一个安装必需保护它本人的每一个数据库拷贝。

另外一个思索触及SQLServer7.0被称为“版本切换”的特征,它让SQLServer7.0与SQLServer6.5共存于统一台呆板。可是,同时只要一个安装能够是举动的,另外一个是运动的。当你挪用版本把持,它激活运动的安装并使举动的谁人中断举动。假如呆板上包含一个SQLServer6.5的安装――它没有以版本把持的情势和SQLServer7.0共存,安装程序请求你选择两个选项之一:晋级SQLServer6.5到SQLServer2000的默许实例而且在两个版本间坚持一个版本把持;晋级到SQLServer2000的定名实例。和从SQLServer7.0晋级分歧――它掩盖了以后的安装,6.5的安装保存在电脑中――不论你为晋级到2000选择何种路径。

假如7.0和6.5都已安装并以“版本把持”的情势共存在统一台呆板中,并且你不想晋级已存在的安装,你能够平安地在统一台呆板上安装2000的定名实例而且在统一台呆板上利用一切三个版本。但是,以版本把持情势共存的同时只要一个版本能够运转,而一切定名实例能够同时运转。

在申明了你的实例选项后,我们离开安装范例对话框。



自界说安装

在安装范例对话框中,安装导游请求你在3个安装范例中作选择:典范、最小和自界说。假如你选择典范大概最小,SQLServer对组件和子组件、排序划定规矩和收集库都利用默许选项。由于典范安装会潜伏地引发辣手的成绩,我激烈倡议一直选择自界说――即便你以为默许满意你的安装需求。一些之前说起的选项――出格是排序划定规矩――在安装后假如发明不满意需求长短常难以变动的。自界说安装让你再次反省那些选项。



平安

在安装过程当中,你在2个对话框中申明和平安相干的信息:服务账号和考证形式。在服务账号对话框里,你填进SQLServer和SQLServerAgent服务的服务账号细节。每一个服务利用在对话框中申明的账号来被操纵体系调进,而且在操纵体系中运转于这个账号的平安高低文里。好比:当你备份到一个磁盘设备,SQLServer反省你用来登录到SQLServer的登录是不是具有得当的“备份数据库”权限。但是,创立备份文件设备并写进,SQLServer必需在磁盘大概收集共享中创立一个文件,这个操纵利用SQLServer服务账号的平安高低文。

一样的,SQLServerAgent服务在SQLServerAgent服务账号的平安高低文下在SQLServer、操纵体系或收集中运转历程。固然一个在本机不具有办理权限的账号能够启动SQLServer服务,把SQLServer服务账号到场到当地办理员组是个好主张。不然,你必要分外地把一切所需的权限受权给该帐号,还必要受权该帐号符合的收集权限。

而假如你试图经由过程一个呆板上不具有办理员权限的服务账号来启动SQLServerAgent,它乃至没法启动。并且假如SQLServerAgent在收集上的其他呆板上实行操纵,好比复制大概多服务器事情,你应当利用一个在其他呆板上具有得当权限的域账号。好比在一个包括3台SQLServer呆板的单域多服务器情况中,一台主服务器把持方针服务器上的主动举动。由于两边(主服务器和方针服务器)必要互相通信,你必要确保主服务器上的SQLServerAgent服务账号在方针服务器上具有得当的权限,反之亦然。设置如许一个情况的最烦琐办法就是创立一个域账号,使它在一切服务器上成为当地办理员组的成员,而且经由过程该帐号来挪用一切的SQLServerAgent服务。

在身份考证形式对话框中,你能够选择是不是只同意Windows身份考证登录(Windows身份考证形式)大概Windows和SQLServer二者登录(夹杂形式)。你也能够为sa(SystemAdministrator)的SQLServer登录指定一个暗码。Windows身份考证形式是默许的和最经常使用的保举平安形式。但是,为平安起见,我倡议你选择夹杂形式而且为sa账号供应一个暗码,在安装完成和处置完一些其他的平安项目后,再把考证形式改成Windows身份考证形式。假如你选择Windows身份考证形式作为你的服务器的平安形式,安装历程把sa登录创立为有效而且没有暗码(由于SQLServer身份考证形式是有效的)。你能够在安装后变动sa的暗码――我激烈倡议你这么做――可是一入手下手就选择Windows身份考证形式是伤害的,由于你大概忘了变动暗码大概利用空暗码,觉得sa已生效。

不管你选择何种形式,安装程序都为BUILTINAdministrators组创立一个Windows身份考证的登录,它映照到当地呆板的办理员组。这个登录的创立意味着一切当地办理员组的成员,包含域组域办理员,都是你的SQLServer的体系办理员(sysadmin)脚色的成员。赐与收集和当地办理员在SQLServer上的毫无穷制的权限其实不老是一个好主张,由于这引进了平安风险,如许一来你大概决意从SQLServer的sysadmin脚色中移除BUILTINAdministrators,大概你大概从SQLServer中完整移往这些主动创立的登录而为DBA成员组用sysadmin身份创立一个登录――不是收集办理员。

假如你决意服从上述这些倡议,如许做就够了:起首,为DBA成员组用sysadmin身份创立一个登录,然后删除BUILTINAdministrators登录。假如你的服务器的身份考证形式时Windows并且你在为DBA创立登录之前删除一切具有sysadmin资历的登录,你会发明你本人被锁在了SQLServer以外,没法实行办理义务――如:创立新的登录。假如你落进了这个圈套,你仍旧能够经由过程把注册表HKEY_LOCAL_MACHINEOFTWAREMicrosoftMicrosoftSQLServer实例名MSSQLServerLoginMode的键值变动为2,来把SQLServer身份考证的形式改成夹杂形式,修正好后从头启动SQLServer服务便可。

固然经由过程注册表能够把持SQLServer的登录形式是便利的,它也有个弱点。任何人只需具有编纂注册表键值的权限,包含收集和当地办理员,都能够变动SQLServer的身份考证形式。假如你用Windows身份考证形式来安装SQLServer,sa是生效的可是仍旧具有一个空缺的暗码。假如接着你变动SQLServer身份考证形式到夹杂形式(这就使sa登录无效),任何人都能够作为sa登录。以是,相对确保你一完成安装就变动sa暗码大概在安装过程当中选择夹杂形式而且为sa供应一个暗码。



排序划定规矩

接上去,你必要选择排序划定规矩设置。SQLServer2000中的排序划定规矩(Collation)设置用来办理和言语相干的举动、工具称号和列的值的独一性,和排序划定规矩(sortingrules)。在排序划定规矩设置对话框里,你申明排序划定规矩并在SQLServer排序划定规矩和Windows排序划定规矩二者之间选择其一。假如你必要和之前SQLServer版本的向后兼容性,选择SQLServer排序划定规矩――好比,假如你盘算在一个初期版本的SQLServer和SQLServer2000之间利用复制。不然,选择Windows排序划定规矩。SQLServer2000的排序划定规矩设置,不论是Windows或是SQLServer,兼并了在先前版本中的3个自力的设置:字符集,排次序序和Unicode排序划定规矩。除整合旧的3个设置到一同外,SQLServer2000在排序划定规矩中还供应了比之前版本更加壮大的天真性。

在你安装SQLServer2000时选择的排序划定规矩决意了体系数据库的排序划定规矩设置。要在安装后更该体系数据库的排序划定规矩设置,你必要剧本化一切你的体系工具(好比:登录,动静,事情)而且运转rebuildm.exe,它用新的排序划定规矩重修了一切的体系数据库。但是,你不用先导出用户数据库中的一切数据再在运转完rebuildm.exe后把他们再导进――就像你再SQLServer7.0中所作的那样。你只须从头毗连用户数据库到SQLServer。你能够用分歧于默许服务器的排序划定规矩(这是模板体系数据库的)的排序划定规矩设置你的用户数据库,大概乃至用分歧于服务器设置的排序划定规矩毗连或恢复一个数据库。你能够今后修正用户数据库的默许排序划定规矩。关于特定的一列,你能够指定分歧于默许的数据库排序划定规矩的一种排序划定规矩;你乃至能够稍后修正列的排序划定规矩――假如该列上没有创立索引的话。

固然在排序划定规矩方面SQLServer2000是天真的,不要低估了你在安装时作的选择。正如我后面所言,服务器的排序划定规矩使用到一切的体系数据库而且决意了纪录在体系数据库中一切工具(如登录名,数据库名)的排序划定规矩。进一步而言,tempdb的排序划定规矩也是你在安装过程当中选择的服务器排序划定规矩。当你创立一个一时表,表的列利用tempdb的排序划定规矩――除非你在每列的界说里指明COLLATE数据库默许。



收集库

在申明了排序划定规矩设置后,你离开了收集库对话框。收集库是客户机使用程序用来和SQLServer通信的协定。客户机和SQLServer都必需有最少一个婚配的收集库,经由过程它二者能够通信。在收集库对话框中,你设置SQLServer将会用来和客户机通信的收集库。

在SQLServer6.5中,只要定名管道和多协定同意Windows身份考证;一切其他收集库只同意SQLServer身份考证。如许一来,关于SQLServer6.5来讲,你想要撑持的登录范例时你选择收集库的一个要素。进一步来讲,只要多协定同意数据加密,以是假如你SQLServer6.5撑持数据加密,你就不能不选择这个收集库。在SQLServer7.0中,一切收集库撑持Windows身份考证,在这个意义上你就加倍天真,可是多协定仍旧是独一同意数据加密的收集库。

在SQLServer2000里,你能够经由过程利用SQLServer收集工具和SQLServer客户机收集工具的平安套接字层(SecureSocketLayer,SSL)来对一切收集库强迫加密,如许一来,加密要素不再决意收集库的选择。一样,在SQLServer2000里,多协定不撑持定名实例计划(服务器名实例名),如许的话,当你利用定名实例时,多协定也不是个好的选择。SQLServer2000中最通用的收集库也许是TCP/IP套接字吧。它供应了优秀的功能,同意Windows身份考证,并且你能够在必要时对它举行强迫SSL加密。

年夜多半利用SQLServer初期版本的用户晓得SQLServer的默许TCP端口是端口1433。当利用默许端口时,客户机毗连除服务器名大概IP地点不必要供应端标语。但是,SQLServer2000撑持多个实例,这没法一切利用一样的端标语。以是当你安装一个定名实例时,安装程序倡议把0作为端标语。端标语为0意味着当SQLServer第一次启动时,它静态地选择一个余暇的端标语而且把它永世保存大概直到你稍先手工修正它为止。那末客户机毗连怎样持续经由过程仅仅供应服务器称号/IP地点+实例名而不必指定端标语找到SQLServer呢?SQLServer2000中的一个监听器服务监听端口1433上的客户机哀求,然后经由过程检测哀求中的实例名并把它和实例的端标语婚配,再把该哀求重定向到得当的实例。



无人值守和远程安装

如今我们的尺度安装已完成,让我们会商一下无人值守安装。Setupsql.exe程序让你纪录下一个应对文件,它包含了你在安装程序对话框中常选的关于各类安装选项的一切回覆。稍后,你可以经由过程挪用以该应对文件作为参数的setupsql.exe命令来运转一个安装。这类无需任何用户干涉的安装范例被称为无人值守安装。

要筹办应对文件,先启动安装程序,在安装选择对话框当选择初级选项,在对话框当选择拔取“纪录无人值守.ISS文件”。安装程序会引导你完成惯例的安装对话框,个中你能够填进一切你想要纪录的选项。当你完成后,安装程序在WINNT文件夹下创立一个名为setup.iss的文件。

要启动一个无人值守安装,运转setupsql.exe程序,用-s作为实行宁静安装的参数、-fl参数指定一个应对文件。比方,要启动一个宁静的、无人值守的安装――安装完成后欠亨知你,你可使用以下命令:

<path>etupsql.exeCsCfl<path>etup.iss

假如你想在安装完成时失掉关照,从命令行实行以下setupsql.exe程序,大概把它写进一个批处置文件中:

start/wait<path>etupsql.exe-sCfl<path>etup.iss

直到安装停止,把持才会传送到下一条命令。当你从批处置文件启动安装,而这个文件又包含其他依附于安装的举动时,利用start/wait选项是出格主要的。比方,假定你要为一个名为INST1的定名实例实行无人值守安装来创立批处置文件,然后启动SQLServer服务,再运转一个用来创立数据库及其工具(如:表、存储历程)的sql剧本。这个批处置文件看起来大概像如许:

start/waitD:X86etupetupsql.exeCsCflC:WINNTetup.iss

netstartMSSQL$INST1

OSQL/E/I“c:datacriptscreateappdb.sql”

假如你不利用start/wait选项,把持从安装一入手下手就移到了批处置文件的第二条命令,而这条NETSTART命令试图启动一个还不存在的服务。

对一个无人值守安装举行妨碍扫除要比看待尺度安装的妨碍扫除更必要稳重看待。尺度安装常常在安装程序碰到成绩时经由过程显现一个包括堕落信息的对话框(并伴随嘹亮的告诫声)来关照你。而无人值守安装只是复杂地停止,且没有交互的关照。

要懂得怎样对无人值守安装举行妨碍扫除,让我们来看一组我碰到过的成绩。假定你已在服务器上完成了另外一个产物的安装,然后你试图实行一个SQLServer的无人值守安装。安装程序检测到在前一个安装停止后服务器还没有重启,因而保持安装,同时没有任何信息提醒。假如你坚持义务办理器窗口翻开,你会注重到setupsql.exe程序不举动,以是SQLServer没有被安装。你也应当反省日记文件。一旦安装乐成,WINNTetup.log文件应当显现0作为堕落代码;但是,在我形貌的情形中,他极可能显现-1,这暗示一个基础毛病。你也应当看一下堕落信息。

当实行无人值守安装时,我碰到过量次的另外一个毛病是“对话框序次杂乱”。在我挪用安装程序后不久我就意想到这一成绩的存在――那是在我翻开义务办理器并看到setupsql.exe固然在运转可是没有像一般的无人值守安装那样挪用和开释历程。同时,安装程序一般在ProgramFilesMicrosoftSQLServer下创立的文件夹也没有被创立。Setupsql.exe程序看来并没有占用CPU大概I/O资本,只是在约莫10分钟后消散了。Setup.log文件显现一个-12的毛病代码而sqlstp.log文件显现没有毛病――实践上,它看来还未完成。Sqlstp包括了不完全的注重事项,只是一条动静――BeginAction:DialogShow<dialogname>。BOL显现了以下有关毛病代码-12的信息:“对话框序次杂乱。这是一个罕见毛病,由在安装初始化文件(Setup.iss)文件中的一个对话框序次杂乱所引发。这是因为Setup.iss文件创立过程当中的体系成绩所发生。”足以确认,在我从头对Setup.iss文件排序后,无人值守安装乐成完成。

除完整安装,你还能够实行SQLServer2000服务包的无人值守安装。要把服务包使用到默许实例上,从服务包的安装目次挪用setupsql.exe程序,指明应对文件为位于服务包安装目次根目次下的sql2kdef.iss。比方:假如服务包安装文件位于c:ql2ksq2下,实行进下命令:

start/waitc:ql2ksp2x86etupetupsql.exeCsCflc:ql2ksp2ql2kdef.iss

要把服务包使用到定名实例上,利用sql2knm.iss应对文件,可是起首修正文件中的以下两行来对应准确的定名实例:

InstanceName=INSTANCE_NAME

NMPPipeName=.pipeMSSQL$INSTANCE_NAMEqlquery

另外一个初级选项――远程安装――让你在一台远程的电脑上安装SQLServer2000。你能够从一台当地的电脑上手工纪录下一个setup.iss文件,把它复制到远程电脑上,在激活setupsql.exe程序和在远程电脑上的setup.iss文件。但是,你能够替本人省些贫苦――经由过程在当地电脑上运转setupsql.exe程序,在电脑名对话框当选择远程电脑,指明你想要安装到的电脑名。当你点击下一步时,远程安装信息对话框会显现出来。

起首你要供应帐号细节(用户、暗码、域),到方针文件夹的UNC路径和源安装文件的UNC路径。接上去,安装程序将指引你完成惯例安装对话框并依据你的选择纪录下setup.iss文件。接着,程序复制setup.iss文件到方针电脑的WINNT文件夹下,再用复制的setup.iss文件来激活setupsql.exe。

假如你在方针电脑上翻开义务办理器,你会看到setupsql.exe历程在安装过程当中挪用和开释其他历程。在当地电脑上,安装程序显现远程安装正在举行中,而且会在完成时关照你。



最初的话

固然基础安装看来复杂,你仍需队与你所选择的安装选项赐与亲切注重,而且完整了解它们。优秀的安装选择为运转和办理SQLServer供应了一个坚固的基本。而假如你以为实行无人值守安装和远程安装听起来庞大的话,我但愿这篇文章有助于你对它们加深懂得。
Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
不帅 该用户已被删除
沙发
发表于 2015-1-19 13:52:12 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-24 15:32:03 | 只看该作者
比如日志传送、比如集群。。。
爱飞 该用户已被删除
地板
发表于 2015-2-1 19:59:10 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
5#
发表于 2015-2-7 15:03:47 | 只看该作者
学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
飘灵儿 该用户已被删除
6#
发表于 2015-2-22 10:48:21 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
admin 该用户已被删除
7#
发表于 2015-3-7 00:11:15 | 只看该作者
大家注意一点。如下面的例子:
柔情似水 该用户已被删除
8#
发表于 2015-3-13 23:15:43 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
若天明 该用户已被删除
9#
发表于 2015-3-20 23:05:47 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 04:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表