顯示具有 服務 標籤的文章。 顯示所有文章
顯示具有 服務 標籤的文章。 顯示所有文章

2010年9月18日

SQL Server 2008 Expess 版開始提供 SQL Server Agent 服務?

從 SQL Server 2005 開始,微軟將原本免費提供的 MSDE(有多種說法:Microsoft SQL Server Desktop Engine、Microsoft Data Engine 或 Microsoft Desktop Engine)產品改成 Express 版,由其名稱可猜出,功能上一定會比要錢購買的 SQL Server 缺少某些功能。

比方說,在 SQL Server 中,用來執行排程的管理工作(在 SQL Server 裡稱為「作業」),需要透過 SQL Server Agent 這個服務,以便儲存在  SQL Server msdb 系統資料庫中的作業資訊可依照排程、為了回應特定事件或視需要來執行作業,並記錄事件相關訊息,然後於完成或失敗時通知您。

在預設狀態下,於完成安裝 SQL Server 2005 或更新版本之後,會停用 SQL Server Agent 服務,所以如果您需要使用到排程,請記得選擇要自動啟動該服務。

於裝有 SQL Server 2008 Express 或 SQL Server 2008 R2 Express  的電腦,開啟「SQL Server 組態管理員」(SQL Server Configuration Manager)時,會看到「SQL Server 服務」中,有個狀態已停止啟動模式其他(開機、系統、已停用或未知)SQL Server Agent (SQLEXPRESS)   服務。

SQL Server 組態管理員中的 SQL Server Agent (SQLEXPRESS)  服務

當您手賤嘗試把 SQL Server Agent (SQLEXPRESS)   服務的啟動模式由原本的「已停用」改成「手動」「自動」時,會出現如下的錯誤訊息視窗:

▼ 在 Windows XP 修改 SQL Server 2008 Express 的 SQL Server Agent (SQLEXPRESS) 服務啟動模式,所出現的錯誤訊息
中文:
不支援這個要求。 [0x80070032]
英文:
The request is not supported. [0x80070032]

修改 SQL Server 2008 Express 的 SQL Server Agent (SQLEXPRESS) 服務啟動模式,所出現的錯誤訊息

▼ 在 Windows 7 修改 SQL Server 2008 R2 Express 的 SQL Server Agent (SQLEXPRESS)  服務啟動模式,所出現的錯誤訊息
中文:
遠端程序呼叫失敗。 [0x800706be]
英文:
The remote procedure call failed. [0x800706be]

修改 SQL Server 2008 R2 Express 的 SQL Server Agent (SQLEXPRESS)  服務啟動模式,所出現的錯誤訊息

既然從「SQL Server 組態管理員」無法修改啟動模式,那就改用 Windows 的「服務」來調整啟動模式。接著當然就是啟動該服務,結果如下:

▼ 在 Windows XP 啟動 SQL Server 2008 Express 的 SQL Agent 服務
中文:
在 本機電腦 的SQL Server Agent (SQLEXPRESS) 服務已啟動又停止。有些服務如果無法執行操作的話會自動停止。例如 效能記錄及警示服務。
英文:
The SQL Server Agent (SQLEXPRESS) service on local machine started and then stopped. Some services stop automatically if they have no work to do, for example, the Performance Logs and Alerts service. 

▼ 在 Windows XP 啟動 SQL Server 2008 R2 Express 的 SQL Agent 服務
中文:
在 本機電腦 的 SQL Server Agent (SQLEXPRESS) 服務已啟動又停止。有些服務如果並未由其他服務或程式使用,會自動停止。
英文:
The SQL Server Agent (SQLEXPRESS) service on local machine started and then stopped. Some services stop automatically if they are not in use by other services or programs. 

根據 Connect 網站的錯誤回報 SQL Express RC0 installs SQL Agent Service for no apparent reason 一文指出,因為內部工程師溝通不良,所以才讓 SQL Server 2008 Express 發行時,連同 SQL Server Agent (SQLEXPRESS)  服務一起發行。

事實上,在 MSDN 文件庫「SQL Server Express 功能」的「SQL Server Express 中不支援的 SQL Server 功能」一節中,有提到:不支援 SQL Server Agent 和 SQL Server Agent 服務,所以才會發生上述的錯誤訊息。

▼ 在 SQL Server 2008 R2 Express 安裝目錄中,可以看到啟動 SQL Server Agent (SQLEXPRESS)   服務的程式:SQLAGENT.EXE
啟動 SQL Server Agent (SQLEXPRESS)   服務的程式:SQLAGENT.EXE

如果您真的有需要使用到 SQL Agent  進行排程作業,有下列幾種方式可用:

  1. 使用 Windows 作業系統內建的工作排程器,搭配 T-SQL 指令檔(.sql)跟批次檔。
  2. 於非 SQL Server Express 版本的 SQL Server 中,建立維護計劃,將「連接管理員」設定成連線到 SQL Server Express。
  3. 使用付費軟體:Express Agent
  4. 若您會寫程式,可參考:SQL Agent: A Job Scheduler Framework

2009年12月4日

如何在使用指令啟動 Microsoft SQL Server 服務時,順便指定啟動的參數

如欲於使用指令啟動 Microsoft SQL Server 服務時,順便指定啟動的參數,例如要以最小的組態狀態下,執行 SQL Server 執行個體。

因為以最低組態模式啟動 SQL Server 時,必須將 SQL Server 以單一使用者模式啟動才行。此時,我們就可以使用下面的指令來啟動 SQL Server 預設的執行個體:

net start "SQL Server (MSSQLSERVER)" /f /m
-或-
net start MSSQLSERVER /f /m

上面的指令是在 net start 陳述式的最後面,空一個空白,然後指定啟動的選項。要提醒大家的是,於使用 net start 啟動 SQL Server 時,必須將啟動選項使用斜線 (/) 來取代連字號 (-)。

以下面的指令為例,會於啟動 SQL Server Express 的執行個體時,關閉 SQL Server Express 的部分監視功能(例如:SQL Server 的效能監視器計數器、收集 DBCC SQLPERF 命令的資訊):

net start "SQL Server (SQLExpress)" /x
-或-
net start MSSQL$SQLExpress /x

2009年9月22日

如何使用指令關閉或開啟具名的 Microsoft SQL Server 執行個體服務

在「如何定時啟動或關閉 MS SQL Server」與「如何使用一行指令關閉然後再開啟 Microsoft SQL Server 服務」一文中,所討論的關閉與開啟 Microsoft SQL Server 的服務,都是所謂的預設執行個體,也就是執行個體名稱為MSSQLServer

萬一所安裝的執行個體並非是預設的執行個體,比方說,SQL Server Express 的執行個體 SQLExpress,那要如何使用指令關閉與啟動非預設的執行個體之 SQL Server 呢?

以下面的指令而言,分別是關閉然後再啟動執行個體名稱為 SQLExpress 的服務:

net stop "SQL Server (SQLEXPRESS)"
net start "SQL Server (SQLEXPRESS)"

位於 stop 與 start 之後的指令,因為內有空白,所以必須使用一對引號將其包含起來。

—或—
net stop MSSQL$SQLExpress
net start MSSQL$SQLExpress

上面的指令就不需要用一對引號了,因為在 MSSQL$ 之後,就緊接著非預設的執行個體名稱,所以如果是要關閉並啟動預設的 SQL Server 執行個體,要改用如下的指令:

net stop MSSQLServer
net start MSSQLServer

2009年9月15日

在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview (Part III)

這次要談另外一種比較簡單的安裝方式,不用像之前(如何在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview)一樣,那麼麻煩。

  1. 開啟「命令提示字元」視窗,切換到 .NET RIA Services July 2009 Preview 安裝程式所在的目錄。 在 Windows Vista 之後的作業系統上,可能需要以「系統管理員身分」開啟「命令提示字元」視窗。
  2. 輸入如下的指令,並按下 Enter 鍵:
    msiexec /i RiaServices.msi NOCHECK=true
  3. 依照「在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview (Part II)」進行檔案的複製工作。

請特別注意,目前已知在非英文的 VS 2008 SP1 / VWD 2008 SP1 開發環境下,建立或加入 .NET RIA Services Class Library 專案,會出現如下所示的錯誤訊息,其結果是只會建立 Class Library 專案,卻不會建立 .Web 專案的問題。

出現「系統找不到指定的檔案。發生例外狀況於 HRESULT: 0x80070002」的錯誤訊息 缺少 .Web 專案

2009年8月20日

在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview (Part II)

按照「如何在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview」的文章進行操作,確實可以在開啟 Silverlight 專案時,出現 啟用 .NET RIA 服務 核取方塊。

然而,當您欲在承載 Silverlight 的 Web 專案新增項目時,就會發現在「Visual Studio 安裝的範本」窗格中,沒有 Authentication Domain ServiceDomain Service ClassSearch SitemapDomain ADO.NET Data Service 這 4 個範本。
沒有 Authentication Domain Service、Domain Service Class、或 Search Sitemap 這 3 個範本

原因在於,沒有將 .NET RIA Services 所提供的項目範本檔案從英文版的目錄(1033)複製到正體中文版的目錄(1028),因此請將位於下面 2 個目錄中的相關檔案複製到  1028 目錄裡:

  • %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\1033
  • %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\VisualBasic\Web\1033 
將 1033 目錄中的檔案複製到 1028

接著將位於下面 2 個目錄中的相關檔案複製到  1028 目錄裡:

  • %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1033
  • %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesVisualBasic\Silverlight\1033
將 1033 目錄中的檔案複製到 1028

這麼一來,才能在開啟新的 Silverlight 專案時,看到 .NET RIA Services Class Library 專案範本。

請注意:

  1. 如果您使用的是 64 位元 Windows 作業系統,請自行將上述的路徑換成您實際的路徑,例如:C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1033。
  2. 如果您在 Visual Studio 2008 看不到相關的範本,請依照所使用的開發工具,以管理員身分開啟「Visual Studio 2008 命令提示字元」(位於「開始/所有程式/Microsoft Visual Studio 2008/Visual Studio Tools」裡),然後執行下面指令:
    • Visual Studio 2008
      devenv.exe /installvstemplates
    • Visual Web Developer 2008 Express
      VWDexpress.exe /InstallVSTemplates
  3. 因為目前 .NET RIA Services 還是處於測試階段,待其正式版出來,就不需要進行這麼麻煩的操作步驟了。

2009年8月12日

如何使用一行指令關閉然後再開啟 Microsoft SQL Server 服務

先前在「如何定時啟動或關閉 MS SQL Server」一文中,討論了如何關閉再開啟 Microsoft SQL Server,現在則是要在一行指令來完成這樣的操作。
要執行的指令如下所示:

2009年8月7日

如何在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview

不過就安裝個小程式,有什麼秘訣呢?當然有嘍!

.NET RIA Services July 2009 Preview 安裝程式會檢查是否已經安裝英文版的 Silverlight™ 3 Tools、Silverlight™ 3 Developer Runtime、與 Silverlight™ 3 SDK,事實上,上述的 3 個元件都已經包含在 Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1 英文版裡。

.NET RIA Services July 2009 Preview 所需的元件

如果是使用 Visual Studio 2008 的話,不太可能為了安裝 .NET RIA Services July 2009 Preview,而移除非英文版的 Visual Studio 2008,因為安裝挺費時的。還好微軟有提供免費的 Visual Web Developer Express 2008 SP1 英文版,剛好可以用來騙騙 .NET RIA Services July 2009 Preview,所以要安裝的元件之順序如下:

  1. Visual Web Developer Express 2008 SP1 英文版
  2. Silverlight™ 3 Tools for Visual Studio 2008 SP1 英文版
  3. .NET RIA Services July 2009 Preview

安裝完畢之後,即可在非英文版的 Visual Studio 2008 環境中,順利使用 .NET RIA Services July 2009 Preview 了。如果覺得 Visual Web Developer Express 2008 SP1 太佔硬碟空間,當然可以單獨移除它。

開啟專案時,就立即啟用 .NET RIA 服務:

於開啟專案後,進行 .NET RIA 服務連結設定

2006年12月29日

如何快速查詢目前已經啟用的服務有哪些?

欲快速查詢電腦目前已經啟用的服務,請開啟「命令提示字元」,鍵入如下的指令,然後按下 Enter:

net start

本文使用 Word 2007 發佈文章。

2005年10月19日

如何定時啟動或關閉 MS SQL Server

一般而言,我們都會讓 MS SQL Server 以服務的方式啟動,因此可以透過控制台裡的「排定的工作」來定時將 MS SQL Server 的服務關閉與啟動,作業系統(Windows NT/2000/XP/2003)內建一個「net」指令,裡面提供了的兩個子指令:「net stop」與「net start」可以讓管理者透過指令模式即可關閉與啟動某項服務,因此將下面的指令加入「排定的工作」之後,就可以讓 MS SQL 在固定的時間自動關閉跟開啟。

關閉 MS SQL:  
net stop MSSQLServer /y
(記得要加上 /y 的參數,要不然是不會自動關閉的)  

啟動 MS SQL:  
net start MSSQLServer

若您有需要啟動 SQL Server Agent 的話,在啟動時,需要在啟動 SQL Server 服務之後,順便啟動 SQL Server Agent,因為當您關閉 SQL Server 時,會一起關閉 SQL Server Agent,指令如下: 
net start SQLServerAgent

