2010-05-31

DBCC CHECKDB 與 DBCC CHECKTABLE 搭配使用 REPAIR_REBUILD 修復參數

DBCC CHECKDB 的檢查與修復對象是指定的資料庫。
DBCC CHECKTABLE 的檢查與修復對象是指定的資料表或索引檢視表。


DBCC CHECKDB 與 DBCC CHECKTABLE 都支援修復的作業,以下為參數的說明:

(1) REPAIR_ALLOW_DATA_LOSS
嘗試修復所有報告的錯誤。這些修復可能會造成某些資料的遺失。

(2) REPAIR_FAST
維護這個語法的目的,只是為了與舊版相容。不會執行任何修復動作。

(3) REPAIR_REBUILD
執行不可能造成資料遺失的修復,這可包括快速修復 (例如,修復非叢集索引中遺失的資料列) 以及更耗時的修復 (例如,重建索引)。
REPAIR_REBUILD 不會修復與 FILESTREAM 資料有關的錯誤。


而且,指定的資料庫必須為「單一使用者模式」。



重要事項:
  • 最好不要使用這些 REPAIR 選項。
  • 若要修復錯誤,我們建議您從備份中還原。
  • 修復作業並不考慮資料表或資料表之間的任何條件約束。
  • 如果指定的資料表涉及一或多項條件約束,建議您在修復作業之後,執行 DBCC CHECKCONSTRAINTS。
  • 如果您必須使用 REPAIR,請執行不含修復選項的 DBCC CHECKDB 來尋找要使用的修復層級。
  • 如果您使用 REPAIR_ALLOW_DATA_LOSS 層級,建議您在搭配這個選項執行 DBCC CHECKDB 之前,先備份資料庫。




以下為 DBCC CHECKDB 搭配使用 REPAIR_REBUILD 修復參數的範例程式碼:
USE master
GO
-- 先設定此資料庫的狀態為:SINGLE_USER 
ALTER DATABASE [資料庫名稱] 
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;   
GO

-- 執行 DBCC CHECKDB 搭配使用 REPAIR_REBUILD 參數
DBCC CHECKDB (Northwind, REPAIR_REBUILD);
GO

/*
若是非處於「單一使用者模式」時,將遇到以下的錯誤:
訊息 7919,層級 16,狀態 3,行 1
修復陳述式並未處理。資料庫必須處於單一使用者模式。
*/

-- 設定此資料庫的狀態為:MULTI_USER,回復正常上線
ALTER DATABASE [資料庫名稱] 
SET MULTI_USER; 
GO


以下為 DBCC CHECKTABLE 搭配使用 REPAIR_REBUILD 修復參數的範例程式碼:
USE master
GO
-- 先設定此資料庫的狀態為:SINGLE_USER
-- 使用終止選項 WITH ROLLBACK IMMEDIATE。所有未完成的交易都會回復,而且資料庫的任何其他連接都會立即中斷
ALTER DATABASE [資料庫名稱] 
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE; 
GO

-- 執行 DBCC CHECKTABLE 搭配使用 REPAIR_REBUILD 參數
USE [資料庫名稱]
GO
DBCC CHECKTABLE ([資料表], REPAIR_REBUILD);
GO
/*
若是非處於「單一使用者模式」時,將遇到以下的錯誤:
訊息 7919,層級 16,狀態 3,行 1
修復陳述式並未處理。資料庫必須處於單一使用者模式。
*/

-- 設定此資料庫的狀態為:MULTI_USER,回復正常上線
ALTER DATABASE [資料庫名稱] 
SET MULTI_USER; 
GO


參考資料:
DBCC CHECKDB (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms176064(v=SQL.105).aspx

DBCC CHECKTABLE (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms174338.aspx

2010-05-27

使用 xp_fixeddrives 偵測磁碟的可用空間

若想要知道目前本機各個磁碟的可用空間,在 SQL Server 2005 以上的版本,可以使用 CLR 來撰寫預存程序。
或者是試試看 undocumented 的「擴充預存程序(extended stored procedure)」:xp_fixeddrives。

以下為使用 xp_fixeddrives 的範例
EXEC xp_fixeddrives


可以觀察到 xp_fixeddrives 回傳本機磁碟的可用空間,以 MB 為顯示單位。




接下來,筆者提供整合了「作業(Job)」與「警示(Alert)」的範例。
功能說明:
1. 使用「作業」,設定所需要執行的 T-SQL 陳述式,排程執行偵測作業。
2. 設定磁碟可用空間的臨界值,低於臨界值時,發出錯誤訊息,觸發「警示」。
在本範例中,觸發的是嚴重層級 17 的錯誤。


關於要執行偵測判斷的 T-SQL 陳述式,請參考以下的範例程式碼1:
SET NOCOUNT ON
USE master
GO
DECLARE @msg nvarchar(256) , @dr varchar(256)
DECLARE @fs TABLE (drive char(1), MB_Free int)
DECLARE @ds TABLE(drive char(1))

INSERT @fs EXEC xp_fixeddrives

INSERT @ds
SELECT drive FROM @fs 
WHERE MB_Free<10240 -- 設定磁碟的臨界值(MB),在本範例中,設定為 10 GB

IF EXISTS(SELECT * FROM @ds)
BEGIN
DECLARE @rs varchar(256)
SET @rs=''
SELECT @rs=@rs+drive+',' FROM @ds

SELECT @dr=SUBSTRING(@rs, 1,DATALENGTH(@rs)-1)
SET @msg =N'磁碟:'+@dr+N' 的可用空間低於臨界值'
RAISERROR (@msg, 17,1) WITH LOG

END



在範例程式碼1中,是針對本機每個磁碟都設定為相同的臨界值。 若你需要分別對各個磁碟,設定所需的臨界值,請參考以下的範例程式碼2:
SET NOCOUNT ON
USE master
GO
DECLARE @msg nvarchar(256) , @dr varchar(256)
DECLARE @fs TABLE (drive char(1), MB_Free int)
DECLARE @ds TABLE(drive char(1))

INSERT @fs EXEC xp_fixeddrives

INSERT @ds 
SELECT drive FROM @fs WHERE drive='C' AND MB_Free<10240 -- 設定磁碟C的臨界值(MB)
INSERT @ds 
SELECT drive FROM @fs WHERE drive='D' AND MB_Free<10240 -- 設定磁碟D的臨界值(MB)
INSERT @ds 
SELECT drive FROM @fs WHERE drive='E' AND MB_Free<10240 -- 設定磁碟E的臨界值(MB)
INSERT @ds 
SELECT drive FROM @fs WHERE drive='F' AND MB_Free<10240 -- 設定磁碟F的臨界值(MB)

IF EXISTS(SELECT * FROM @ds)
BEGIN
DECLARE @rs varchar(256)
SET @rs=''
SELECT @rs=@rs+drive+',' FROM @ds

SELECT @dr=SUBSTRING(@rs, 1,DATALENGTH(@rs)-1)
SET @msg =N'磁碟:'+@dr+N' 的可用空間低於臨界值'
RAISERROR (@msg, 17,1) WITH LOG

END
在此感謝 Will 熱情提供。

以下的範例程式碼,其功能為: 將上述的磁碟可用空間判斷功能,包裝為「作業」,並且設定每 30 分鐘自動執行一次。
USE [msdb]
GO

/****** Object:  Job [jb_偵測磁碟的可用空間]    Script Date: 05/27/2010 20:54:15 ******/
IF  EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'jb_偵測磁碟的可用空間')
EXEC msdb.dbo.sp_delete_job @job_name=N'jb_偵測磁碟的可用空間', @delete_unused_schedule=1
GO

USE [msdb]
GO

/****** Object:  Job [jb_偵測磁碟的可用空間]    Script Date: 05/27/2010 20:54:15 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object:  JobCategory [[Uncategorized (Local)]]]    Script Date: 05/27/2010 20:54:15 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'jb_偵測磁碟的可用空間', 
@enabled=1, 
@notify_level_eventlog=0, 
@notify_level_email=0, 
@notify_level_netsend=0, 
@notify_level_page=0, 
@delete_level=0, 
@description=N'沒有可用的描述。', 
@category_name=N'[Uncategorized (Local)]', 
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object:  Step [st_偵測磁碟可用空間]    Script Date: 05/27/2010 20:54:15 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'st_偵測磁碟可用空間', 
@step_id=1, 
@cmdexec_success_code=0, 
@on_success_action=1, 
@on_success_step_id=0, 
@on_fail_action=2, 
@on_fail_step_id=0, 
@retry_attempts=0, 
@retry_interval=0, 
@os_run_priority=0, @subsystem=N'TSQL', 
@command=N'SET NOCOUNT ON
USE master
GO
DECLARE @msg nvarchar(256) , @dr varchar(256)
DECLARE @fs TABLE (drive char(1), MB_Free int)
DECLARE @ds TABLE(drive char(1))

INSERT @fs EXEC xp_fixeddrives

INSERT @ds 
SELECT drive FROM @fs WHERE drive=''C'' AND MB_Free<10240 -- 設定磁碟C的臨界值(MB)
INSERT @ds 
SELECT drive FROM @fs WHERE drive=''D'' AND MB_Free<10240 -- 設定磁碟D的臨界值(MB)
INSERT @ds 
SELECT drive FROM @fs WHERE drive=''E'' AND MB_Free<10240 -- 設定磁碟E的臨界值(MB)
INSERT @ds 
SELECT drive FROM @fs WHERE drive=''F'' AND MB_Free<10240 -- 設定磁碟F的臨界值(MB)

IF EXISTS(SELECT * FROM @ds)
BEGIN
DECLARE @rs varchar(256)
SET @rs=''''
SELECT @rs=@rs+drive+'','' FROM @ds

SELECT @dr=SUBSTRING(@rs, 1,DATALENGTH(@rs)-1)
SET @msg =N''磁碟:''+@dr+N'' 的可用空間低於臨界值''
RAISERROR (@msg, 17,1) WITH LOG

END', 
@database_name=N'master', 
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'sch1_每30分鐘執行一次', 
@enabled=1, 
@freq_type=4, 
@freq_interval=1, 
@freq_subday_type=4, 
@freq_subday_interval=30, 
@freq_relative_interval=0, 
@freq_recurrence_factor=0, 
@active_start_date=20100527, 
@active_end_date=99991231, 
@active_start_time=0, 
@active_end_time=235959, 
@schedule_uid=N'a32cb358-f75a-41ce-9ede-0f6556e1e299'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

GO


參考資料:

設定「警示(Alerts)」來回應所發生的錯誤,以「錯誤嚴重性(Error Severities)」為例 http://sharedderrick.blogspot.com/2010/04/alertserror-severities.html


Using xp_fixeddrives to Monitor Free Space
http://www.databasejournal.com/features/mssql/article.php/3080501/Using-xpfixeddrives-to-Monitor-Free-Space.htm

2010-05-23

使用 SQL Profiler 建立「SQL 追蹤(SQL Trace)」

「SQL 追蹤(SQL Trace)」
SQL Server 所提供的 Transact-SQL 系統預存程序,可建立 SQL Server Database Engine之執行個體的追蹤。
您可以從自己的應用程式中使用這些系統預存程序以手動建立追蹤,而不是使用 SQL Server Profiler 建立追蹤。 如此一來,就可以依照您的企業需求撰寫自訂的應用程式。
可記錄指定的事件,藉以協助您進行效能的疑難排解、稽核資料庫活動、收集測試環境的樣本資料、為 Transact-SQL 陳述式與預存程序偵錯,以及收集效能分析工具的資料等。

SQL Server Profiler
是「SQL 追蹤」的圖形化使用者介面,可用來監視 Database Engine 或 SQL Server Analysis Services 的執行個體。
您可以擷取每一個事件的相關資料,並將資料儲存至檔案或資料表,以供稍後分析。例如,您可以監視生產環境,查看哪些預存程序由於執行速度過慢而影響效能。



「SQL 追蹤」與 SQL Server Profiler 兩者之間,還一項重要的差異:
SQL Server Profiler 在系統負荷過重的狀況下有可能不追蹤某些事件。
但使用「SQL 追蹤」即使在負荷過重的狀況下仍不會略過任何事件。



若要使用預存程序來定義自己的追蹤,其流程如下:
1.使用 sp_trace_setevent 來指定要擷取的事件。
2.指定事件篩選條件。
3.使用 sp_trace_create 來指定擷取事件資料的目的地。

但你可以使用 SQL Profiler 建立「SQL 追蹤」。




實作練習:使用 SQL Profiler 建立「SQL 追蹤」

工作1:使用 SQL Profiler 產生建立「SQL 追蹤」的程式碼
工作2:檢視與修改 SQL Profiler 所產生的程式碼
工作3:執行與觀察「SQL 追蹤」

工作1:使用 SQL Profiler 產生建立「SQL 追蹤」的程式碼

步驟1:執行 SQL Profiler,連線指定的伺服器。
步驟2:在「追蹤屬性」視窗,設定以下的參數,並參考下圖所示:
勾選「儲存至檔案」,設定此檔案存放到磁碟C。
勾選「啟用檔案換用」。
在「設定檔案大小上限(MB)」,輸入 5,表示每個「SQL 追蹤」的檔案大小為 5 MB。
勾選「伺服器處理追蹤資料」。
點選「執行」。





步驟3:在上方的工具選單,點選「檔案」\「停止追蹤」。
步驟4:在上方的工具選單,點選「檔案」\「匯出」\「指令碼追蹤定義」,選擇「對於 SQL Server 2005-2008」。

步驟5:在「另存新檔」視窗,設定與輸入此指令碼檔案的檔名與路徑,點選「存檔」\「確定」。
步驟6:關閉 SQL Profiler。


工作2:檢視與修改 SQL Profiler 所產生的程式碼

步驟1:使用 SSMS 管理工具,開啟先前所產生的程式碼。
步驟2:找到以下的程式碼:
-- 原本由 SQL Profiler 所產生的程式碼
exec @rc = sp_trace_create @TraceID output, 2, N'C:\mySQLTrace\ST.trc', @maxfilesize, NULL

/*
若是加入參數名稱,應該會是以下的格式:
exec @rc=sp_trace_create
@traceid=@traceid output, @options=2,
@tracefile=N'C:\mySQLTrace\ST',
@maxfilesize=@maxfilesize,
@stoptime=NULL
*/


有關於參數 @options 與 @tracefile 的說明如下:



在此次範例中,設定值為:
@options = 2。表示使用「TRACE_FILE_ROLLOVER」,建立具備換用的追蹤檔。
@tracefile = N'C:\mySQLTrace\ST'。刪除了 *.trc 附檔名,這是因為 SQL Server 會在所有追蹤檔名稱中,附加 .trc 副檔名。

請自行依據需求,修改為適合的參數值。


工作3:執行與觀察「SQL 追蹤」

步驟1:執行先前在工作2 由 SQL Profiler 所產生的程式碼。
步驟2:執行以下的範例程式碼來查詢系統目前正在執行的追蹤:
--01 查詢系統目前正在執行的追蹤
/*
資料行 status 的說明:
追蹤狀態:
0 = 已停止
1 = 執行中
在條件式部分,設定不查詢「預設追蹤(Default Trace)」。
*/
SELECT * FROM sys.traces
WHERE is_default <> 1




步驟3:若要停止此「SQL 追蹤」,請執行以下的範例程式碼:
--02 停止指定的追蹤。
/*
參數 @status 的說明:
0:停止指定的追蹤。
1:啟動指定的追蹤。
2:關閉指定的追蹤,並從伺服器中刪除其定義。
*/
EXEC sp_trace_setstatus @traceid = 2 , @status = 0
GO
--03 關閉指定的追蹤,並從伺服器中刪除其定義。
EXEC sp_trace_setstatus @traceid = 2 , @status = 2
GO
--04 查詢系統目前正在執行的追蹤
SELECT * FROM sys.traces
WHERE is_default <> 1




參考資料:
sp_trace_create (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms190362%28SQL.90%29.aspx

sys.traces (Transact-SQL)
http://technet.microsoft.com/zh-tw/library/ms178579%28SQL.90%29.aspx

追蹤屬性 (一般索引標籤)
http://technet.microsoft.com/zh-tw/library/ms178910.aspx

2010-05-17

參考資源:升級(Upgrade)、移轉(Migration)至 SQL Server 2008

最近有些朋友剛好在執行升級或是移轉到 SQL Server 2008 的作業。
在規劃升級作業的路徑上,可以簡化為以下的方式:

  • Upgrade(直接升級,in-place upgrade)
  • Migration(平行移轉,side-by-side migration)









以下是整理了相關的參考資料,在執行升級作業之前,建議您事先閱讀:

SQL Server 2008 Upgrade Technical Reference Guide
http://www.microsoft.com/downloads/details.aspx?FamilyID=66d3e6f5-6902-4fdd-af75-9975aea5bea7&displaylang=en

Resources for Upgrading to SQL Server 2008
http://msdn.microsoft.com/en-us/library/cc936623.aspx

Microsoft SQL Server 2008 Upgrade Advisor
http://www.microsoft.com/downloads/details.aspx?familyid=F5A6C5E9-4CD9-4E42-A21C-7291E7F0F852&displaylang=en

如何:升級到 SQL Server 2008 (安裝程式)
http://msdn.microsoft.com/zh-tw/library/ms144267.aspx

升級到 SQL Server 2008
http://msdn.microsoft.com/zh-tw/library/bb677622%28v=SQL.100%29.aspx

升級至 SQL Server 2008
http://www.microsoft.com/taiwan/sql2008/solutions/upgrade.aspx

移轉至 SQL Server 2008
http://www.microsoft.com/taiwan/sql2008/solutions/migration.aspx

升級 SQL Server,效能變差
http://sharedderrick.blogspot.com/2008/10/sqlserver.html

SQL Server 2005 Upgrade Technical Reference Guide
http://www.microsoft.com/downloads/details.aspx?familyid=3D5E96D9-0074-46C4-BD4F-C3EB2ABF4B66&displaylang=en

2010-05-11

在「資料庫鏡像」上,啟用「讀取認可快照(Read Committed Snapshot)」。遭遇錯誤:訊息 1468,層級 16,狀態 4,因為它牽涉到資料庫鏡像工作階段(because it is involved in a database mirroring session)。

若在「資料庫鏡像」組態上,直接對「主體資料庫」啟用「讀取認可快照(Read Committed Snapshot)」。
請參考以下的範例來啟用「讀取認可快照」:



--啟用資料列版本控制的讀取認可快照(READ_COMMITTED_SNAPSHOT)
USE master
GO
ALTER DATABASE <資料庫>
SET READ_COMMITTED_SNAPSHOT ON
WITH ROLLBACK IMMEDIATE;
GO


可能會遭遇到以下的錯誤訊息與下圖所示:



訊息 1468,層級 16,狀態 4,行 1
無法在資料庫 "Northwind_DatabaseMirroring" 上執行作業,因為它牽涉到資料庫鏡像工作階段。
訊息 5069,層級 16,狀態 1,行 1
ALTER DATABASE 陳述式失敗。
--
訊息 1468,層級 16,狀態 4,行 1
The operation cannot be performed on database "Northwind_DatabaseMirroring" because it is involved in a database mirroring session.
訊息 5069,層級 16,狀態 1,行 1
ALTER DATABASE statement failed.













在設定 READ_COMMITTED_SNAPSHOT 資料庫選項設為 ON ,只允許使用執行 ALTER DATABASE 命令的連接。在 ALTER DATABASE 完成以前,資料庫中不可以有其他開啟的連接。資料庫不一定要處於單一使用者模式。

在「資料庫鏡像」機制上,「主體資料庫」與「鏡像資料庫」之間有「資料庫鏡像工作階段」的連線,所以,這應該可以預期會發生的情形。







若要在「資料庫鏡像」組態上,直接對「主體資料庫」啟用「讀取認可快照」功能。

請參考以下的流程:

  • 工作1:中斷「資料庫鏡像工作階段」。
  • 工作2:設定啟用「讀取認可快照」。
  • 工作3:重建「資料庫鏡像工作階段」。


工作1:中斷「資料庫鏡像工作階段」
可以使用兩種方式:
(1)使用 SSMS 管理工具,對「主體資料庫」,執行「移除鏡像」。請參考下圖所示:




(2)在「主體資料庫」上,執行以下的範例程式碼:
USE master
GO
ALTER DATABASE 
SET PARTNER OFF
GO


工作2:設定啟用「讀取認可快照」
對「主體資料庫」,執行以下的範例程式碼:

--啟用資料列版本控制的讀取認可快照(READ_COMMITTED_SNAPSHOT)
USE master
GO
ALTER DATABASE Northwind_DatabaseMirroring
SET READ_COMMITTED_SNAPSHOT ON
WITH ROLLBACK IMMEDIATE;
GO

--查詢是否有啟用「讀取認可快照」
SELECT name N'資料庫', snapshot_isolation_state N'快照集隔離交易狀態',
snapshot_isolation_state_desc N'快照集隔離交易狀態的描述',
is_read_committed_snapshot_on N'啟用讀取認可快照'
FROM sys.databases
ORDER BY 4 DESC


請參考下圖所示:


工作3:重建「資料庫鏡像工作階段」
可以使用兩種方式:
(1)使用 SSMS 管理工具,執行「設定資料庫鏡像安全性精靈」來重新建立「資料庫鏡像工作階段」。
(2)使用以下的範例程式碼:
USE master
GO
ALTER DATABASE 
SET PARTNER = <....>
GO



由上,已經完成在「資料庫鏡像」上,啟用「讀取認可快照(Read Committed Snapshot)」組態的作業。




參考資料:
Database Engine 中的隔離等級
http://msdn.microsoft.com/zh-tw/library/ms189122.aspx

Database Engine 中資料列版本控制式的隔離等級
http://msdn.microsoft.com/zh-tw/library/ms179599.aspx

啟用資料列版本控制式的隔離等級
http://msdn.microsoft.com/zh-tw/library/ms175095.aspx

How to Enable RCSI for a Database with Database Mirroring
http://blogs.msdn.com/sqlcat/archive/2010/03/16/how-to-enable-rcsi-for-a-database-with-database-mirroring.aspx

2010-05-06

安裝 SQL Server 2008 R2 Express with Management Tools

「SQL Server 2008 Express with Tools」除了包含 SQL Server 2008 Express 中可用的功能以外,還提供下列功能:
管理工具:SQL Server Management Studio Express (SSMSE)


SSMSE 管理工具,提供了適用於 SQL Server 2008 Express (SQL Server Express)、SQL Server 2008 Express with Advanced Services 和 (SQL Server Compact 3.5 SP1) 的圖形化管理工具。

剛好正在安裝 SQL Server 2008 R2 Express with Management Tools,順便將其安裝畫面抓下來作為備忘之用。

RTM 正式版本的版本編號是: 10.50.1600。




使用環境:
Windows Server 2008 R2 Enterprise,x64

安裝軟體:
SQL Server 2008 R2 Express with Management Tools,x64

觀看安裝歷程的圖示秀,請參考以下的網址:
http://picasaweb.google.com/DerrickLaLa/SQLServer2008R2ExpressWithManagementTools





參考資料:
下載 SQL Server 2008 R2 Express:免費版本、硬體限制、支援的功能
http://sharedderrick.blogspot.com/2010/05/sql-server-2008-r2-express.html

Features Supported by the Editions of SQL Server 2008 R2
http://msdn.microsoft.com/en-us/library/cc645993%28SQL.105%29.aspx

啟用 SQL Server 2008 遠端連線(Enable Remote Connection)
http://sharedderrick.blogspot.com/2009/05/sql-server-2008-express-enable-remote.html





下載網址:
Microsoft SQL Server 2008 R2 RTM - Express - 中文(繁體)
http://www.microsoft.com/downloads/details.aspx?familyid=8B3695D9-415E-41F0-A079-25AB0412424B&displaylang=zh-tw

Microsoft SQL Server 2008 R2 RTM - Express with Management Tools - 中文(繁體)
http://www.microsoft.com/downloads/details.aspx?familyid=967225EB-207B-4950-91DF-EEB5F35A80EE&displaylang=zh-tw

Microsoft SQL Server2008 R2 RTM - Express with Advanced Services - 中文(繁體)
http://www.microsoft.com/downloads/details.aspx?familyid=E08766CE-FC9D-448F-9E98-FE84AD61F135&displaylang=zh-tw

管理工具:Microsoft SQL Server 2008 R2 RTM - Management Studio Express
http://www.microsoft.com/downloads/details.aspx?FamilyID=56ad557c-03e6-4369-9c1d-e81b33d8026b&DisplayLang=en

2010-05-05

下載 SQL Server 2008 R2 Express:免費版本、硬體限制、支援的功能

SQL Server 2008 R2 Express,目前可以分成為以下的版本:

  • SQL Server Express (x86 和 x64)
  • SQL Server Express with Tools (x86 和 x64)
  • SQL Server Express with Advanced Services (x86 和 x64)

所有版本的 SQL Server Express 都是可以遵照合約進行轉散發的免費下載軟體。
每個版本都可以當做用戶端資料庫和基本伺服器資料庫使用。


任何 SQL Server Express 版本也都是獨立軟體廠商 (ISV)、伺服器使用者、非專業開發人員、Web 開發人員、網站主持人和建立用戶端應用程式之愛好者的理想選擇。
如果您需要其他更進階的資料庫功能,可以將 SQL Server Express 升級為較複雜的 SQL Server 版本。

SQL Server 2008 Express 是以 Microsoft SQL Server 為基礎的資料庫平台。SQL Server Express 可讓您輕鬆地開發功能豐富、提供強化儲存安全性而且部署快速的資料導向應用程式。
SQL Server 2008 Express with Tools 是 SQL Server Express 的一種版本,其中包含基本圖形化管理工具。


SQL Server 2008 Express with Advanced Services 是 SQL Server Express 的一種版本,包含全新的圖形化管理工具、報告功能,以及進階的文字搜尋功能。

除了 SQL Server 2008 Express 中可用的功能以外,「SQL Server 2008 Express with Tools」 還提供下列功能:
SQL Server Management Studio 的基本安裝是一種圖形化管理工具,可讓您輕鬆管理 SQL Server Express 資料庫。


除了 SQL Server 2008 Express 中可用的功能以外,「SQL Server 2008 Express with Advanced Services」 還提供下列功能:

  • SQL Server Management Studio 的基本安裝是一種圖形化管理工具,可讓您輕鬆管理 SQL Server Express 資料庫。
  • Reporting Services.
  • BI Development Studio. 這會提供整合式報表建立與設計環境來建立報表。
  • 全文檢索搜尋,用於搜尋大量文字資料的強大搜尋引擎。




以下說明了在硬體、所支援的功能面之差異:





Express 版本的硬體限制

  • CPU:最多支援 1 顆實體 CPU。
  • 記憶體:最多支援到 1 GB。
  • 每個資料庫的最大大小為:10 GB。先前版本(SQL Server 2005 與 2008 的 Express 版本)是支援到 4 GB。

有關於 CPU 支援的說明:
SQL Server 支援指定的處理器插槽數目乘以每個插槽的邏輯 CPU 數目。
例如,在下列項目都會視為單一處理器:

  • 每個插槽含有 2 個邏輯 CPU 的單核心超執行緒處理器。
  • 含有 2 個邏輯 CPU 的雙核心處理器。
  • 含有 4 個邏輯 CPU 的四核心處理器。

SQL Server 是針對每個處理器插槽授權,而非針對每個邏輯 CPU 授權。




支援的功能

SQL Server Management Studio Express (SSMSE) 提供了適用於 SQL Server 2008 Express (SQL Server Express)、SQL Server 2008 Express with Advanced Services 和 (SQL Server Compact 3.5 SP1) 的圖形化管理工具。


SSMSE 使用者介面是其他 SQL Server 2008 版本可以使用之 SQL Server Management Studio 的子集。




SQL Server Express 支援的功能



SQL Server Express 不支援的功能


可惜的是 SQL Server Express 沒有 SQL Server Agent Service。
所以,有關於定期排程的部分,可能要搭配 Windows 作業系統的「Task Scheduler」。




在 MICROSOFT 軟體授權條款:MICROSOFT SQL SERVER 2008 R2 EXPRESS
其中寫到:
12. 救濟權與損害賠償責任之限制與排除。貴用戶僅得就直接損害,要求 MICROSOFT 及其供應商負擔損害賠償責任,且其金額不得超過 5.00 美元。 貴用戶無法就其他損害 (包括衍生性損害、利潤損失、特殊損害、間接損害或附隨性損害) 請求損害賠償。





下載網址:
Microsoft SQL Server 2008 R2 RTM - Express - 中文(繁體)
http://www.microsoft.com/downloads/details.aspx?familyid=8B3695D9-415E-41F0-A079-25AB0412424B&displaylang=zh-tw

Microsoft SQL Server 2008 R2 RTM - Express with Management Tools - 中文(繁體)
http://www.microsoft.com/downloads/details.aspx?familyid=967225EB-207B-4950-91DF-EEB5F35A80EE&displaylang=zh-tw

Microsoft SQL Server2008 R2 RTM - Express with Advanced Services - 中文(繁體)
http://www.microsoft.com/downloads/details.aspx?familyid=E08766CE-FC9D-448F-9E98-FE84AD61F135&displaylang=zh-tw

管理工具:Microsoft SQL Server 2008 R2 RTM - Management Studio Express
http://www.microsoft.com/downloads/details.aspx?FamilyID=56ad557c-03e6-4369-9c1d-e81b33d8026b&DisplayLang=en



參考資料:
Microsoft® SQL Server® 2008 R2 使用者授權合約
http://www.microsoft.com/downloads/details.aspx?familyid=9E74964E-AFC3-44C2-B05E-1CA87B701C2F&displaylang=zh-tw

How to Install SQL Server 2008 R2 (Express Edition)
http://blogs.msdn.com/petersad/archive/2009/11/13/how-to-install-sql-server-2008-r2-express-edition-november-ctp.aspx

Features Supported by the Editions of SQL Server 2008 R2
http://msdn.microsoft.com/en-us/library/cc645993%28SQL.105%29.aspx

SQL Server 2008 Express 版本(Edition)、支援功能、硬體限制
http://sharedderrick.blogspot.com/2008/09/sql-server-2008-express-edition.html

免費無料 SQL Server Express 2005, Royalty Free
http://sharedderrick.blogspot.com/2008/03/sql-server-expression-edition-royalty.html

SQL Server 2008 R2 :安裝抓圖,使用 Enterprise 中文企業版本

剛好正在安裝 Microsoft SQL Server 2008 R2 中文企業版本,順便將其安裝畫面抓下來作為備忘之用。

RTM 正式版本的版本編號是: 10.50.1600。


觀看安裝歷程的圖示秀,請參考以下的網址:
http://picasaweb.google.com/DerrickLaLa/SQLServer2008R2Enterprise



參考網址:
下載 Microsoft SQL Server 2008 R2 試用版
http://sharedderrick.blogspot.com/2010/05/microsoft-sql-server-2008-r2.html

Microsoft SQL Server 2008 R2 系統需求
http://msdn.microsoft.com/zh-tw/library/ms143506%28SQL.105%29.aspx

2010-05-04

下載 SQL Server 2008 R2 中文正式版本:TechNet 與 MSDN 訂閱者

目前可供下載的版本有:

  • SQL Server 2008 R2 Developer (x86, x64, ia64) - DVD (Chinese-Traditional)
  • SQL Server 2008 R2 Enterprise (x86, x64, ia64) - DVD (Chinese-Traditional)
  • SQL Server 2008 R2 Standard (x86, x64, ia64) - DVD (Chinese-Traditional)
  • SQL Server 2008 R2 Web (x86, x64, ia64) - DVD (Chinese-Traditional)
  • SQL Server 2008 R2 Workgroup (x86, x64, ia64) - DVD (Chinese-Traditional)








2010-05-03

下載 Microsoft SQL Server 2008 R2 試用版


以 SQL Server 2008 提供的受信賴、有效率的智慧型資料平台為基礎建置而成的 SQL Server 2008 R2,提供眾多新的改進功能,可幫助貴組織放心地調整資料庫作業,提升 IT 效率,以及提供受管理的自助服務 BI。
此版本包括應用程式和多重伺服器管理、複雜事件處理、主要資料服務和使用者報告等方面的新功能和增強功能。

藉由 PowerPivot for Microsoft Excel 的威力,使用者現在可以使用熟悉的 Microsoft Office 工具輕鬆存取、整合、分析和分享資訊。



參考資料:
下載 Microsoft SQL Server 2008 R2 試用版
http://technet.microsoft.com/zh-tw/evalcenter/ee315247.aspx

Microsoft® SQL Server® 2008 R2 使用者授權合約
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=9e74964e-afc3-44c2-b05e-1ca87b701c2f

SQL Server 2008 R2 Update for Developers Training Kit (April 2010 Update)
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=fffaad6a-0153-4d41-b289-a3ed1d637c0d

SQL Server 2008 R2 Guide
http://download.microsoft.com/download/4/0/1/4016B1B8-B04A-4B11-B707-D05BF84772B0/MSSQLR2RG.doc

StreamInsight Server Architecture
http://msdn.microsoft.com/en-us/library/ee391536%28SQL.105%29.aspx

Benchmarks (source SQL Server Performance blog)
http://blogs.msdn.com/sqlperf/archive/2010/04/21/kilimanjaro-ships.aspx

Cristian's Blog : SQL Server 2008 R2 resources (reloaded)
http://sqlserver.ro/blogs/cristians_blog/archive/2010/04/22/sql-server-2008-r2-resources-reloaded.aspx

2010-05-01

IT 機房與「乖乖」

「乖乖」是筆著從小吃到大的零食之一,依據官方網站的說明,此項人氣商品是自西元 1968 年開始生產販售。
以下整理了目前市售乖乖的種類與口味:

  • 乖乖-奶油椰子口味狠大包 -- 綠色
  • 乖乖-奶油椰子口味 -- 綠色
  • 乖乖-五香口味狠大包 -- 黃色
  • 乖乖-五香口味 -- 黃色
  • 乖乖-玉米脆果可可亞口味 -- 咖啡色
  • 乖乖-巧克力口味 -- 巧克力色

一旦到了中元普渡時節(農曆七月十五日),在台灣就可以看所謂的:高科技公司、外商軟體公司、 IT 大廠、各組織的 IT 部門等等,就會買「乖乖」來孝敬各方好兄弟。
並放置到電腦機房內,祈求保平安。

其中,在選購「乖乖」時,還指名購買特定的顏色,例如:

  • 綠色 -- 代表綠燈,系統持續運行,平安。
  • 黃色 -- 代表黃燈,警示。
  • 紅色 -- 代表紅燈,系統損毀。
  • 黑色 -- 電源中斷,無法開機。

甚至還要留意「乖乖」的有效保存期限,過期的「乖乖」也是沒有保佑的能力。

有人會說,老外不迷信,電腦機房才不會放「乖乖」,或許,當你與管機房的老外熟稔一點後,就會知道其實...「求心安」這件事,很多人都是一樣的。


主管是對的,客戶是對的。


對自己負責 … ^_^


參考資料:
中元節與盂蘭盆節
http://zh.wikipedia.org/zh-tw/%E4%B8%AD%E5%85%83%E8%8A%82

乖乖股份有限公司
http://www.kuai-kuai.com.tw/

乖乖--零食類產品
http://www.kuai-kuai.com.tw/product.aspx?mid=703

移民署境管電腦凸槌/當機36小時 一個血淋淋的乖乖事件. 乖乖真的很重要...不能亂吃
http://blog.xuite.net/jackhsu0704/gmns/21746543

關於乖乖大神的真人真事...
http://www.mobile01.com/topicdetail.php?f=174&t=534231&last=15387420

一年一度拜乖乖
http://blog.lester850.info/archives/2006/08/04/351/

IT-HOME專訪之機房的風水學
http://www.ithome.com.tw/itadm/article.php?c=44298

乖乖的妙用-小小兔的部落格
http://blog.udn.com/sayuri/779385

乖乖大神
http://www.wretch.cc/blog/denise0306/10733457