2009-05-31

啟用 SQL Server 2008 遠端連線(Enable Remote Connection)


11_SSMS連線錯誤

12_VS連線錯誤



以 SQL Server 2008 的 Express、企業版180 天評估版(Enterprise Evaluation)、Developer Edition 為例,依據預設值,是停用「遠端連線(disable Remote Connection)」。

所以,應用程式也是無法使用 TCP/IP 的方式來與 SQL Server 進行連線。
若要能以 TCP/IP 方式來連線,就須需要設定啟用遠端連線(Enable Remote Connection)。




方法(一)

若您的環境是將 SQL Server 安裝為「具名執行個體」,例如,要與 SQL Server Express 連線字串之格式為:ComputerName\SQLEXPRESS,這類的連線字串,就表示此 SQL Server 是安裝為「具名執行個體(Named Instance)」,則其啟用  TCP/IP 通訊協定的方式如下:

工作1. 啟用 TCP/IP 通訊協定

1. 執行「開始」\「所有程式」\「Microsoft SQL Server 2008」\「組態工具」\「SQL Server 組態管理員」。

2. 在「SQL Server Configuration Manager」視窗,執行以下的選項:
在左邊窗格,點選「SQL Server 網路組態」。
點選「SQLEXPRESS 的通訊協定」。


01_選擇「SQL Server 網路組態」

在右邊的窗格,在「通訊協定名稱」方塊下,選擇「TCP/IP」。
滑鼠右鍵,選擇「啟用」。


02_啟用 TCPIP

在「警告」視窗,點選「確定」。

03_警告視窗

3. 重新啟動 SQL Server。

工作2. 啟動「SQL Server Browser」服務

1. 在「SQL Server Configuration Manager」視窗,執行以下的選項:
在左邊窗格,點選「SQL Server 服務」。
在右邊窗格,點選「SQL Server Browser」。
滑鼠右鍵,選擇「啟動」。


建議,可以設定「SQL Server Browser」服務為「自動」啟動模式。
完成上述的工作,就可以利用 TCP/IP 方式來與 SQL Server Express 進行遠端連線。




方法(二)

若不想啟動「SQL Server Browser」服務,可以改用以下的方式:

工作1. 指定此具名執行個體的「TCP/IP」通訊協定所使用之通訊埠  

1. 在「SQL Server Configuration Manager」視窗,執行以下的選項:
在左邊窗格,點選「SQL Server 網路組態」。
點選「SQLEXPRESS 的通訊協定」。 


在右邊的窗格,在「通訊協定名稱」方塊下,選擇「TCP/IP」。
滑鼠右鍵,選擇「內容」。


2. 在「TCP/IP 內容」視窗,執行以下的選項:
點選「IP 位址」頁面。 


在「IPALL」區域,清空「TCP 動態通訊埠」方塊。
在「TCP 通訊埠」方塊,填入指定的通訊埠編號。


04_設定通訊埠 

點選「確定」。

3. 在「警告」視窗,點選「確定」。
4. 重新啟動 SQL Server。

工作2. 修改連線字串,以 SSMS 管理工具、Visual Studio 應用程式為例

因為 TCP 通訊埠 1433 是內定通訊埠而且可省略,所以在與預設執行個體連線時,多半是省略輸入通訊埠的編號。

但若是要與非 1433 通訊埠的執行個體來連線時,請使用以下格式:
「伺服器名稱」加上「逗號」加上「通訊埠編號」


例如:
192.168.1.88\SQLEXPRESS,50001

以下為 SSMS 管理工具的連線字串之圖示:

05_SSMS

06_物件總管

以下為在 Visual Studio 內設定連線字串之圖示:

07_修改連接

08_進階屬性



若是不想修改連線字串(加上「逗號」與「通訊埠編號」),請啟用「SQL Server Browser」服務。




若您的環境是將 SQL Server 安裝為「預設執行個體(Default Instance)」,也就是 SQL Server 的伺服器與作業系統的名稱相同時,其啟用遠端連線的方法如下:

請參考前述的「工作1. 啟用 TCP/IP 通訊協定」。 

若使用的是預設 TCP/IP 通訊埠 1433,則無需啟用「SQL Server Browser」服務,也無須修改連線字串。





SQL Server Browser 完成下列動作:
  • 瀏覽可用伺服器的清單
  • 連接到正確的伺服器執行個體
  • 連接到專用管理員連接 (DAC) 端點
如果 SQL Server Browser 服務未執行,但您提供正確的通訊埠編號或具名管道,則仍然可以連接到 SQL Server。 

例如,您可以使用在通訊埠 1433 執行的 TCP/IP,來連接到 SQL Server 的預設執行個體。


在啟動時,SQL Server Browser 會啟動並要求 UDP 通訊埠 1434。
SQL Server Browser 會讀取登錄項目、識別電腦上的所有 SQL Server 執行個體,並記下它們使用的通訊埠與具名管道。

當伺服器擁有兩張或多張網路卡時,SQL Server Browser 會傳回 SQL Server 所遇到的第一個已啟用連接埠。SQL Server Browser 支援 ipv6 和 ipv4。

當 SQL Server 用戶端要求 SQL Server 資源時,用戶端網路程式庫會使用通訊埠 1434 傳送 UDP 訊息到伺服器。

SQL Server Browser 回應要求之執行個體的 TCP/IP 通訊埠或具名管道。
於是,用戶端應用程式上的網路程式庫會使用所要的執行個體的通訊埠或具名管道,將要求傳送至伺服器來完成連接。

如果 SQL Server Browser 服務未執行,則下列連接沒有作用:
  • 任何嘗試連接到具名執行個體卻未完整指定所有參數 (例如 TCP/IP 通訊埠或具名管道) 的元件。
  • 任何產生或傳遞伺服器/執行個體資訊的元件,稍後要重新連接的其他元件可使用此資訊。
  • 連接到具名執行個體但未提供通訊埠編號或管道。
  • 具名執行個體或預設執行個體 (若未使用 TCP/IP 通訊埠 1433) 的 DAC。
  • OLAP 重新導向程式服務。
  • 列舉 SQL Server Management Studio、Enterprise Manager 或 Query Analyzer 中的伺服器。
如果您停止或停用 SQL Server Browser 服務,則必須指派特定通訊埠編號給每一個執行個體,並將用戶端應用程式碼撰寫為永遠使用此通訊埠編號。 

此方式有下列問題:

  • 您必須更新或維護用戶端應用程式碼,才能確保它是連接到正確的通訊埠。
  • 您為每個執行個體選取的通訊埠可能正由該伺服器上的其他服務或應用程式使用中,導致 SQL Server 執行個體無法使用。


若您使用的版本為 SQL Server 2005,請參考以下的文件啟用遠端連接:

如何將 SQL Server 2005 設定為允許遠端連接 http://support.microsoft.com/default.aspx/kb/914277
在 SQL Server 2005 可以搭配「SQL Server 介面區組態」管理工具,來啟用遠端連線(Enable Remote Connection) 。

但在 SQL Server 2008 並沒有「SQL Server 介面區組態」管理工具。





本文未包含防火牆的設定之解說,請參考以下的文件:
將 Windows 防火牆設定成允許 SQL Server 存取 http://msdn.microsoft.com/zh-tw/library/cc646023.aspx



參考資料: 

SQL Server Browser 服務
http://msdn.microsoft.com/zh-tw/library/ms181087.aspx

SQL Server 組態管理員 http://msdn.microsoft.com/zh-tw/library/ms174212.aspx

教學課程:Database Engine 使用者入門 http://msdn.microsoft.com/zh-tw/library/ms345318.aspx

從另一部電腦連接到 Database Engine http://msdn.microsoft.com/zh-tw/library/ms345299.aspx

如何:設定伺服器接聽特定 TCP 通訊埠 (SQL Server 組態管理員) http://msdn.microsoft.com/zh-tw/library/ms177440.aspx

將 Windows 防火牆設定成允許 SQL Server 存取 http://msdn.microsoft.com/zh-tw/library/cc646023.aspx

如何將 SQL Server 2005 設定為允許遠端連接 http://support.microsoft.com/default.aspx/kb/914277

2009-05-26

你可能已經成為盜版軟體的受害者;更新您的產品金鑰

00_黑屏

最近有幾位朋友在使用 XP 或是 Vista 時,接收到以下的訊息:
你可能已經成為盜版軟體的受害者。
這一份 Windows 未通過正版 Windows 驗證。

至於為何會產生的訊息,多半是因為您的作業系統,因故使用了不合法的序號來安裝,才會造成此問題發生。



若是您有正版軟體的序號,可以到以下的網址,利用「Windows Product Key Update Tool」來更新先前不合法的序號。

01_更新您的產品金鑰: 選擇您的 Windows 版本
更新您的產品金鑰: 選擇您的 Windows 版本
http://www.microsoft.com/genuine/selfhelp/PKUInstructions.aspx

此網站有詳盡的步驟,請有需要的朋友按部就班來執行就可以解除此訊息,合法的使用軟體。


02_Windows Product Key Update Tool 操作指示

03_在 Windows Vista 中更新您的產品金鑰

參考網址:

更新您的產品金鑰: 選擇您的 Windows 版本
http://www.microsoft.com/genuine/selfhelp/PKUInstructions.aspx


HOW TO:啟用 Windows XP
http://support.microsoft.com/kb/307890

Genuine Windows Blog
http://blogs.msdn.com/wga/

2009-05-23

考試心得,Exam 70-433 : TS: SQL Server 2008, Database Development

考詩科目:
Exam 70-433 : TS: SQL Server 2008, Database Development

70-432

請注意:
本文是筆者與朋友整理出來的資料,僅供各位參考。
Microsoft 可能會隨時變更考試的內容與方式。
更新日期:2009/05/23

各位考生在參與考試時,都會簽署一份 NDA(Non-Disclosure Agreement,保密協議),對於考試的內容必須要保密。



Microsoft 建議參考的教材:
Course 6232: Implementing a Microsoft SQL Server 2008 Database (five days)
MCTS Self-Paced Training Kit (Exam 70-433): Microsoft SQL Server 2008 - Database Development

各項主題的配分比重:
1. Implementing Tables and Views (14 %)
2. Implementing Programming Objects (16 %)
3. Working with Query Fundamentals (21 %)
4. Applying Additional Query Techniques (15 %)
5. Working with Additional SQL Server Components (11 %)
6. Working with XML Data (12 %)
7. Gathering Performance Information (11 %)



考試心得之分享

考試時間:155 min
題數:65 題
及格分數:700 分

題型:單選、複選題。

比較特別是,在此門考試進行前,會有數個問題,詢問考生對 SQL Server 在程式開發的經驗,例如:使用過那些資料庫物件等等。

目前尚未有像在 SQL Server 2005 版本,Exam 70-431:TS: Microsoft SQL Server 2005 - Implementation and Maintenance 有考實作題,讓考生操作 SQL Server Management Studio 管理工具。

這門考試,側重在程式開發上,建議要看懂題目所問的需求為何後,再進行作答,選擇正確的 Transact-SQL 程式碼。


目前尚未有以 Visual Studio 2008 使用 NET Framework 語言撰寫預存程序、觸發程序、使用者定義型別、使用者定義函數、使用者定義彙總及資料流資料表值函數等的程式碼 (VB 或 C#) 之考題。

題型方向: 誠如先前提及的「各項主題的配分比重」

考了數題與 TABLE JOIN、GROUP BY、HAVING、ORDER BY 有關的題目,這類的 DML 陳述式並不困難,但是要看懂題意的需求,會是重點。

再列舉數項給各位參考:

CTE 考了數題。
排名函數也考數題。

XML 也考了不少題目,由 OPENXML 到 XQuery 等。

TRIGGER 包含 DDL、AFTER、INSTEAD OF TRIGGER。

INDEX 也考了不少題目。

其他在 SQL Server 2005、2008 上新增加的功能,也都有考題,例如:DTA、MERGE、Service Broker、PowerShell、TRY...CATCH 等等。



參考文件:
Preparation Guide for Exam 70-433
TS: Microsoft SQL Server 2008, Database Development
http://www.microsoft.com/learning/en/us/exams/70-433.mspx

MCTS Self-Paced Training Kit (Exam 70-433): Microsoft® SQL Server® 2008 Database Development (Certification) (Paperback)
http://www.amazon.com/MCTS-Self-Paced-Training-Exam-70-433/dp/0735626391

2009-05-10

啟用 CLR,以 SQL Server 2005 為例


適用版本:
SQL Server 2005

使用工具:
SQL Server Surface Area Configuration(SAC,介面區組態)



若要啟用 CLR,請執行步驟如下:
1. 執行,開始\「Microsoft SQL Server 2005」\「Configuration Tools」\「SQL Server Surface Area Configuration」。

2. 點選「Surface Area Configuration for Features」。

01_SAC,介面區組態

3. 先在左邊窗格,點選「Database Engine」,點選「CLR Integration」。
4. 在右邊窗格,勾選「Enable CLR integration」。

02_Enable CLR integration
5. 點選「OK」。完成啟用 CLR。



請注意:
在 SQL Server 2008 已經取消 SQL Server Surface Area Configuration(SAC,介面區組態) 管理工具。
改為利用 SQL Server Management Studio 管理工具中的「Facet」,設定啟用和停用 SQL Server 功能。

參考文件:
SQL Server 2008 介面區組態(Surface Area Configuration,SAC)

http://sharedderrick.blogspot.com/2009/04/sql-server-2008-surface-area.html



若要使用 T-SQL 來啟用 CLR,請參考以下的範例(適用於 SQL Server 2005 與 2008):


-- 查詢伺服器範圍組態選項值
SELECT name N'組態選項的名稱', value N'選項所設定的值', minimum N'組態選項的最小值', maximum N'組態選項的最大值', 
description N'組態選項的描述', is_dynamic N'是否為執行 RECONFIGURE 陳述式時的有效變數'
FROM sys.configurations
WHERE name='clr enabled'

-- 啟用 CLR 整合
EXEC sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO

-- 檢查是否已經啟用 CLR 整合
EXEC sp_configure 'clr enabled'
GO

-- 查詢伺服器範圍組態選項值
SELECT name N'組態選項的名稱', value N'選項所設定的值', minimum N'組態選項的最小值', maximum N'組態選項的最大值', 
description N'組態選項的描述', is_dynamic N'是否為執行 RECONFIGURE 陳述式時的有效變數'
FROM sys.configurations
WHERE name='clr enabled'

2009-05-09

考試心得,Exam 70-432 : TS: SQL Server 2008, Implementation and Maintenance

考詩科目:
70-432 : TS: SQL Server 2008, Implementation and Maintenance

70-432_Cert

請注意:
本文是筆者與朋友整理出來的資料,僅供各位參考。
Microsoft 可能會隨時變更考試的內容與方式。
更新日期:2009/05/09

各位考生在參與考試時,都會簽署一份 NDA(Non-Disclosure Agreement,保密協議),對於考試的內容必須要保密。


Microsoft 建議參考的教材:
1. 教材 6231: Maintaining a Microsoft SQL Server 2008 Database (five days)
2. 教材 6232: Implementing a Microsoft SQL Server 2008 Database (five days) [Partial Coverage]
3. MCTS Self-Paced Training Kit (Exam 70-432): Microsoft® SQL Server® 2008 - Implementation and Maintenance

各項主題的配分比重:
1. Installing and Configuring SQL Server 2008 (10 %)
2. Maintaining SQL Server Instances (13 %)
3. Managing SQL Server Security (15 %)
4. Maintaining a SQL Server Database (16 %)
5. Performing Data Management Tasks (14 %)
6. Monitoring and Troubleshooting SQL Server (13 %)
7. Optimizing SQL Server Performance (10 %)
8. Implementing High Availability (9 %)


考試心得之分享

考試時間:120 min
題數:48 題
及格分數:700 分

題型:單選、複選題。

目前尚未有像在 SQL Server 2005 版本,Exam 70-431:TS: Microsoft SQL Server 2005 - Implementation and Maintenance 有考實作題,讓考生操作 SQL Server Management Studio 管理工具。

此外,此次考試科目名為:
70-432 : TS: SQL Server 2008, Implementation and Maintenance
但很容易被歸類為 SQL Server 2008 管理類考試,以下整理出可能是與開發程式有關的題型:

1. 使用「內容切換」。
2. 維護 XML 索引。
3. 資料壓縮。
4. 分割資料表。
5. 索引維護作業。
6. 設定「平行處理原則的預設成本臨界值」。


參考文件:
Preparation Guide for Exam 70-432
TS: Microsoft SQL Server 2008, Implementation and Maintenance
http://www.microsoft.com/learning/en/us/exams/70-432.mspx

MCTS Self-Paced Training Kit (Exam 70-432): Microsoft® SQL Server® 2008 - Implementation and Maintenance
http://www.amazon.com/MCTS-Self-Paced-Training-70-432-PRO-Certification/dp/0735626057
http://www.microsoft.com/learning/en/us/Books/12858.aspx

2009-05-06

SSIS ( 版本:SQL Server 2008 SP1 ),用來執行封裝的「執行封裝公用程式(dtexecui.exe)」,遺失了三個按鈕:「關於」、「執行」、「關閉」。

更新日期:2010/06/26

在 SQL Server 2008 R2 中文版本,已經修正此問題,請參考下圖所示:




更新日期:2009/06/03

感謝 Vera Wu 的回覆與協助,請各位參考以下的結案報告:

20090603_結案

所以此項問題在 繁體中文的 SQL Server 2008 SP1 版本上尚未修復,目前 Microsoft 已將這個問題列入修正,只是尚未有發布日期。



「執行封裝公用程式 (dtexecui.exe)」可以用來執行 Integration Services 封裝。

但在中文(台灣)版本的 SQL Server 2008 SP1上,卻遺失了三個按鈕:「關於」、「執行」、「關閉」。 請參考下圖所示:

01_SQL2008_SP1_但仍看不到三個按鈕

但在英文版本上,卻沒有此項問題。


使用環境:
皆為中文版環境
Windows Server 2008 Enterprise Edition X64
SQL Server 2008 Enterprise Edition X64 + 升級到 SP1


在 Microsoft 提供的技術文件 KB:956021 內有說明這三個按鈕,確認是在中文(台灣)版本的 SQL Server 2008 SP1 上有遺失。

但有提供其他可行的方案(WORKAROUND),原本英文版的KB是這樣寫的 :
Press ALT+A for the About button.
Press ALT+E for the Execute button.
Press ALT+C for the Close button.

但卻仍然無效,經與 Microsoft 技術支援團隊詢問過後,原來是技術文件KB:956021有誤值,正確的鍵盤快速鍵應該是:
Press ALT+B for the About button.
Press ALT+X for the Execute button.

但是 ALT+C for the Close button 部分,仍然無法使用。
經過測試,要按下 ALT+F4 才能關閉此「執行封裝公用程式」。

在此感謝 Vera Wu 的協助,謝謝。

但不知道要等到哪一個修補程式(hotfix 或 service pack),才會修正此問題...>_<


參考文件:
FIX: The About, Execute, and Close buttons are missing when you run the Execute Package Utility in the Chinese (Taiwan) version of Microsoft SQL Server 2008
http://support.microsoft.com/kb/956021/en-us

FIX: 關於,執行後關閉], 按鈕時遺失您是在 Microsoft SQL Server 2008 的中文 (台灣) 版中執行 「 執行封裝 」 公用程式
http://support.microsoft.com/kb/956021/zh-tw



關於文件部分,已經通知 KB team 修改KB:956021 的說明,請參考下圖所示:

01_中文KB

01_英文KB

2009-05-04

Visio 免費的「樣板」:VisioCafe

最近需要繪製儲存伺服器的架構圖,但在Visio內建的圖型樣板部分,對於各家儲存、網路設備的擬真圖檔部分,仍十分缺乏。

visiocafe
建議可參考 VisioCafe 上提供 Visio 「樣板」(*.vss)。
像是:EMC、HDS、HP、DELL等等,或許就可以找到您所想要的樣板。

參考網址:
VisioCafe
http://www.visiocafe.com/index.htm

2009-05-03

圖書:SQL Server 2008 管理實戰-進階維護篇

感謝您對於本書的鼓勵與建言,歡迎您在此留言。

SQL Server 2008管理實戰-進階維護篇

筆者負責的章節為:
第02章|使用中央管理伺服器
第03章|以原則為基礎的管理
第04章|SQL Server Agent Proxy與多伺服器作業
第10章|資源管理員
第14章|使用透明資料加密
第15章|使用稽核-SQL Server Audit

感謝您寶貴的建議,謝謝。

參考網址:
圖書:SQL Server 2008管理實戰-進階維護篇
http://www.delightpress.com.tw/book.aspx?book_id=SKUD00015

圖書:SQL Server 2008 管理實戰 - 營運管理篇

感謝您對於本書的鼓勵與建言,歡迎您在此留言。

SQL Server 2008 管理實戰 - 營運管理篇

筆者負責的章節為:
第1章|初探 SQL Server 2008
第2章|安裝與基本管理
第7章|安全性管理
第8章|自動化管理作業

感謝您寶貴的建議,謝謝。

參考網址:
SQL Server 2008 管理實戰 - 營運管理篇
http://www.delightpress.com.tw/book.aspx?book_id=SKUD00010

圖書:SQL Server 2008 T-SQL 資料庫設計

感謝您對於本書的鼓勵與建言,歡迎您在此留言。

SQL Server 2008 T-SQL 資料庫設計

筆者負責的章節為:
第03章|SQL Server管理工具的基本使用
第07章|資料新增、修改與刪除

感謝您寶貴的建議,謝謝。

參考網址:
SQL Server 2008 T-SQL 資料庫設計
http://www.delightpress.com.tw/book.aspx?book_id=SKUD00014

 

各章的習題解答,請到此處下載:
http://www.delightpress.com.tw/bookOthers/skud00014_answer.pdf

2009-05-02

MySQL 再度易主

在 2009/04/20,Oracle(甲骨文)宣布以約 74億美金買下 SUN(昇陽)。

這也導致 MySQL 再度換更換公司老闆。
老闆由 SAP 換為 SUN,又再度換為 Oracle

MySQL的創辦人之一Michael Widenus,認為甲骨文對於處理MySQL有三種可能性:
1. 放棄MySQL
2. 出售給其他業者
3. 讓MySQL持續成為開放源碼資料庫

或許該認真考慮:

PostgreSQL
PostgreSQL -- The world's most advanced open source database
http://www.postgresql.org/

PostgreSQL Wiki
http://wiki.postgresql.org/wiki/Main_Page


MySQL 是筆者最早接觸的 open source database,許多專案都是利用MySQL,但其未來卻充滿了許多變數。


參考資料:
社群關心MySQL在甲骨文的未來
http://www.ithome.com.tw/itadm/article.php?c=54664

甲骨文74億美金買昇陽
http://www.ithome.com.tw/itadm/article.php?c=54582