• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    SQL Server 2005高可用性之鏡像功能

    發布: 2008-5-04 15:15 | 作者: 王翔 | 來源: IT168 | 查看: 177次 | 進入軟件測試論壇討論

    領測軟件測試網

    SQL Server 2005相對于SQL Server 2000來說,無論是性能還是功能都有一個相當大的提高,甚至可以用“革命”來形容這一次升級。SQL Server 2005使 SQL Server 躋身于企業級數據庫行列。在數據高可用性方面,SQL Server 2005為用戶提供了數據鏡像、復制、故障轉移群集、日志傳送功能。本文向讀者簡單介結SQL Server 2005鏡像功能。

    一、鏡像簡介

        數據庫鏡像是一個高可用性軟件解決方案,為客戶端提供小于10秒故障轉移。每個數據庫鏡像配置均包含一個主體服務器(包含主體數據庫)、一個鏡像服務器(包含鏡像數據庫)和一個見證服務器,其中見證服務器是可選的。主體服務器和鏡像服務器要求是獨立的服務器實例。主體服務器和鏡像服務器的角色是相對的,可以自動或者手動地將主體服務器設置為鏡像服務器,鏡像服務器設置為主體服務器。與主體服務器和鏡像服務器不同的是,見證服務器并不能用于數據庫。見證服務器監視主體服務器和鏡像服務器,確保在給定的時間內這兩個故障轉移服務器中有且只有一個作為主體服務器,從而支持自動故障轉移。如果存在見證服務器,同步會話將以“高可用性模式”運行,如果主體服務器出現故障,可以實現故障自動轉移。如果見證服務器不存在,同步會話將以“高級別保護模式”運行,出現故障需要手動故障轉移,并且有可能丟失數據。

    圖1:兩臺服務器鏡像

     數據庫準備結束,端點創建完成,用戶便可以啟用數據庫鏡像。鏡像啟動后,每個伙伴都將開始維護所在數據庫中有關其數據庫,以及另一個伙伴和見證服務器的狀態信息。這些狀態信息允許服務器實例維護稱為“數據庫鏡像會話”的當前關系。在數據庫鏡像會話過程中,服務器實例將通過彼此定期交換 PING 消息來互相監視。

        鏡像會話啟動后,鏡像服務器將識別鏡像數據庫上最新完成的事務的日志序列號 (LSN),并要求主體服務器提供所有后續事務的事務日志,主體服務器向像鏡像服務器發生一份當前活動的事務日志,鏡像服務器會立即將傳入日志鏡像到磁盤。主體服務器繼續讓客戶端連接使用主體數據庫,每次客戶端更新主體數據庫時,主體服務器都會在寫入到日志時,并將得到的事務日志發送給鏡像服務器,鏡像服務器會將其鏡像到磁盤。同時,鏡像服務器將從最早的事務日志開始,將事務應用到鏡像數據庫中,從而實現主體數據庫和鏡像數據庫同步。

    二、配置實例 

        了解數據庫鏡像的基本知識之后,看一看怎樣去配置鏡像。(使用鏡像功能請確保安裝了SQL Server 2005 SP1)。 

        筆者為做鏡像實驗,在同一個服務器上同時裝三個實例: SERVER01、SERVER02、SERVER03。其中,SERVER01將作為主體服務器、SERVER02作為鏡像服務器、 SERVER03作為見證服務器。 

        在完成本實驗的第一步需要將主體服務器的DBMirror數據庫,完全備份出來,然后在SERVER02上還原,在還原的時候注意使用NORECOVERY,使用鏡像數據處于還原狀態。在備份之前請將DBMirror數據庫的日志模式設置為完整。 

        完成了上面的準備之后就可以設置鏡像。 

        第一步:創建端點。 

        在SERVER01上運行下面的SQL:

    CREATE ENDPOINT DbMirroring STATE=STARTED AS TCP(LISTENER_PORT=5011) FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED) go 在SERVER02上運行下面的SQL:
    CREATE ENDPOINT DbMirroring STATE=STARTED AS TCP(LISTENER_PORT=5022) FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED) go 在SERVER03上執行下面的SQL,創建見證服務器。 CREATE ENDPOINT DbMirroring STATE=STARTED AS TCP(LISTENER_PORT=5033) FOR DATABASE_MIRRORING(ROLE=WITNESS,ENCRYPTION=SUPPORTED) go

        第二步:啟動鏡像

        在前面的規劃中SERVER01將作為主體服務器、SERVER02作為鏡像服務器,首先在主體服務器上執行下面的SQL:

    ALTER DATABASE DBMirror SET PARTNER='TCP://jeffery:5022' --(注:筆記的機器名稱是jeffery) go

        指定SERVER01的通訊伙伴是SERVER02(因為前面定義端點的時候SERVER02的端口號為5022)。

        在SERVER02的上執行下面的SQL,指定通訊伙伴為SERVER01。

    ALTER DATABASE DBMirror SET PARTNER='TCP://jeffery:5011' go

        回到主體服務器,指定見證服務器。在SERVER01上執行下面的SQL:

    ALTER DATABASE DBMirror SET WITNESS='TCP://jeffery:5033' go

        完成以上步驟之后,鏡像配置完成。如圖3所示。

    三、管理鏡像

        1、 相關系統視圖

        sys.database_mirroring:此視圖顯示服務器實例中每個鏡像數據庫的數據庫鏡像元數據。實例 SQL Server 中的每個數據庫在表中占一行。如果數據庫未聯機,或未啟用數據庫鏡像,則除 database_id 以外的所有列的值都將為 NULL。

        sys.database_mirroring_endpoints:目錄視圖顯示有關服務器實例的數據庫鏡像端點的信息。

        sys.dm_db_mirroring_connections:為每個數據庫鏡像網絡連接返回一行。

        2、 手動主體、鏡像服務器之間的切換

        在主體服務器中執行下面的代碼就可以將鏡像服務器設為主體服務器,主體服務器設置為鏡像服務器。

    USE MASTER Go ALTER DATABASE DBMirror SET PARTNER FAILOVER Go

        數據庫鏡像是一個很好的高可用性解決方案,筆者參加微軟的技術論壇時曾看到過微軟的技術人員演示鏡像的故障轉移,如主體服務器出現故障,在10秒內客戶端就重新連到數據庫服務器。限于篇幅和筆者的水平,對數據庫鏡像作了簡單的介紹,還有很多東西沒有提及到比如說客戶端怎樣連到服務器等等,希望本文成為讀者學習鏡像功能的開端。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: server Server sql SQL 功能 鏡像


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>