Sử dụng phương pháp trực tuyến để di chuyển sang Cơ sở dữ liệu Azure SQL
Nếu bạn cần một cơ sở dữ liệu để duy trì trực tuyến cho người dùng trong suốt quá trình di chuyển, bạn có thể sử dụng sao nhân bản giao dịch để di chuyển dữ liệu. Sao nhân bản giao dịch là phương pháp trực tuyến duy nhất sẵn dùng để di chuyển sang Cơ sở dữ liệu Azure SQL.
Trong kịch bản nhà sản xuất xe đạp của chúng tôi, các nhà kho chạy trên cơ sở 24 giờ, 7 ngày một tuần và không có thời gian không hoạt động. Ban giám đốc của bạn muốn đảm bảo rằng cơ sở dữ liệu kiểm kê luôn sẵn dùng, ngay cả trong quá trình di chuyển sang Cơ sở dữ liệu Azure SQL.
Sao nhân bản giao dịch là gì?
nhân bản giao dịch là một cách để di chuyển dữ liệu giữa các máy chủ cơ sở dữ liệu liên tục được kết nối.
Quá trình này bắt đầu với ảnh tức thời của đối tượng cơ sở dữ liệu ấn phẩm và dữ liệu. Sau khi chụp ảnh ban đầu, mọi thay đổi về sau đối với dữ liệu hoặc sơ đồ tại Publisher thường được chuyển đến Cơ sở dữ liệu Azure SQL trong thời gian thực gần như khi chúng xảy ra.
Cơ sở dữ liệu Azure SQL hỗ trợ sao nhân bản giao dịch và sao nhân bản ảnh tức thời với tư cách người đăng ký đẩy. Điều đó có nghĩa là Cơ sở dữ liệu Azure SQL có thể nhận và áp dụng thay đổi từ một nhà phát hành bằng cách sử dụng sao nhân bản giao dịch hoặc sao chép ảnh tức thời.
Nhà xuất bản và/hoặc nhà phân phối có thể là phiên bản SQL Server đang chạy tại chỗ, trên máy ảo Azure trong đám mây hoặc dưới dạng Phiên bản được Quản lý của Azure SQL.
Bạn có thể đặt cấu hình sao nhân bản giao dịch thông qua SQL Server Management Studio hoặc bằng cách thực Transact-SQL câu lệnh trên nhà phát hành. Không thể đặt cấu hình sao chép giao dịch từ cổng thông tin Azure.
Sao nhân bản giao dịch yêu cầu các cấu phần sau:
| Vai trò | Định nghĩa |
|---|---|
| Nhà xuất bản | Phiên bản cơ sở dữ liệu lưu trữ dữ liệu cần sao chép (nguồn). |
| thuê bao | Nhận dữ liệu đang được sao chép bởi Publisher (đích). |
| phân phối | Thu thập thay đổi trong các bài viết từ một Publisher và phân phối chúng cho người người. |
| điều | Đối tượng cơ sở dữ liệu; ví dụ: một bảng được bao gồm trong Danh sách phẩm. |
| ấn phẩm | Tuyển tập một hoặc nhiều bài viết từ cơ sở dữ liệu đang được sao chép. |
| ký | Yêu cầu từ người đăng thuê bao xuất bản bản. |
Thiết lập bản sao giao dịch
Làm theo các bước dưới đây để di chuyển bảng [Person].[Person] từ cơ AdventureWorks cơ sở dữ liệu sang Cơ sở dữ liệu Azure SQL mà không cần thời gian chờ. Sao nhân bản giao dịch chỉ có thể sử dụng thông tin đăng nhập xác thực SQL Server để kết nối với Cơ sở dữ liệu Azure SQL.
| Tham số | Định nghĩa |
|---|---|
@distributor |
Tên phiên bản nguồn. |
@publisher |
Tên phiên bản nguồn. |
@subscriber |
Cơ sở dữ liệu Azure SQL ở định dạng: <server>.database.windows.net. Cơ sở dữ liệu Azure SQL phải tồn tại trước khi chạy tập lệnh. |
@dbname |
Tên cơ sở dữ liệu tại nguồn. |
@publisher_login |
Người dùng SQL có quyền yêu cầu tại nguồn. |
@publisher_password |
Mật khẩu cho người dùng SQL. |
@destination_db |
Tên cơ sở dữ liệu tại đích. |
@subscriber_login |
Người dùng SQL có quyền được yêu cầu tại đích. |
@subscriber_password |
Mật khẩu cho người dùng SQL. |
@working_directory |
Sao nhân bản thư mục làm việc, thay đổi vị trí này cho phù hợp. |
Điều chỉnh các tham số trên theo môi trường của riêng bạn khi chạy script.
Tạo nhà phân phối
Tập lệnh sau tạo cơ sở dữ liệu nhà phân phối, nhà xuất bản nhà phân phối và các đại lý.
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
Tạo ấn phẩm giao dịch
Tập lệnh sau đây tạo ấn phẩm giao dịch của cơ AdventureWorks liệu từ nhà phát hành.
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>'
Tạo bài viết cho ấn phẩm
Tập lệnh sau đây sẽ tạo bài viết cho [Person].[Person] bảng.
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
Tạo đăng ký và đại diện đăng ký
Tập lệnh sau tạo đăng ký đẩy cho người đăng ký Cơ sở dữ liệu Azure SQL.
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
Khởi tạo và giám sát sao nhân bản
Không hỗ trợ quản lý và giám sát bản sao từ Cơ sở dữ liệu Azure SQL. Thay vào đó, hãy thực hiện các hoạt động này từ SQL Server. Để bắt đầu sao nhân bản, bắt đầu công việc chụp nhanh, công việc đọc nhật ký và công việc phân phối.
Bạn có thể theo dõi tác nhân hiện trạng và tác nhân đọc nhật ký bằng cách bấm chuột phải vào ấn phẩm và chọn tùy chọn thích hợp. Nếu các đặc vụ không chạy, hãy khởi động chúng.
Để xem trạng thái đồng bộ, hãy bấm chuột phải vào đăng ký, chọn xem Trạng thái Đồng bộ hóa, sau đó khởi động nhân viên. Nếu bạn gặp bất kỳ thông báo lỗi nào, hãy kiểm tra lịch sử tác nhân công việc trên Tác nhân SQL Server. Nếu các đại lý đang chạy như mong đợi, bạn sẽ thấy kết quả sau đây.
tác nhân snapshot:
tác nhân đọc nhật ký:
Trạng thái Đồng bộ hóa:
Sau khi dữ liệu được sao chép đầy đủ cơ sở dữ liệu Azure SQL, bạn có thể hướng các kết nối đến cơ sở dữ liệu thuê bao, và sau đó dừng và loại bỏ nhân rộng.
Để tìm hiểu thêm về các cấu hình được hỗ trợ, hãy xem Nhân bản sang Cơ sở dữ liệu Azure SQL.