啟動亦可用直接使用 SQLServr 這個指令,但是使用這個指令啟動的話,MS SQL Server 就不是以服務的方式執行了。使用這個方式啟動的好處是,您可以即時監看 SQL 目前的狀況,其實這個就是在 SQL Server Enterprise Manager 裡面的 Management -> SQL Server Logs 裡所看到的 log。

2005年9月11日

如何遠端以指令方式啟動或停止伺服器的服務

Windows 內建的 net 指令很好用,可以用來停止或啟動本機的服務,但是要啟動或停止遠端伺服器的服務,就沒辦法了,此時可以使用 3rd party 的工具:PsService
範例:  
psservice \\Win2kSrv -u admin -p password stop "Terminal Services"  
說明:
以 admin 這個使用者的密碼 password 關閉 Win2kSrv 這台電腦上面的 Terminal Services 服務,若目前登入的使用者具有遠端電腦的管理者權限(亦即該使用者的帳號有存在遠端電腦裡,且密碼相同),即可省略掉 -u 跟 -p 的參數。 更多的參數說明,請輸入 psservice /? 以獲得更多的說明 請按此處下載 PsService。

2005年2月15日

如何移除「服務」

移除服務的方式有下列幾種:
1. 撰寫 Script 程式:
若您知道您要移除什麼服務的話,建議使用這個方式,但請注意:若您移除了核心的服務,將可能造成系統嚴重的問題

---程式碼開始---

Const title = "服務移除工具"

Set oWS = CreateObject("Wscript.Shell")
sService = inputbox("請輸入欲移除的服務名稱",title,"Service_name")

If sService = "" then
msgbox "程式停止執行,沒有移除任何服務。", vbInformation, title
wscript.quit
End If

'//確認是否移除服務
result = MsgBox ("即將移除 " & sService & " 這個服務,您確定嗎?", vbQuestion + vbYesno, title)
If result = vbNo Then
  Msgbox "程式停止執行,沒有移除任何服務。", vbInformation, title
  wscript.quit
End If

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

'//檢查要移除的服務是否存在
Set colListOfServices = objWMIService.ExecQuery _
("Select * from Win32_Service Where Name = '" & sService & "' or
displayName = '" & sService & "'")
If colListOfServices.count > 0 Then
  For Each objService In colListOfServices
    objService.StopService()
    '//暫停 5 秒鐘,以確保服務已停止
    wscript.Sleep 5000
    objService.Delete()
    Msgbox sService & " 已移除或已被標示成刪除。", vbInformation, title
  Next
Else
  Msgbox "找不到 " & sService & " 這個服務。", vbInformation, title
End If
---程式碼結束---

2. 使用 Windows 2000/2003 Resource Kit:
Resource Kit 裡有兩個程式可以將服務移除:InstSrv.exe 與 SrvInstW.exe(Windows 2000 Resource Kit 才有)。

SrvAny.exe 需要透過 SrvInstW.exe 或 InstSrv.exe 把它安裝成服務,而且還要手動編輯機碼。
SrvInstW.exe 或 InstSrv.exe 可以安裝和刪除服務,而 SrvInstW.exe 可以讓程式以系統服務方式執行。


其命令列語法如下 :
  • instsrv <服務名稱> <可執行檔的完整路徑與檔案名稱>
  • instsrv <服務名稱> remove
這兩種語法分別用於安裝及刪除服務,其中:
<服務名稱> 為要建立的服務之名稱 ,若名稱內含空白字元,須以雙引號(")將整個名稱包起來 。
<可執行檔的完整路徑與檔案名稱> 為欲安裝的服務其可執行檔的完整路徑與檔案名稱 ,請注意:一定要輸入完整路徑

remove 則用來指定要進行移除服務的程式,記得在移除前請先停止該服務

若經此命令安裝的服務尚須透過控制台的服務圖示或使用 NET START 指令將服務手動啟動,而使用這種方式安裝的服務,預設會使用指定帳號 (this account) 啟動、而非系統帳號(system account),因此須透過控制台的啟動設定鈕設定該服務的啟動帳號。

下面的範例為安裝一個名稱為 Alex Service 的服務:
instsrv "Alex Service" c:\alex\alexsrv.exe

下面的指令則將移除此服務:
instsrv "Alex Service" remove


3. 刪除機碼:
找到下列的機碼位置並刪除:
HK_LocalMachine\System\CurrentControlSet\Services\<服務名稱>

其他參考資源: