Konfigurace odkazu pomocí skriptů – Azure SQL Managed Instance

Platí pro: Azure SQL Managed Instance

V tomto článku se dozvíte, jak nakonfigurovat propojení mezi SQL Serverem a azure SQL Managed Instance pomocí skriptů Jazyka Transact-SQL a PowerShellu nebo Azure CLI. S odkazem se databáze z vaší počáteční primární repliky replikují do sekundární repliky téměř v reálném čase.

Po vytvoření propojení můžete převzít služby při selhání sekundární repliky za účelem migrace nebo zotavení po havárii.

Poznámka:

Přehled

Pomocí funkce propojení můžete replikovat databáze z počáteční primární do sekundární repliky. Pro SQL Server 2022 může být počáteční primární instance SQL Server nebo Azure SQL Managed Instance. Pro SQL Server 2019 a starší verze musí být počáteční primární server SQL Server. Po nakonfigurování propojení se databáze z počáteční primární repliky replikuje do sekundární repliky.

Můžete se rozhodnout ponechat propojení pro průběžnou replikaci dat v hybridním prostředí mezi primární a sekundární replikou nebo můžete převzít služby při selhání databáze na sekundární repliku, migrovat do Azure nebo pro zotavení po havárii. U SQL Serveru 2019 a starších verzí přeruší převzetí služeb při selhání službou Azure SQL Managed Instance propojení a navrácení služeb po obnovení se nepodporuje. S SQL Serverem 2022 máte možnost udržovat propojení a navrátit služby po obnovení mezi těmito dvěma replikami.

Pokud plánujete používat sekundární spravovanou instanci pouze pro zotavení po havárii, můžete ušetřit náklady na licencování aktivací zvýhodnění hybridního převzetí služeb při selhání.

Pokyny v tomto článku použijte k ručnímu nastavení propojení mezi SQL Serverem a službou Azure SQL Managed Instance. Po vytvoření odkazu získá zdrojová databáze kopii jen pro čtení na cílové sekundární replice.

Tip

Pokud chcete zjednodušit používání skriptů T-SQL se správnými parametry pro vaše prostředí, důrazně doporučujeme použít průvodce propojením spravované instance v sadě SQL Server Management Studio (SSMS) a vygenerovat skript pro vytvoření odkazu. Na stránce Souhrn okna odkazu Nová spravovaná instance vyberte Místo dokončení skript.

Požadavky

K replikaci databází potřebujete následující požadavky:

Zvažte použití těchto zdrojů:

  • Funkce propojení podporuje jednu databázi na odkaz. Pokud chcete replikovat více databází v instanci, vytvořte odkaz pro každou jednotlivou databázi. Pokud chcete například replikovat 10 databází do služby SQL Managed Instance, vytvořte 10 jednotlivých odkazů.
  • Kolace mezi SQL Serverem a spravovanou instancí SQL by měla být stejná. Neshoda v kolaci může způsobit neshodu v názvových osách serveru a zabránit úspěšnému připojení z SQL Serveru ke spravované instanci SQL.
  • Chyba 1475 na počátečním primárním serveru SQL Server indikuje, že je potřeba spustit nový řetěz zálohování vytvořením úplného zálohování bez COPY ONLY možnosti.
  • Pokud chcete vytvořit propojení nebo převzít služby při selhání, musí být spravovaná instance z SQL Managed Instance na SQL Server 2022 nakonfigurovaná pomocí zásad aktualizace SQL Serveru 2022. Replikace dat a převzetí služeb při selhání ze služby SQL Managed Instance na SQL Server 2022 nejsou podporovány instancemi nakonfigurovanými pomocí zásad aktualizace always-up-to-date.
  • I když můžete vytvořit odkaz z SQL Serveru 2022 na spravovanou instanci SQL nakonfigurovanou pomocí zásad aktualizace Always-up-to-date, po převzetí služeb při selhání do SLUŽBY SQL Managed Instance už nebudete moci replikovat data nebo navrátit služby po obnovení zpět na SQL Server 2022.

Oprávnění

Pro SQL Server byste měli mít oprávnění správce systému.

Pro službu Azure SQL Managed Instance byste měli být členem přispěvatele služby SQL Managed Instance nebo mít následující vlastní oprávnění role:

Microsoft.Sql/ prostředek Potřebná oprávnění
Microsoft.Sql/managedInstances /read, /write
Microsoft.Sql/managedInstances/hybridCertificate za akci
Microsoft.Sql/managedInstances/databases /read, /delete, /write, /completeRestore/action, /readBackups/action, /restoreDetails/read
Microsoft.Sql/managedInstances/distributedAvailabilityGroups /read, /write, /delete, /setRole/action
Microsoft.Sql/managedInstances/endpointCertificates /číst
Microsoft.Sql/managedInstances/hybridLink /read, /write, /delete
Microsoft.Sql/managedInstances/serverTrustCertificates /write, /delete, /read

Terminologie a zásady vytváření názvů

Při spouštěnískriptch Následující tabulka vysvětluje, co přesně představují různé názvy a jak získat jejich hodnoty:

Terminologie Popis Jak zjistit
Počáteční primární 1 SQL Server nebo SQL Managed Instance, kde jste původně vytvořili odkaz pro replikaci databáze do sekundární repliky.
Primární replika SQL Server nebo spravovaná instance SQL, která je aktuálně hostitelem primární databáze.
Sekundární replika SQL Server nebo spravovaná instance SQL, která přijímá data replikovaná téměř v reálném čase z aktuální primární repliky.
Název SQL Serveru Krátký jednoslovný název SQL Serveru. Příklad: sqlserver1. Spusťte SELECT @@SERVERNAME z T-SQL.
Plně kvalifikovaný název domény SQL Serveru Plně kvalifikovaný název domény (FQDN) vašeho SQL Serveru Příklad: sqlserver1.domain.com. Pokud používáte virtuální počítač Azure, podívejte se na místní konfiguraci sítě (DNS) nebo název serveru.
Název spravované instance SQL Krátký název jednoslovné spravované instance SQL. Příklad: managedinstance1. Podívejte se na název vaší spravované instance na webu Azure Portal.
Plně kvalifikovaný název domény spravované instance SQL Plně kvalifikovaný název domény (FQDN) vaší spravované instance SQL Příklad: managedinstance1.6d710bcf372b.database.windows.net. Na stránce přehledu služby SQL Managed Instance na webu Azure Portal se podívejte na název hostitele.
Přeložitelný název domény Název DNS, který se dá přeložit na IP adresu. Spuštění by například nslookup sqlserver1.domain.com mělo vrátit IP adresu, například 10.0.0.1. Spusťte nslookup příkaz z příkazového řádku.
IP adresa SQL Serveru IP adresa vašeho SQL Serveru. V případě několika IP adres na SQL Serveru zvolte IP adresu, která je přístupná z Azure. Spusťte ipconfig příkaz z příkazového řádku hostitelského operačního systému, na kterém běží SQL Server.

1 Konfigurace služby Azure SQL Managed Instance jako počáteční primární instance se podporuje od SQL Serveru 2022 CU10.

Nastavení obnovení a zálohování databáze

Pokud je SQL Server vaším počátečním primárním serverem, pak databáze, které se budou replikovat přes propojení, musí být v úplném modelu obnovení a musí mít aspoň jednu zálohu. Vzhledem k tomu, že Služba Azure SQL Managed Instance provádí zálohování automaticky, přeskočte tento krok, pokud je sql Managed Instance vaší počáteční primární instancí.

Na SQL Serveru spusťte následující kód pro všechny databáze, které chcete replikovat. Nahraďte <DatabaseName> skutečným názvem databáze.

-- Run on SQL Server
-- Set full recovery model for all databases you want to replicate.
ALTER DATABASE [<DatabaseName>] SET RECOVERY FULL
GO

-- Execute backup for all databases you want to replicate.
BACKUP DATABASE [<DatabaseName>] TO DISK = N'<DiskPath>'
GO

Další informace naleznete v tématu Vytvoření úplné zálohy databáze.

Poznámka:

Propojení podporuje pouze replikaci uživatelských databází. Replikace systémových databází není podporována. Pokud chcete replikovat objekty na úrovni instance (uložené v master databázích nebo msdb v databázích), doporučujeme je skriptovat a spouštět skripty T-SQL v cílové instanci.

Navázání vztahu důvěryhodnosti mezi instancemi

Nejprve musíte mezi těmito dvěma instancemi navázat vztah důvěryhodnosti a zabezpečit koncové body používané ke komunikaci a šifrování dat v síti. Distribuované skupiny dostupnosti používají existující koncový bod zrcadlení databáze skupiny dostupnosti místo vlastního vyhrazeného koncového bodu. Zabezpečení a vztah důvěryhodnosti je proto potřeba nakonfigurovat mezi těmito dvěma instancemi prostřednictvím koncového bodu zrcadlení databáze skupiny dostupnosti.

Poznámka:

Odkaz je založený na technologii skupiny dostupnosti AlwaysOn. Koncový bod zrcadlení databáze je koncový bod pro zvláštní účely, který používá výhradně skupiny dostupnosti k příjmu připojení z jiných instancí. Koncový bod zrcadlení databáze by neměl být chybný se starší funkcí zrcadlení databáze SQL Serveru.

Důvěryhodnost založená na certifikátech je jediným podporovaným způsobem zabezpečení koncových bodů zrcadlení databáze pro SQL Server a spravovanou instanci SQL. Pokud máte existující skupiny dostupnosti, které používají ověřování systému Windows, musíte do existujícího koncového bodu zrcadlení přidat vztah důvěryhodnosti založené na certifikátech jako sekundární možnost ověřování. Můžete to provést pomocí ALTER ENDPOINT příkazu, jak je znázorněno dále v tomto článku.

Důležité

Certifikáty se generují s datem a časem vypršení platnosti. Před vypršením jejich platnosti je nutné je obnovit a otočit.

Následující seznam obsahuje přehled procesu zabezpečení koncových bodů zrcadlení databáze pro SQL Server i spravovanou instanci SQL:

  1. Vygenerujte certifikát na SQL Serveru a získejte jeho veřejný klíč.
  2. Získejte veřejný klíč certifikátu služby SQL Managed Instance.
  3. Vyměňte veřejné klíče mezi SQL Serverem a spravovanou instancí SQL.
  4. Import klíčů kořenové autority důvěryhodných kořenových certifikátů Azure do SQL Serveru

Následující části podrobně popisují tyto kroky.

Vytvoření certifikátu na SQL Serveru a import jeho veřejného klíče do služby SQL Managed Instance

Nejprve vytvořte hlavní klíč databáze v master databázi, pokud ještě není k dispozici. Místo následujícího skriptu vložte heslo <strong_password> a uchovávejte ho na důvěrném a bezpečném místě. Spusťte tento skript T-SQL na SQL Serveru:

-- Run on SQL Server
-- Create a master key encryption password
-- Keep the password confidential and in a secure place
USE MASTER
IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101)
BEGIN
    PRINT 'Creating master key.' + CHAR(13) + 'Keep the password confidential and in a secure place.'
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong_password>'
END
ELSE
    PRINT 'Master key already exists.'
GO

Potom vygenerujte ověřovací certifikát na SQL Serveru. V následujícím skriptu nahraďte:

  • @cert_expiry_date s požadovaným datem vypršení platnosti certifikátu (budoucí datum).

Poznamenejte si toto datum a nastavte připomenutí, že chcete otočit (aktualizovat) certifikát SQL Serveru před datem vypršení platnosti, aby se zajistilo průběžné fungování odkazu.

Důležité

Důrazně doporučujeme použít automaticky vygenerovaný název certifikátu z tohoto skriptu. Při přizpůsobení vlastního názvu certifikátu na SQL Serveru by název neměl obsahovat žádné \ znaky.

-- Create the SQL Server certificate for the instance link
USE MASTER

-- Customize SQL Server certificate expiration date by adjusting the date below
DECLARE @cert_expiry_date AS varchar(max)='03/30/2025'

-- Build the query to generate the certificate
DECLARE @sqlserver_certificate_name NVARCHAR(MAX) = N'Cert_' + @@servername  + N'_endpoint'
DECLARE @sqlserver_certificate_subject NVARCHAR(MAX) = N'Certificate for ' + @sqlserver_certificate_name
DECLARE @create_sqlserver_certificate_command NVARCHAR(MAX) = N'CREATE CERTIFICATE [' + @sqlserver_certificate_name + '] ' + char (13) +
'    WITH SUBJECT = ''' + @sqlserver_certificate_subject + ''',' + char (13) +
'    EXPIRY_DATE = '''+ @cert_expiry_date + ''''+ char (13)
IF NOT EXISTS (SELECT name from sys.certificates WHERE name = @sqlserver_certificate_name)
BEGIN
    PRINT (@create_sqlserver_certificate_command)
    -- Execute the query to create SQL Server certificate for the instance link
    EXEC sp_executesql @stmt = @create_sqlserver_certificate_command
END
ELSE
    PRINT 'Certificate ' + @sqlserver_certificate_name + ' already exists.'
GO

Potom pomocí následujícího dotazu T-SQL na SQL Serveru ověřte, že se certifikát vytvořil:

-- Run on SQL Server
USE MASTER
GO
SELECT * FROM sys.certificates WHERE pvt_key_encryption_type = 'MK'

Ve výsledcích dotazu uvidíte, že certifikát je zašifrovaný pomocí hlavního klíče.

Teď můžete získat veřejný klíč vygenerovaného certifikátu na SQL Serveru:

-- Run on SQL Server
-- Show the name and the public key of generated SQL Server certificate
USE MASTER
GO
DECLARE @sqlserver_certificate_name NVARCHAR(MAX) = N'Cert_' + @@servername  + N'_endpoint'
DECLARE @PUBLICKEYENC VARBINARY(MAX) = CERTENCODED(CERT_ID(@sqlserver_certificate_name));
SELECT @sqlserver_certificate_name as 'SQLServerCertName'
SELECT @PUBLICKEYENC AS SQLServerPublicKey;

Uložte hodnoty SQLServerCertName výstupu a SQLServerPublicKey z něj, protože je budete potřebovat pro další krok při importu certifikátu.

Nejprve se ujistěte, že jste přihlášeni k Azure a že jste vybrali předplatné, ve kterém je vaše spravovaná instance hostovaná. Výběr správného předplatného je zvlášť důležitý, pokud máte ve svém účtu více než jedno předplatné Azure.

<SubscriptionID> nahraďte ID vašeho předplatného Azure.

# Run in Azure Cloud Shell (select PowerShell console)

# Enter your Azure subscription ID
$SubscriptionID = "<SubscriptionID>"

# Login to Azure and select subscription ID
if ((Get-AzContext ) -eq $null)
{
    echo "Logging to Azure subscription"
    Login-AzAccount
}
Select-AzSubscription -SubscriptionName $SubscriptionID

Pak pomocí rutiny New-AzSqlInstanceServerTrustCertificate PowerShellu nebo az sql mi partner-cert vytvořte příkaz Azure CLI k nahrání veřejného klíče ověřovacího certifikátu z SQL Serveru do Azure, jako je například následující ukázka PowerShellu.

Vyplňte potřebné informace o uživateli, zkopírujte je, vložte a spusťte skript. Nahrazení:

  • <SQLServerPublicKey> s veřejnou částí certifikátu SQL Serveru v binárním formátu, který jste si poznamenali v předchozím kroku. Jedná se o dlouhou řetězcovou hodnotu, která začíná řetězcem 0x.
  • <SQLServerCertName> s názvem certifikátu SQL Serveru, který jste si poznamenali v předchozím kroku.
  • <ManagedInstanceName> s krátkým názvem vaší spravované instance.
# Run in Azure Cloud Shell (select PowerShell console)
# ===============================================================================
# POWERSHELL SCRIPT TO IMPORT SQL SERVER PUBLIC CERTIFICATE TO SQL MANAGED INSTANCE
# ===== Enter user variables here ====

# Enter the name for the server SQLServerCertName certificate – for example, "Cert_sqlserver1_endpoint"
$CertificateName = "<SQLServerCertName>"

# Insert the certificate public key blob that you got from SQL Server – for example, "0x1234567..."
$PublicKeyEncoded = "<SQLServerPublicKey>"

# Enter your managed instance short name – for example, "sqlmi"
$ManagedInstanceName = "<ManagedInstanceName>"

# ==== Do not customize the below cmdlets====

# Find out the resource group name
$ResourceGroup = (Get-AzSqlInstance -InstanceName $ManagedInstanceName).ResourceGroupName

# Upload the public key of the authentication certificate from SQL Server to Azure.
New-AzSqlInstanceServerTrustCertificate -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -Name $CertificateName -PublicKey $PublicKeyEncoded 

Výsledkem této operace je souhrn nahraného certifikátu SQL Serveru do Azure.

Pokud potřebujete zobrazit všechny certifikáty SQL Serveru nahrané do spravované instance, použijte příkaz Get-AzSqlInstanceServerTrustCertificate PowerShellu nebo az sql mi partner-cert list Azure CLI v Azure Cloud Shellu. Pokud chcete odebrat certifikát SQL Serveru nahraný do spravované instance SQL, použijte příkaz Remove-AzSqlInstanceServerTrustCertificate PowerShellu nebo az sql mi partner-cert delete Azure CLI v Azure Cloud Shellu.

Získání veřejného klíče certifikátu ze spravované instance SQL a jeho import do SQL Serveru

Certifikát pro zabezpečení koncového bodu propojení se automaticky vygeneruje ve službě Azure SQL Managed Instance. Získejte veřejný klíč certifikátu ze služby SQL Managed Instance a importujte ho do SQL Serveru pomocí Rutiny Get-AzSqlInstanceEndpointCertificate PowerShellu nebo az sql mi endpoint-cert zobrazte příkaz Azure CLI, například následující ukázku PowerShellu.

Upozornění

Při použití Azure CLI budete muset při použití v dalších krocích ručně přidat 0x před výstup PublicKey. Veřejný klíč bude například vypadat takto: "0x3082033E30...".

Spusťte následující skript. Nahrazení:

  • <SubscriptionID> s ID vašeho předplatného Azure.
  • <ManagedInstanceName> s krátkým názvem vaší spravované instance.
# Run in Azure Cloud Shell (select PowerShell console)
# ===============================================================================
# POWERSHELL SCRIPT TO EXPORT MANAGED INSTANCE PUBLIC CERTIFICATE
# ===== Enter user variables here ====

# Enter your managed instance short name – for example, "sqlmi"
$ManagedInstanceName = "<ManagedInstanceName>"

# ==== Do not customize the following cmdlet ====

# Find out the resource group name
$ResourceGroup = (Get-AzSqlInstance -InstanceName $ManagedInstanceName).ResourceGroupName

# Fetch the public key of the authentication certificate from Managed Instance. Outputs a binary key in the property PublicKey.
Get-AzSqlInstanceEndpointCertificate -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -EndpointType "DATABASE_MIRRORING" | out-string   

Zkopírujte celý výstup PublicKey (začíná na 0x) tak, jak ho budete potřebovat v dalším kroku.

Pokud při vkládání veřejného klíče narazíte na problémy s kopírováním, můžete také spustit příkaz EXEC sp_get_endpoint_certificate 4 T-SQL ve spravované instanci a získat jeho veřejný klíč pro koncový bod propojení.

Dále naimportujte získaný veřejný klíč certifikátu zabezpečení spravované instance do SQL Serveru. Spuštěním následujícího dotazu na SQL Serveru vytvořte certifikát koncového bodu MI. Nahrazení:

  • <ManagedInstanceFQDN> plně kvalifikovaným názvem domény spravované instance.
  • <PublicKey> s hodnotou PublicKey získanou v předchozím kroku (z Azure Cloud Shellu počínaje 0x). Nemusíte používat uvozovky.

Důležité

Název certifikátu musí být plně kvalifikovaný název domény spravované instance SQL a neměl by být změněn. Pokud použijete vlastní název, odkaz nebude funkční.

-- Run on SQL Server
USE MASTER
CREATE CERTIFICATE [<ManagedInstanceFQDN>]
FROM BINARY = <PublicKey> 

Import klíčů kořenové autority důvěryhodných kořenových certifikátů Azure do SQL Serveru

Import veřejných kořenových klíčů certifikátů certifikačních autorit Microsoftu a DigiCert do SQL Serveru vyžaduje, aby sql Server důvěřoval certifikátům vydaným Azure pro database.windows.net domény.

Upozornění

Ujistěte se, že veřejný klíč začíná řetězcem 0x. Možná ho budete muset přidat ručně na začátek PublicKey, pokud tam ještě není.

Nejprve naimportujte certifikát kořenové autority PKI microsoftu na SQL Serveru:

-- Run on SQL Server
-- Import Microsoft PKI root-authority certificate (trusted by Azure), if not already present
IF NOT EXISTS (SELECT name FROM sys.certificates WHERE name = N'MicrosoftPKI')
BEGIN
    PRINT 'Creating MicrosoftPKI certificate.'
    CREATE CERTIFICATE [MicrosoftPKI] FROM BINARY = 0x308205A830820390A00302010202101ED397095FD8B4B347701EAABE7F45B3300D06092A864886F70D01010C05003065310B3009060355040613025553311E301C060355040A13154D6963726F736F667420436F72706F726174696F6E313630340603550403132D4D6963726F736F66742052534120526F6F7420436572746966696361746520417574686F726974792032303137301E170D3139313231383232353132325A170D3432303731383233303032335A3065310B3009060355040613025553311E301C060355040A13154D6963726F736F667420436F72706F726174696F6E313630340603550403132D4D6963726F736F66742052534120526F6F7420436572746966696361746520417574686F72697479203230313730820222300D06092A864886F70D01010105000382020F003082020A0282020100CA5BBE94338C299591160A95BD4762C189F39936DF4690C9A5ED786A6F479168F8276750331DA1A6FBE0E543A3840257015D9C4840825310BCBFC73B6890B6822DE5F465D0CC6D19CC95F97BAC4A94AD0EDE4B431D8707921390808364353904FCE5E96CB3B61F50943865505C1746B9B685B51CB517E8D6459DD8B226B0CAC4704AAE60A4DDB3D9ECFC3BD55772BC3FC8C9B2DE4B6BF8236C03C005BD95C7CD733B668064E31AAC2EF94705F206B69B73F578335BC7A1FB272AA1B49A918C91D33A823E7640B4CD52615170283FC5C55AF2C98C49BB145B4DC8FF674D4C1296ADF5FE78A89787D7FD5E2080DCA14B22FBD489ADBACE479747557B8F45C8672884951C6830EFEF49E0357B64E798B094DA4D853B3E55C428AF57F39E13DB46279F1EA25E4483A4A5CAD513B34B3FC4E3C2E68661A45230B97A204F6F0F3853CB330C132B8FD69ABD2AC82DB11C7D4B51CA47D14827725D87EBD545E648659DAF5290BA5BA2186557129F68B9D4156B94C4692298F433E0EDF9518E4150C9344F7690ACFC38C1D8E17BB9E3E394E14669CB0E0A506B13BAAC0F375AB712B590811E56AE572286D9C9D2D1D751E3AB3BC655FD1E0ED3740AD1DAAAEA69B897288F48C407F852433AF4CA55352CB0A66AC09CF9F281E1126AC045D967B3CEFF23A2890A54D414B92AA8D7ECF9ABCD255832798F905B9839C40806C1AC7F0E3D00A50203010001A3543052300E0603551D0F0101FF040403020186300F0603551D130101FF040530030101FF301D0603551D0E0416041409CB597F86B2708F1AC339E3C0D9E9BFBB4DB223301006092B06010401823715010403020100300D06092A864886F70D01010C05000382020100ACAF3E5DC21196898EA3E792D69715B813A2A6422E02CD16055927CA20E8BAB8E81AEC4DA89756AE6543B18F009B52CD55CD53396D624C8B0D5B7C2E44BF83108FF3538280C34F3AC76E113FE6E3169184FB6D847F3474AD89A7CEB9D7D79F846492BE95A1AD095333DDEE0AEA4A518E6F55ABBAB59446AE8C7FD8A2502565608046DB3304AE6CB598745425DC93E4F8E355153DB86DC30AA412C169856EDF64F15399E14A75209D950FE4D6DC03F15918E84789B2575A94B6A9D8172B1749E576CBC156993A37B1FF692C919193E1DF4CA337764DA19FF86D1E1DD3FAECFBF4451D136DCFF759E52227722B86F357BB30ED244DDC7D56BBA3B3F8347989C1E0F20261F7A6FC0FBB1C170BAE41D97CBD27A3FD2E3AD19394B1731D248BAF5B2089ADB7676679F53AC6A69633FE5392C846B11191C6997F8FC9D66631204110872D0CD6C1AF3498CA6483FB1357D1C1F03C7A8CA5C1FD9521A071C193677112EA8F880A691964992356FBAC2A2E70BE66C40C84EFE58BF39301F86A9093674BB268A3B5628FE93F8C7A3B5E0FE78CB8C67CEF37FD74E2C84F3372E194396DBD12AFBE0C4E707C1B6F8DB332937344166DE8F4F7E095808F965D38A4F4ABDE0A308793D84D00716245274B3A42845B7F65B76734522D9C166BAAA8D87BA3424C71C70CCA3E83E4A6EFB701305E51A379F57069A641440F86B02C91C63DEAAE0F84

    --Trust certificates issued by Microsoft PKI root authority for Azure database.windows.net domains
    DECLARE @CERTID int
    SELECT @CERTID = CERT_ID('MicrosoftPKI')
    EXEC sp_certificate_add_issuer @CERTID, N'*.database.windows.net'
END
ELSE
    PRINT 'Certificate MicrosoftPKI already exists.'
GO

Pak importujte certifikát kořenové autority PKI DigiCert na SQL Serveru:

-- Run on SQL Server
-- Import DigiCert PKI root-authority certificate trusted by Azure to SQL Server, if not already present
IF NOT EXISTS (SELECT name FROM sys.certificates WHERE name = N'DigiCertPKI')
BEGIN
    PRINT 'Creating DigiCertPKI certificate.'
    CREATE CERTIFICATE [DigiCertPKI] FROM BINARY = 0x3082038E30820276A0030201020210033AF1E6A711A9A0BB2864B11D09FAE5300D06092A864886F70D01010B05003061310B300906035504061302555331153013060355040A130C446967694365727420496E6331193017060355040B13107777772E64696769636572742E636F6D3120301E06035504031317446967694365727420476C6F62616C20526F6F74204732301E170D3133303830313132303030305A170D3338303131353132303030305A3061310B300906035504061302555331153013060355040A130C446967694365727420496E6331193017060355040B13107777772E64696769636572742E636F6D3120301E06035504031317446967694365727420476C6F62616C20526F6F7420473230820122300D06092A864886F70D01010105000382010F003082010A0282010100BB37CD34DC7B6BC9B26890AD4A75FF46BA210A088DF51954C9FB88DBF3AEF23A89913C7AE6AB061A6BCFAC2DE85E092444BA629A7ED6A3A87EE054752005AC50B79C631A6C30DCDA1F19B1D71EDEFDD7E0CB948337AEEC1F434EDD7B2CD2BD2EA52FE4A9B8AD3AD499A4B625E99B6B00609260FF4F214918F76790AB61069C8FF2BAE9B4E992326BB5F357E85D1BCD8C1DAB95049549F3352D96E3496DDD77E3FB494BB4AC5507A98F95B3B423BB4C6D45F0F6A9B29530B4FD4C558C274A57147C829DCD7392D3164A060C8C50D18F1E09BE17A1E621CAFD83E510BC83A50AC46728F67314143D4676C387148921344DAF0F450CA649A1BABB9CC5B1338329850203010001A3423040300F0603551D130101FF040530030101FF300E0603551D0F0101FF040403020186301D0603551D0E041604144E2254201895E6E36EE60FFAFAB912ED06178F39300D06092A864886F70D01010B05000382010100606728946F0E4863EB31DDEA6718D5897D3CC58B4A7FE9BEDB2B17DFB05F73772A3213398167428423F2456735EC88BFF88FB0610C34A4AE204C84C6DBF835E176D9DFA642BBC74408867F3674245ADA6C0D145935BDF249DDB61FC9B30D472A3D992FBB5CBBB5D420E1995F534615DB689BF0F330D53E31E28D849EE38ADADA963E3513A55FF0F970507047411157194EC08FAE06C49513172F1B259F75F2B18E99A16F13B14171FE882AC84F102055D7F31445E5E044F4EA879532930EFE5346FA2C9DFF8B22B94BD90945A4DEA4B89A58DD1B7D529F8E59438881A49E26D56FADDD0DC6377DED03921BE5775F76EE3C8DC45D565BA2D9666EB33537E532B6

    --Trust certificates issued by DigiCert PKI root authority for Azure database.windows.net domains
    DECLARE @CERTID int
    SELECT @CERTID = CERT_ID('DigiCertPKI')
    EXEC sp_certificate_add_issuer @CERTID, N'*.database.windows.net'
END
ELSE
    PRINT 'Certificate DigiCertPKI already exists.'
GO

Nakonec pomocí následujícího zobrazení dynamické správy ověřte všechny vytvořené certifikáty:

-- Run on SQL Server
SELECT * FROM sys.certificates

Ověření certifikátu

Po vytvoření certifikátů ověřte, že je certifikát koncového bodu MI správně nakonfigurovaný.

Nejprve určete certificate_id exportovaný certifikát MI nahrazením hodnoty <ManagedInstanceFQDN> a následným spuštěním následujícího dotazu na SQL Server:

-- Run on SQL Server 
USE MASTER 
GO 

SELECT name, subject, certificate_id, start_date, expiry_date 
FROM sys.certificates 
WHERE issuer_name LIKE '%Microsoft Corporation%' AND name = '<ManagedInstanceFQDN>' 
GO 

Potom ověřte certifikát nahrazením hodnoty <certificate_id> z výsledku předchozího dotazu a spuštěním následujícího dotazu na SQL Serveru:

-- Run on SQL Server 

USE MASTER 
GO 

EXEC sp_validate_certificate_ca_chain <certificate_id> 
GO 

Odpověď značí, že se certifikát koncového Commands completed successfully. Completion time: … bodu MI úspěšně ověřil.

Pokud dojde k chybě, odstraňte certifikát a postupujte podle pokynů v části Získání veřejného klíče certifikátu ze spravované instance SQL a jeho importem do části SQL Server certifikát znovu naimportujte.

Pokud chcete certifikát odstranit, spusťte na SQL Serveru následující dotaz:

-- Run on SQL Server 

USE MASTER 
GO 

DROP CERTIFICATE [<ManagedInstanceFQDN>] 
GO 

Zabezpečení koncového bodu zrcadlení databáze

Pokud nemáte existující skupinu dostupnosti nebo koncový bod zrcadlení databáze na SQL Serveru, dalším krokem je vytvoření koncového bodu zrcadlení databáze na SQL Serveru a jeho zabezpečení pomocí dříve vygenerovaného certifikátu SQL Serveru. Pokud máte existující skupinu dostupnosti nebo koncový bod zrcadlení, přejděte do části Alter an existing endpoint (Změnit existující koncový bod ).

Vytvoření a zabezpečení koncového bodu zrcadlení databáze na SQL Serveru

Pokud chcete ověřit, že nemáte vytvořený existující koncový bod zrcadlení databáze, použijte následující skript:

-- Run on SQL Server
-- View database mirroring endpoints on SQL Server
SELECT * FROM sys.database_mirroring_endpoints WHERE type_desc = 'DATABASE_MIRRORING'

Pokud předchozí dotaz nezobrazuje existující koncový bod zrcadlení databáze, spuštěním následujícího skriptu na SQL Serveru získejte název dříve vygenerovaného certifikátu SQL Serveru.

-- Run on SQL Server
-- Show the name and the public key of generated SQL Server certificate
USE MASTER
GO
DECLARE @sqlserver_certificate_name NVARCHAR(MAX) = N'Cert_' + @@servername  + N'_endpoint'
SELECT @sqlserver_certificate_name as 'SQLServerCertName'

Uložte SQLServerCertName z výstupu, protože ho budete potřebovat v dalším kroku.

Pomocí následujícího skriptu vytvořte nový koncový bod zrcadlení databáze na portu 5022 a zabezpečte koncový bod pomocí certifikátu SQL Serveru. Nahrazení:

  • <SQL_SERVER_CERTIFICATE> s názvem SQLServerCertName získaným v předchozím kroku.
-- Run on SQL Server
-- Create a connection endpoint listener on SQL Server
USE MASTER
CREATE ENDPOINT database_mirroring_endpoint
    STATE=STARTED   
    AS TCP (LISTENER_PORT=5022, LISTENER_IP = ALL)
    FOR DATABASE_MIRRORING (
        ROLE=ALL,
        AUTHENTICATION = CERTIFICATE [<SQL_SERVER_CERTIFICATE>],
        ENCRYPTION = REQUIRED ALGORITHM AES
    )  
GO

Spuštěním následujícího skriptu na SQL Serveru ověřte, že byl vytvořen koncový bod zrcadlení:

-- Run on SQL Server
-- View database mirroring endpoints on SQL Server
SELECT
    name, type_desc, state_desc, role_desc,
    connection_auth_desc, is_encryption_enabled, encryption_algorithm_desc
FROM 
    sys.database_mirroring_endpoints

Úspěšně vytvořený koncový bod state_desc sloupec by měl obsahovat stav STARTED.

Byl vytvořen nový koncový bod zrcadlení s povoleným ověřováním certifikátů a šifrováním AES.

Změna existujícího koncového bodu

Poznámka:

Pokud jste právě vytvořili nový koncový bod zrcadlení, tento krok přeskočte. Tento krok použijte pouze v případě, že používáte existující skupiny dostupnosti s existujícím koncovým bodem zrcadlení databáze.

Pokud pro propojení používáte existující skupiny dostupnosti nebo pokud existuje existující koncový bod zrcadlení databáze, nejprve ověřte, že splňuje následující povinné podmínky pro propojení:

  • Typ musí být DATABASE_MIRRORING.
  • Ověření připojení musí být CERTIFICATE.
  • Musí být povolené šifrování.
  • Šifrovací algoritmus musí být AES.

Spuštěním následujícího dotazu na SQL Serveru zobrazte podrobnosti o existujícím koncovém bodu zrcadlení databáze:

-- Run on SQL Server
-- View database mirroring endpoints on SQL Server
SELECT
    name, type_desc, state_desc, role_desc, connection_auth_desc,
    is_encryption_enabled, encryption_algorithm_desc
FROM
    sys.database_mirroring_endpoints

Pokud výstup ukazuje, že existující DATABASE_MIRRORING koncový bod není CERTIFICATEnebo encryption_algorthm_desc není AES, je potřeba koncový bod connection_auth_desc změnit tak, aby splňoval požadavky.

Na SQL Serveru se stejný koncový bod zrcadlení databáze používá pro skupiny dostupnosti i distribuované skupiny dostupnosti. Pokud je váš connection_auth_desc koncový bod (ověřování systému Windows) nebo KERBEROSa potřebujete ověřování Systému Windows pro existující skupinu dostupnosti, je možné koncový bod změnit tak, aby používal více metod ověřování přepnutím možnosti ověřování na NEGOTIATE CERTIFICATE.NTLM Tato změna umožňuje stávající skupině dostupnosti používat ověřování systému Windows při ověřování certifikátů pro spravovanou instanci SQL.

Podobně platí, že pokud šifrování nezahrnuje AES a potřebujete šifrování RC4, je možné koncový bod změnit tak, aby používal oba algoritmy. Podrobnosti o možných možnostech pro změnu koncových bodů najdete na stránce dokumentace pro sys.database_mirroring_endpoints.

Následující skript představuje příklad změny existujícího koncového bodu zrcadlení databáze na SQL Serveru. Nahrazení:

  • <YourExistingEndpointName> se stávajícím názvem koncového bodu.
  • <SQLServerCertName> s názvem vygenerovaného certifikátu SQL Serveru (získaného v jednom z předchozích kroků výše).

V závislosti na konkrétní konfiguraci možná budete muset skript dále přizpůsobit. Můžete také použít SELECT * FROM sys.certificates k získání názvu vytvořeného certifikátu na SQL Serveru.

-- Run on SQL Server
-- Alter the existing database mirroring endpoint to use CERTIFICATE for authentication and AES for encryption
USE MASTER
ALTER ENDPOINT [<YourExistingEndpointName>]   
    STATE=STARTED   
    AS TCP (LISTENER_PORT=5022, LISTENER_IP = ALL)
    FOR DATABASE_MIRRORING (
        ROLE=ALL,
        AUTHENTICATION = WINDOWS NEGOTIATE CERTIFICATE [<SQLServerCertName>],
        ENCRYPTION = REQUIRED ALGORITHM AES
    )
GO

Po spuštění dotazu koncového ALTER bodu a nastavení režimu duálního ověřování na Windows a certifikát použijte tento dotaz znovu na SQL Serveru a zobrazte podrobnosti o koncovém bodu zrcadlení databáze:

-- Run on SQL Server
-- View database mirroring endpoints on SQL Server
SELECT
    name, type_desc, state_desc, role_desc, connection_auth_desc,
    is_encryption_enabled, encryption_algorithm_desc
FROM
    sys.database_mirroring_endpoints

Úspěšně jste upravili koncový bod zrcadlení databáze pro propojení služby SQL Managed Instance.

Vytvoření skupiny dostupnosti na SQL Serveru

Pokud nemáte existující skupinu dostupnosti, dalším krokem je vytvoření na SQL Serveru bez ohledu na to, která bude počáteční primární.

Poznámka:

Tuto část přeskočte, pokud už máte existující skupinu dostupnosti.

Příkazy pro vytvoření skupiny dostupnosti se liší, pokud je vaše spravovaná instance SQL primární, která se podporuje jenom od SQL Serveru 2022 CU10.

I když je možné vytvořit více propojení pro stejnou databázi, propojení podporuje pouze replikaci jedné databáze na propojení. Pokud chcete vytvořit více propojení pro stejnou databázi, použijte stejnou skupinu dostupnosti pro všechna propojení, ale pak vytvořte novou distribuovanou skupinu dostupnosti pro každé propojení databáze mezi SQL Serverem a spravovanou instancí SQL.

Pokud je SQL Server vaším počátečním primárním serverem, vytvořte skupinu dostupnosti s následujícími parametry odkazu:

  • Počáteční název primárního serveru
  • Název databáze
  • Režim převzetí služeb při selhání MANUAL
  • Počáteční režim AUTOMATIC

Nejprve zjistěte název SQL Serveru spuštěním následujícího příkazu T-SQL:

-- Run on the initial primary
SELECT @@SERVERNAME AS SQLServerName 

Pak pomocí následujícího skriptu vytvořte skupinu dostupnosti na SQL Serveru. Nahrazení:

  • <AGNameOnSQLServer> s názvem vaší skupiny dostupnosti na SQL Serveru. Odkaz na spravovanou instanci vyžaduje jednu databázi na skupinu dostupnosti. U více databází budete muset vytvořit více skupin dostupnosti. Zvažte pojmenování každé skupiny dostupnosti tak, aby její název odrážel odpovídající databázi , například AG_<db_name>.
  • <DatabaseName> s názvem databáze, kterou chcete replikovat.
  • <SQLServerName> s názvem vaší instance SQL Serveru získanou v předchozím kroku.
  • <SQLServerIP> s IP adresou SQL Serveru. Jako alternativu můžete použít přeložitelný název hostitelského počítače s SQL Serverem, ale musíte se ujistit, že se tento název dá přeložit z virtuální sítě služby SQL Managed Instance.
-- Run on SQL Server
-- Create the primary availability group on SQL Server
USE MASTER
CREATE AVAILABILITY GROUP [<AGNameOnSQLServer>]
WITH (CLUSTER_TYPE = NONE) -- <- Delete this line for SQL Server 2016 only. Leave as-is for all higher versions.
    FOR database [<DatabaseName>]  
    REPLICA ON   
        N'<SQLServerName>' WITH   
            (  
            ENDPOINT_URL = 'TCP://<SQLServerIP>:5022',
            AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
            FAILOVER_MODE = MANUAL,
            SEEDING_MODE = AUTOMATIC
            );
GO

Důležité

Pro SQL Server 2016 odstraňte WITH (CLUSTER_TYPE = NONE) z výše uvedeného příkazu T-SQL. Ponechte na všech novějších verzích SQL Serveru tak, jak je.

Dále vytvořte distribuovanou skupinu dostupnosti na SQL Serveru. Pokud plánujete vytvořit více odkazů, musíte pro každý odkaz vytvořit distribuovanou skupinu dostupnosti, a to i v případě, že vytváříte více propojení pro stejnou databázi.

Nahraďte následující hodnoty a spuštěním skriptu T-SQL vytvořte distribuovanou skupinu dostupnosti.

  • <DAGName> s názvem vaší distribuované skupiny dostupnosti. Vzhledem k tomu, že pro stejnou databázi můžete nakonfigurovat více propojení vytvořením distribuované skupiny dostupnosti pro každé propojení, zvažte odpovídající pojmenování každé distribuované skupiny dostupnosti , například DAG1_<db_name>. DAG2_<db_name>
  • <AGNameOnSQLServer> s názvem skupiny dostupnosti, kterou jste vytvořili v předchozím kroku.
  • <AGNameOnSQLMI> s názvem vaší skupiny dostupnosti ve službě SQL Managed Instance. Název musí být v SQL MI jedinečný. Zvažte pojmenování každé skupiny dostupnosti tak, aby její název odrážel odpovídající databázi , například AG_<db_name>_MI.
  • <SQLServerIP> s IP adresou SQL Serveru z předchozího kroku. Jako alternativu můžete použít přeložitelný název hostitelského počítače s SQL Serverem, ale ujistěte se, že je tento název přeložitelný z virtuální sítě služby SQL Managed Instance (která vyžaduje konfiguraci vlastního DNS Azure pro podsíť spravované instance).
  • <ManagedInstanceName> s krátkým názvem vaší spravované instance.
  • <ManagedInstanceFQDN> plně kvalifikovaným názvem domény vaší spravované instance.
-- Run on SQL Server
-- Create a distributed availability group for the availability group and database
-- ManagedInstanceName example: 'sqlmi1'
-- ManagedInstanceFQDN example: 'sqlmi1.73d19f36a420a.database.windows.net'
USE MASTER
CREATE AVAILABILITY GROUP [<DAGName>]
WITH (DISTRIBUTED) 
    AVAILABILITY GROUP ON  
    N'<AGNameOnSQLServer>' WITH 
    (
      LISTENER_URL = 'TCP://<SQLServerIP>:5022',
      AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
      FAILOVER_MODE = MANUAL,
      SEEDING_MODE = AUTOMATIC,
      SESSION_TIMEOUT = 20
    ),
    N'<AGNameOnSQLMI>' WITH
    (
      LISTENER_URL = 'tcp://<ManagedInstanceFQDN>:5022;Server=[<ManagedInstanceName>]',
      AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
      FAILOVER_MODE = MANUAL,
      SEEDING_MODE = AUTOMATIC
    );
GO

Ověření skupin dostupnosti

Pomocí následujícího skriptu zobrazíte seznam všech skupin dostupnosti a distribuovaných skupin dostupnosti v instanci SQL Serveru. V tuto chvíli musí být connectedstav vaší skupiny dostupnosti a stav distribuovaných skupin dostupnosti musí být disconnected. Stav distribuované skupiny dostupnosti se přesune connected jenom po připojení ke službě SQL Managed Instance.

-- Run on SQL Server
-- This will show that the availability group and distributed availability group have been created on SQL Server.
SELECT * FROM sys.availability_groups

Alternativně můžete použít SSMS Průzkumník objektů k vyhledání skupin dostupnosti a distribuovaných skupin dostupnosti. Rozbalte složku AlwaysOn s vysokou dostupností a potom složku Skupiny dostupnosti.

Nakonec můžete vytvořit odkaz. Příkazy se liší podle toho, která instance je počáteční primární instancí. Pomocí příkazu New-AzSqlInstanceLink PowerShell nebo az sql mi link create Azure CLI vytvořte odkaz, jako je příklad PowerShellu v této části. Vytvoření odkazu z primární instance SQL Managed Instance se v současné době nepodporuje v Azure CLI.

Pokud potřebujete zobrazit všechny odkazy na spravované instanci, použijte rutinu Get-AzSqlInstanceLink PowerShell nebo az sql mi link show Azure CLI v Azure Cloud Shellu.

Pokud chcete tento proces zjednodušit, přihlaste se k webu Azure Portal a spusťte následující skript z Azure Cloud Shellu. Nahrazení:

  • <ManagedInstanceName> s krátkým názvem vaší spravované instance.
  • <AGNameOnSQLServer> s názvem skupiny dostupnosti vytvořené na SQL Serveru.
  • <AGNameOnSQLMI> s názvem skupiny dostupnosti vytvořené ve službě SQL Managed Instance.
  • <DAGName> s názvem distribuované skupiny dostupnosti vytvořené na SQL Serveru.
  • <DatabaseName> s databází replikovanou ve skupině dostupnosti na SQL Serveru.
  • <SQLServerIP> s IP adresou vašeho SQL Serveru. Zadanou IP adresu musí být přístupná spravovanou instancí.

Poznámka:

Pokud chcete vytvořit odkaz na skupinu dostupnosti, která již existuje, zadejte IP adresu naslouchacího procesu při zadávání parametru <SQLServerIP> .

#  Run in Azure Cloud Shell (select PowerShell console)
# =============================================================================
# POWERSHELL SCRIPT TO CREATE MANAGED INSTANCE LINK
# Instructs Managed Instance to join distributed availability group on SQL Server
# ===== Enter user variables here ====

# Enter your managed instance name – for example, "sqlmi1"
$ManagedInstanceName = "<ManagedInstanceName>"

# Enter the availability group name that was created on SQL Server
$AGNameOnSQLServer = "<AGNameOnSQLServer>"

# Enter the availability group name that was created on SQL Managed Instance
$AGNameOnSQLMI = "<AGNameOnSQLMI>"

# Enter the distributed availability group name that was created on SQL Server
$DAGName = "<DAGName>"

# Enter the database name that was placed in the availability group for replication
$DatabaseName = "<DatabaseName>"

# Enter the SQL Server IP
$SQLServerIP = "<SQLServerIP>"

# ==== Do not customize the following cmdlet ====

# Find out the resource group name
$ResourceGroup = (Get-AzSqlInstance -InstanceName $ManagedInstanceName).ResourceGroupName

# Build properly formatted connection endpoint
$SourceIP = "TCP://" + $SQLServerIP + ":5022"

# Create link on managed instance. Join distributed availability group on SQL Server.
New-AzSqlInstanceLink -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -Name $DAGName |
-PrimaryAvailabilityGroupName $AGNameOnSQLServer -SecondaryAvailabilityGroupName $AGNameOnSQLMI |
-TargetDatabase $DatabaseName -SourceEndpoint $SourceIP

Výsledkem této operace je časové razítko úspěšného spuštění žádosti o vytvoření odkazu .

Pokud chcete ověřit připojení mezi spravovanou instancí SQL a SQL Serverem, spusťte na SQL Serveru následující dotaz. Připojení nebude okamžité. Zobrazení úspěšného připojení může trvat až minutu. Obnovte zobrazení dynamické správy, dokud se připojení nezobrazí jako PŘIPOJENÉ pro repliku spravované instance SQL.

-- Run on SQL Server
SELECT
    r.replica_server_name AS [Replica],
    r.endpoint_url AS [Endpoint],
    rs.connected_state_desc AS [Connected state],
    rs.last_connect_error_description AS [Last connection error],
    rs.last_connect_error_number AS [Last connection error No],
    rs.last_connect_error_timestamp AS [Last error timestamp]
FROM
    sys.dm_hadr_availability_replica_states rs
    JOIN sys.availability_replicas r
    ON rs.replica_id = r.replica_id

Po navázání připojení může Průzkumník objektů v nástroji SSMS zpočátku zobrazit replikovanou databázi na sekundární replice ve stavu Obnovení, protože počáteční počáteční fáze počátečního nasazení databáze obnoví úplnou zálohu databáze. Po obnovení databáze musí replikace dohnat dvě databáze do synchronizovaného stavu. Po dokončení počátečního počátečního počátečního seedingu databáze už nebude v obnovení . Počáteční počáteční stav obnovení malých databází může být dostatečně rychlý, abyste v nástroji SSMS neviděli počáteční stav obnovení .

Důležité

  • Propojení nebude fungovat, pokud mezi SQL Serverem a spravovanou instancí SQL neexistuje síťové připojení. Při řešení potíží s připojením k síti postupujte podle kroků v části Testování připojení k síti.
  • Proveďte pravidelné zálohy souboru protokolu na SQL Serveru. Pokud využité místo protokolu dosáhne 100 procent, replikace do služby SQL Managed Instance se zastaví, dokud se nezmenší využití místa. Důrazně doporučujeme automatizovat zálohování protokolů nastavením každodenní úlohy. Podrobnosti najdete v tématu Zálohování souborů protokolu na SQL Serveru.

Vytvoření zálohy prvního transakčního protokolu

Pokud je SQL Server vaším počátečním primárním serverem, je důležité po dokončení počátečního počátečního zazálohování provést první zálohu transakčního protokolu na SQL Serveru, pokud už databáze není ve stavu Obnovení... ve službě Azure SQL Managed Instance. Pak pravidelně zálohujte transakční protokoly SQL Serveru, aby se minimalizoval nadměrný růst protokolů, zatímco SQL Server je v primární roli.

Pokud je sql Managed Instance vaším primárním serverem, nemusíte provádět žádnou akci, protože Azure SQL Managed Instance automaticky provádí zálohování protokolů.

Pokud chcete odkaz vypustit, protože už není potřeba, nebo protože je v neopravitelném stavu a je potřeba ho znovu vytvořit, můžete to udělat pomocí PowerShellu a T-SQL.

Nejprve pomocí příkazu Remove-AzSqlInstanceLink PowerShell vložte odkaz, například v následujícím příkladu:

Remove-AzSqlInstanceLink -ResourceGroupName $ResourceGroup -InstanceName $managedInstanceName -Name $DAGName -Force 

Potom na SQL Serveru spusťte následující skript T-SQL, který zahodí distribuovanou skupinu dostupnosti. Nahraďte <DAGName> názvem distribuované skupiny dostupnosti použitou k vytvoření odkazu:

USE MASTER 
GO 

DROP AVAILABILITY GROUP <DAGName>  
GO 

Volitelně můžete skupinu dostupnosti odebrat, pokud už ji nepoužíváte. Uděláte to tak, že nahradíte <AGName> názvem skupiny dostupnosti a pak ji spustíte v příslušné instanci:

DROP AVAILABILITY GROUP <AGName>  
GO 

Odstraňování potíží

Pokud při vytváření odkazu narazíte na chybovou zprávu, přečtěte si chybovou zprávu v okně výstupu dotazu, kde najdete další informace.

Použití odkazu:

Další informace o odkazu:

V případě jiných scénářů replikace a migrace zvažte následující: