Azure SQL -tietokantaan siirtyminen online-menetelmän avulla

Valmis

Jos tarvitset tietokannan, jotta voit pysyä online-tilassa käyttäjille koko siirtoprosessin ajan, voit siirtää tiedot tapahtumareplioinnin avulla. Tapahtumarepliointi on ainoa online-menetelmä, joka on käytettävissä Siirryttäessä Azure SQL -tietokantaan.

Polkupyörien valmistajaskenaariossa varastot suoritetaan 24 tunnin, 7 päivän viikossa ja toimettomuusjaksoja ei ole. Hallitus haluaa varmistaa, että varastotietokanta on jatkuvasti käytettävissä myös Azure SQL -tietokantaan siirtymisen aikana.

kaavio, joka näyttää SQL Serveriin ja Azure SQL -tietokantaan liittyvän replikoinnin topologian.

Mitä on tapahtumarepliointi?

tapahtumamuotoinen replikointi on tapa siirtää tietoja jatkuvasti yhdistettyjen tietokantapalvelimien välillä.

Prosessi alkaa julkaisun tietokantaobjektien ja tietojen tilannevedoksesta. Kun ensimmäinen tilannevedos on otettu, kaikki myöhemmät muutokset publisherin tietoihin tai rakenteeseen toimitetaan yleensä Azure SQL -tietokantaan lähes reaaliaikaisesti.

kaavio, joka näyttää tapahtumareplioinnin tärkeimmät osat.

Azure SQL -tietokanta tukee sekä tapahtumamuotoista että tilannevedoksen replikointia push-tilaajana. Tämä tarkoittaa sitä, että Azuren SQL-tietokanta voi vastaanottaa ja ottaa muutoksia käyttöön julkaisijalta joko tapahtuma- tai tilannevedosreplioinnin avulla.

Julkaisija ja/tai jakelija voivat olla SQL Serverin esiintymä, joka on käynnissä paikallisesti, Azure-näennäiskoneessa pilvipalvelussa tai Azure SQL:n hallittuna esiintymänä.

Voit määrittää tapahtumareplioinnin SQL Server Management Studion kautta tai suorittamalla Transact-SQL lausekkeita julkaisijassa. Tapahtumarepliointia ei voi määrittää Azure-portaalista.

Tapahtumarepliointi edellyttää seuraavia osia:

Rooli Määritelmä
Julkaisija Tietokantaesiintymä, joka isännöi replikoituja tietoja (lähde).
Subscriber - Vastaanottaa Publisher (kohde) replikoimat tiedot.
jakelija Kerää artikkeleihin tehdyt muutokset Publisher - ja jakaa ne Subscribers.
artikkelin tietokantaobjekti; Esimerkiksi taulukko, joka sisältyy Publicationin.
Publicationin Yhden tai useamman artikkeleiden kokoelma tietokannasta replikoidaan.
Ylläpitosopimus Subscriber - pyyntö Publication.

Tapahtumareplioinnin määrittäminen

Siirrä [Person].[Person]AdventureWorks -tietokannasta Azure SQL -tietokantaan ilman käyttökatkoja seuraavien ohjeiden mukaisesti. Tapahtumarepliointi voi käyttää vain SQL Server -todennuksen kirjautumistunnuksia yhteyden muodostamiseksi Azure SQL -tietokantaan.

Parametri Määritelmä
@distributor Lähdeesiintymän nimi.
@publisher Lähdeesiintymän nimi.
@subscriber Azuren SQL-tietokanta muodossa: <server>.database.windows.net. Azure SQL -tietokannan on oltava olemassa ennen komentosarjan suorittamista.
@dbname Tietokannan nimi lähteessä.
@publisher_login SQL-käyttäjä, jolla on tarvittavat oikeudet lähteeseen.
@publisher_password SQL-käyttäjän salasana.
@destination_db Tietokannan nimi kohdesijainnissa.
@subscriber_login SQL-käyttäjä, jolla on tarvittavat käyttöoikeudet kohdesijainnissa.
@subscriber_password SQL-käyttäjän salasana.
@working_directory Muuta tätä sijaintia tarpeen mukaan replikoinnin työhakemiston avulla.

