Chúng tôi đang khám phá việc di chuyển Cơ sở dữ liệu Oracle từ phiên bản EC2 sang RDS dịch vụ được quản lý. Trong phần đầu tiên của bốn bài viết, “Di chuyển Cơ sở dữ liệu Oracle từ AWS EC2 sang AWS RDS, Phần 1,” chúng tôi đã tạo các phiên bản cơ sở dữ liệu trên EC2 và RDS. Trong bài viết thứ hai, “Di chuyển Cơ sở dữ liệu Oracle từ AWS EC2 sang AWS RDS, Phần 2”, chúng tôi đã tạo một người dùng IAM để di chuyển cơ sở dữ liệu và cũng tạo một bảng cơ sở dữ liệu để di chuyển. Chỉ trong bài viết thứ hai, chúng tôi đã tạo một phiên bản sao chép và các điểm cuối sao chép. Trong bài viết thứ ba, “Di chuyển Cơ sở dữ liệu Oracle từ AWS EC2 sang AWS RDS, Phần 3,” chúng tôi đã tạo một nhiệm vụ di chuyển để di chuyển các thay đổi hiện có. Trong bài viết tiếp theo này, chúng tôi sẽ chuyển các thay đổi đang diễn ra sang dữ liệu. Bài viết này có các phần sau:
- Tạo và chạy một nhiệm vụ sao chép để di chuyển các thay đổi đang diễn ra
- Thêm ghi nhật ký bổ sung
- Thêm Bảng vào Phiên bản Cơ sở dữ liệu Oracle trên EC2
- Thêm dữ liệu bảng
- Khám phá Bảng cơ sở dữ liệu được sao chép
- Đang giảm và tải lại dữ liệu
- Dừng và bắt đầu một công việc
- Xoá Cơ sở dữ liệu
- Kết luận
Tạo và chạy một tác vụ sao chép để di chuyển các thay đổi đang diễn ra
Trong các phần phụ sau, chúng tôi sẽ tạo một nhiệm vụ để sao chép các thay đổi đang diễn ra. Để chứng minh sự nhân rộng đang diễn ra, trước tiên chúng ta sẽ bắt đầu nhiệm vụ và sau đó tạo một bảng và thêm dữ liệu. Thả bảng DVOHRA.WLSLOG , như trong Hình 1; chúng tôi sẽ tạo cùng một bảng để chứng minh sự nhân rộng đang diễn ra.
Hình 1: Bảng thả DVOHRA.WLSLOG
Thêm ghi nhật ký bổ sung
Dịch vụ di chuyển cơ sở dữ liệu yêu cầu bật ghi nhật ký bổ sung để cho phép thu thập dữ liệu thay đổi (CDC) được sử dụng để sao chép các thay đổi đang diễn ra. Ghi nhật ký bổ sung là quá trình lưu trữ thông tin về các hàng dữ liệu trong bảng đã thay đổi. Ghi nhật ký bổ sung thêm dữ liệu bổ sung hoặc cột bổ sung trong các tệp nhật ký làm lại bất cứ khi nào thực hiện cập nhật trên bảng. Các cột đã thay đổi được ghi lại dưới dạng dữ liệu bổ sung trong các tệp nhật ký làm lại cùng với khóa nhận dạng, có thể là khóa chính hoặc chỉ mục duy nhất. Nếu bảng không có khóa chính hoặc chỉ mục duy nhất, tất cả các cột vô hướng được ghi lại trong tệp nhật ký làm lại để xác định duy nhất một hàng dữ liệu, điều này có thể làm cho tệp nhật ký làm lại có kích thước lớn. Cơ sở dữ liệu Oracle hỗ trợ các loại ghi nhật ký bổ sung sau:
- Ghi nhật ký bổ sung tối thiểu: Chỉ lượng dữ liệu tối thiểu mà LogMiner yêu cầu cho các thay đổi DML mới được ghi lại trong các tệp nhật ký làm lại.
- Ghi nhật ký khóa xác định mức cơ sở dữ liệu: Các kiểu ghi khóa nhận dạng mức cơ sở dữ liệu khác nhau được hỗ trợ — TẤT CẢ, KHÓA CHÍNH, DUY NHẤT và NGOẠI LỆ. Với mức TẤT CẢ, tất cả các cột (ngoại trừ LOB, Longs và ADT) được ghi lại trong các tệp nhật ký làm lại. Đối với KHÓA CHÍNH, chỉ các cột khóa chính được lưu trữ trong các tệp nhật ký làm lại khi một hàng chứa khóa chính được cập nhật; không bắt buộc phải cập nhật cột khóa chính. Loại NGOẠI KHÓA chỉ lưu trữ các khóa ngoại của một hàng trong các tệp nhật ký làm lại khi bất kỳ tệp nhật ký màu đỏ nào được cập nhật. Loại DUY NHẤT chỉ lưu trữ các cột trong một khóa tổng hợp duy nhất hoặc chỉ mục bitmap khi bất kỳ cột nào trong khóa tổng hợp duy nhất hoặc chỉ mục bitmap đã thay đổi.
- Ghi nhật ký bổ sung ở cấp độ bảng: Chỉ định ở cấp bảng những cột nào được lưu trữ trong các tệp nhật ký làm lại. Ghi nhật ký khóa nhận dạng cấp bảng hỗ trợ các cấp độ giống như ghi nhật ký khóa xác định cấp cơ sở dữ liệu; TẤT CẢ, KHÓA CHÍNH, KHÓA DUY NHẤT và NGOẠI LỆ. Ở cấp bảng, các nhóm nhật ký bổ sung do người dùng xác định cũng được hỗ trợ, cho phép người dùng xác định cột nào sẽ được ghi nhật ký bổ sung. Nhóm nhật ký bổ sung do người dùng xác định có thể có điều kiện hoặc vô điều kiện.
Để nhân rộng liên tục, chúng tôi cần đặt ghi nhật ký bổ sung tối thiểu và ghi nhật ký bổ sung cấp bảng cho TẤT CẢ các cột.
Trong SQL * Plus, hãy chạy câu lệnh sau để đặt ghi nhật ký bổ sung tối thiểu:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Kết quả như sau:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; Database altered.
Để tìm trạng thái của việc ghi nhật ký bổ sung tối thiểu, hãy chạy câu lệnh sau. Và, nếu đầu ra có giá trị cột SUPPLEME là CÓ, thì việc ghi nhật ký bổ sung tối thiểu được bật.
SQL> SELECT supplemental_log_data_min FROM v$database; SUPPLEME -------- YES
Đặt đầu ra trạng thái xác minh và ghi nhật ký bổ sung tối thiểu được hiển thị trong Hình 2.
Hình 2: Thiết lập và xác minh ghi nhật ký bổ sung tối thiểu
Chúng tôi cũng sẽ thiết lập ghi nhật ký khóa nhận dạng cấp bảng khi chúng tôi thêm bảng và dữ liệu bảng để chứng minh việc sao chép liên tục sau khi tác vụ đã bắt đầu. Nếu chúng tôi thêm bảng và dữ liệu bảng trước khi tạo và bắt đầu một tác vụ - chúng tôi sẽ không thể chứng minh khả năng sao chép liên tục.
Để tạo một nhiệm vụ cho quá trình nhân rộng đang diễn ra, hãy nhấp vào Tạo tác vụ , như trong Hình 3.
Hình 3: Nhiệm vụ> Tạo công việc
Trong Tạo tác vụ trình hướng dẫn, chỉ định tên tác vụ và mô tả, đồng thời chọn phiên bản sao chép, điểm cuối nguồn và điểm cuối đích, như thể hiện trong Hình 4. Chọn Kiểu di chuyển dưới dạng Di chuyển dữ liệu hiện có và sao chép các thay đổi đang diễn ra .
Hình 4: Chọn loại di chuyển để nhân rộng đang diễn ra
Một thông báo hiển thị trong Hình 5 chỉ ra rằng cần phải kích hoạt ghi nhật ký bổ sung để tái tạo liên tục. Thông báo không phải để chỉ ra rằng việc ghi nhật ký bổ sung chưa được bật, mà chỉ là một lời nhắc nhở. Chúng tôi đã kích hoạt ghi nhật ký bổ sung. Chọn hộp kiểm Bắt đầu tác vụ khi tạo .
Hình 5: Thông báo về yêu cầu ghi nhật ký bổ sung để sao chép các thay đổi đang diễn ra
Cài đặt tác vụ giống như chỉ di chuyển dữ liệu hiện có (xem Hình 6).
Hình 6: Cài đặt tác vụ
Đối với ánh xạ bảng, cần có ít nhất một quy tắc lựa chọn. Thêm quy tắc lựa chọn để bao gồm tất cả các bảng trong DVOHRA bảng, như trong Hình 7.
Hình 7: Thêm quy tắc lựa chọn
Quy tắc lựa chọn được thêm vào được hiển thị trong Hình 8.
Hình 8: Quy tắc lựa chọn
Nhấp vào Tạo tác vụ để tạo nhiệm vụ, như thể hiện trong Hình 9.
Hình 9: Tạo công việc
Một nhiệm vụ mới được thêm vào với trạng thái là Đang tạo , như trong Hình 10.
Hình 10: Đã thêm tác vụ với trạng thái Đang tạo
Khi các quy tắc lựa chọn và chuyển đổi cho tất cả dữ liệu hiện có đã được áp dụng và dữ liệu được di chuyển, trạng thái tác vụ sẽ trở thành Tải xong, tiếp tục sao chép (xem Hình 11).
Hình 11: Tải xong, nhân rộng đang diễn ra
Thống kê bảng tab liệt kê không có bảng nào là đã được di chuyển hoặc sao chép, như thể hiện trong Hình 12.
Hình 12: Bảng thống kê
Để khám phá nhật ký CloudWatch, hãy nhấp vào Nhật ký và nhấp vào liên kết, như trong Hình 13.
Hình 13: Nhật ký
Nhật ký CloudWatch được hiển thị, như trong Hình 14. Mục cuối cùng trong nhật ký là bắt đầu sao chép. Tác vụ đang diễn ra sao chép không kết thúc sau khi tải dữ liệu hiện có, nếu có, nhưng vẫn tiếp tục chạy.
Hình 14: Nhật ký CloudWatch
Thêm Bảng vào Phiên bản Cơ sở dữ liệu Oracle trên EC2
Tiếp theo, tạo một bảng và thêm dữ liệu bảng để chứng minh việc nhân rộng đang diễn ra. Chạy hai câu lệnh sau cùng nhau để ghi nhật ký bổ sung cấp bảng được thiết lập khi bảng được tạo. Sửa đổi tập lệnh để làm cho giản đồ khác biệt.
CREATE TABLE DVOHRA.wlslog(time_stamp VARCHAR2(255) PRIMARY KEY, category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255),code VARCHAR2(255),msg VARCHAR2(255)); alter table DVOHRA.WLSLOG add supplemental log data (ALL) columns;
Ghi nhật ký bổ sung cấp bảng được đặt khi bảng được tạo.
SQL> CREATE TABLE DVOHRA.wlslog(time_stamp VARCHAR2(255) PRIMARY KEY,category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255),code VARCHAR2(255),msg VARCHAR2(255)); alter table DVOHRA.WLSLOG add supplemental log data (ALL) columns; Table created. SQL> Table altered.
Đầu ra được hiển thị trong SQL * Plus trong Hình 15.
Hình 15: Tạo bảng và thiết lập ghi nhật ký bổ sung
Chưa hết, chúng tôi chỉ tạo bảng và chưa thêm bất kỳ dữ liệu bảng nào. DDL cho bảng được di chuyển, như được chỉ ra bởi thống kê Bảng trong Hình 16.
Hình 16: DDL cho bảng đã di chuyển
Thêm dữ liệu bảng
Tiếp theo, chạy tập lệnh SQL sau để thêm dữ liệu vào bảng đã tạo. Sửa đổi tập lệnh để làm cho giản đồ khác biệt.
SQL> INSERT INTO DVOHRA.wlslog(time_stamp,category,type, servername,code,msg) VALUES('Apr-8-2014-7:06:16-PM-PDT', 'Notice','WebLogicServer','AdminServer','BEA-000365','Server state changed to STANDBY'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:17-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to STARTING'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername, code,msg) VALUES('Apr-8-2014-7:06:18-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to ADMIN'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code, msg) VALUES('Apr-8-2014-7:06:19-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to RESUMING'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code, msg) VALUES('Apr-8-2014-7:06:20-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000361','Started WebLogic AdminServer'); INSERT INTO DVOHRA.wlslog(time_stamp,category,type,servername,code, msg) VALUES('Apr-8-2014-7:06:21-PM-PDT','Notice', 'WebLogicServer','AdminServer','BEA-000365','Server state changed to RUNNING'); 1 row created. SQL> 1 row created. SQL> 1 row created. SQL> 1 row created. SQL> 1 row created. SQL> 1 row created.
Sau đó, chạy câu lệnh Cam kết.
SQL> COMMIT; Commit complete.
Khám phá Bảng Cơ sở dữ liệu Nhân bản
Thống kê Bảng liệt kê các Chèn là số lượng hàng dữ liệu được thêm vào, như thể hiện trong Hình 17.
Hình 17: Bảng thống kê danh sách 6 Phụ trang
Tác vụ tiếp tục chạy sau khi sao chép các thay đổi đang diễn ra. Thêm một hàng dữ liệu khác.
SQL> INSERT INTO DVOHRA.wlslog(time_stamp,category,type, servername,code,msg) VALUES('Apr-8-2014-7:06:22-PM-PDT', 'Notice','WebLogicServer','AdminServer','BEA-000360','Server started in RUNNING mode'); 1 row created. SQL> COMMIT; Commit complete. SQL>
Nhấp vào Làm mới dữ liệu từ máy chủ, như trong Hình 18.
Hình 18: Làm mới dữ liệu từ máy chủ
Tổng số Phụ trang trong bảng thống kê trở thành 7, như thể hiện trong Hình 19.
Hình 19: Thống kê bảng với Phụ trang là 7
Đang giảm và tải lại dữ liệu
Để thả và tải lại dữ liệu bảng, hãy nhấp vào Thả và tải lại dữ liệu bảng , như trong Hình 20.
Hình 20: Thả và tải lại dữ liệu bảng
Nhấp vào Làm mới dữ liệu từ máy chủ (xem Hình 21).
Hình 21: Làm mới dữ liệu từ máy chủ
Biểu tượng và Trạng thái cột cho bảng chỉ ra rằng bảng đang được tải lại, như thể hiện trong Hình 22.
Hình 22: Bảng đang được tải lại
Khi quá trình tải lại bảng hoàn tất, cột Trạng thái bảng sẽ trở thành Bảng đã hoàn tất , như thể hiện trong Hình 23. Sau khi tải lại dữ liệu bảng, Hàng đầy tải hiển thị giá trị 7 và Chèn là 0 vì tải lại không phải là sao chép liên tục mà là tải đầy đủ.
Hình 23: Tải lại bảng đã hoàn tất
Vì dữ liệu bảng bị xóa và tải lại và dữ liệu bảng nguồn không thay đổi, nhật ký CloudWatch bao gồm thông báo “Một số thay đổi từ cơ sở dữ liệu nguồn không có tác động khi áp dụng cho cơ sở dữ liệu đích”, như trong Hình 24.
Hình 24: Một số thay đổi từ cơ sở dữ liệu nguồn không có tác động khi áp dụng cho cơ sở dữ liệu đích
Khi tải lại DVOHRA.wlslog bảng đã hoàn thành, thông báo “Đã tải xong cho bảng DVOHRA.wlslog. 7 hàng nhận được ”được hiển thị, như trong Hình 25.
Hình 25: Nhật ký CloudWatch Thông báo tải đã hoàn tất
Dừng và bắt đầu một tác vụ
Một nhiệm vụ thuộc loại bao gồm sao chép liên tục không tự dừng lại trừ khi xảy ra lỗi. Để dừng tác vụ, hãy nhấp vào Dừng (xem Hình 26).
Hình 26: Đang dừng một công việc
Trong Dừng tác vụ , nhấp vào Dừng , như trong Hình 27.
Hình 27: Hộp thoại xác nhận để dừng một công việc
Trạng thái tác vụ trở thành Đang dừng , như trong Hình 28.
Hình 28: Đang dừng một công việc
Khi một tác vụ dừng lại, trạng thái sẽ trở thành Đã dừng , như trong Hình 29.
Hình 29: Tác vụ đã dừng
Để bắt đầu một tác vụ đã dừng, hãy nhấp vào Bắt đầu / Tiếp tục , như trong Hình 30.
Hình 30: Bắt đầu hoặc Tiếp tục một Công việc
Trong Bắt đầu tác vụ hộp thoại, nhấp vào Bắt đầu để bắt đầu tác vụ từ điểm dừng (xem Hình 31). Tùy chọn khác là khởi động lại tác vụ.
Hình 31: Bắt đầu tác vụ sau khi dừng
Trạng thái nhiệm vụ trở thành Đang bắt đầu , như trong Hình 32.
Hình 32: Bắt đầu một công việc
Khi quá trình di chuyển dữ liệu hiện có đã hoàn tất, tác vụ tiếp tục chạy với Trạng thái là Tải xong, tiếp tục sao chép , như trong Hình 33.
Hình 33: Tải xong, nhân rộng đang diễn ra
Xóa cơ sở dữ liệu
Phiên bản RDS DB có thể bị xóa bằng Tác vụ phiên bản> Xóa yêu cầu. Cơ sở dữ liệu Oracle trên phiên bản EC2 có thể bị dừng với Tác vụ> Trạng thái phiên bản> Dừng , như trong Hình 34.
Hình 34: Đang dừng phiên bản EC2
Kết luận
Trong bốn bài viết, chúng ta đã thảo luận về việc di chuyển Cơ sở dữ liệu Oracle từ AWS EC2 sang AWS RDS.