Sdílet prostřednictvím


Přidání svědka zrcadlení databáze pomocí ověřování Windows (Transact-SQL)

platí pro:SQL Server

Upozornění

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í. Pro zajištění vysoké dostupnosti místo toho použijte skupiny dostupnosti AlwaysOn.

Důležité

Zrcadlení databáze v SQL Serveru je odlišná technologie od zrcadlení databáze Microsoft Fabric. Zrcadlení do prostředí Fabric poskytuje lepší analytický výkon, možnost sjednocení datového úložiště pomocí OneLake ve Fabric a otevřený přístup k datům ve formátu Delta Parquet.

Díky zrcadlení do Microsoft Fabric můžete neustále replikovat stávající datovou infrastrukturu přímo do OneLake ve Fabric, včetně dat ze SQL Serveru 2016+, Azure SQL Database, Azure SQL Managed Instance, Cosmos DB, Oracle, Snowflake a dalších.

Aby bylo možné nastavit svědka pro databázi, vlastník databáze přiřadí instanci databázového stroje k roli svědeckého serveru. Instance serveru svědka může běžet na stejném počítači jako instance hlavního nebo zrcadlového serveru, ale podstatně snižuje odolnost automatického převzetí při selhání.

Důrazně doporučujeme, aby svědek byl umístěn na samostatném počítači. Daný server se může účastnit více souběžných relací zrcadlení databáze se stejnými nebo různými partnery. Daný server může být partnerem v některých relacích a svědkem v jiných relacích.

Svědek je určený výhradně pro vysoce bezpečný režim s automatickým přepnutím při selhání. Před nastavením svědka důrazně doporučujeme ujistit se, že vlastnost SAFETY je momentálně nastavena na hodnotu FULL.

Důležité

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

Zřídit svědka

  1. V instanci serveru svědka se ujistěte, že existuje koncový bod pro zrcadlení databáze. Bez ohledu na počet podporovaných relací zrcadlení databáze musí mít instance serveru pouze jeden koncový bod zrcadlení databáze. Pokud chcete tuto instanci serveru používat výhradně jako svědka v relacích zrcadlení databáze, přiřaďte roli svědka koncovému bodu (ROLE**=**WITNESS). Pokud chcete tuto instanci serveru použít jako partnera v jedné nebo více relacích zrcadlení databáze, přiřaďte koncovému bodu roli ALL.

    Chcete-li spustit příkaz SET WITNESS, musí být relace zrcadlení databáze již spuštěna (mezi partnery) a stav koncového bodu svědka musí být nastaven na STARTED.

    Chcete-li zjistit, zda má instance serveru svědka svůj koncový bod pro zrcadlení databáze a abyste zjistili jeho roli a stav, použijte na této instanci následující příkaz Transact-SQL:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints  
    

    Důležité

    Pokud existuje koncový bod zrcadlení databáze a už je používán, doporučujeme tento koncový bod používat pro každou relaci na instanci serveru. Odstranění koncového bodu, který je aktuálně používán, přeruší spojení existujících relací. Pokud byl pro relaci nastaven svědek, může odstranění koncového bodu zrcadlení databáze způsobit, že hlavní server této relace ztratí kvorum; pokud k tomu dojde, databáze se přepne do offline režimu a její uživatelé se odpojí. Další informace najdete v tématu Kvorum: Jak svědek ovlivňuje dostupnost databáze (zrcadlení databáze).

    Pokud svědek chybí koncový bod, viz Vytvoření koncového bodu zrcadlení databáze pro ověřování systému Windows (Transact-SQL).

  2. Pokud jsou partnerské instance spuštěné v různých uživatelských účtech domény, vytvořte přihlašovací údaje pro různé účty v hlavní databázi každé instance. Další informace najdete v tématu Povolení síťového přístupu ke koncovému bodu zrcadlení databáze pomocí ověřování systému Windows (SQL Server).

  3. Připojte se k hlavnímu serveru a zadejte následující příkaz:

    ALTER DATABASE <database_name> SET WITNESS =<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 instance serveru svědka.

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

    TCP://<system-address>:<port>

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

    Například na instanci hlavního serveru nastaví následující příkaz ALTER DATABASE svědka. Název databáze je AdventureWorks, systémová adresa je DBSERVER3 - název systému svědka a port používaný koncovým bodem zrcadlení databáze systému svědka je 7022:

    ALTER DATABASE AdventureWorks   
      SET WITNESS = 'TCP://DBSERVER3:7022'  
    

Example

Následující příklad konfiguruje svědka zrcadlení dat. Na instanci svědeckého serveru (výchozí instance na WITNESSHOST4):

  1. Vytvořte koncový bod této instance serveru pouze pro roli WITNESS pomocí portu 7022.

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=WITNESS)  
    GO  
    
  2. Vytvořte přihlášení pro uživatelský účet v doméně partnerských instancí, pokud se liší; například předpokládejte, že svědek běží jako SOMEDOMAIN\witnessuser, ale partneři běží jako MYDOMAIN\dbousername. Vytvořte pro partnery přihlašovací údaje následujícím způsobem:

    --Create a login for the partner server instances,  
    --which are both running as MYDOMAIN\dbousername:  
    USE master ;  
    GO  
    CREATE LOGIN [MYDOMAIN\dbousername] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account   
    --of partners  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MYDOMAIN\dbousername];  
    GO  
    
  3. Na každé instanci partnerského serveru vytvořte přihlášení pro instanci svědeckého serveru.

    --Create a login for the witness server instance,  
    --which is running as SOMEDOMAIN\witnessuser:  
    USE master ;  
    GO  
    CREATE LOGIN [SOMEDOMAIN\witnessuser] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account   
    --of partners  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [SOMEDOMAIN\witnessuser];  
    GO  
    
  4. Na hlavním serveru nastavte svědka (který je na WITNESSHOST4):

    ALTER DATABASE AdventureWorks   
        SET WITNESS =   
        'TCP://WITNESSHOST4:7022'  
    GO  
    

Poznámka:

Síťová adresa serveru označuje cílovou instanci serveru číslem portu, která se mapuje na koncový bod zrcadlení instance.

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

Viz také

ALTER DATABASE (Transact-SQL)
Povolení síťového přístupu ke koncovému bodu zrcadlení databáze pomocí ověřování systému Windows (SQL Server)
Vytvoření koncového bodu zrcadlení databáze pro ověřování systému Windows (Transact-SQL)
Vytvoření relace zrcadlení databáze pomocí ověřování systému Windows (Transact-SQL)
Odebrání určující kopie z relace zrcadlení databáze (SQL Server)
Svědek zrcadlení databáze