Adatbázis-tükrözés konfigurálása

A következőkre vonatkozik:SQL Server

Jegyzet

Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Használja inkább az Always On rendelkezésre állási csoportokat.

A tükrözött adatbázis előkészítése után (lásd Tüköradatbázis előkészítése tükrözéshez (SQL Server)), létrehozhat egy adatbázis-tükrözési munkamenetet. A fő, tükrözött és tanú kiszolgálópéldányoknak külön kiszolgálópéldányoknak kell lenniük, külön gazdagéprendszereken.

Fontos

Javasoljuk, hogy az adatbázis tükrözését a csúcsidőn kívül konfiguráld, mert a tükrözés konfigurálása befolyásolhatja a teljesítményt.

Jegyzet

Egy adott kiszolgálópéldány több egyidejű adatbázis-tükrözési munkamenetben is részt vehet ugyanazzal vagy más partnerrel. A kiszolgálópéldány lehet partner egyes munkamenetekben, és tanú más munkamenetekben. A tükrözött kiszolgálópéldánynak az SQL Server ugyanazon kiadását kell futtatnia, mint az egyszerű kiszolgálópéldánynak. Az adatbázis tükrözése nem érhető el minden SQL Server kiadásban. Az SQL Server kiadásai által támogatott funkciók listájáért lásd: Az SQL Server 2016 Kiadásai és támogatott funkciói. Azt is javasoljuk, hogy hasonló rendszereken fussanak, amelyek képesek azonos számítási feladatokat kezelni.

Adatbázis-tükrözési munkamenet létrehozása

  1. Hozza létre a tükrözött adatbázist. További információ: Tüköradatbázis előkészítése tükrözéshez (SQL Server).

  2. Állítsa be a biztonságot az egyes kiszolgálópéldányokon.

    Az adatbázis-tükrözési munkamenet minden kiszolgálópéldányához szükség van egy adatbázis-tükrözési végpontra. Ha a végpont nem létezik, létre kell hoznia.

    Jegyzet

    Az adatbázis-tükrözéshez használt hitelesítési forma a kiszolgálópéldány adatbázis-tükrözési végpontjának egy tulajdonsága. Az adatbázis-tükrözéshez kétféle átviteli biztonság érhető el: Windows-hitelesítés vagy tanúsítványalapú hitelesítés. További információért lásd: Adatbázis tükrözés és Mindig Elérhető Elérhetőségi Csoportok (SQL Server) szállítási biztonsága.

    Minden partnerkiszolgálón győződjön meg arról, hogy létezik végpont az adatbázis-tükrözéshez. A támogatott tükrözési munkamenetek számától függetlenül a kiszolgálópéldány csak egy adatbázis-tükrözési végponttal rendelkezhet. Ha ezt a kiszolgálópéldányt kizárólag az adatbázis-tükrözési munkamenetekben lévő partnerek számára szeretné használni, hozzárendelheti a partner szerepkörét a végponthoz (ROLE**=**PARTNER). Ha ezt a kiszolgálót más adatbázis-tükrözési munkamenetekben is használni kívánja a tanú számára, rendelje hozzá a végpont szerepkörét ALL-ként.

    A PARTNER utasítás végrehajtásához SET mindkét partner végpontjának ÁLLAPOTÁT a STARTED értékre kell állítani.

    Annak megállapításához, hogy egy kiszolgálópéldány rendelkezik-e adatbázis-tükrözési végponttal, és hogy megtudja a szerepkörét és állapotát, használja az alábbi Transact-SQL utasítást:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints  
    

    Fontos

    Ne konfiguráljon újra használaton belüli adatbázistükrözési végpontot. Ha létezik adatbázistükrözési végpont, és már használatban van, javasoljuk, hogy ezt a végpontot használja a kiszolgálópéldány minden munkamenetéhez. A használatban lévő végpont elvetésével a végpont újraindulhat, megszakítva a meglévő munkamenetek kapcsolatait, ami a többi kiszolgálópéldányra vonatkozó hibaként jelenhet meg. Ez különösen fontos az automatikus feladatátvétel esetében a magas biztonsági módban, amelyben a végpont partneren való újrakonfigurálása feladatátvételt okozhat. Továbbá, ha egy tanú be van állítva egy munkamenetre, az adatbázis tükrözési végpontjának elvetésével az adott munkamenet fő kiszolgálója elveszítheti a kvórumát; ha ez történik, az adatbázis offline állapotba kerül, és a felhasználók megszakadnak. További információ: Kvórum: Hogyan befolyásolja egy tanú az adatbázis elérhetőségét (Adatbázis-tükrözés).

    Ha valamelyik partner nem rendelkezik végpontokkal, tekintse meg Adatbázistükrözési végpont létrehozása Windows-hitelesítéshez (Transact-SQL).

  3. Ha a kiszolgálópéldányok különböző tartományi felhasználói fiókokban futnak, mindegyikhez külön bejelentkezés szükséges a többi adatbázisába. Ha a bejelentkezés nem létezik, létre kell hoznia. További információ: Hálózati hozzáférés engedélyezése adatbázistükrözési végponthoz Windows-hitelesítéssel (SQL Server).

  4. Ha a fő kiszolgálót szeretné partnerként beállítani a tüköradatbázisban, csatlakozzon a tükörszerverhez, és adja ki a következő utasítást:

    ALTER DATABASE <database_name>SET PARTNER =<server_network_address>

    ahol <database_name> a tükrözni kívánt adatbázis neve (ez a név mindkét partnernél ugyanaz), <server_network_address> pedig a fő kiszolgáló hálózati címe.

    A kiszolgáló hálózati címének szintaxisa a következő:

    TCP://<rendszercím>:<port>

    ahol <rendszercím> egy karakterlánc, amely egyértelműen azonosítja a célszámítógépet, és <port> a partnerkiszolgáló példányának tükrözési végpontja által használt portszám. További információ: Kiszolgáló hálózati címének megadása (adatbázis-tükrözés).

    Például a tükörkiszolgáló-példányon az alábbi ALTER DATABASE utasítás partnerként az eredeti elsődleges kiszolgálópéldányt állítja be. Az adatbázis neve AdventureWorks, a rendszer címe DBSERVER1 a partner rendszerének neve, a partner adatbázis-tükrözési végpontja által használt port pedig 7022:

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

    Ez az utasítás előkészíti a tükröző kiszolgálót, hogy munkamenetet alakítson ki, amikor a fő kiszolgáló kapcsolatba lép vele.

  5. Ha partnerként szeretné beállítani a tükrözött kiszolgálót az egyszerű adatbázisban, csatlakozzon az egyszerű kiszolgálóhoz, és adja ki a következő utasítást:

    ALTER DATABASE <database_name>SET PARTNER =<server_network_address>

    További információ: 4. lépés.

    Például az elsődleges kiszolgálópéldányon az alábbi ALTER DATABASE utasítás az eredeti tükörkiszolgáló-példányként állítja be a partnert. Az adatbázis neve AdventureWorks, a rendszer címe DBSERVER2 a partner rendszerének neve, a partner adatbázis-tükrözési végpontja által használt port pedig 7025:

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

    Ha az elsődleges szerveren beírja ezt az utasítást, elindítja az adatbázis-tükrözési munkamenetet.

  6. Alapértelmezés szerint a munkamenet teljes tranzakcióbiztonságra van állítva (a BIZTONSÁG értéke FULL), amely szinkron, magas biztonsági módban indítja el a munkamenetet automatikus feladatátvétel nélkül. A munkamenetet újrakonfigurálhatja úgy, hogy magas biztonsági módban fusson automatikus feladatátvétellel vagy aszinkron, nagy teljesítményű módban, az alábbiak szerint:

Példa

Jegyzet

Az alábbi példa adatbázis-tükrözési munkamenetet hoz létre egy meglévő tükrözött adatbázis partnerei között. A tükrözött adatbázis létrehozásával kapcsolatos információkért lásd: Tüköradatbázis előkészítése tükrözéshez (SQL Server)=.

A példa bemutatja az adatbázis-tükrözési munkamenet létrehozásának alapvető lépéseit tanú nélkül. A két partner az alapértelmezett kiszolgálópéldány két számítógépes rendszeren (PARTNERHOST1 és PARTNERHOST5). A két partnerpéldány ugyanazt a Windows-tartományi felhasználói fiókot (MYDOMAIN\dbousername) futtatja.

  1. Az egyszerű kiszolgálópéldányon (a PARTNERHOST1 alapértelmezett példányán) hozzon létre egy végpontot, amely támogatja az összes szerepkört a 7022-s port használatával:

    --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.  
    
  2. A tükrözött kiszolgálópéldányon (a PARTNERHOST5 alapértelmezett példányán) hozzon létre egy végpontot, amely minden szerepkört támogat a 7022-s port használatával:

    --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. A fő kiszolgálópéldányon (PARTNERHOST1) készítsen biztonsági másolatot az adatbázisról.

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdvWorks_dbmirror.bak'   
        WITH FORMAT  
    GO  
    
  4. A tükrözött kiszolgálópéldányon (PARTNERHOST5) állítsa vissza az adatbázist:

    RESTORE DATABASE AdventureWorks   
        FROM DISK = 'Z:\AdvWorks_dbmirror.bak'   
        WITH NORECOVERY  
    GO  
    
  5. A teljes adatbázis biztonsági mentésének létrehozása után létre kell hoznia egy napló biztonsági mentést a fő adatbázisban. Az alábbi Transact-SQL utasítás például biztonsági másolatot készít a naplóról ugyanarra a fájlra, amelyet az előző adatbázis biztonsági mentése használt:

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. A tükrözés megkezdése előtt alkalmaznia kell a szükséges napló biztonsági mentését (és az azt követő napló biztonsági mentéseit).

    A következő Transact-SQL utasítás például visszaállítja az első naplót a C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\ AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. A tükrözött kiszolgálópéldányon állítsa be a kiszolgálópéldányt PARTNERHOST1 partnerként (így kezdeti elsődleges kiszolgálóként):

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

    Fontos

    alapértelmezés szerint az adatbázis-tükrözési munkamenet szinkron módban fut, amely a teljes tranzakcióbiztonságtól függ (a BIZTONSÁG értéke FULL). Ha azt szeretné, hogy egy munkamenet aszinkron, nagy teljesítményű módban fusson, állítsa SAFETY-t KI. További információkért lásd: Adatbázis Tükrözés Működési Módjai.

  8. A fő kiszolgálópéldányon állítsa be a kiszolgálópéldányt PARTNERHOST5 partnerként (ezzel az elsődleges tükörkiszolgálóként).

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5:7022'  
    GO  
    
  9. Opcionálisan, ha magas biztonsági módot szeretne használni automatikus feladatátvétellel, állítsa be a tanú kiszolgálópéldányt. További információért lásd: Adatbázis-tükrözési kiszolgáló hozzáadása Windows-hitelesítéssel (Transact-SQL).

Jegyzet

A biztonsági beállításokat, a tükrözött adatbázis előkészítését, a partnerek beállítását és a tanúsító hozzáadását bemutató teljes példát Az adatbázis-tükrözés beállítása (SQL Server)című témakörben talál.