Computer >> Máy Tính >  >> Lập trình >> Redis

Cách di chuyển cơ sở dữ liệu Dynomite của bạn sang cơ sở dữ liệu hoạt động tích cực của Redis Enterprise

Trong Phần I của bài viết này, “Tại sao phải di chuyển Cơ sở dữ liệu Dynomite sang Cơ sở dữ liệu Active-Active của Redis Enterprise?”, Chúng tôi đã so sánh các kiến ​​trúc và tính năng của Dynomite và Redis Enterprise. Chúng tôi đã chỉ ra cách Redis Enterprise có thể giúp bạn phân phối theo địa lý Redis Enterprise theo cách có nhiều tính năng, dễ quản lý và không phải lo lắng về xung đột giữa các lần viết đồng thời.

Phần II sẽ mô tả các tùy chọn di chuyển có sẵn để chuyển từ Dynomite sang Redis Enterprise.

Lưu ý rằng sau đây dịch vụ tự quản lý của Redis Enterprise sẽ được gọi là “Phần mềm Redis Enterprise” và dịch vụ được quản lý sẽ được ghi chú là “Redis Enterprise Cloud” hoặc “Đăng ký đám mây”.

Di chuyển cơ sở dữ liệu Dynomite của bạn

Hãy bắt tay vào thực tế và xem cách chúng ta có thể chạy hai loại di chuyển:

  1. Di chuyển bằng tính năng Nhập / Xuất của Redis Enterprise
  2. Di chuyển bằng cách sử dụng tính năng ReplicaOf của Redis Enterprise, còn được gọi là Active-Passive

Với mục đích minh họa, giả sử rằng chúng ta có một cụm Dynomite bao gồm hai trung tâm dữ liệu:dc-a và dc-b. Mỗi trung tâm dữ liệu có một giá đỡ và mỗi giá đỡ bao gồm hai nút, giữa đó tập dữ liệu được phân phối.

Cách di chuyển cơ sở dữ liệu Dynomite của bạn sang cơ sở dữ liệu hoạt động tích cực của Redis Enterprise

Nếu chúng ta nhớ mô tả về kiến ​​trúc của Dynomite, chúng ta biết rằng mỗi giá đỡ Dynomite chứa tập dữ liệu đầy đủ.

Do đó, chúng tôi có thể giới hạn phạm vi di chuyển của mình, cho dù đó là Nhập / Xuất hoặc Chủ động-Bị động, trong một giá duy nhất trong thiết lập Dynomite của chúng tôi.

Hãy chọn rack-1-dc-a và giả sử rằng IP của hai nút của nó như sau:

  • a1:10.0.0.1
  • a2:10.0.0.2

Vì mục đích rõ ràng, đây là cấu hình yaml cho thiết lập Dynomite của chúng tôi:

#a1
dyn_o_mite:
  datacenter: dc-a
  dyn_listen: 10.0.0.1:7379
  dyn_port: 7379
  dyn_seed_provider: simple_provider
  dyn_seeds:
  - 10.0.0.3:7379:rack1:dc-a:4294967294
  - 10.0.0.4:7379:rack1:dc-b:4294967294
  - 10.0.0.2:7379:rack1:dc-b:2147483647
  listen: 0.0.0.0:8379
  rack: rack1
  servers:
  - 127.0.0.1:6379:1
  timeout: 150000
  tokens: 2147483647
  secure_server_option: datacenter
  pem_key_file: /root/dynomite/conf/dynomite.pem
  data_store: 0
  stats_listen: 127.0.0.1:22222
  read_consistency : DC_QUORUM
  write_consistency : DC_QUORUM

#a2
dyn_o_mite:
  datacenter: dc-a
  dyn_listen: 10.0.0.3:7379
  dyn_port: 7379
  dyn_seed_provider: simple_provider
  dyn_seeds:
  - 10.0.0.1:7379:rack1:dc-a:2147483647
  - 10.0.0.4:7379:rack1:dc-b:4294967294
  - 10.0.0.2:7379:rack1:dc-b:2147483647
  listen: 0.0.0.0:8379
  rack: rack1
  servers:
  - 127.0.0.1:6379:1
  timeout: 150000
  tokens: 4294967294
  secure_server_option: datacenter
  pem_key_file: /root/dynomite/conf/dynomite.pem
  data_store: 0
  stats_listen: 127.0.0.1:22222
  read_consistency : DC_QUORUM
  write_consistency : DC_QUORUM

#b1
dyn_o_mite:
  datacenter: dc-b
  dyn_listen: 10.0.0.2:7379
  dyn_port: 7379
  dyn_seed_provider: simple_provider
  dyn_seeds:
  - 10.0.0.4:7379:rack1:dc-b:4294967294
  - 10.0.0.1:7379:rack1:dc-a:4294967294
  - 10.0.0.3:7379:rack1:dc-a:2147483647
  listen: 0.0.0.0:8379
  rack: rack1
  servers:
  - 127.0.0.1:6379:1
  timeout: 150000
  tokens: 2147483647
  secure_server_option: datacenter
  pem_key_file: /root/dynomite/conf/dynomite.pem
  data_store: 0
  stats_listen: 127.0.0.1:22222
  read_consistency : DC_QUORUM
  write_consistency : DC_QUORUM

#b2
dyn_o_mite:
  datacenter: dc-b
  dyn_listen: 10.0.0.4:7379
  dyn_port: 7379
  dyn_seed_provider: simple_provider
  dyn_seeds:
  - 10.0.0.2:7379:rack1:dc-b:2147483647
  - 10.0.0.1:7379:rack1:dc-a:4294967294
  - 10.0.0.3:7379:rack1:dc-a:2147483647
  listen: 0.0.0.0:8379
  rack: rack1
  servers:
  - 127.0.0.1:6379:1
  timeout: 150000
  tokens: 4294967294
  secure_server_option: datacenter
  pem_key_file: /root/dynomite/conf/dynomite.pem
  data_store: 0
  stats_listen: 127.0.0.1:22222
  read_consistency : DC_QUORUM
  write_consistency : DC_QUORUM

Một vài nhận xét về cấu hình này và thiết lập được sử dụng để kiểm tra hướng dẫn này:

  • Bốn máy ảo GCP chạy Ubuntu 18.04.
  • Các máy ảo nằm trong cùng một VPC trải dài trên nhiều vùng.
  • Đã mở các cổng 7379 và 7380, vì Dynomite sử dụng các cổng đó để sao chép dữ liệu - “dyn_port” trong cấu hình yaml.
  • Redis OSS đang chạy trên mỗi nút trên cổng 6379 - xem "máy chủ" trong cấu hình yaml.
  • Dynomite lắng nghe các yêu cầu của khách hàng trên cổng 8379 (ví dụ:redis-cli -h 10.0.0.1 -p 8379) - xem "lắng nghe" trong cấu hình yaml.

Bây giờ chúng tôi đã hiểu thiết lập của mình và đã quyết định chúng tôi sẽ sử dụng giá đỡ nào cho quá trình di chuyển của mình, hãy tạo cơ sở dữ liệu Redis Enterprise.

Tạo cơ sở dữ liệu đang hoạt động tích cực của Redis Enterprise

Vì mục đích của bài viết này không phải để giải thích cách thiết lập cụm hoặc tạo cơ sở dữ liệu của bạn, vui lòng tham khảo tài liệu bên dưới để thiết lập và chạy cơ sở dữ liệu Active-Active của bạn:

  • Cụm phần mềm Redis Enterprise
  • Đăng ký đám mây
  • Tạo cơ sở dữ liệu phần mềm
  • Tạo cơ sở dữ liệu đang hoạt động tích cực của phần mềm
  • Tạo cơ sở dữ liệu đám mây

Để kiểm tra hai kịch bản di chuyển của chúng tôi, tôi đã tạo một cơ sở dữ liệu Active-Active bao gồm hai cụm Redis Enterprise Software - một ở Châu Âu và một ở Hoa Kỳ. Mỗi cụm bao gồm ba máy ảo chạy Ubuntu 18.04. Biết rằng nếu bạn tạo cơ sở dữ liệu mà không có Active-Active, các bước di chuyển sẽ giống nhau, trừ khi được chỉ định khác trong bài viết này.

Hãy tiếp tục với kiểu di chuyển đầu tiên của chúng ta.

Di chuyển bằng tính năng Nhập / Xuất

Redis OSS cung cấp một tùy chọn liên tục được gọi là Redis Database Backup Files hoặc RDB, thực hiện các ảnh chụp nhanh tại thời điểm của tập dữ liệu của bạn, theo các khoảng thời gian được chỉ định hoặc khi được kích hoạt bởi lệnh SAVE hoặc BGSAVE.

Những ảnh chụp nhanh đó được lưu trong tệp .rdb, sau đây được gọi là tệp RDB. Chúng tôi sẽ xuất chúng ra khỏi máy chủ Dynomite và nhập chúng vào cơ sở dữ liệu Redis Enterprise của chúng tôi. Với giải pháp này, xin lưu ý rằng không thể di chuyển delta và quá trình nhập có thể mất một lúc, tùy thuộc vào kích thước của dữ liệu.

QUAN TRỌNG:Có sự khác biệt lớn giữa cơ sở dữ liệu phân tán không theo địa lý của Redis Enterprise và cơ sở dữ liệu Active-Active:

  • Cơ sở dữ liệu không được phân phối theo địa lý:Khi nhập tệp RDB, tất cả nội dung cơ sở dữ liệu hiện có sẽ bị xóa.
  • Cơ sở dữ liệu Hoạt động-Hoạt động:Bạn có thể nhập các tệp RDB và hợp nhất chúng vào tập dữ liệu hiện có của mình. Điều này có nghĩa là bạn có thể bắt đầu gửi lưu lượng ghi vào cơ sở dữ liệu Active-Active của mình trước và trong khi nhập. Hãy chú ý - nếu bạn đang ghi khóa vào cơ sở dữ liệu Active-Active đã tồn tại trong Dynomite, thì lần nhập tiếp theo có thể ghi đè các giá trị mới hơn bằng các giá trị cũ hơn ! Điều này đòi hỏi bạn phải lập kế hoạch cẩn thận.

Cách di chuyển dữ liệu từ Dynomite sang Redis Enterprise với các tệp RDB như sau:

  • Dừng lưu lượng truy cập trên cơ sở dữ liệu Dynomite và nếu bạn đã lên kế hoạch di chuyển cẩn thận và đang sử dụng cơ sở dữ liệu Đang hoạt động, hãy chuyển sang cơ sở dữ liệu Redis Enterprise.
  • Xuất dữ liệu của từng nút (trong trường hợp của chúng tôi là a1 và a2) dưới dạng tệp RDB.
  • Tải các tệp RDB lên một vị trí có thể truy cập vào nhóm Redis Enterprise (ví dụ:nhóm Google Cloud Storage, nhóm AWS S3, máy chủ FTP, v.v.)
  • Nhập các tệp RDB vào cơ sở dữ liệu Redis Enterprise.
  • Chuyển sang cơ sở dữ liệu Redis Enterprise.

Hãy xem các bước trên chi tiết hơn.

Tùy chọn:Chỉnh sửa tệp cấu hình Redis OSS trên mỗi nút

Các phiên bản Redis OSS chạy trên các nút Dynomite của bạn có tệp cấu hình của chúng được đặt theo mặc định trong / etc / redis nếu bạn đã cài đặt nó bằng “apt-get” hoặc trong thư mục Redis nếu bạn đã tự xây dựng Redis OSS. Tệp này được gọi là “redis.conf”.

Mở tệp này bằng trình soạn thảo văn bản yêu thích của bạn và tìm kiếm lệnh “dbfilename”. Thay đổi tên của tệp trên mỗi nút, chẳng hạn như

  • “dump1.rdb” trên node1,
  • “dump2.rdb” trên node2.

Điều này đảm bảo rằng khi chúng tôi xuất các tệp RDB của mình sang bộ nhớ ngoài, chúng không có cùng tên. Bạn có thể bỏ qua bước này và thay đổi tên của họ sau khi chụp ảnh nhanh nếu muốn.

Theo tùy chọn, bạn cũng có thể:

  • Thay đổi thư mục chứa các tệp RDB bằng lệnh “dir”.
  • Thay đổi khoảng thời gian chụp nhanh hoặc tắt tính năng chụp nhanh tự động. Trong hướng dẫn này, chúng tôi sẽ sử dụng lệnh SAVE Redis để kích hoạt tính năng chụp nhanh, để chúng tôi có thể chắc chắn kết xuất tập dữ liệu đầy đủ sau khi chúng tôi dừng lưu lượng truy cập.
Cách di chuyển cơ sở dữ liệu Dynomite của bạn sang cơ sở dữ liệu hoạt động tích cực của Redis Enterprise

Lưu ý rằng sau khi chỉnh sửa tệp cấu hình Redis OSS, bạn cần khởi động lại máy chủ Redis OSS để các thay đổi của bạn được tính đến.

Kết xuất dữ liệu

Bây giờ, hãy dừng lưu lượng truy cập vào cơ sở dữ liệu Dynomite của bạn thông qua cổng 8379. Một lần nữa, nếu bạn đang nhập vào cơ sở dữ liệu Đang hoạt động và đã lập kế hoạch di chuyển cẩn thận để không gặp rủi ro do tình cờ ghi đè trong quá trình nhập, bạn có thể cắt giảm lưu lượng truy cập vào cơ sở dữ liệu Active-Active của bạn.

Khởi chạy redis-cli. Không sử dụng cổng 8379, cổng lắng nghe của Dynomite. Thay vào đó, hãy sử dụng cổng 6379. Điều này là do chúng tôi cần kết nối với phiên bản Redis OSS đang chạy trên nút của chúng tôi chứ không phải với cụm Dynomite của chúng tôi, không hỗ trợ lệnh SAVE. Bạn chỉ có thể chạy redis-cli mà không cần bất kỳ đối số dòng lệnh nào.

Trên mỗi nút, chạy lệnh DBSIZE. Bạn sẽ nhận được số lượng khóa được lưu trữ trên mỗi phiên bản của Redis OSS. Tổng số phải là số khóa trong cơ sở dữ liệu Dynomite của chúng tôi.

#a1
127.0.0.1:6379> dbsize
(integer) 1323

#a2
127.0.0.1:6379> dbsize
(integer) 1371

Chạy lệnh SAVE và kiểm tra xem các tệp RDB của bạn đã được tạo trong / var / lib / redis - hoặc bất kỳ thư mục nào bạn đã chỉ định chưa.

Xuất hai tệp kết xuất sang bộ nhớ ngoài

Bây giờ chúng tôi đã sẵn sàng xuất hai tệp RDB của mình sang bộ nhớ ngoài.

Đối với hướng dẫn này, tôi sẽ xuất tệp sang Bộ nhớ đám mây của Google Cloud, nhưng bạn cũng có thể sử dụng các tùy chọn bộ nhớ ngoài khác như Máy chủ FTP, giải pháp lưu trữ của Nhà cung cấp dịch vụ đám mây khác hoặc đĩa ngoài có thể truy cập được từ cụm Redis Enterprise của bạn. Bạn có thể tìm thêm thông tin về các tùy chọn đó bên dưới:

  • Phần mềm Redis Enterprise
  • Redis Enterprise Cloud

Trong Google Cloud, tôi đã tạo những thứ sau:

  • Tài khoản dịch vụ mà tôi đã tạo khóa JSON.
  • Một bộ chứa lưu trữ đám mây mà tôi đã chỉ định quyền Storage Legacy Object Reader cho tài khoản dịch vụ của mình.

Bây giờ đối với mỗi nút, chúng tôi sẽ chạy lệnh sau:

gsutil cp path_to_dump_file gs://your_bucket

Giờ đây, chúng tôi có thể thấy hai tệp RDB của mình trong nhóm Google Cloud của chúng tôi:

Cách di chuyển cơ sở dữ liệu Dynomite của bạn sang cơ sở dữ liệu hoạt động tích cực của Redis Enterprise

Bây giờ chúng tôi đã sẵn sàng nhập chúng vào cơ sở dữ liệu Active-Active của chúng tôi.

Nhập tệp kết xuất vào cơ sở dữ liệu Redis Enterprise

Đăng nhập vào Redis Enterprise UI và chọn cơ sở dữ liệu Active-Active của bạn. Nếu giống như trong hướng dẫn này, bạn đã tạo cơ sở dữ liệu Redis Enterprise Active-Active trải dài một số cụm, bạn có thể kết nối với giao diện người dùng thông qua bất kỳ cụm nào bạn thích. Trong hướng dẫn này, chúng tôi sẽ sử dụng cụm Châu Âu (EU) của mình.

Nếu bạn đang sử dụng cơ sở dữ liệu Cloud Active-Active, chỉ cần kết nối với Cloud UI và chọn cơ sở dữ liệu của bạn.

Hãy điều hướng đến trang cấu hình của cơ sở dữ liệu của chúng tôi và nhấp vào nút Nhập. Chọn Loại lưu trữ thích hợp. Trong trường hợp của chúng tôi, đây sẽ là Google Cloud Storage.

Bây giờ chúng tôi có thể thêm đường dẫn Cloud Storage của hai tệp RDB của chúng tôi, chẳng hạn như:

  • /helene-test/dump1.rdb
  • /helene-test/dump2.rdb

Chúng tôi cũng cần thêm các thông tin sau:

  • ID khách hàng
  • email khách hàng
  • ID khóa cá nhân
  • khóa cá nhân

Bạn có thể tìm thấy thông tin này trong tệp khóa JSON mà bạn đã tải xuống khi tạo khóa cho Tài khoản dịch vụ đám mây của Google.

Lưu ý rằng khóa cá nhân được định dạng kỳ lạ trong tệp JSON; nó có dấu ngoặc kép và dòng mới. Để nhanh chóng định dạng nó theo cách mà Redis Enterprise UI sẽ chấp nhận, chỉ cần khởi chạy trình thông dịch python và in nó:

print(WHOLE_COPIED_KEY)

Bây giờ chúng tôi có cấu hình nhập sau:

Cách di chuyển cơ sở dữ liệu Dynomite của bạn sang cơ sở dữ liệu hoạt động tích cực của Redis Enterprise

Nhấp vào Nhập và đợi quá trình nhập kết thúc, tùy thuộc vào kích thước của cơ sở dữ liệu.

Kiểm tra cơ sở dữ liệu và cắt bỏ

Với redis-cli, hãy kết nối với điểm cuối của cơ sở dữ liệu Redis Enterprise của bạn. Cố gắng đọc một số khóa và chạy lệnh DBSIZE để kiểm tra xem bạn có đúng tổng số khóa không.

redis-12000.internal.helene-eu-cluster.demo.redislabs.com:12000> dbsize
(integer) 2694

Cũng đừng quên kiểm tra Bản sao địa lý đang hoạt động! Chỉ cần kết nối với điểm cuối cơ sở dữ liệu của cụm khác, trong trường hợp của chúng tôi ở đây là Hoa Kỳ và kiểm tra số lượng khóa bạn nhận được.

Quá trình di chuyển của bạn hiện đã kết thúc. Bạn có thể cắt bớt lưu lượng truy cập vào cơ sở dữ liệu của mình nếu bạn chưa làm như vậy.

Di chuyển bằng tính năng ReplicaOf

Bây giờ, hãy chạy một quá trình di chuyển liên tục.

Tính năng Redis Enterprise ‘ReplicaOf’ (còn được gọi là Active-Passive trong Redis Cloud UI) cho phép chúng tôi liên tục sao chép dữ liệu giữa hai cơ sở dữ liệu Redis. Ưu điểm chính là nó sao chép các delta sau khi quá trình đồng bộ hóa ban đầu được thực hiện, có nghĩa là gần như không có thời gian ngừng hoạt động phía ứng dụng được quan sát thấy.

Các bước là:

  • Thiết lập liên kết ReplicaOf giữa cơ sở dữ liệu Dynomite và cơ sở dữ liệu Active-Active
  • Chờ cho đến khi quá trình đồng bộ hóa ban đầu hoàn tất
  • Dừng lưu lượng truy cập trên cơ sở dữ liệu Dynomite
  • Chờ cho đến khi vùng đồng bằng được tái tạo xong
  • Xóa liên kết ReplicaOf giữa các cơ sở dữ liệu
  • Chuyển sang cơ sở dữ liệu Active-Active

ReplicaOf được thiết kế để sử dụng theo cách Chủ động-Bị động. Điều đó có nghĩa là mục tiêu được giả định là bị động và nó cần được dung nạp để mục tiêu được đồng bộ hóa lại hoàn toàn (xóa cơ sở dữ liệu đích + đồng bộ hóa từ cơ sở dữ liệu nguồn).

Trước khi bắt đầu di chuyển, hãy thảo luận một số khía cạnh bảo mật.

Cấu hình bảo mật cho Redis OSS trong thiết lập Dynomite của bạn

Trước hết, bạn cần thêm quy tắc gửi đến cho TCP tùy chỉnh với cổng 6379 cho mạng mà giá đỡ Dynomite của bạn hoạt động.

Thứ hai, các tệp cấu hình Redis OSS trên cả hai nút Dynomite cần được cập nhật. Theo mặc định, Redis chỉ lắng nghe trên địa chỉ giao diện lặp lại IPv4 và IPv6 (nếu có). Điều này có nghĩa là Redis OSS sẽ chỉ có thể chấp nhận các kết nối máy khách từ cùng một máy chủ mà nó đang chạy. Chúng tôi cần cập nhật lệnh “bind” của Redis OSS để Redis OSS có thể lắng nghe các kết nối từ máy chủ cụm Redis Enterprise của chúng tôi.

Có hai cách để thực hiện việc này:

  • Yêu cầu Redis OSS chỉ lắng nghe các kết nối đến từ một máy trong VPC ngang hàng - được khuyến nghị và an toàn hơn
  • Cho phép Redis OSS được tất cả các máy chủ truy cập - không an toàn, đặc biệt vì Dynomite không hỗ trợ mật khẩu cơ sở dữ liệu

Hãy thảo luận chi tiết về hai lựa chọn đó.

Tùy chọn 1 - Với VPC Peering

Tùy chọn đầu tiên là xếp ngang hàng VPC trong đó giá đỡ Dynomite của bạn sống với VPC mà cụm Redis Enterprise của bạn đang tồn tại. Xin lưu ý rằng, nếu giống như chúng tôi, bạn đã tạo cơ sở dữ liệu Hoạt động-Hoạt động, cơ sở dữ liệu này có thể nằm trong bất kỳ cụm nào. Như trước đây, chúng tôi sẽ sử dụng cụm Châu Âu (EU) để trình diễn.

Khi bạn đã xem xét các mạng của mình, bạn chỉ cần chỉnh sửa chỉ thị “bind” trong tệp redis.conf:Thêm IP riêng của máy Dynomite của bạn sau các địa chỉ giao diện loopback mặc định.

Cách di chuyển cơ sở dữ liệu Dynomite của bạn sang cơ sở dữ liệu hoạt động tích cực của Redis Enterprise

Làm điều này cho tất cả các nút trong rack và thế là xong! Đừng quên khởi động lại các phiên bản Redis OSS của bạn.

Tùy chọn 2 - Không có VPC Peering

Nếu bạn không thể hoặc không muốn mạng ngang hàng của mình, thì bạn cần cập nhật tệp cấu hình Redis OSS theo cách sau, trên mỗi nút:

  • Nhận xét lệnh "bind", lệnh này sẽ hiển thị phiên bản Redis OSS của bạn cho mọi người trên internet
  • Đặt “chế độ được bảo vệ” thành “không” để các máy khách từ các máy chủ khác có thể kết nối với Redis ngay cả khi không có xác thực nào được định cấu hình, cũng như một bộ giao diện cụ thể được liệt kê rõ ràng bằng lệnh “bind”.
Cách di chuyển cơ sở dữ liệu Dynomite của bạn sang cơ sở dữ liệu hoạt động tích cực của Redis Enterprise

QUAN TRỌNG: Bước cuối cùng này là bắt buộc vì Dynomite không hỗ trợ lệnh Redis ’OSS AUTH, lệnh này ngăn chúng tôi đặt mật khẩu cơ sở dữ liệu. Do đó, nếu bạn không sử dụng tường lửa để kiểm soát ai kết nối với các cổng đang được sử dụng, thì bất kỳ ai có thể kết nối với cá thể Redis OSS và truy cập / thay đổi / xóa dữ liệu của nó. Chỉ mở cổng 6379 cho máy chủ của cụm Redis Enterprise của bạn.

Nếu bạn thực sự muốn sử dụng mật khẩu, bạn có thể. Nhưng nó sẽ khiến bạn không thể chạy quá trình di chuyển liên tục, vì bạn cần thực hiện những việc sau:

  • Dừng lưu lượng truy cập vào cơ sở dữ liệu Dynomite
  • Chỉnh sửa chỉ thị "requestpass" để đặt mật khẩu cho cơ sở dữ liệu. Kể từ thời điểm này, bạn sẽ không thể gửi bất kỳ lưu lượng ghi nào tới cơ sở dữ liệu Dynomite của mình bằng cổng 8379, vì lệnh AUTH sẽ được yêu cầu để truy cập cơ sở dữ liệu
  • Tiến hành di chuyển bằng ReplicaOf như được mô tả bên dưới
  • Cắt giảm lưu lượng truy cập vào cơ sở dữ liệu Redis Enterprise

Thêm một lần cân nhắc bảo mật nữa và chúng tôi đã sẵn sàng bắt đầu quá trình di chuyển của mình!

Tùy chọn - bật TLS

Để ngăn truy cập trái phép vào dữ liệu của bạn, Redis Enterprise hỗ trợ giao thức TLS.

Nếu đang sử dụng Phần mềm Redis Enterprise, bạn có thể định cấu hình cụ thể phần mềm này để giao tiếp với ReplicaOf. Nếu đang sử dụng Redis Enterprise Cloud, bạn có thể bật TLS nói chung.

Đặt liên kết ReplicaOf giữa các cơ sở dữ liệu

Trong giao diện người dùng Redis Enterprise, hãy điều hướng đến trang cấu hình cơ sở dữ liệu Active-Active của chúng tôi và nhấp vào Chỉnh sửa.

Chúng tôi có tùy chọn để kích hoạt Active-Passive / ReplicaOf. Sau khi thực hiện, chúng tôi có thể thêm nguồn ở định dạng sau:

redis://:@IP:port

Xin lưu ý:

  • ReplicaOf cho phép tối đa 32 nguồn. Điều đó có nghĩa là nếu bạn đã phân phối tập dữ liệu của mình trên hơn 32 nút trong giá đỡ Dynomite, bạn sẽ không thể sử dụng tùy chọn này
  • Nếu đã sử dụng VPC Peering, bạn nên sử dụng IP riêng của máy mình
  • Nếu bạn chưa sử dụng VPC Peering:
    • Bạn nên sử dụng IP công cộng của máy mình
    • Nếu bạn quyết định đặt mật khẩu cho cơ sở dữ liệu của mình (và để chạy quá trình di chuyển một lần), mật khẩu phải được cung cấp như sau:redis://:password @ IP:port.

Trong trường hợp của chúng tôi, với VPC Peering, đây là nguồn của chúng tôi trông như thế nào:

Cách di chuyển cơ sở dữ liệu Dynomite của bạn sang cơ sở dữ liệu hoạt động tích cực của Redis Enterprise

Bắt đầu di chuyển

Bây giờ chúng ta hãy thực hiện các bước sau:

  • Nhấp vào Cập nhật trong giao diện người dùng Redis Enterprise,
  • Chờ quá trình đồng bộ hóa ban đầu kết thúc,
  • Dừng lưu lượng truy cập vào cơ sở dữ liệu Dynomite,
  • Chờ delta được đồng bộ hóa,
  • Cập nhật lại cơ sở dữ liệu Active-Active để tắt ReplicaOf,
  • Bắt đầu lưu lượng truy cập trên cơ sở dữ liệu Đang hoạt động.

Kiểm tra dữ liệu của bạn

Giống như trước đây, hãy kết nối với cơ sở dữ liệu của bạn bằng redis-cli và kiểm tra xem dữ liệu của bạn đã được di chuyển chưa. Kiểm tra Bản sao địa lý đang hoạt động cũng như bằng cách kết nối với các cụm khác / điểm cuối cục bộ khác.

Kết luận

Redis được mệnh danh là cơ sở dữ liệu được các nhà phát triển yêu thích nhất trong nhiều năm. Nếu bạn đang sử dụng Dynomite, có thể là vì bạn cũng yêu thích Redis. Tại Redis, ngôi nhà chung của cả Redis OSS và Redis Enterprise, chúng tôi có thể giúp tổ chức của bạn phân phối Redis theo địa lý theo cách dễ quản lý hơn, đồng thời tuân thủ các tiêu chuẩn học thuật cao nhất để giải quyết xung đột.