Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Mục đích của việc sao chép dữ liệu là gì?

Có một ứng dụng hiệu sách đại học trực tuyến nơi nhiều sinh viên có thể mua sách. Mỗi khi sinh viên đăng nhập, nó sẽ hiển thị danh sách các đề xuất dựa trên lịch sử mua hàng trước đó của họ. Máy chủ SQL lưu trữ dữ liệu khách hàng ở Seattle, nhưng những sinh viên này đang đăng nhập từ khắp nơi trên thế giới. Do đó, hiệu suất có thể bị ảnh hưởng và những người ở xa hơn trên mạng WAN có thể gặp phải độ trễ thời gian cho các truy vấn.

Thay vì để các sinh viên ở xa phải chịu thời gian tải trang chậm, bản sao có thể được sử dụng để sao chép và duy trì các đối tượng cơ sở dữ liệu trong nhiều trang web và đồng bộ hóa sau đó để duy trì tính nhất quán. Mỗi trang web giữ phần cơ sở dữ liệu chứa dữ liệu có liên quan nhất đến họ và được sử dụng thường xuyên nhất. Giờ đây, mỗi sinh viên có thể mua sách trên trang web và dữ liệu sẽ được đồng bộ hóa sau đó.

Cách hoạt động của sao chép dữ liệu

Có một số thành phần máy chủ và chúng đảm nhận các vai trò khác nhau để triển khai nhân rộng. Vai trò nhà xuất bản là một cá thể cơ sở dữ liệu nơi chứa nguồn dữ liệu và nó chứa các đối tượng được thiết kế dưới dạng các bài báo sao chép. Các bài báo này được nhóm lại với nhau và xuất bản trong một ấn phẩm để dữ liệu được nhân rộng thành một đơn vị. Nhà xuất bản có thể có nhiều ấn phẩm.

Vai trò nhà phân phối là một cá thể cơ sở dữ liệu chứa các cơ sở dữ liệu phân phối. Mỗi nhà xuất bản được ánh xạ tới một cơ sở dữ liệu phân phối duy nhất để lưu trữ dữ liệu sao chép từ nhà xuất bản sẽ được chuyển cho người đăng ký. Nhà phân phối có thể được thiết lập như một nhà phân phối cục bộ, có nghĩa là một phiên bản máy chủ duy nhất có thể phục vụ trong các vai trò của cả nhà xuất bản và nhà phân phối. Nếu một nhà phân phối được cấu hình trên các máy chủ riêng biệt, nó được gọi là nhà phân phối từ xa.

Vai trò người đăng ký là (các) trường hợp nhận dữ liệu được sao chép bằng cách đăng ký các ấn phẩm. Người đăng ký không bị giới hạn và đủ điều kiện để nhận dữ liệu từ nhiều nhà xuất bản và các đối tượng có thể được cập nhật tùy thuộc vào loại sao chép. Nếu có thể, nhà xuất bản sẽ nhận được những thay đổi này từ người đăng ký và xuất bản lại dữ liệu.

Nói chung, thuê bao nhận được các thay đổi đối với dữ liệu theo hai cách:thông qua đăng ký đẩy hoặc đăng ký kéo. Sự khác biệt là thành phần máy chủ thực hiện các bản cập nhật. Với push, nhà phân phối đẩy hoặc cập nhật trực tiếp cơ sở dữ liệu thuê bao. Khi kéo, người đăng ký kiểm tra với nhà phân phối để xem có bất kỳ thay đổi nào không và nó sẽ tự thực hiện cập nhật.

Ba loại sao chép dữ liệu

Để thực hiện sao chép, một số tác nhân được sử dụng để thực hiện các công việc liên quan đến việc sao chép các thay đổi, theo dõi các thay đổi và phân phối dữ liệu. Những tác nhân nào là cần thiết phụ thuộc vào loại sao chép được sử dụng. Có ba loại sao chép chính.

1. Sao chép ảnh chụp nhanh

Sao chép ảnh chụp nhanh là kiểu sao chép dữ liệu đơn giản nhất và được sử dụng nếu dữ liệu không được thay đổi thường xuyên hoặc nếu khối lượng dữ liệu nhỏ cần được sao chép. Ví dụ:nếu có các bảng không được cập nhật nhiều, thì Snapshot Agent có thể được sử dụng để sao chép toàn bộ cơ sở dữ liệu một lần hoặc nhiều lần theo lịch trình. Sau đó, Đại lý phân phối chịu trách nhiệm chuyển các tệp này đến người đăng ký.

Kỹ thuật này yêu cầu bảo trì ít vì những gì được phân phối là ảnh chụp nhanh của dữ liệu tại một thời điểm cụ thể. Ngoài ra, không cần theo dõi các thay đổi vì mỗi khi người đăng ký nhận được bản cập nhật, nó sẽ ghi đè toàn bộ bản sao dữ liệu.

Thật không may, việc sao chép toàn bộ cơ sở dữ liệu có thể gây ra độ trễ cao hoặc nhiều lần chờ hơn mong muốn. Tạo ảnh chụp nhanh yêu cầu giữ khóa trên các đối tượng. Sẽ không thuận tiện nếu dữ liệu được thay đổi thường xuyên và có khả năng ảnh hưởng đến hiệu suất — ví dụ:nếu nhà xuất bản có nhiều hoạt động chèn, cập nhật và xóa.

Ngoài việc sử dụng Đại lý ảnh chụp nhanh để tạo ảnh chụp nhanh, các bản sao giao dịch cũng tận dụng các Đại lý trình đọc nhật ký chạy tại nhà phân phối. Tác nhân đọc nhật ký đọc nhật ký giao dịch của cơ sở dữ liệu nhà xuất bản và chỉ cung cấp các thay đổi được đánh dấu thay vì đợi trên toàn bộ cơ sở dữ liệu. Điều này cung cấp sự linh hoạt vì nó cho phép bạn quyết định lượng cơ sở dữ liệu sẽ xuất bản (ví dụ:một cột). Sau đó, Đại lý phân phối chuyển các giao dịch đến người đăng ký và nơi nó chạy sẽ phù hợp với các chiến lược đăng ký đẩy và kéo tương ứng.

2. Sao chép giao dịch

Bản sao giao dịch tiêu chuẩn ngụ ý rằng dữ liệu tại người đăng ký là dữ liệu chỉ đọc. Tuy nhiên, có những loại ấn phẩm khác nhau cho phép thực hiện các sửa đổi ở người đăng ký. Nếu những thay đổi này được thực hiện, chúng có thể được chuyển lại cho nhà xuất bản để xuất bản lại. Tác nhân đọc hàng đợi được sử dụng để sao chép giao dịch hai chiều và nó sẽ đọc các thay đổi từ hàng đợi và áp dụng các thay đổi đó tại nhà xuất bản.

Việc sao chép giao dịch rất có lợi trong môi trường máy chủ đến máy chủ, nơi các thay đổi có thể được thực hiện tại nhà xuất bản và người đăng ký trong thời gian thực — ví dụ:dữ liệu thời gian thực liên quan đến các chuyến bay hiện có sẵn cho một hãng hàng không. Sẽ không hợp lý khi sử dụng sao chép ảnh chụp nhanh trong trường hợp này vì các bản cập nhật thường được đồng bộ hóa một lần mỗi ngày hoặc theo lịch trình.

3. Hợp nhất sao chép

Nhân rộng hợp nhất giống như nhân bản giao dịch, nhưng nó cho phép các bản cập nhật ở cả người đăng ký và nhà xuất bản được hợp nhất với nhau. Nhiều người đăng ký có thể chuyển sang chế độ ngoại tuyến, cập nhật dữ liệu vào những thời điểm khác nhau, sau đó trực tuyến trở lại và đồng bộ hóa những thay đổi đó sau.

Loại sao chép này có thể được sử dụng trong môi trường máy chủ đến máy khách như máy khách di động. Giống như snapshot và sao chép giao dịch, snapshot ban đầu được tạo bởi Snapshot Agent, nhưng sau đó Merge Agent sẽ theo dõi các thay đổi và giải quyết xung đột với các trình kích hoạt. Nếu nhiều người đăng ký đang cập nhật các hàng giống nhau, họ có thể gây ra sự cố. Do đó, việc giải quyết xung đột cần phải được tính đến.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối SQL Server với cơ sở dữ liệu Java

  2. Làm cách nào để tạo một Bảng được liên kết ODBC theo cách lập trình đến Dạng xem Máy chủ SQL và nó có thể chỉnh sửa được không?

  3. Chuyển một chuỗi được phân tách bằng dấu phẩy thành các hàng riêng lẻ

  4. Thả khóa chính bằng cách sử dụng tập lệnh trong cơ sở dữ liệu SQL Server

  5. Cách định dạng giá trị phủ định bằng dấu ngoặc trong SQL Server (T-SQL)