2009-03-30

好康放送:上課送 SQL Server 2008 正式版軟體


好康放送:上課送 SQL Server 2008 正式版軟體。活動延長到 2009/09/30 http://sharedderrick.blogspot.com/2009/06/sql-server-2008-20090930.html


依據過去參加課程的經驗,多半送的「有時限」的評估版軟體,如今是上課送 SQL Server 2008 正式版軟體,Microsoft 這的確是很優惠的作法。



要獲贈 SQL Server 2008 正式版的方式,很簡單,請參加下表列的任一門課程,即可獲得一份:
Course 2778A: Writing Queries Using Microsoft SQL Server 2008 Transact—SQL
Course 6231A: Maintaining a Microsoft SQL Server 2008 Database
Course 6232A: Implementing a Microsoft SQL Server 2008 Database
Course 6234A: Implementing and Maintaining Microsoft SQL Server 2008 Analysis Services
Course 6235A: Implementing and Maintaining Microsoft SQL Server 2008 Integration Services
Course 6236A: Implementing and Maintaining Microsoft SQL Server 2008 Reporting Service
Course 6158C: Updating Your SQL 2005 Skills to SQL Server 2008
Course 6317: Upgrading Your SQL Server 2000 Skills to SQL Server 2008

小計:8門

贈送SQL Server正式版本軟體的課程清單



若是參加兩門課程的訓練,就可以獲得兩份 SQL Server 2008 正式版光碟。

SQL Server 2008 正式版光碟,目前是直接附在官方教材內。

在恆逸資訊教育訓練中心,已於2009年初對外首開 SQL Server 2008 課程,上課學員請要記得保存此光碟,這可不是有時間限制的評估版軟體。



適用日期:
2008/12/10 ~ 2009/06/30



關於免費獲得正版軟體的資訊:

以下是所贈送的正式版本之相關訊息:
版本:SQL Server 2008 Standard Edition
包含 1 個使用者授權
包含了:32 bit、64 bit、IA64 版本。
但可惜是英文版本。
不可轉售(NFR,NOT FOR RESALE)



課程與考試科目的對應,請參考下圖:

課程與考試科目的對應

參考網址:
Get great training plus a free software offer

http://www.microsoft.com/learning/sql/2008/offer/default.mspx


SQL Server 2008 Trainings including full version of software (NFR*)!
http://www.microsoft.com/southafrica/learning/default.mspx


好康放送:上課送 SQL Server 2008 正式版軟體。活動延長到 2009/09/30 http://sharedderrick.blogspot.com/2009/06/sql-server-2008-20090930.html

2009-03-22

交易記錄檔已滿、爆掉;截斷交易記錄檔。(The transaction log for database 'DB1' is full. ;Transaction Log Truncation)


本文僅討論當發生交易記錄檔已滿、爆掉時的災難處理方式,並未討論如何避免發生交易記錄檔已滿的作法,請參考「管理交易記錄」等相關主題。
http://technet.microsoft.com/zh-tw/library/ms345382.aspx
如何避免 SQL Server 資料庫的交易記錄檔超出預期大小
http://support.microsoft.com/kb/873235/zh-tw

若資料庫因故造成交易記錄檔已滿、爆掉,將導致無法執行新增、刪除等作業。

遇到的錯誤訊息:



訊息 9002,層級 17,狀態 2,行 2
資料庫 'db1' 的交易記錄已滿。如果要了解為何無法重複使用記錄中的空間,請參閱 sys.databases 中的 log_reuse_wait_desc 資料行。

Msg 9002, Level 17, State 2, Line 2
The transaction log for database 'DB1' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases



請參考下圖所示:

01_在查詢編輯器遇到的錯誤,Error9002








若使用的版本是 SQL Server 2000、2005、2008
可以使用 SSMS 圖型介面管理工具,直接截斷、清空交易記錄檔的內容。流程如下:
將資料庫切換為「簡單復原模式」,便會自動截斷、清空交易記錄。
若決定要備份交易記錄檔(*.ldf),請再切換回「完整復原模式」。

步驟如下:
步驟01. 執行SSMS,在「物件總管」,展開「資料庫」,選擇指定的資料庫,滑鼠右鍵,選擇:「屬性」。
步驟02. 在「資料庫屬性」視窗,在左邊「選取頁面」頁籤,點選:「選項」 。
步驟03. 在右邊的「復原模式」方塊,將原來設定的「完整」,改選取為:「簡單」。 請參考下圖所示:

04_切換為「簡單復原模式」

步驟04. 點選「確定」,完成動截斷、清空交易記錄。
步驟05. 重複執行步驟01~04,但將此資料庫調整為「完整復原模式」。

或是利用以下的 Transact-SQL 陳述式:



/*
當資料庫使用簡單復原模式時,便會自動截斷交易記錄。
如果您必須從資料庫中移除記錄備份鏈結,請切換到簡單復原模式。
*/
--01 將資料庫 Northwind 切換為「簡單復原模式」,便會自動截斷交易記錄。
ALTER DATABASE Northwind
SET RECOVERY SIMPLE
GO

--02 若決定要備份交易記錄檔(*.ldf),再將資料庫 Northwind 切換回「完整復原模式」
ALTER DATABASE Northwind
SET RECOVERY FULL
GO



造成無法截斷的原因可能很多,例如:仍有交易在執行中等。所以若您發覺無法截斷交易記錄檔,請再度執行上述的動作或是Transact-SQL 陳述式,或許就可以截斷交易記錄檔。

若執行數次後都無法截斷交易記錄,建議您可以查詢系統檢視 sys.databases 中的 log_reuse_wait_desc 資料行的描述說明,找出為何無法截斷的可能因素。



若使用的版本是 SQL Server 2000、2005,可以任選以下Transact-SQL 陳述式,來截斷、清空交易記錄檔的內容,但是 SQL Server 2008 已經不再支援以下的寫法:



--01 使用 BACKUP LOG ... WITH NO_LOG
BACKUP LOG Northwind
WITH NO_LOG
GO

--02 或是,使用 BACKUP LOG ... WITH TRUNCATE_ONLY
BACKUP LOG Northwind
WITH TRUNCATE_ONLY
GO


BACKUP LOG 陳述式的 NO_LOG 和 TRUNCATE_ONLY 選項會中斷記錄鏈,
因為它們會在沒有建立備份副本情況下,移除記錄的非使用中部分。
在下次進行完整或差異資料庫備份之前,無法保護資料庫免於媒體失敗。

下一版的 Microsoft SQL Server 將不再提供此功能。
請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。

以下是使用 BACKUP LOG ... WITH NO_LOG 或 BACKUP LOG ... WITH TRUNCATE_ONLY 在 SQL Server 2008 上執行所產生的錯誤訊息:


--01 在SQL Server 2008上,使用 BACKUP LOG ... WITH NO_LOG,遇到的錯誤訊息:
BACKUP LOG Northwind
WITH NO_LOG
/*
訊息 3032,層級 16,狀態 2,行 1
這個陳述式不支援一或多個選項 (no_log)。請查閱文件集,了解支援的選項。
*/

--01 在SQL Server 2008上,使用 BACKUP LOG ... WITH TRUNCATE_ONLY,遇到的錯誤訊息:
BACKUP LOG Northwind
WITH TRUNCATE_ONLY
GO

/*
訊息 155,層級 15,狀態 1,行 3
'TRUNCATE_ONLY' 不是可辨識的 BACKUP 選項。
*/

參考資料:
管理交易記錄
http://technet.microsoft.com/zh-tw/library/ms345382.aspx

SQL Server 2008 中已停止的 Database Engine 功能
http://msdn.microsoft.com/zh-tw/library/ms144262.aspx

簡單復原模式下的備份
http://technet.microsoft.com/zh-tw/library/ms191164.aspx

交易記錄截斷
http://technet.microsoft.com/zh-tw/library/ms189085.aspx


如何避免 SQL Server 資料庫的交易記錄檔超出預期大小
http://support.microsoft.com/kb/873235/zh-tw

2009-03-18

新手學 SQL Server 2008 「以原則為基礎的管理(Policy-Based Management,PBM)」(2):技術文章



利用「以原則為基礎的管理(Policy-Based Management,PBM)」,將大幅簡少管理上的負擔,彈指間完成所需的原則設定。

在前一篇:「新手學以原則為基礎的管理(1)」文章中,我們討論了基礎概念與架構、評估模式、建立的流程、內建「最佳作法」等等主題,在本期文章中,我們將繼續介紹相關主題,並帶領各位實作練習,初探:「以原則為基礎的管理」。

完整的文章,請參考:第85期之二《新手學以原則為基礎的管理(2)》




更多相關的技術文章,請參考:
DB World 資料庫專家電子雜誌

http://www.dbworld.com.tw/




參考資料:
新手學 SQL Server 2008 「以原則為基礎的管理(Policy-Based Management,PBM)」(1):技術文章

http://sharedderrick.blogspot.com/2009/03/sql-server-2008-policy-based.html

2009-03-10

將資料表的資料,產生成 Insert 陳述式:使用 SQL Server Management Studio 2008 指令碼精靈


在 SQL Server Management Studio(SSMS) 2008 版本的管理工具之「指令碼精靈」,可以將資料表的資料,產生成 Insert 陳述式。

在 SQL Server 2005 版本時,需要另外安裝「SQL Server 資料庫發行精靈(SQL Server Database Publishing Wizard)」,才能具備此項功能。

實作練習:使用 SSMS 2008 的「指令碼精靈」

步驟01. 執行 SQL Server Management Studio。
步驟02. 在「物件總管」視窗,連線到指定的 SQL Server。
步驟03. 展開「資料庫」,選擇指定的資料庫,本範例選擇的是:Northwind。滑鼠右鍵,選擇「工作」\「產生指令碼」,請參考下圖1所示。

01_執行指令碼精靈

步驟04. 在「指令碼精靈」頁面,點選「下一步」,請參考下圖2所示。

02_指令碼視窗

步驟05. 在「選取資料庫」頁面,在「選取資料庫」,點選 Northwind,點選「下一步」,請參考下圖3所示。

03_選取資料庫

步驟06. 在「選擇指令碼選項」頁面,在「資料表/檢視表選項」區域,在「編寫資料的指令碼」方塊,選擇:True,點選「下一步」,請參考下圖4所示。



「編寫資料的指令碼」這個選項是 SSMS 2008 版本的功能,在 SSMS 2005 部分,並無此功能,請參考下圖5所示。


步驟07. 在「選擇物件類型」頁面,打勾「資料表」,點選「下一步」,請參考下圖6所示。

06_選擇物件類型

步驟08. 在「選擇資料表」頁面,在「選擇資料表」區域,勾選「Region」,點選「下一步」,請參考下圖7所示。

07_選擇資料表

步驟09. 在「輸出選項」頁面,在「指令碼模式」區域,點選「編寫指令碼至新增查詢視窗」,點選「下一步」,請參考下圖8所示。

08_輸出選項

步驟10. 在「指令碼精靈摘要」頁面,點選「完成」,請參考下圖9所示。

09_指令碼精靈摘要

步驟11. 在「產生指令碼進度」頁面,點選「關閉」,請參考下圖10所示。

10_產生指令碼進度

步驟12. 在 SSMS 查詢視窗內,可以看到資料表上的相關物件也會一併產生,例如:主索引鍵、外部索引鍵、CHECK限制條件等等。
資料值部分,將會產生 INSERT 陳述式來進行新增,請參考下圖11所示。



參考資料:
使用「資料庫發行精靈」:Visual Studio 2008、SQL Server 2008、SQL Database Publishing Wizard

http://sharedderrick.blogspot.com/2009/02/visual-studio-2008sql-server-2008sql_27.html

2009-03-04

新手學 SQL Server 2008 「以原則為基礎的管理(Policy-Based Management,PBM)」(1):技術文章




對於大部分的企業而言,當其組織規模擴張到一定程度,將會認真看待資訊系統的安全性、高可用性、營運管理、系統維護等等需求。勢必需要相對的制定規範來管理資料庫伺服器。

舉例來說:禁用某些功能、遵循標準作業程序、符合物件命名原則、安全規範、物件設計規範(例如:資料表、預存函數、使用者自訂函數…)等等。

這些需求,我們可以利用 SQL Server 2008 新提供的功能:「以原則為基礎的管理(Policy-Based Management,PBM)」來達成。

完整的文章,請參考:第85期之一《新手學以原則為基礎的管理(1)》




更多相關的技術文章,請參考:
DB World 資料庫專家電子雜誌

http://www.dbworld.com.tw/