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.
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 lennievnet-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.
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.
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
Sign into the Azure portal.
Új Azure-erőforrás létrehozásához válassza az Erőforrás létrehozása lehetőséget.
Keressen rá
private dns zone
az Azure Marketplace-en.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.
Válassza ki az előfizetést és az erőforráscsoportot a legördülő menüből.
Adjon meg tetszőleges nevet a DNS-zónának, például
repldns.com
.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
Lépjen az új saját DNS zónára, és válassza az Áttekintés lehetőséget.
Új A rekord létrehozásához válassza a + Rekordkészlet lehetőséget .
Adja meg az SQL Server virtuális gép nevét és a privát belső IP-címet.
Az A rekord létrehozásához kattintson az OK gombra .
A virtuális hálózat összekapcsolása
Lépjen az új saját DNS zónára, és válassza a Virtuális hálózati kapcsolatok lehetőséget.
Válassza a + Hozzáadás lehetőséget.
Adja meg a hivatkozás nevét, például
Pub-link
.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.
Jelölje be az automatikus regisztráció engedélyezése jelölőnégyzetet.
Kattintson az OK gombra a virtuális hálózat összekapcsolásához.
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:
- Indítsa el az SQL Server Management Studiót az SQL Serveren.
- Csatlakozás a
sql-mi-publisher
felügyelt példányra. - 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:
Indítsa el az SQL Server Management Studiót az SQL Serveren.
Csatlakozás a
sql-mi-distributor
felügyelt példányra.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.Csatlakozás a
sql-mi-publisher
felügyelt példányra.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:
Indítsa el az SQL Server Management Studiót az SQL Serveren.
Csatlakozás a
sql-mi-publisher
felügyelt példányra.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.
A Tovább gombra kattintva lépkedhet az üdvözlőlapon.
A Kiadványadatbázis lapon válassza ki a
ReplTutorial
korábban létrehozott adatbázist. Válassza a Következő lehetőséget.A Kiadvány típusa lapon válassza a Tranzakciós kiadvány lehetőséget. Válassza a Következő lehetőséget.
A Cikkek lapon jelölje be a Táblák melletti jelölőnégyzetet. Válassza a Következő lehetőséget.
A Táblázatsorok szűrése lapon szűrők hozzáadása nélkül válassza a Tovább gombot.
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.
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.
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.
A Varázsló befejezése lapon nevezze el a kiadványt
ReplTest
, és válassza a Tovább gombot a kiadvány létrehozásához.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:
- Indítsa el az SQL Server Management Studiót az SQL Serveren.
- Csatlakozás a
sql-mi-publisher
felügyelt példányra. - 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
- Lépjen az erőforráscsoportra az Azure Portalon.
- 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. - 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. - 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. - 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,
myResourceGroup
majd 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 naplózása
- Always Encrypted
- Fenyegetések észlelése
- Dinamikus adatmaszkolás
- Row-level security
- Transzparens adattitkosítás (TDE)
Felügyelt SQL-példány képességei
A felügyelt példányok képességeinek teljes áttekintéséért lásd:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: