SQL Server无人值守安装
第1步: 判断SQL Server是否已经安装过,如果已经安装,则启动服务器(第4步);
SQL Server是否已经安装的判断方法:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Setup下的SQLPath键值
为SQL Server的安装路径,判断安装路径是否存在就可以了。
第2步: SQL Server的安装命令:
如果是桌面版本:
SETUPSQL.EXE k=Dk -s -m -SMS -f1 sql70ins.iss
否则去掉参数:k=Dk
第3步: 建一个循环,通过进程来判断安装程序的结束,一旦结束则启动服务器(第4步);
第4步: 通过进程来判断SQL Server服务是否已经启动,如果已经启动则做第5步;
假设SQL Server的安装路径为c:\mssql7,数据文件路径为d:\mssql7,
则启动SQL Server服务的命令为:
c:\mssql\binn\sqlservr.exe -c -dd:\mssql7\data\master.mdf
-ed:\mssql7\log\errorlog -ld:\mssql7\data\mastlog.ldf
第5步: 导入数据库:
先把数据文件与日志文件拷入d:\mssql7\data下,
假设SQL Server的安装路径为c:\mssql7,数据文件为d:\mssql7\data\test_data.mdf,
日志文件为d:\mssql7\data\test_log.ldf,数据库名为test,则数据库导入的命令为:
sp_attach_db 'test','d:\mssql7\data\test_data.mdf','d:\mssql7\data\test_log.ldf'
当然,如果要自动执行的话,把上面的语句写入文件(假设为c:\temp\attachdb.sql)中,
然后调用运行命令:
c:\mssql\binn\osql.exe -S服务器名 -Usa -P -dMaster -ic:\temp\attachdb.sql
最后,当然您还可以加入一些自己的应用程序的安装,这样的话,您就可以发布您那完整的数据库应用
程序了,所有安装,包括数据库全部自动进行,不需要用户的干预。
如果不能正确安装,查看一下Windows目录下的sqlstp.log文件即可查出原因,对症下药就行了。
以下为文件sql70ins.iss的内容:
[InstallShield Silent]
Version=v5.00.000
File=Response File
[DlgOrder]
Dlg0=SetupMethod-0
Count=11
Dlg1=SdWelcome-0
Dlg2=SdLicense-0
Dlg3=SdRegisterUser-0
Dlg4=CDKEYDialog-0
Dlg5=SetupTypeSQL-0
Dlg6=DlgCpSortUnicode-0
Dlg7=DlgServerNetwork-0
Dlg8=DlgServices-0
Dlg9=SdStartCopy-0
Dlg10=SdFinish-0
[SetupMethod-0]
Component-type=string
Component-count=1
Component-0=Local
Result=1
[SdWelcome-0]
Result=1
[SdLicense-0]
Result=1
[SdRegisterUser-0]
szName=MSEMPLOYEE
szCompany=Microsoft
Result=1
[CDKEYDialog-0]
svCDKey=47324-777-7777777-22042
Result=1
[SetupTypeSQL-0]
;Sql Server程序的安装路径
szDir=C:\MSSQL7
Result=301
;Sql Server数据文件的路径
szDataDir=C:\MSSQL7
[DlgCpSortUnicode-0]
;如果是简体中文字符集SortId设为199,是ISO/1252字符集SortId设为52
;如果是简体中文字符集LCID设为2052,是ISO/1252字符集LCID设为1033
SortId=52
LCID=1033
CompStyle=196609
Result=1
[DlgServerNetwork-0]
NetworkLibs=4095
TCPPort=1433
TCPPrxy=Default
NMPPipeName=\\.\pipe\sql\query
Result=1
[DlgServices-0]
Local-Domain=3855
AutoStart=61455
Result=1
[SdStartCopy-0]
Result=1
[License]
LicenseMode=PERSERVER
LicenseLimit=5
[SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
第1步: 判断SQL Server是否已经安装过,如果已经安装,则启动服务器(第4步);
SQL Server是否已经安装的判断方法:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Setup下的SQLPath键值
为SQL Server的安装路径,判断安装路径是否存在就可以了。
第2步: SQL Server的安装命令:
如果是桌面版本:
SETUPSQL.EXE k=Dk -s -m -SMS -f1 sql70ins.iss
否则去掉参数:k=Dk
第3步: 建一个循环,通过进程来判断安装程序的结束,一旦结束则启动服务器(第4步);
第4步: 通过进程来判断SQL Server服务是否已经启动,如果已经启动则做第5步;
假设SQL Server的安装路径为c:\mssql7,数据文件路径为d:\mssql7,
则启动SQL Server服务的命令为:
c:\mssql\binn\sqlservr.exe -c -dd:\mssql7\data\master.mdf
-ed:\mssql7\log\errorlog -ld:\mssql7\data\mastlog.ldf
第5步: 导入数据库:
先把数据文件与日志文件拷入d:\mssql7\data下,
假设SQL Server的安装路径为c:\mssql7,数据文件为d:\mssql7\data\test_data.mdf,
日志文件为d:\mssql7\data\test_log.ldf,数据库名为test,则数据库导入的命令为:
sp_attach_db 'test','d:\mssql7\data\test_data.mdf','d:\mssql7\data\test_log.ldf'
当然,如果要自动执行的话,把上面的语句写入文件(假设为c:\temp\attachdb.sql)中,
然后调用运行命令:
c:\mssql\binn\osql.exe -S服务器名 -Usa -P -dMaster -ic:\temp\attachdb.sql
最后,当然您还可以加入一些自己的应用程序的安装,这样的话,您就可以发布您那完整的数据库应用
程序了,所有安装,包括数据库全部自动进行,不需要用户的干预。
如果不能正确安装,查看一下Windows目录下的sqlstp.log文件即可查出原因,对症下药就行了。
以下为文件sql70ins.iss的内容:
[InstallShield Silent]
Version=v5.00.000
File=Response File
[DlgOrder]
Dlg0=SetupMethod-0
Count=11
Dlg1=SdWelcome-0
Dlg2=SdLicense-0
Dlg3=SdRegisterUser-0
Dlg4=CDKEYDialog-0
Dlg5=SetupTypeSQL-0
Dlg6=DlgCpSortUnicode-0
Dlg7=DlgServerNetwork-0
Dlg8=DlgServices-0
Dlg9=SdStartCopy-0
Dlg10=SdFinish-0
[SetupMethod-0]
Component-type=string
Component-count=1
Component-0=Local
Result=1
[SdWelcome-0]
Result=1
[SdLicense-0]
Result=1
[SdRegisterUser-0]
szName=MSEMPLOYEE
szCompany=Microsoft
Result=1
[CDKEYDialog-0]
svCDKey=47324-777-7777777-22042
Result=1
[SetupTypeSQL-0]
;Sql Server程序的安装路径
szDir=C:\MSSQL7
Result=301
;Sql Server数据文件的路径
szDataDir=C:\MSSQL7
[DlgCpSortUnicode-0]
;如果是简体中文字符集SortId设为199,是ISO/1252字符集SortId设为52
;如果是简体中文字符集LCID设为2052,是ISO/1252字符集LCID设为1033
SortId=52
LCID=1033
CompStyle=196609
Result=1
[DlgServerNetwork-0]
NetworkLibs=4095
TCPPort=1433
TCPPrxy=Default
NMPPipeName=\\.\pipe\sql\query
Result=1
[DlgServices-0]
Local-Domain=3855
AutoStart=61455
Result=1
[SdStartCopy-0]
Result=1
[License]
LicenseMode=PERSERVER
LicenseLimit=5
[SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
,会自动生成setup.iss这个无人值守安装文件运行SQL SERVER安装程序--安装 sql server 2000组件--安装数据库服务器--连续两次<下一步>--现在到了"安装选择"这一步,选择第三项"高级选项"--在<下一步>,在"高级选项"中选择第一项"记录无人值守.iss文件"剩下的步骤按照正常安装SQL SERVER就步骤去做就可以了.最后点击完成.然后到 c:\winnt (win9x/me是c:\windows\)目录下,将:setup.iss文件复制出来,比如复制到c:\setup.iss,这一步很重要,一定要将setup.iss复制出来,否则,一运行sql server安装程序,你的setup.iss文件就会被重写.这个setup.iss就是你的无人值守安装文件.你可以将它保存起来.
在运行对话框执行:
x:\x86\setup\setupsql.exe -s -m -SMS -f1 "c:\setup.iss"
x:是指你的sql server安装光盘驱动器号注意,这个安装过程不会有任何提示和窗口显示
你可以打开任务管理器,里面有个sqlstp的进程,这个就是sql server无人值守安装的进程,这个进程结束后,整个sql server的安装工作也就结束了.你创建一个setup.bat的批处理文件,内容为:
@echo off
rem Performs SQL Server Full Server Unattended Install operationrem Before running this batch file, you must edit the corresponding
rem unattended install file (sqlins.iss), and enter your
rem Product Key (CD-Key) from your CD.
clsecho *
echo Unattended install for SQL Server is starting.
echo *
echo *
echo Waiting for SQL Server Setup to finish...
@echo on
start /wait x:\x86\setup\setupsql.exe -s -m -SMS -f1 "setup.iss"
@echo off执行这个批处理来安装的话,就会有一个命令提示符的窗口显示,一直到安装过程结束`
Version=v5.00.000
File=Response File
[File Transfer]
OverwriteReadOnly=NoToAll
[DlgOrder]
Dlg0=SdWelcome-0
Count=16
Dlg1=DlgMachine-0
Dlg2=DlgInstallMode-0
Dlg3=DlgAdvanced-0
Dlg4=SdRegisterUser-0
Dlg5=SdLicense-0
Dlg6=DlgClientServer-0
Dlg7=DlgInstanceName-0
Dlg8=SetupTypeSQL-0
Dlg9=SQLComponentMult-0
Dlg10=DlgServices-0
Dlg11=DlgSQLSecurity-0
Dlg12=DlgCollation-0
Dlg13=DlgServerNetwork-0
Dlg14=SdStartCopy-0
Dlg15=SdFinish-0
[SdWelcome-0]
Result=1
[DlgMachine-0]
Type=1
Result=1
[DlgInstallMode-0]
Type=32
Result=1
[DlgAdvanced-0]
AdvType=4
Result=1
[SdRegisterUser-0]
szName=zj
Result=1
[SdLicense-0]
Result=1
[DlgClientServer-0]
Type=2
Result=1
[DlgInstanceName-0]
InstanceName=MSSQLSERVER
Result=1
[SetupTypeSQL-0]
szDir=d:\Program Files\Microsoft SQL Server
Result=303
szDataDir=d:\Program Files\Microsoft SQL Server
[SQLComponentMult-0]
SQLProg\SQLServr\SCMDev-type=string
SQLProg\SQLServr\SCMDev-count=3
SQLProg\SQLServr\SCMDev-0=SQLProg\SQLServr\SCMDev\SCMh
SQLProg\SQLServr\SCMDev-1=SQLProg\SQLServr\SCMDev\SCMX86Lb
SQLProg\SQLServr\SCMDev-2=SQLProg\SQLServr\SCMDev\SCMALb
SQLProg\SQLServr-type=string
SQLProg\SQLServr-count=6
SQLProg\SQLServr-0=SQLProg\SQLServr\Help
SQLProg\SQLServr-1=SQLProg\SQLServr\SCMDev
SQLProg\SQLServr-2=SQLProg\SQLServr\Rs1033
SQLProg\SQLServr-3=SQLProg\SQLServr\RsIntl
SQLProg\SQLServr-4=SQLProg\SQLServr\ActiveX
SQLProg\SQLServr-5=SQLProg\SQLServr\System
SQLProg\ReplSupp-type=string
SQLProg\ReplSupp-count=4
SQLProg\ReplSupp-0=SQLProg\ReplSupp\ReplDat
SQLProg\ReplSupp-1=SQLProg\ReplSupp\RepComm
SQLProg\ReplSupp-2=SQLProg\ReplSupp\RepNoDk
SQLProg\ReplSupp-3=SQLProg\ReplSupp\ActiveX
SQLProg\SvrExt-type=string
SQLProg\SvrExt-count=3
SQLProg\SvrExt-0=SQLProg\SvrExt\Help
SQLProg\SvrExt-1=SQLProg\SvrExt\SvrExtRs
SQLProg\SvrExt-2=SQLProg\SvrExt\ResIntl
SQLProg\MSSearch-type=string
SQLProg\MSSearch-count=2
SQLProg\MSSearch-0=SQLProg\MSSearch\Help
SQLProg\MSSearch-1=SQLProg\MSSearch\ActiveX
SQLProg\Symbols-type=string
SQLProg\Symbols-count=2
SQLProg\Symbols-0=SQLProg\Symbols\EXE
SQLProg\Symbols-1=SQLProg\Symbols\DLL
SQLProg\Perfmon-type=string
SQLProg\Perfmon-count=1
SQLProg\Perfmon-0=SQLProg\Perfmon\System
SQLProg-type=string
SQLProg-count=14
SQLProg-0=SQLProg\SQLServr
SQLProg-1=SQLProg\ReplSupp
SQLProg-2=SQLProg\Install
SQLProg-3=SQLProg\System
SQLProg-4=SQLProg\SvrExt
SQLProg-5=SQLProg\Dat
SQLProg-6=SQLProg\DatSmpl
SQLProg-7=SQLProg\BaseSys
SQLProg-8=SQLProg\BaseBinn
SQLProg-9=SQLProg\MSSearch
SQLProg-10=SQLProg\BaseInst
SQLProg-11=SQLProg\Symbols
SQLProg-12=SQLProg\Perfmon
SQLProg-13=SQLProg\Root
MgtTool\SEM\ActiveX-type=string
MgtTool\SEM\ActiveX-count=2
MgtTool\SEM\ActiveX-0=MgtTool\SEM\ActiveX\Res1033
MgtTool\SEM\ActiveX-1=MgtTool\SEM\ActiveX\ResIntl
MgtTool\SEM\OLEDB-type=string
MgtTool\SEM\OLEDB-count=2
MgtTool\SEM\OLEDB-0=MgtTool\SEM\OLEDB\Res1033
MgtTool\SEM\OLEDB-1=MgtTool\SEM\OLEDB\ResIntl
MgtTool\SEM-type=string
MgtTool\SEM-count=12
MgtTool\SEM-0=MgtTool\SEM\HTML
MgtTool\SEM-1=MgtTool\SEM\MSD98
MgtTool\SEM-2=MgtTool\SEM\MSD98SYS
MgtTool\SEM-3=MgtTool\SEM\MSD98Res
MgtTool\SEM-4=MgtTool\SEM\MSD98Hlp
MgtTool\SEM-5=MgtTool\SEM\Help
MgtTool\SEM-6=MgtTool\SEM\Res1033
MgtTool\SEM-7=MgtTool\SEM\ResIntl
MgtTool\SEM-8=MgtTool\SEM\MSD98RsI
MgtTool\SEM-9=MgtTool\SEM\ActiveX
MgtTool\SEM-10=MgtTool\SEM\Scripts
MgtTool\SEM-11=MgtTool\SEM\OLEDB
MgtTool\Profiler-type=string
MgtTool\Profiler-count=3
MgtTool\Profiler-0=MgtTool\Profiler\Help
MgtTool\Profiler-1=MgtTool\Profiler\Res1033
MgtTool\Profiler-2=MgtTool\Profiler\ResIntl
MgtTool\Qryanlz-type=string
MgtTool\Qryanlz-count=3
MgtTool\Qryanlz-0=MgtTool\Qryanlz\Help
MgtTool\Qryanlz-1=MgtTool\Qryanlz\Res1033
MgtTool\Qryanlz-2=MgtTool\Qryanlz\ResIntl
MgtTool\Wzcnflct-type=string
MgtTool\Wzcnflct-count=4
MgtTool\Wzcnflct-0=MgtTool\Wzcnflct\WzcnHlp
MgtTool\Wzcnflct-1=MgtTool\Wzcnflct\Wzcn1033
MgtTool\Wzcnflct-2=MgtTool\Wzcnflct\WzcnOthr
MgtTool\Wzcnflct-3=MgtTool\Wzcnflct\WzcnCmn
MgtTool-type=string
MgtTool-count=7
MgtTool-0=MgtTool\SEM
MgtTool-1=MgtTool\Profiler
MgtTool-2=MgtTool\Qryanlz
MgtTool-3=MgtTool\DTCCLi
MgtTool-4=MgtTool\Wzcnflct
MgtTool-5=MgtTool\UtilSys
MgtTool-6=MgtTool\UtilBinn
Connect-type=string
Connect-count=1
Connect-0=Connect\ConnSys
Books\Bookso-type=string
Books\Bookso-count=1
Books\Bookso-0=Books\Bookso\Utils
Books-type=string
Books-count=1
Books-0=Books\Bookso
DevTools\VDI-type=string
DevTools\VDI-count=2
DevTools\VDI-0=DevTools\VDI\Inc
DevTools\VDI-1=DevTools\VDI\Samples
DevTools\Dbg Int-type=string
DevTools\Dbg Int-count=2
DevTools\Dbg Int-0=DevTools\Dbg Int\Dbg Int Common
DevTools\Dbg Int-1=DevTools\Dbg Int\EXE
DevTools-type=string
DevTools-count=2
DevTools-0=DevTools\VDI
DevTools-1=DevTools\Dbg Int
CoreRepl-type=string
CoreRepl-count=2
CoreRepl-0=CoreRepl\Res1033
CoreRepl-1=CoreRepl\ResIntl
Core-type=string
Core-count=2
Core-0=Core\Res1033
Core-1=Core\ResOther
Repostry-type=string
Repostry-count=3
Repostry-0=Repostry\RepstSys
Repostry-1=Repostry\Res1033
Repostry-2=Repostry\ResIntl
CoreMisc\ActiveX-type=string
CoreMisc\ActiveX-count=2
CoreMisc\ActiveX-0=CoreMisc\ActiveX\Res1033
CoreMisc\ActiveX-1=CoreMisc\ActiveX\ResIntl
CoreMisc-type=string
CoreMisc-count=2
CoreMisc-0=CoreMisc\ActiveX
CoreMisc-1=CoreMisc\Res1033
Monarch-type=string
Monarch-count=2
Monarch-0=Monarch\Monr1033
Monarch-1=Monarch\MonrIntl
CoreCOM-type=string
CoreCOM-count=2
CoreCOM-0=CoreCOM\Res1033
CoreCOM-1=CoreCOM\ResIntl
CoreTool-type=string
CoreTool-count=2
CoreTool-0=CoreTool\Res1033
CoreTool-1=CoreTool\ResOther
SFExt\ActiveX-type=string
SFExt\ActiveX-count=2
SFExt\ActiveX-0=SFExt\ActiveX\Res1033
SFExt\ActiveX-1=SFExt\ActiveX\ResIntl
SFExt-type=string
SFExt-count=3
SFExt-0=SFExt\ActiveX
SFExt-1=SFExt\Res1033
SFExt-2=SFExt\ResIntl
Trace-type=string
Trace-count=2
Trace-0=Trace\Res1033
Trace-1=Trace\ResOther
MC-type=string
MC-count=3
MC-0=MC\MC1033
MC-1=MC\MCIntl
MC-2=MC\Help
SQLMgr-type=string
SQLMgr-count=2
SQLMgr-0=SQLMgr\Res1033
SQLMgr-1=SQLMgr\ResIntl
SvrTool-type=string
SvrTool-count=2
SvrTool-0=SvrTool\Res1033
SvrTool-1=SvrTool\ResIntl
DTSUI-type=string
DTSUI-count=2
DTSUI-0=DTSUI\Res1033
DTSUI-1=DTSUI\ResIntl
MSOlap-type=string
MSOlap-count=2
MSOlap-0=MSOlap\Res1033
MSOlap-1=MSOlap\ResIntl
ATL-type=string
ATL-count=2
ATL-0=ATL\winnt
ATL-1=ATL\win9x
SQLAdHlp-type=string
SQLAdHlp-count=2
SQLAdHlp-0=SQLAdHlp\Res1033
SQLAdHlp-1=SQLAdHlp\ResOther
Component-type=string
Component-count=28
Component-0=SQLProg
Component-1=MgtTool
Component-2=Connect
Component-3=Books
Component-4=DevTools
Component-5=CoreRepl
Component-6=Core
Component-7=Repostry
Component-8=CoreMisc
Component-9=Monarch
Component-10=Jet
Component-11=CoreInst
Component-12=CoreCOM
Component-13=CoreTool
Component-14=DBLibCli
Component-15=SFExt
Component-16=Trace
Component-17=MiscCore
Component-18=MC
Component-19=SQLMgr
Component-20=SvrTool
Component-21=DTSUI
Component-22=MSOlap
Component-23=ATL
Component-24=MFC42U
Component-25=VC
Component-26=VB
Component-27=SQLAdHlp
Result=1
[DlgServices-0]
Local-Domain=3855
AutoStart=15
Result=1
[DlgSQLSecurity-0]
LoginMode=2
szPwd=063e24c9f2ab1a
Result=1
[DlgCollation-0]
collation_name=Chinese_PRC_CI_AS
Result=1
[DlgServerNetwork-0]
NetworkLibs=255
TCPPort=1433
TCPPrxy=Default
NMPPipeName=\\.\pipe\sql\query
Result=1
[SdStartCopy-0]
Result=1
[License]
LicenseMode=PERDEVICE
LicenseLimit=50
[SdFinish-0]
Result=1
bOpt1=0
bOpt2=0