SqlServer启动参数配置
运⾏参数。
SqlServer的启动可以为Windows服务⽅式(默认),也可以以应⽤程序⽅式启动。下⾯介绍以应⽤程序⽅式启动时的参数问题。
sqlservr应⽤程序⽤法:
sqlservr[-sinstance_name][-c][-dmaster_path][-f]
[-eerror_log_path][-lmaster_log_path][-m]
[-n][-Ttrace#][-v][-x][-gnumber][-O][-ynumber]
-sinstance_name
指定要连接到的SQLServer实例。如果未指定命名实例,sqlservr将启动SQLServer默认实例。重要启动SQLServer实例时,必须从实例所在的适当⽬录使⽤sqlservr应⽤程序。对于默认实例,从\MSSQL\Binn⽬录运⾏sqlservr。对于命名实例,在\MSSQL$instance_name\Binn⽬录运⾏sqlservr。
-
c
表⽰以独⽴于WindowsNT服务控制管理器的⽅式启动SQLServer实例。当从命令提⽰符下启动SQLServer时,可使⽤该选项缩短启动SQLServer的时间。(注意:当使⽤该选项时,⽆法通过使⽤SQLServer服务管理器或netstop命令停⽌SQLServer,⽽且如果已从MicrosoftWindowsNT?系统注销,则SQLServer将停⽌运⾏。)-dmaster_path指出master 数据库⽂件的完全合法路径。在-d和master_path之间没有空格。
-f
以最⼩配置模式启动服务器。然后,系统管理员可对配置选项重新配置(使⽤sp_configure系统存储过程)。
-eerror_log_path
表⽰错误⽇志⽂件的完全合法路径。如果未指定路径,则默认实例的默认位置是x:\ProgramFiles\MicrosoftSQLServer\MSSQL\Log\Errorlog,命名实例的默认位置是
x:\ProgramFiles\MicrosoftSQLServer\MSSQL$instance_name\Log\Errorlog。在-e和error_log_path之间没有空格。
-lmaster_log_path
createprocessa
指⽰master数据库事务⽇志⽂件的完全合法路径。在-l和master_log_path之间没有空格。
-m
表⽰在单⽤户模式下启动SQLServer实例。如果SQLServer是以单⽤户模式启动的,则只能连接⼀个⽤户。CHECKPOINT机制(它确保完成的事务定期从磁盘⾼速缓存写⼊数据库设备中)将不启动。(⼀般情况下,如果您遇到需要修复的系统数据库问题时,可使⽤此选项。)
-n
表⽰您不想使⽤WindowsNT应⽤程序⽇志来记录SQLServer事件。如果⽤-n选项启动SQLServer实例,则最好也使⽤-e选项,否则将不会记录SQLServer事件。
-Ttrace#
表⽰应使⽤指定的有效跟踪标记(trace#)来启动SQLServer实例。跟踪标志⽤来启动具有⾮标准⾏为的服务器。有关可⽤跟踪标记(trace#)的更多信息,请参见跟踪标记。重要当指定跟踪标志时,请使⽤–T来传递跟踪标志号。SQLServer接受⼩写字母t(-t);然⽽,-t还设置SQLServer⽀持⼯程师所需的其它内部跟踪标记。
-v
显⽰服务器的版本号。
-x
禁⽤维护CPU统计。
-gmemory_to_reserve
指定内存的兆字节整数,该内存被保留下来⽤于SQLServer2000内部(进程内)运⾏的其它应⽤程序。
不配置的话,OPENROWSET经常死掉,⽽且重启后才能恢复
-O
指定不需要分布式COM(DCOM),从⽽禁⽤异类查询。
-yerror_number
如果SQLServer2000遇到在该选项中指定的错误信息,它将把表象堆栈跟踪写⼊错误⽇志。可以使⽤多个–y参数指定多个错误。
2.系统数据库路径问题.
⼀般情况下,正常安装sqlserver之后,master等系统数据库的路径都是被设置为绝对路径,如果要改正数据库的路径为相对路径,可以使⽤以下SQl语句:
sql:=format('updatesysaltfilessetfilename='%s'wherefilename='%s'',
['.\..\data\'+extractfilename(MDFFile),MDFFile]);
ADOQuery1.Close;
ADOQuery1.SQL.Text:=sql;
ADOQuery1.ExecSQL;
sql:=format('updatesysaltfilessetfilename='%s'wherefilename='%s'',
['.\..\data\'+extractfilename(LogFile),LogFile]);
ADOQuery1.Close;
ADOQuery1.SQL.Text:=sql;
ADOQuery1.ExecSQL;
sql:=Format('updatesysdatabasessetfilename='%s'wherename='%s'',['.\..\data\'+extractfilename(MDFFile),]);
ADOQuery1.Close;
ADOQuery1.SQL.Text:=sql;
ADOQuery1.ExecSQL;
⼤家打开sysaltfiles表和sysdatabases⼀看就知道了,不多说了。除了系统数据库,其它的数据库也可以使⽤这种⽅法修改为相对路径。
使⽤相对路径的好处是可以让你的绿⾊Sqlserver随时copy到任意⽬录或是任意其它机器上启动,并且原来的数据库全部可以使⽤,如果是绝对路径到了其它机器就不⾏了。
3.注册表问题:
⼤家可以看下⾯的注册表⽂件
WindowsRegistryEditorVersion5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\$name]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\$name\MSSQLServer]
"AuditLevel"=dword:00000000
"DefaultLogin"="guest"
"ListenOn"=hex(7):53,00,53,00,4d,00,53,00,53,00,48,00,37,00,30,00,00,00,53,00,53,00,4e,00,45,00,54,00,4c,00,49,00,42,00,00,00,00,00
"LoginMode"=dword:00000000
"Map_"="\\"
"Map#"="-"
"Map$"=""
"SetHostName"=dword:00000000
"Tapeloadwaittime"=dword:ffffffff
"uptime_pid"=dword:00001044
"uptime_time_utc"=hex:26,57,c8,b3,fb,bb,c5,01
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\$name\MSSQLServer\CurrentVersion]
"CurrentVersion"="8.00.194"
"RegisteredOwner"=""
"SerialNumber"=""
"CSDVersionNumber"=dword:00000300
"CSDVersion"="8.00.761"
"Language"=dword:00000804
"checksum"=hex:37,35,32,32,63,31,35,38,61,65,37,64,34,63,64,37,35,30,64,61,30,33,34,62,37,64,63,32,30,61,36,36,39,37,62,34,61,35,65,36,63,66,62,61,38,37,39,36,37,31,66,33,39,61,36,65,35,64,30 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\$name\MSSQLServer\Parameters]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\$name\MSSQLServer\SuperSocketNetLib]
"ProtocolList"=hex(7):74,00,63,00,70,00,00,00,6e,00,70,00,00,00,00,00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\$name\MSSQLServer\SuperSocketNetLib\Np]
"PipeName"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\$name\MSSQLServer\SuperSocketNetLib\Tcp]
"TcpHideFlag"=dword:00000000
"TcpDynamicPorts"="$port"
"TcpPort"="$port"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\$name\Setup]
"FeatureName"="SqlRun"
"FirstStart"=dword:00000000
"ProductCode"="{E09B48B5-E141-427A-AB0C-D3605127224A}"
"SQLDataRoot"="$path"
"SQLPath"="$path"
这是注册⼀个SqlServer实例所要使⽤的注册表,把⾥⾯的$name,$path,$port替换成你定义的实例名,当前程序所有路径,监听端⼝,然后导⼊注册表就可以了。
4.启动SqlServer
iPath:=ExtractFilePath(Application.ExeName);
CommandLine:=PChar(iPath+'-d.\..\data\master.mdf-l.\..\data\mastlog.ldf-e.\..\+Edit1.Text);
CreateProcess(
nil,
CommandLine,
nil,
nil,
true,
CREATE_NO_WINDOW,
nil,
PChar(iPath+'binn\'),
StartupInfo,
ProcessInformation
)
也可以直接写个.bat运⾏就ok了.
5.启动⽇志问题。
这个问题最简单,因为在执⾏时指定的有log⽂件,你只⽤⽤个定时器(50ms)读⽂件,就可以在程序中显⽰出来启动⽇志了,呵呵,这只是个思想,具体的⾃已想
办法吧.
6.停⽌服务
⽤CreateProcess可以得到进程ID,TerminateProcess就关了sqlserver进程,服务就停了,简单吧。
根据上⾯的6个步骤,你就可以⾃已搞定⼀个绿⾊的SqlServer了.并且你可以根据不同的sqlserver版本,整理出所有版本的绿⾊sqlserver。
绿⾊sqlserver企业版
绿⾊sqlserver个⼈版
绿⾊MSDE
......
这样以后遇到什么操作系统都全部搞定。
最后说⼀句,只要你能把⼏个Sqlserver版本的数据整理好(主要是系统数据库的路径问题(好像现在盒⼦已经有绿⾊企业版的⽂件了),DLL全部copy就OK了),都可以使⽤
我的管理⼯具进⾏管理,呵呵,当然你也可以作出⾃已的管理器。
我的管理器,主要是为了我⾃已⽤,⼤家如果⽤着可以,请多提意见。由于sqlserver数据太⼤,并且盒⼦上已经有了,这次只上传了exe和⽬录结构。
不知道说的是否正确,如果还有什么问题,我们⼀起交流.Email:11826088@163
posted on 2006-04-05 10:36 ⼈淡如菊阅读(13) 评论(1) 编辑收藏收藏⾄365Key
评论
#re: SQL 绿⾊版
⼈淡如菊
Posted @ 2006-04-05 10:55
sqlserver2000安装不成功之处理
SQLServer2000安装
sqlserver2000安装不成功之处理
1、先停⽌服务,退出,再到控制⾯板正常卸载;
2、删除安装路径下的所有⽬录⽂件夹,包括注册表,如果担⼼删除不到位,可以⽤查命令,将所有*SQL*的逐⼀查出,然后再⼀⼀确认删除;(如果安装SQL时,不是按默认
路径安装,除了删除安装路径下的所有⽬录⽂件夹外,主系统盘⾥的程序组⾥的相应⽂件夹也要删除)
3、删除的时候还应考虑到C:\Program Files\Common Files\Microsoft Shared\web server extensions\40\bin\FPMMC.MSC;
4、管理⼯具中,将SQLSERVERAGENT服务停⽌服务;此服务程序存放在D:\Program Files\Microsoft SQL Server\MSSQL\ -i MSSQLSERVER
5、将C:\WINDOWS⽬录下的sql.mif、sqlsp.log、sqlstp.log、sqlsrv32.rll、 sqlwid.dll、sqlwoa.dll、dbmsqlgc.dll、SQLSRV32.dll、sqlclnt.rsp、 sqlunirl.dll、SQLSERVR.EXE-18F260D8.pf、SQLMANGR.EXE-0150BA62.pf等清除;(偶机器 SQL是打过SP4的)
6、删除时还应将C:\Program Files\Common Files\Microsoft Shared\SQL ,
,sqldbg.dll也清除掉;
7、如果安装不成功,记得要将C:\WINDOWS\Temp\SQLSETUP\BIN\SCM.EXE⼀并清除;
8、卸载⼲净后,如果怕再次安装出错,那就建议按默认路径安装;
9、SQL在安装过程中如果出错,系统会锁定⽂件,当然,卸载程序也会,但可以通过修改注册表,就不⽤重新启动,再尝试安装了。(建议装完SQL后还是重新启动⼀下机器,就避免修改注册表了)
避免重启,注册表修改:(1)运⾏REGEDIT;(2)注册表中选择HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Session Manager,将光标定位于此;(3)选择⽂件->导出,再次保存(安全起见);(4)在右边窗中右击PendingFile Rename Operations,选择删除,最后确认;
10、如果安装不成功,还可以通过C:\WINDOWS\sqlstp.log查看安装不成功的原因,这个是最利于解决问题的了;
11、同时需要将C:\Documents and Settings\XXX\Local Settings\Temp\所有关于*SQL*.*全部清除;例如将sqlsp.out,SQLSERVR.DBD,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。