SQL 2008 T-Prep 上課心得(一)

赴美,聽 Paul S. Randal 的 SQL 2008 課程,Great!!!
 
Database Mirroring
  • 增加若 Principal Server 的 Data Page 損毀(程式發生 824 ‘soft-io’/823 ‘hard-IO’/829 ‘Restore needed’ 等錯誤),若在 Mirror Server 對應的資料頁完好,則可以自動從 Mirror Server 將該頁讀回。
  • 在 High Safety mode 若要轉移,SQL 2005 需要 Mirror Server 強制移轉後須重新啟動,SQL 2008 則不需要
  • 增加許多 Performance Counter 以監控運作
  • 傳送的 Log 自動壓縮而效率較高,但較耗 CPU,若要停掉壓縮需啟動 flag 1462。以往若要做資料庫維護性工作,例如 Index rebuild,參考 http://www.sqlskills.com/blogs/paul/2007/10/19/MoreOnDatabaseMirroringPerformanceAndIndexMaintenance.aspx

備份壓縮

支援 hot-add CPU,參考 http://www.sqlskills.com/blogs/paul/2008/01/10/SQLServer2008HotAddCPUAndAffinityMasks.aspx

點對點複寫

Configuration Server

  • 集中的伺服器群組與註冊的伺服器,讓執行 T-SQL Script 和 Policy 設定可以連接到群組,而後對群組內的伺服器執行相同的管理動作
  • SSMS 的 Options 增加 Query Results/SQL Server/Multiserver Results 項目設定,以統整傳回的結果

以 Policy 為基礎的管理

  • 讓管理可以從 T-SQL Script 等級進化到套用群組原則
  • 名詞定義
    • Facets:已經定義好的評估要件(如資料庫名稱、各種安全設定…等)所組成的分類群組,類比於 Performance Counter 的效能物件,而 Facets 下組成元素則類比 Counter。如 Database Performance facet 下有 @AutoClose、@AutoShrink、@CollationMatchesModelOrMaster…等等
    • Conditions:選出 Facets 下組成元素定義布林運算條件。如@AutoClose=False
    • Policies:組合條件後,要套用到伺服器、資料庫、資料表…的單位
    • Categories:包含一個以上的 Policy,資料庫的擁有者可以設定資料庫套用一個以上的 Category。
  • 施行 Policy 的方式:
    • On Demand:透過 Management Studio/Policy Management/Policies 手動啟動某項 Policy
    • 週期性檢查:透過 SQL Agent Job 檢查
    • On Change – Log Only:發生事件時自動套用,不符 Policy 的部分自動記錄,例如 DDL 變更,會自動透過 DDL Trigger 觸發來啟動 Policy 檢查,不是所有的事件都可以透過 On Change 的方式啟動檢查
    • On Change – Prevent:發生事件時自動套用,不符 Policy 的部分自動放棄變更
  • Policy 提供斷線編輯、評估、importing 等功能
  • 透過 Configuration Server 對多台伺服器下達 Policy

Management Data Warehouse

  • 集中收集多台伺服器的資料,例如管理或效能資訊,集中產生分析報表
  • 透過精靈在指定的伺服器執行個體建立 SQL Server 預先定義好,存放系統資料的 data warehouse,就是一般的資料庫
  • 在個別伺服器執行個體收集到資料後,預設先快取到本機 %temp% 目錄下,然後以批次的方式加入到集中的 Management Data Warehouse 內

效能資訊蒐集

  • 搭配 Management Data Warehouse 的功能,在多台機器蒐集 SQL Server 與先定義好的效能資訊,如硬碟使用、查詢統計、系統效能計數器
  • 可以 T-SQL 客製化定義蒐集的資料
  • 提供制式的分析報表
  • 因為  Management Data Warehouse 的定義是公開的,所以也可以客製化分析方式

Resource Governor

  • 僅企業版支援,以執行個體為單位
  • 設定 pool/group 規範可用的 CPU 和 Memory 的比例
    –定義兩個 resource pools, 一個最多使用 10% CPU , 另一個可以用到 90%
    CREATE RESOURCE POOL MarketingPool
    WITH (MAX_CPU_PERCENT = 10);
    GO
    CREATE RESOURCE POOL DevelopmentPool
    WITH (MAX_CPU_PERCENT = 90);
    GO
    ALTER RESOURCE GOVERNOR RECONFIGURE;

    — 加入兩個負載群組
    CREATE WORKLOAD GROUP MarketingGroup
    USING MarketingPool;
    GO
    CREATE WORKLOAD GROUP DevelopmentGroup
    USING DevelopmentPool;
    GO
    ALTER RESOURCE GOVERNOR RECONFIGURE;
    GO

  • 以 T-SQL 定義的函數,回傳所屬群組的名稱,函數內可以利用 Host_Name、App_Name、SUSER_Name、Is_Member、ConnectionProperty 等函數來定義商業邏輯,例如哪個應用程式建立的連接,就可使用高/低比例的資源
    CREATE FUNCTION dbo.MyClassifier ()
    RETURNS SYSNAME WITH SCHEMABINDING
    AS
    BEGIN
        DECLARE @GroupName SYSNAME;
        IF ORIGINAL_DB_NAME () = ‘MarketingDB’
            SET @GroupName = ‘MarketingGroup’;
        ELSE IF  ORIGINAL_DB_NAME () = ‘DevelopmentDB’
            SET @GroupName = ‘DevelopmentGroup’;
        ELSE SET @GroupName = ‘Default’;
        RETURN @GroupName;
    END;
  • 將登入的連接(connection)賦予到與先定義好的 workload group,不是以特定的查詢語法為單位
    — 定義辨別所屬資源群組的函數
    ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.MyClassifier);
    GO
    ALTER RESOURCE GOVERNOR RECONFIGURE;
  • 可動態改變上述設定
  • 如果沒有其他連接在第二個群組,則單一群組雖設定上不允許使用 100% 資源,但因為沒有其他比例分配的群組搶資源,則仍可以使用全部資源
  • 並沒有為服務用量計價的機制

延伸的事件(Extended Events)

  • 提供負擔較低的架構,支援事件擷取、過濾和反應的機制

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: