Adatbázisok önálló példányból való migrálása elosztott rendelkezésre állási csoport használatával

Elosztott rendelkezésre állási csoport (AG) használatával migrálhat egy adatbázist (vagy több adatbázist) a SQL Server önálló példányáról az Azure Virtual Machines (virtuális gépek) SQL Server.

Miután ellenőrizte, hogy a forrás SQL Server példány megfelel az előfeltételeknek, kövesse az ebben a cikkben ismertetett lépéseket, hogy létrehozhasson egy rendelkezésre állási csoportot a különálló SQL Server példányon, és migrálhatja az adatbázist (vagy adatbáziscsoportot) az Azure-beli SQL Server virtuális gépre.

Ez a cikk a SQL Server önálló példányán lévő adatbázisokhoz készült. Ehhez a megoldáshoz nincs szükség Windows Server feladatátvevő fürtre (WSFC) vagy rendelkezésreállási csoport figyelőre. Rendelkezésre állási csoportban lévő adatbázisok migrálása is lehetséges.

Egypéldányos migrálást bemutató ábra elosztott rendelkezésre állási csoport használatával

Kezdeti beállítás

Az első lépés a SQL Server virtuális gép létrehozása az Azure-ban. Ezt a Azure Portal, Azure PowerShell vagy ARM-sablonnal teheti meg.

Mindenképpen konfigurálja a SQL Server virtuális gépet az előfeltételeknek megfelelően.

Az egyszerűség kedvéért csatlakozzon a cél SQL Server virtuális géphez a forrás SQL Server. Ellenkező esetben csatlakozzon a cél SQL Server virtuális géphez egy olyan tartományhoz, amely a forrás SQL Server tartományával van összevonva.

Az elosztott rendelkezésre állási csoport (DAG) létrehozásához az automatikus magolás használatához a DAG globális elsődleges példánynevének (forrásának) meg kell egyeznie a DAG továbbítójának (céljának) példánynevével. Ha a példányok neve nem egyezik meg a globális elsődleges és a továbbító között, akkor a DAG létrehozásához manuális magolást kell használnia, és manuálisan kell hozzáadnia minden további adatbázisfájlt a jövőben.

Ez a cikk a következő példaparamétereket használja:

  • Adatbázis neve: Adventureworks
  • Forrásgép neve (globális elsődleges a DAG-ban): OnPremNode
  • Forrás SQL Server példány neve: MSSQLSERVER
  • Forrás rendelkezésre állási csoport neve: OnPremAg
  • Cél SQL Server virtuális gép neve (továbbító a DAG-ban): SQLVM
  • Cél SQL Server azure-beli virtuálisgép-példány neve: MSSQLSERVER
  • Cél rendelkezésre állási csoport neve: AzureAG
  • Végpont neve: Hadr_endpoint
  • Elosztott rendelkezésre állási csoport neve: DAG
  • Tartománynév: Contoso

Végpontok létrehozása

A Transact-SQL (T-SQL) használatával végpontokat hozhat létre a forráson (OnPremNode) és a célpéldányokon (SQLVM) SQL Server példányokon.

A végpontok létrehozásához futtassa ezt a T-SQL-szkriptet a forrás- és célkiszolgálókon is:

CREATE ENDPOINT [Hadr_endpoint]  
   STATE=STARTED 
   AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) 
FOR DATA_MIRRORING ( 
   ROLE = ALL,  
   AUTHENTICATION = WINDOWS NEGOTIATE, 
   ENCRYPTION = REQUIRED ALGORITHM AES 
) 
GO 

A tartományi fiókok automatikusan hozzáférnek a végpontokhoz, de előfordulhat, hogy a szolgáltatásfiókok nem tartoznak automatikusan a sysadmin csoporthoz, és nem rendelkeznek csatlakozási engedéllyel. A SQL Server szolgáltatásfiók végponthoz való csatlakoztatási engedélyének manuális megadásához futtassa a következő T-SQL-szkriptet mindkét kiszolgálón:

GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [<your account>] 

Forrás rendelkezésreállási csoport létrehozása

Mivel az elosztott rendelkezésre állási csoport egy speciális rendelkezésre állási csoport, amely két különálló rendelkezésre állási csoportra terjed ki, először létre kell hoznia egy rendelkezésre állási csoportot a forrás SQL Server példányon. Ha már van egy rendelkezésre állási csoportja, amelyet fenn szeretne tartani az Azure-ban, akkor inkább migrálja a rendelkezésre állási csoportot .

A Transact-SQL (T-SQL) használatával hozzon létre egy rendelkezésre állási csoportot (OnPremAg) a forráspéldányon (OnPremNode) az Adventureworks-adatbázishoz .

A rendelkezésre állási csoport létrehozásához futtassa ezt a szkriptet a forráson:

CREATE AVAILABILITY GROUP [OnPremAG] 
   WITH (AUTOMATED_BACKUP_PREFERENCE = PRIMARY, 
   DB_FAILOVER = OFF, 
   DTC_SUPPORT = NONE, 
   CLUSTER_TYPE=NONE )
   FOR DATABASE [Adventureworks] 

REPLICA ON N'OnPremNode' 
WITH (ENDPOINT_URL = N'TCP://OnPremNode.contoso.com:5022', FAILOVER_MODE = MANUAL, 
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, 
SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO)); 

GO 

Cél rendelkezésreállási csoport létrehozása

Rendelkezésre állási csoportot is létre kell hoznia a cél virtuális gépen SQL Server.

A Transact-SQL (T-SQL) használatával hozzon létre egy rendelkezésre állási csoportot (AzureAG) a célpéldányon (SQLVM).

A rendelkezésre állási csoport létrehozásához futtassa ezt a szkriptet a célon:

CREATE AVAILABILITY GROUP [AzureAG]
   WITH (AUTOMATED_BACKUP_PREFERENCE = PRIMARY, 
   DB_FAILOVER = OFF, 
   DTC_SUPPORT = NONE, 
   CLUSTER_TYPE=NONE, 
   REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0) 
FOR REPLICA ON N'SQLVM' 
WITH (ENDPOINT_URL = N'TCP://SQLVM.contoso.com:5022', FAILOVER_MODE = MANUAL,    
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,    
SEEDING_MODE = AUTOMATIC,SECONDARY_ROLE(ALLOW_CONNECTIONS = NO));    
GO

Elosztott rendelkezésreállási csoport létrehozása

Miután konfigurálta a forrás (OnPremAG) és a cél (AzureAG) rendelkezésreállási csoportokat, hozza létre az elosztott rendelkezésre állási csoportot, hogy mindkét rendelkezésre állási csoportot lefedje.

Használja a Transact-SQL-t a forrás SQL Server példányon (OnPremNode) és AG-n (OnPremAG) az elosztott rendelkezésre állási csoport (DAG) létrehozásához.

Az elosztott rendelkezésreállási csoport létrehozásához futtassa ezt a szkriptet a forráson:

CREATE AVAILABILITY GROUP [DAG]   
   WITH (DISTRIBUTED)    
   AVAILABILITY GROUP ON 
      'OnPremAG' WITH    
      (		 
         LISTENER_URL = 'tcp://OnPremNode.contoso.com:5022',   
         AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,   
         FAILOVER_MODE = MANUAL,    
         SEEDING_MODE = AUTOMATIC    
      ),    
      'AzureAG' WITH     
      (    
         LISTENER_URL = 'tcp://SQLVM.contoso.com:5022',  
         AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,    
         FAILOVER_MODE = MANUAL,    
         SEEDING_MODE = AUTOMATIC    
      );    
GO   

Megjegyzés

A bevetési mód úgy van beállítva, hogy AUTOMATIC a célon SQL Server verziója és a forrás ugyanaz. Ha a SQL Server cél magasabb verziójú, vagy ha a globális elsődleges és a továbbító eltérő példánynevekkel rendelkezik, hozza létre az elosztott ag-t, és csatlakoztassa a másodlagos AG-t az elosztott csoporthoz, és SEEDING_MODE értékre MANUALvan állítva. Ezután manuálisan állítsa vissza az adatbázisokat a forrásból a cél SQL Server példányra. További információért tekintse át a verziófrissítéseket a migrálás során .

Az elosztott rendelkezésreállási csoport létrehozása után csatlakozzon a célpéldányon (SQLVM) található cél AG-hez (DAG).

Ha csatlakozni szeretne a cél AG-hez az elosztott AG-hez, futtassa ezt a szkriptet a célon:

ALTER AVAILABILITY GROUP [DAG]    
JOIN    
AVAILABILITY GROUP ON   
   'OnPremAG' WITH    
 	(LISTENER_URL = 'tcp://OnPremNode.contoso.com:5022', 
    AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,  
    FAILOVER_MODE = MANUAL,  
    SEEDING_MODE = AUTOMATIC  
 	),   
   'AzureAG' WITH 
 	(LISTENER_URL = 'tcp://SQLVM.contoso.com:5022',    
    AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,   
    FAILOVER_MODE = MANUAL,    
    SEEDING_MODE = AUTOMATIC    
 	);     
GO  

Ha meg kell szakítania, szüneteltetnie vagy késleltetnie kell a szinkronizálást a forrás és a cél rendelkezésre állási csoportok között (például teljesítményproblémák esetén), futtassa ezt a szkriptet a forrás globális elsődleges példányán (OnPremNode):

ALTER AVAILABILITY GROUP [DAG] 
   MODIFY  
   AVAILABILITY GROUP ON   
   'AzureAG' WITH 
   (  SEEDING_MODE = MANUAL  );  

További információkért tekintse át az automatikus vetés lemondását a továbbítónak.

Következő lépések

Az elosztott rendelkezésre állási csoport létrehozása után készen áll az áttelepítés befejezésére.