Oktatóanyag: Tranzakciós replikáció konfigurálása felügyelt Azure SQL-példány és SQL Server között

A következőre vonatkozik: Felügyelt Azure SQL-példány

A tranzakciós replikáció lehetővé teszi, hogy adatokat replikáljon az egyik adatbázisból egy másikba, amely az SQL Serveren vagy az Azure SQL Managed Instance-en fut. A felügyelt SQL-példány lehet közzétevő, terjesztő vagy előfizető a replikációs topológiában. Az elérhető konfigurációkhoz tekintse meg a tranzakciós replikáció konfigurációit.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Felügyelt példány konfigurálása replikációs közzétevőként.
  • Felügyelt példány konfigurálása replikációs terjesztőként.
  • Konfigurálja az SQL Servert előfizetőként.

Replication between a managed instance publisher, managed instance distributor, and SQL Server subscriber

Ez az oktatóanyag egy tapasztalt célközönség számára készült, és feltételezi, hogy a felhasználó ismeri a felügyelt példányok és az AZURE-beli SQL Server virtuális gépek üzembe helyezését és csatlakoztatását.

Megjegyzés:

Ez a cikk a tranzakciós replikáció használatát ismerteti a felügyelt Azure SQL-példányban. Nem kapcsolódik a feladatátvételi csoportokhoz, amely egy Felügyelt Azure SQL-példány funkció, amely lehetővé teszi az egyes példányok teljes olvasható replikáinak létrehozását. A tranzakciós replikáció feladatátvételi csoportokkal való konfigurálásakor további szempontokat is figyelembe kell venni.

Előfeltételek

Az oktatóanyag elvégzéséhez győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:

  • Egy Azure-előfizetés.
  • Két felügyelt példány üzembe helyezésének tapasztalata ugyanazon a virtuális hálózaton belül.
  • Sql Server-előfizető, akár helyszíni, akár Azure-beli virtuális gépen. Ez az oktatóanyag egy Azure-beli virtuális gépet használ.
  • SQL Server Management Studio (SSMS) 18.0 vagy újabb.
  • Az Azure PowerShell legújabb verziója.
  • A 445-ös és 1433-os portok lehetővé teszik az SQL-forgalmat az Azure-tűzfalon és a Windows tűzfalon is.

Az erőforráscsoport létrehozása

Új erőforráscsoport létrehozásához használja a következő PowerShell-kódrészletet:

# set variables
$ResourceGroupName = "SQLMI-Repl"
$Location = "East US 2"

# Create a new resource group
New-AzResourceGroup -Name  $ResourceGroupName -Location $Location

Két felügyelt példány létrehozása

Hozzon létre két felügyelt példányt ebben az új erőforráscsoportban az Azure Portal használatával.

  • A közzétevő által felügyelt példány nevének (a véletlenszerűséghez néhány karakterrel együtt) kell lennie sql-mi-publisher , a virtuális hálózat nevének pedig a következőnek kell lennie vnet-sql-mi-publisher.

  • A forgalmazó által felügyelt példány sql-mi-distributor neve legyen (néhány karakterrel együtt a véletlenszerűséghez), és ugyanabban a virtuális hálózatban kell lennie , mint a közzétevő által felügyelt példánynak.

    Use the publisher VNet for the distributor

A felügyelt példányok létrehozásáról további információt a Felügyelt példány létrehozása a portálon című témakörben talál.

Megjegyzés:

Az egyszerűség kedvéért, és mivel ez a leggyakoribb konfiguráció, ez az oktatóanyag azt javasolja, hogy a forgalmazó által felügyelt példányt ugyanabban a virtuális hálózaton helyezze el, mint a közzétevő. A forgalmazót azonban külön virtuális hálózaton is létrehozhatja. Ehhez konfigurálnia kell a virtuális hálózatok közötti társviszonyt a közzétevő és a forgalmazó virtuális hálózatai között, majd konfigurálnia kell a virtuális hálózatok közötti társviszonyt a forgalmazó és az előfizető virtuális hálózatai között.

SQL Server virtuális gép létrehozása

SQL Server virtuális gép létrehozása az Azure Portal használatával. Az SQL Server virtuális gépnek a következő jellemzőkkel kell rendelkeznie:

  • Name: sql-vm-sub
  • Kép: SQL Server 2016 vagy újabb
  • Erőforráscsoport: ugyanaz, mint a felügyelt példány
  • Virtuális hálózat: sql-vm-sub-vnet

Az SQL Server virtuális gép Azure-ban való üzembe helyezéséről további információt az SQL Server virtuális gép létrehozása című rövid útmutatóban talál.

Virtuális hálózatok közötti társviszony konfigurálása

Konfigurálja a virtuális hálózatok közötti társviszony-létesítést a két felügyelt példány virtuális hálózata és az SQL Server virtuális hálózata közötti kommunikáció engedélyezéséhez. Ehhez használja ezt a PowerShell-kódrészletet:

# Set variables
$SubscriptionId = '<SubscriptionID>'
$resourceGroup = 'SQLMI-Repl'
$pubvNet = 'sql-mi-publisher-vnet'
$subvNet = 'sql-vm-sub-vnet'
$pubsubName = 'Pub-to-Sub-Peer'
$subpubName = 'Sub-to-Pub-Peer'

$virtualNetwork1 = Get-AzVirtualNetwork `
  -ResourceGroupName $resourceGroup `
  -Name $pubvNet

 $virtualNetwork2 = Get-AzVirtualNetwork `
  -ResourceGroupName $resourceGroup `
  -Name $subvNet  

# Configure VNet peering from publisher to subscriber
Add-AzVirtualNetworkPeering `
  -Name $pubsubName `
  -VirtualNetwork $virtualNetwork1 `
  -RemoteVirtualNetworkId $virtualNetwork2.Id

# Configure VNet peering from subscriber to publisher
Add-AzVirtualNetworkPeering `
  -Name $subpubName `
  -VirtualNetwork $virtualNetwork2 `
  -RemoteVirtualNetworkId $virtualNetwork1.Id

# Check status of peering on the publisher VNet; should say connected
Get-AzVirtualNetworkPeering `
 -ResourceGroupName $resourceGroup `
 -VirtualNetworkName $pubvNet `
 | Select PeeringState

# Check status of peering on the subscriber VNet; should say connected
Get-AzVirtualNetworkPeering `
 -ResourceGroupName $resourceGroup `
 -VirtualNetworkName $subvNet `
 | Select PeeringState

A virtuális hálózatok közötti társviszony létesítése után tesztelje a kapcsolatot az SQL Server Management Studio (SSMS) SQL Serveren való elindításával és mindkét felügyelt példányhoz való csatlakozással. Az SSMS használatával felügyelt példányhoz való csatlakozásról további információt az SSMS használata felügyelt SQL-példányhoz való csatlakozással című témakörben talál.

Test connectivity to the managed instances

Privát DNS-zóna létrehozása

A privát DNS-zóna lehetővé teszi a DNS-útválasztást a felügyelt példányok és az SQL Server között.

Privát DNS-zóna létrehozása

  1. Sign into the Azure portal.

  2. Új Azure-erőforrás létrehozásához válassza az Erőforrás létrehozása lehetőséget.

  3. Keressen rá private dns zone az Azure Marketplace-en.

  4. Válassza ki a Microsoft által közzétett saját DNS zónaerőforrást, majd válassza a Létrehozás lehetőséget a DNS-zóna létrehozásához.

  5. Válassza ki az előfizetést és az erőforráscsoportot a legördülő menüből.

  6. Adjon meg tetszőleges nevet a DNS-zónának, például repldns.com.

    Create private DNS zone

  7. Select Review + create. Tekintse át a privát DNS-zóna paramétereit, majd válassza a Létrehozás lehetőséget az erőforrás létrehozásához.

A rekord létrehozása

  1. Lépjen az új saját DNS zónára, és válassza az Áttekintés lehetőséget.

  2. Új A rekord létrehozásához válassza a + Rekordkészlet lehetőséget .

  3. Adja meg az SQL Server virtuális gép nevét és a privát belső IP-címet.

    Configure an A record

  4. Az A rekord létrehozásához kattintson az OK gombra .

  1. Lépjen az új saját DNS zónára, és válassza a Virtuális hálózati kapcsolatok lehetőséget.

  2. Válassza a + Hozzáadás lehetőséget.

  3. Adja meg a hivatkozás nevét, például Pub-link.

  4. Válassza ki az előfizetést a legördülő menüből, majd válassza ki a közzétevő által felügyelt példány virtuális hálózatát.

  5. Jelölje be az automatikus regisztráció engedélyezése jelölőnégyzetet.

    Create VNet link

  6. Kattintson az OK gombra a virtuális hálózat összekapcsolásához.

  7. Ismételje meg ezeket a lépéseket az előfizetői virtuális hálózatra mutató hivatkozás hozzáadásához egy olyan névvel, mint a Sub-link.

Azure-tárfiók létrehozása

Hozzon létre egy Azure Storage-fiókot a munkakönyvtárhoz, majd hozzon létre egy fájlmegosztást a tárfiókon belül.

Másolja a fájlmegosztás elérési útját a következő formátumban: \\storage-account-name.file.core.windows.net\file-share-name

Example: \\replstorage.file.core.windows.net\replshare

Másolja a tárelérési kulcsot kapcsolati sztring a következő formátumban:DefaultEndpointsProtocol=https;AccountName=<Storage-Account-Name>;AccountKey=****;EndpointSuffix=core.windows.net

Example: DefaultEndpointsProtocol=https;AccountName=replstorage;AccountKey=dYT5hHZVu9aTgIteGfpYE64cfis0mpKTmmc8+EP53GxuRg6TCwe5eTYWrQM4AmQSG5lb3OBskhg==;EndpointSuffix=core.windows.net

További információ: Tárfiók hozzáférési kulcsainak kezelése.

-adatbázis létrehozása

Hozzon létre egy új adatbázist a közzétevő által felügyelt példányon. To do so, follow these steps:

  1. Indítsa el az SQL Server Management Studiót az SQL Serveren.
  2. Csatlakozás a sql-mi-publisher felügyelt példányra.
  3. Nyisson meg egy Új lekérdezés ablakot, és hajtsa végre a következő T-SQL-lekérdezést az adatbázis létrehozásához.
-- Create the databases
USE [master]
GO

-- Drop database if it exists
IF EXISTS (SELECT * FROM sys.sysdatabases WHERE name = 'ReplTutorial')
BEGIN
    DROP DATABASE ReplTutorial
END
GO

-- Create new database
CREATE DATABASE [ReplTutorial]
GO

-- Create table
USE [ReplTutorial]
GO
CREATE TABLE ReplTest (
   ID INT NOT NULL PRIMARY KEY,
   c1 VARCHAR(100) NOT NULL,
   dt1 DATETIME NOT NULL DEFAULT getdate()
)
GO

-- Populate table with data
USE [ReplTutorial]
GO

INSERT INTO ReplTest (ID, c1) VALUES (6, 'pub')
INSERT INTO ReplTest (ID, c1) VALUES (2, 'pub')
INSERT INTO ReplTest (ID, c1) VALUES (3, 'pub')
INSERT INTO ReplTest (ID, c1) VALUES (4, 'pub')
INSERT INTO ReplTest (ID, c1) VALUES (5, 'pub')
GO
SELECT * FROM ReplTest
GO

A disztribúció konfigurálása

Miután létrejött a kapcsolat, és már rendelkezik mintaadatbázissal, konfigurálhatja a terjesztést a sql-mi-distributor felügyelt példányon. To do so, follow these steps:

  1. Indítsa el az SQL Server Management Studiót az SQL Serveren.

  2. Csatlakozás a sql-mi-distributor felügyelt példányra.

  3. Nyisson meg egy Új lekérdezés ablakot, és futtassa a következő Transact-SQL-kódot a disztribúció konfigurálásához a forgalmazó által felügyelt példányon:

    EXEC sp_adddistributor @distributor = 'sql-mi-distributor.b6bf57.database.windows.net', @password = '<distributor_admin_password>'
    
    EXEC sp_adddistributiondb @database = N'distribution'
    
    EXEC sp_adddistpublisher @publisher = 'sql-mi-publisher.b6bf57.database.windows.net', -- primary publisher
         @distribution_db = N'distribution',
         @security_mode = 0,
         @login = N'azureuser',
         @password = N'<publisher_password>',
         @working_directory = N'\\replstorage.file.core.windows.net\replshare',
         @storage_connection_string = N'<storage_connection_string>'
         -- example: @storage_connection_string = N'DefaultEndpointsProtocol=https;AccountName=replstorage;AccountKey=dYT5hHZVu9aTgIteGfpYE64cfis0mpKTmmc8+EP53GxuRg6TCwe5eTYWrQM4AmQSG5lb3OBskhg==;EndpointSuffix=core.windows.net'
    
    

    Megjegyzés:

    Ügyeljen arra, hogy csak fordított perjeleket (\) használjon a @working_directory paraméterhez. A perjel (/) használata hibát okozhat a fájlmegosztáshoz való csatlakozáskor.

  4. Csatlakozás a sql-mi-publisher felügyelt példányra.

  5. Nyisson meg egy Új lekérdezés ablakot, és futtassa a következő Transact-SQL-kódot a terjesztő regisztrálásához a közzétevőnél:

    Use MASTER
    EXEC sys.sp_adddistributor @distributor = 'sql-mi-distributor.b6bf57.database.windows.net', @password = '<distributor_admin_password>'
    

A kiadvány létrehozása

A disztribúció konfigurálása után most már létrehozhatja a kiadványt. To do so, follow these steps:

  1. Indítsa el az SQL Server Management Studiót az SQL Serveren.

  2. Csatlakozás a sql-mi-publisher felügyelt példányra.

  3. Az Object Explorerben bontsa ki a replikációs csomópontot, és kattintson a jobb gombbal a Helyi kiadvány mappára. Válassza az Új kiadvány...lehetőséget.

  4. A Tovább gombra kattintva lépkedhet az üdvözlőlapon.

  5. A Kiadványadatbázis lapon válassza ki a ReplTutorial korábban létrehozott adatbázist. Válassza a Következő lehetőséget.

  6. A Kiadvány típusa lapon válassza a Tranzakciós kiadvány lehetőséget. Válassza a Következő lehetőséget.

  7. A Cikkek lapon jelölje be a Táblák melletti jelölőnégyzetet. Válassza a Következő lehetőséget.

  8. A Táblázatsorok szűrése lapon szűrők hozzáadása nélkül válassza a Tovább gombot.

  9. A Pillanatkép-ügynök lapon jelölje be azonnal a Pillanatkép létrehozása melletti jelölőnégyzetet, és tartsa elérhetővé a pillanatképet az előfizetések inicializálásához. Válassza a Következő lehetőséget.

  10. Az Ügynökbiztonság lapon válassza a Biztonság Gépház... lehetőséget. Adja meg az SQL Server bejelentkezési hitelesítő adatait a Pillanatkép-ügynökhöz való használathoz és a közzétevőhöz való csatlakozáshoz. Kattintson az OK gombra a Pillanatkép-ügynök biztonsági lapjának bezárásához. Válassza a Következő lehetőséget.

    Configure Snapshot Agent security

  11. A Varázslóműveletek lapon válassza a Kiadvány létrehozása lehetőséget, és (opcionálisan) válassza a kiadvány létrehozásának lépéseit tartalmazó szkriptfájlt, ha később menteni szeretné ezt a szkriptet.

  12. A Varázsló befejezése lapon nevezze el a kiadványtReplTest, és válassza a Tovább gombot a kiadvány létrehozásához.

  13. A kiadvány létrehozása után frissítse a Replikáció csomópontot az Object Explorerben, és bontsa ki a Helyi kiadványok elemet az új kiadvány megtekintéséhez.

A feliratkozás létrehozása

A kiadvány létrehozása után létrehozhatja az előfizetést. To do so, follow these steps:

  1. Indítsa el az SQL Server Management Studiót az SQL Serveren.
  2. Csatlakozás a sql-mi-publisher felügyelt példányra.
  3. Nyisson meg egy Új lekérdezés ablakot, és futtassa a következő Transact-SQL-kódot az előfizetés és a terjesztési ügynök hozzáadásához. Használja a DNS-t az előfizető neve részeként.
use [ReplTutorial]
exec sp_addsubscription
@publication = N'ReplTest',
@subscriber = N'sql-vm-sub.repldns.com', -- include the DNS configured in the private DNS zone
@destination_db = N'ReplSub',
@subscription_type = N'Push',
@sync_type = N'automatic',
@article = N'all',
@update_mode = N'read only',
@subscriber_type = 0

exec sp_addpushsubscription_agent
@publication = N'ReplTest',
@subscriber = N'sql-vm-sub.repldns.com', -- include the DNS configured in the private DNS zone
@subscriber_db = N'ReplSub',
@job_login = N'azureuser',
@job_password = '<Complex Password>',
@subscriber_security_mode = 0,
@subscriber_login = N'azureuser',
@subscriber_password = '<Complex Password>',
@dts_package_location = N'Distributor'
GO

Replikáció tesztelése

Miután konfigurálta a replikációt, tesztelheti azt úgy, hogy új elemeket szúr be a közzétevőbe, és figyeli, ahogy a módosítások propagálása megtörténik az előfizető számára.

Futtassa a következő T-SQL-kódrészletet az előfizető sorainak megtekintéséhez:

Use ReplSub
select * from dbo.ReplTest

Futtassa a következő T-SQL-kódrészletet, hogy további sorokat szúrjon be a közzétevőbe, majd ellenőrizze újra a sorokat az előfizetőn.

Use ReplTutorial
INSERT INTO ReplTest (ID, c1) VALUES (15, 'pub')

Clean up resources

  1. Lépjen az erőforráscsoportra az Azure Portalon.
  2. Jelölje ki a felügyelt példány(oka)t, majd válassza a Törlés lehetőséget. Írja be yes a szövegmezőbe az erőforrás törlésének megerősítéséhez, majd válassza a Törlés lehetőséget. Ez a folyamat eltarthat egy ideig a háttérben, és amíg nem fejeződik be, nem fogja tudni törölni a virtuális fürtöt vagy bármely más függő erőforrást. Figyelje a törlést a Tevékenység lapon, és ellenőrizze, hogy a felügyelt példány törölve lett-e.
  3. A felügyelt példány törlése után törölje a virtuális fürtöt az erőforráscsoportban való kijelöléssel, majd a Törlés gombra kattintva. Írja be yes a szövegmezőbe az erőforrás törlésének megerősítéséhez, majd válassza a Törlés lehetőséget.
  4. Törölje a fennmaradó erőforrásokat. Írja be yes a szövegmezőbe az erőforrás törlésének megerősítéséhez, majd válassza a Törlés lehetőséget.
  5. Az erőforráscsoport törléséhez válassza az Erőforráscsoport törlése lehetőséget, írja be az erőforráscsoport nevét, myResourceGroupmajd válassza a Törlés lehetőséget.

Known errors

A Windows-bejelentkezések nem támogatottak

Exception Message: Windows logins are not supported in this version of SQL Server.

Az ügynök windowsos bejelentkezéssel lett konfigurálva, és ehelyett SQL Server-bejelentkezést kell használnia. A Kiadvány tulajdonságainak Ügynökbiztonsági lapján a bejelentkezési hitelesítő adatokat SQL Server-bejelentkezésre módosíthatja.

Sikertelen csatlakozás az Azure Storage-hoz

Connecting to Azure Files Storage '\\replstorage.file.core.windows.net\replshare' Failed to connect to Azure Storage '' with OS error: 53.

2019-11-19 02:21:05.07 Lekért Azure Storage Csatlakozás ion sztring a replstorage-hoz 2019-11-19 02:21:05.0 7 Csatlakozás Azure Files Storage '\replstorage.file.core.windows.net\replshare' 2019-11-19 02:21:31.21 Nem sikerült csatlakozni az Azure Storage-hoz az 53-os operációsrendszer-hibával.

Ennek oka valószínűleg az, hogy a 445-ös port bezárul az Azure-tűzfalon, a Windows tűzfalon vagy mindkettőn.

Connecting to Azure Files Storage '\\replstorage.file.core.windows.net\replshare' Failed to connect to Azure Storage '' with OS error: 55.

Ezt a hibát okozhatja, ha fordított perjel helyett fordított perjelet használ a fájlmegosztás fájlútvonalában.

  • Ez rendben van: \\replstorage.file.core.windows.net\replshare
  • Ez os 55-ös hibát okozhat: '\\replstorage.file.core.windows.net/replshare'

Nem sikerült csatlakozni az előfizetőhöz

The process could not connect to Subscriber 'SQL-VM-SUB Could not open a connection to SQL Server [53]. A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections.

Possible solutions:

  • Győződjön meg arról, hogy az 1433-as port nyitva van.
  • Győződjön meg arról, hogy a TCP/IP engedélyezve van az előfizetőn.
  • Ellenőrizze, hogy a DNS-nevet használták-e az előfizető létrehozásakor.
  • Ellenőrizze, hogy a virtuális hálózatok megfelelően vannak-e összekapcsolva a privát DNS-zónában.
  • Ellenőrizze, hogy az A rekord megfelelően van-e konfigurálva.
  • Ellenőrizze, hogy a virtuális hálózatok közötti társviszony-létesítés megfelelően van-e konfigurálva.

Nincs olyan kiadvány, amelyre előfizethet

Amikor új előfizetést ad hozzá az Új előfizetés varázslóval, a Kiadvány lapon előfordulhat, hogy nincsenek elérhető lehetőségekként felsorolt adatbázisok és kiadványok, és a következő hibaüzenet jelenhet meg:

There are no publications to which you can subscribe, either because this server has no publications or because you do not have sufficient privileges to access the publications.

Bár lehetséges, hogy ez a hibaüzenet pontos, és valójában nem érhetők el kiadványok azon a közzétevőn, amelyhez csatlakozott, vagy ha nem rendelkezik megfelelő engedélyekkel, ezt a hibát az SQL Server Management Studio egy régebbi verziója is okozhatja. Próbálja meg frissíteni az SQL Server Management Studio 18.0-s vagy újabb verziójára, hogy kizárja ezt a problémát kiváltó okként.

További lépések

Biztonsági funkciók engedélyezése

A felügyelt Azure SQL-példányok ismertetése az adatbázis biztonságossá tételének átfogó listáját ismerteti. A következő biztonsági funkciókat tárgyaljuk:

Felügyelt SQL-példány képességei

A felügyelt példányok képességeinek teljes áttekintéséért lásd: