Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Vytvořte zrcadlenou databázi. Další informace naleznete v tématu Příprava zrcadlové databáze pro zrcadlení (SQL Server).
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).
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).
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.
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.
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:
Vysoce bezpečný režim s automatickým převzetím při selhání
Pokud chcete, aby relace s režimem vysoké bezpečnosti podporovala automatické převzetí služeb při selhání, přidejte instanci serveru svědka. Další informace najdete v tématu Přidat svědka zrcadlení databáze s využitím ověřování systému Windows (Transact-SQL).
Režim vysokého výkonu
Případně pokud nechcete automatické převzetí služeb při selhání a chcete zdůraznit výkon nad dostupností, vypněte bezpečnost transakcí. Další informace naleznete v části Změna bezpečnosti transakce během relace zrcadlení databáze (Transact-SQL).
Poznámka
V režimu s vysokým výkonem by měl být WITNESS nastaven na VYPNUTO. Další informace najdete v Kvorum: Jak svědek ovlivňuje dostupnost databáze (zrcadlení databáze).
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).
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).
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.
V instanci hlavního serveru (v PARTNERHOST1) zálohujte databázi:
BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdvWorks_dbmirror.bak' WITH FORMAT GO
V instanci zrcadlového serveru (v
PARTNERHOST5
) obnovte databázi:RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\AdvWorks_dbmirror.bak' WITH NORECOVERY GO
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
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
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.
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
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