Azure SQL -tietokantaan siirtyminen online-menetelmän avulla
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.
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.
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.
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:
Log Reader -agentti:
synkronoinnin tila:
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.