Säädä yllä olevia parametreja oman ympäristösi mukaan komentosarjaa suoritettaessa.

Luo jakelija

Seuraava komentosarja luo jakelijatietokannan, jakelijajulkaisijat ja agentit.

USE [master]
GO

EXEC sp_adddistributor @distributor = N'CONTOSO-SRV', @password = N''
GO

EXEC sp_adddistributiondb 
		@database = N'distribution', 
		@data_folder = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Data', 
		@data_file = N'distribution.MDF', 
		@data_file_size = 13, 
		@log_folder = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Data', 
		@log_file = N'distribution.LDF', 
		@log_file_size = 9, 
		@min_distretention = 0, 
		@max_distretention = 72, 
		@history_retention = 48, 
		@deletebatchsize_xact = 5000, 
		@deletebatchsize_cmd = 2000, 
		@security_mode = 1
GO

-- Adding the distribution publishers
exec sp_adddistpublisher 
	@publisher = N'CONTOSO-SRV', 
	@distribution_db = N'distribution',
	@security_mode = 1, 
	@working_directory = N'C:\REPL', 
	@trusted = N'false', 
	@thirdparty_flag = 0, 
	@publisher_type = N'MSSQLSERVER'
GO

exec sp_addsubscriber 
	@subscriber = N'contoso.database.windows.net', 
	@type = 0, 
	@description = N'Azure SQL Database (target)'
GO

-- Enabling the replication database
use master
exec sp_replicationdboption 
	@dbname = N'AdventureWorks', 
	@optname = N'publish', 
	@value = N'true'
GO

--Adds a Log Reader agent for the AdventureWorks database. 
exec [AdventureWorks].sys.sp_addlogreader_agent 
	@publisher_security_mode = 1
GO

--Adds a Queue Reader agent for the distributor.
exec [AdventureWorks].sys.sp_addqreader_agent 
	@frompublisher = 1
GO

Tapahtumajulkaisun luominen

Seuraava komentosarja luo AdventureWorks tietokannan tapahtumajulkaisun julkaisijalta.

USE [AdventureWorks]
GO

EXEC sp_addpublication 
	@publication = N'REPL-AdventureWorks', 
	@description = N'Transactional publication of database ''AdventureWorks'' from Publisher ''CONTOSO-SRV''.', 
	@sync_method = N'concurrent', 
	@retention = 0, 
	@allow_push = N'true', 
	@allow_pull = N'true', 
	@allow_anonymous = N'true', 
	@enabled_for_internet = N'false', 
	@snapshot_in_defaultfolder = N'false', 
	@alt_snapshot_folder = N'C:\REPL', 
	@compress_snapshot = N'true', 
	@ftp_port = 21,
	@ftp_login = N'anonymous', 
	@allow_subscription_copy = N'false', 
	@add_to_active_directory = N'false', 
	@repl_freq = N'continuous', 
	@status = N'active', 
	@independent_agent = N'true', 
	@immediate_sync = N'true', 
	@allow_sync_tran = N'false',
	@autogen_sync_procs = N'false', 
	@allow_queued_tran = N'false', 
	@allow_dts = N'false', 
	@replicate_ddl = 1, 
	@allow_initialize_from_backup = N'false', 
	@enabled_for_p2p = N'false',
	@enabled_for_het_sub = N'false'
GO

exec sp_addpublication_snapshot 
	@publication = N'REPL-AdventureWorks', 
	@frequency_type = 1, 
	@frequency_interval = 0, 
	@frequency_relative_interval = 0, 
	@frequency_recurrence_factor = 0, 
	@frequency_subday = 0, 
	@frequency_subday_interval = 0,
	@active_start_time_of_day = 0, 
	@active_end_time_of_day = 235959, 
	@active_start_date = 0,
	@active_end_date = 0, 
	@publisher_security_mode = 0,
	@publisher_login = N'sqladmin', 
	@publisher_password = N'<pwd>'

Luo artikkeli julkaisua varten

Seuraava komentosarja luo artikkelin [Person].[Person]-taulukkoa varten.

USE [AdventureWorks]
GO

EXEC sp_addarticle 
	@publication = N'REPL-AdventureWorks', 
	@article = N'Person', 
	@source_owner = N'Person', 
	@source_object = N'Person',
	@type = N'logbased', 
	@description = N'', 
	@creation_script = N'',
	@pre_creation_cmd = N'drop', 
	@schema_option = 0x000000000803509F, 
	@identityrangemanagementoption = N'none', 
	@destination_table = N'Person',
	@destination_owner = N'Person',
	@status = 24, 
	@vertical_partition = N'false', 
	@ins_cmd = N'CALL [sp_MSins_PersonPerson]', 
	@del_cmd = N'CALL [sp_MSdel_PersonPerson]', 
	@upd_cmd = N'SCALL [sp_MSupd_PersonPerson]'
GO

Luo tilaus ja tilausagentti

Seuraava komentosarja luo Push-tilauksen Azure SQL -tietokannan tilaajalle.

USE [AdventureWorks]
GO

EXEC sp_addsubscription 
	@publication = N'REPL-AdventureWorks', 
	@subscriber = N'contoso.database.windows.net', 
	@destination_db = N'my-db',
	@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'REPL-AdventureWorks', 
	@subscriber = N'contoso.database.windows.net', 
	@subscriber_db = N'my-db',
	@job_login = null, 
	@job_password = null, 
	@subscriber_security_mode = 0, 
	@subscriber_login = N'sqladmin',
	@subscriber_password = '<pwd>', 
	@frequency_type = 64, 
	@frequency_interval = 1, 
	@frequency_relative_interval = 1, 
	@frequency_recurrence_factor = 0,
	@frequency_subday = 4, 
	@frequency_subday_interval = 5,
	@active_start_time_of_day = 0, 
	@active_end_time_of_day = 235959, 
	@active_start_date = 0, 
	@active_end_date = 0, 
	@dts_package_location = N'Distributor'
GO

Aloita ja valvo replikointia

Replikoinnin hallintaa ja seurantaa ei tueta Azuren SQL-tietokannassa. Suorita nämä toimet sen sijaan SQL Serveristä. Aloita replikointi aloittamalla tilannevedostyö, lokilukuohjelma ja jakelijatyö.

Voit valvoa tilannevedosagentin ja Log Reader - napsauttamalla julkaisua hiiren kakkospainikkeella ja valitsemalla haluamasi vaihtoehdon. Jos agentit eivät juokse, käynnistä heidät.

näyttökuva, joka näyttää, miten tilannevedosagentti käynnistetään.

Jos haluat tarkastella synkronoinnin tilaa, napsauta tilausta hiiren kakkospainikkeella, valitse Näytä synkronoinnin tilaja käynnistä agentti. Jos kohtaat virhesanomia, tarkista AGENT-työhistoria SQL Server -agentista. Jos agentit toimivat odotetulla tavalla, sinun pitäisi nähdä seuraavat tulokset.

tilannevedosagentti:

Näyttökuva, joka näyttää tilannevedosagentin tilan tapahtumarepliaatiossa.

Log Reader -agentti:

Näyttökuva, joka näyttää lokin lukijan tilan tapahtumarepliaatiossa.

synkronoinnin tila:

kaavio, joka näyttää synkronoinnin tilan tapahtumarepliaatiossa.

Kun tiedot on replikoitu täysin Azure SQL -tietokantaan, voit ohjata yhteydet tilaajatietokantaan ja pysäyttää ja poistaa replikoinnin.

Lisätietoja tuetuista kokoonpanoista on artikkelissa Replikointi Azure SQL -tietokantaan.