Sdílet prostřednictvím


Konfigurujte zrcadlení databáze

platí pro:SQL Server

Poznámka

Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Místo toho používejte skupiny dostupnosti AlwaysOn.

Jakmile je zrcadlová databáze připravená (viz Příprava zrcadlové databáze pro zrcadlení (SQL Server)), můžete vytvořit relaci zrcadlení databáze. Hlavní, zrcadlový a svědecký server musí být samostatné instance serveru na samostatných hostitelských systémech.

Důležitý

Doporučujeme nakonfigurovat zrcadlení databáze v době mimo špičku, protože konfigurace zrcadlení může mít vliv na výkon.

Poznámka

Daná instance serveru se může účastnit více souběžných relací zrcadlení databází se stejnými nebo různými partnery. Instance serveru může být partnerem v některých relacích a svědkem v jiných relacích. Instance zrcadlového serveru musí mít stejnou edici SQL Serveru jako hlavní instanci serveru. Zrcadlení databáze není k dispozici v každé edici Microsoft SQL Serveru. Seznam funkcí podporovaných edicemi SQL Serveru najdete v tématu Funkce podporované edicemi SQL Serveru 2016. Důrazně také doporučujeme, aby běžely na srovnatelných systémech, které dokážou zpracovávat stejné úlohy.

Nastavit relaci zrcadlení databáze

  1. Vytvořte zrcadlenou databázi. Další informace naleznete v tématu Příprava zrcadlové databáze pro zrcadlení (SQL Server).

  2. Nastavte zabezpečení pro každou instanci serveru.

    Každá instance serveru v relaci zrcadlení databáze vyžaduje koncový bod zrcadlení databáze. Pokud koncový bod neexistuje, musíte ho vytvořit.

    Poznámka

    Forma ověřování, kterou instance serveru používá pro zrcadlení databáze, je vlastností koncového bodu zrcadlení databáze. Pro zrcadlení databáze jsou k dispozici dva typy zabezpečení přenosu: Ověřování systému Windows nebo ověřování založené na certifikátech. Další informace najdete v tématu zabezpečení přenosu pro zrcadlení databáze a skupiny dostupnosti AlwaysOn (SQL Server).

    Na každém partnerském serveru se ujistěte, že pro zrcadlení databáze existuje koncový bod. Bez ohledu na počet relací zrcadlení, které se mají podporovat, může mít instance serveru pouze jeden koncový bod zrcadlení databáze. Pokud hodláte tuto instanci serveru používat výhradně pro partnery v databázovém zrcadlení, můžete koncovému bodu nastavit roli partnera (ROLE**=**PARTNER). Pokud máte v úmyslu tento server použít také jako svědka v jiných relacích zrcadlení databáze, přiřaďte koncovému bodu roli ALL.

    Pokud chcete spustit příkaz SET PARTNER, musí být stav koncových bodů obou partnerů nastaven na HODNOTU STARTED.

    Pokud chcete zjistit, jestli má instance serveru koncový bod zrcadlení databáze a jak zjistit jeho roli a stav, použijte v této instanci následující příkaz Transact-SQL:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints  
    

    Důležitý

    Nepřekonfigurujte znovu koncový bod zrcadlení databáze, který se používá. Pokud existuje koncový bod zrcadlení databáze a už se používá, doporučujeme tento koncový bod použít pro každou relaci v instanci serveru. Zastavení používaného koncového bodu může způsobit restartování tohoto koncového bodu, narušení připojení existujících relací, což se může jevit jako chyba u ostatních instancí serveru. To je zvlášť důležité v režimu vysoké bezpečnosti s automatickým převzetím služeb při selhání, kdy by změna konfigurace koncového bodu u partnera mohla způsobit převzetí služeb při selhání. Pokud je pro relaci nastaven svědek, může vyřazení koncového bodu zrcadlení databáze způsobit ztrátu kvora hlavního serveru této relace; pokud k tomu dojde, databáze se přepojí do offline režimu a její uživatelé se odpojí. Další informace najdete v tématu Quorum: Jak svědek ovlivňuje dostupnost databáze (zrcadlení databáze).

    Pokud některý z partnerů nemá koncový bod, podívejte se na Vytvoření koncového bodu zrcadlení databáze pro ověřování systému Windows (Transact-SQL).

  3. Pokud jsou instance serveru spuštěné v různých uživatelských účtech domény, každý z nich vyžaduje přihlášení v hlavní databázi ostatních serverů. Pokud přihlášení neexistuje, musíte ho vytvořit. Další informace najdete v tématu Povolit síťový přístup ke koncovému bodu zrcadlení databáze pomocí ověřování systému Windows (SQL Server).

  4. Pokud chcete hlavní server nastavit jako partnera v zrcadlové databázi, připojte se k zrcadlovému serveru a zadejte následující příkaz:

    ALTER DATABASE <database_name> SET PARTNER =<server_network_address>

    kde <database_name> je název databáze, která se má zrcadlit (tento název je stejný u obou partnerů) a <server_network_address> je síťová adresa serveru hlavního serveru.

    Syntaxe síťové adresy serveru je následující:

    TCP ://<systémová adresa>:<port>

    kde <systémová adresa> je řetězec, který jednoznačně identifikuje cílový počítačový systém, a <port> je číslo portu používaného koncovým bodem zrcadlení instance partnerského serveru. Další informace naleznete v tématu Určení síťové adresy serveru (zrcadlení databáze).

    Například v instanci zrcadlového serveru nastaví následující příkaz ALTER DATABASE partnera jako původní instanci hlavního serveru. Název databáze je AdventureWorks, systémová adresa je DBSERVER1 název systému partnera a port používaný koncovým bodem zrcadlení databáze partnera je 7022:

    ALTER DATABASE AdventureWorks   
       SET PARTNER = 'TCP://DBSERVER1:7022'  
    

    Tento příkaz připraví zrcadlový server tak, aby vytvořil relaci, když je kontaktován hlavním serverem.

  5. Pokud chcete nastavit zrcadlový server jako partnera v hlavní databázi, připojte se k hlavnímu serveru a zadejte následující příkaz:

    ALTER DATABASE <database_name> SET PARTNER =<server_network_address>

    Další informace najdete v kroku 4.

    Například v instanci hlavního serveru nastaví následující příkaz ALTER DATABASE partnera jako původní instanci zrcadlového serveru. Název databáze je AdventureWorks, systémová adresa je DBSERVER2 název systému partnera a port používaný koncovým bodem zrcadlení databáze partnera je 7025:

    ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER2:7022'  
    

    Zadáním tohoto příkazu na hlavním serveru začíná relace zrcadlení databáze.

  6. Ve výchozím nastavení je relace nastavena na plnou bezpečnost transakcí (BEZPEČNOST je nastavena na FULL), což spustí relaci v synchronním režimu s vysokou bezpečností, ale bez automatického převzetí při selhání. Relaci můžete překonfigurovat tak, aby běžela v režimu vysoké bezpečnosti s automatickým převzetím služeb při selhání nebo v asynchronním režimu s vysokým výkonem, a to následujícím způsobem:

Příklad

Poznámka

Následující příklad vytvoří relaci zrcadlení databáze mezi dvěma partnery pro existující zrcadlovou databázi. Informace o vytvoření zrcadlové databáze najdete v tématu Příprava zrcadlové databáze pro zrcadlení (SQL Server)=.

Příklad ukazuje základní kroky pro vytvoření relace zrcadlení databáze bez svědka. Oba partneři jsou výchozími instancemi serveru ve dvou počítačových systémech (PARTNERHOST1 a PARTNERHOST5). Obě partnerské instance používají stejný uživatelský účet domény Systému Windows (MYDOMAIN\dbousername).

  1. V instanci hlavního serveru (výchozí instance na PARTNERHOST1) vytvořte koncový bod, který podporuje všechny role pomocí portu 7022:

    --create an endpoint for this instance  
    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=ALL)  
    GO  
    --Partners under same domain user; login already exists in master.  
    

    Poznámka

    Pro příklad, jak nastavit přihlašovací proces, se podívejte do tématu Povolit síťový přístup ke koncovému bodu zrcadlení databáze pomocí ověřování systému Windows (SQL Server).

  2. V instanci zrcadlového serveru (výchozí instance na PARTNERHOST5) vytvořte koncový bod, který podporuje všechny role pomocí portu 7022:

    --create an endpoint for this instance  
    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=ALL)  
    GO  
    --Partners under same domain user; login already exists in master.  
    
  3. V instanci hlavního serveru (v PARTNERHOST1) zálohujte databázi:

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdvWorks_dbmirror.bak'   
        WITH FORMAT  
    GO  
    
  4. V instanci zrcadlového serveru (v PARTNERHOST5) obnovte databázi:

    RESTORE DATABASE AdventureWorks   
        FROM DISK = 'Z:\AdvWorks_dbmirror.bak'   
        WITH NORECOVERY  
    GO  
    
  5. Po vytvoření úplné zálohy databáze je nutné vytvořit zálohu protokolu v hlavní databázi. Například následující příkaz Transact-SQL zálohuje protokolový soubor do stejného souboru, který byl použit předchozí zálohou databáze.

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. Než začnete zrcadlit, musíte použít požadované zálohování logu (a případné následné zálohování logů).

    Například následující příkaz Transact-SQL obnoví první protokol z C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\ AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. V instanci zrcadlového serveru nastavte instanci serveru na PARTNERHOST1 jako partnera (což z něj činí počáteční hlavní server):

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1:7022'  
    GO  
    

    Důležitý

    Standardně se relace mirroringu databáze spouští v synchronním režimu, což závisí na úplné ochraně transakcí (SAFETY je nastaveno na FULL). Pokud chcete, aby relace běžela v asynchronním režimu s vysokým výkonem, nastavte SAFETY na VYPNUTO. Další informace naleznete v tématu provozní režimy zrcadlení databáze.

  8. V instanci hlavního serveru nastavte instanci serveru na PARTNERHOST5 jako partnera (což z něj činí počáteční zrcadlový server):

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5:7022'  
    GO  
    
  9. Pokud máte v úmyslu používat vysoce bezpečný režim s automatickým převzetím služeb při selhání, nastavte instanci serveru svědka. Další informace najdete v tématu Přidání svědka zrcadlení databáze pomocí ověřování systému Windows (Transact-SQL).

Poznámka

Úplný příklad znázorňující nastavení zabezpečení, přípravu zrcadlové databáze, nastavení partnerů a přidání svědka najdete v tématu Nastavení zrcadlení databáze (SQL Server).

Viz také

Nastavení zrcadlení databáze (SQL Server)
ALTER DATABASE (Transact-SQL)
Povolit síťový přístup ke koncovému bodu zrcadlení databáze pomocí ověřování systému Windows (SQL Server)
Příprava zrcadlové databáze pro zrcadlení (SQL Server)
vytvoření koncového bodu zrcadlení databáze pro ověřování systému Windows (Transact-SQL)
Zrcadlení databáze a doručování protokolů (SQL Server)
Zrcadlení databáze (SQL Server)
Zrcadlení a replikace databáze (SQL Server)
Nastavení Zrcadlení Databáze na SQL Serveru
určení síťové adresy serveru (zrcadlení databáze)
Provozní Režimy Zrcadlení Databáze