Oracle® phiên bản 12c cung cấp các tùy chọn multitenant database để lưu trữ nhiều cơ sở dữ liệu có thể cắm (PDB) với một cơ sở dữ liệu container (CDB). Đôi khi, bạn cần chuyển đổi cơ sở dữ liệu không phải CDB thành cơ sở dữ liệu có thể cắm CDB. Blog này mô tả các phương pháp mà bạn có thể sử dụng để chuyển đổi cơ sở dữ liệu không phải CDB thành cơ sở dữ liệu CDB.
Thiết lập trường hợp thử nghiệm
Kịch bản thử nghiệm này bắt đầu với một phiên bản cơ sở dữ liệu non-CDB noncdb12c
, đang chạy trên máy ABC123.xyz.com
. Nhiệm vụ là tạo cơ sở dữ liệu CDB cdb12c
, trên cùng một máy. Bạn cần đảm bảo có đủ dung lượng đĩa để chứa cơ sở dữ liệu CDB đã chuyển đổi.
Máy chủ lưu trữ : ABC123.xyz.com
Cơ sở dữ liệu không phải CDB : noncdb12c
Phiên bản Oracle : 12.1.0.2
Hình ảnh sau đây cho thấy kịch bản thử nghiệm:
Kiểm tra chuyển đổi
Sử dụng các bước trong phần này để chuyển đổi cơ sở dữ liệu Non-CDB sang cơ sở dữ liệu CDB.
BƯỚC 1: THỰC HIỆN TẮT MÁY SẠCH SẼ (CLEAN SHUTDOWN)
Thực hiện các bước sau để tắt sạch cơ sở dữ liệu không phải CDB:
- Đặt môi trường thành
noncdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
BƯỚC 2: MỞ CƠ SỞ DỮ LIỆU DƯỚI DẠNG CHỈ ĐỌC ( READ-ONLY)
Sau khi bạn tắt máy cơ sở dữ liệu một cách sạch sẽ, hãy thực hiện các bước sau để khởi động cơ sở dữ liệu ở chế độ độc quyền gắn kết và mở cơ sở dữ liệu ở chế độ chỉ đọc:
- Đặt môi trường thành
noncdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
BƯỚC 3: TẠO TỆP KÊ KHAI PDB
Thực hiện các bước sau để tạo tệp kê khai PDB từ non-CDB:
- Đặt môi trường thành
noncdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
BƯỚC 4: TẮT MÁY NON-CDB
Thực hiện các bước sau khi Bước 3 hoàn tất để tắt tệp non-CDB.
- Đặt môi trường thành
noncdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
BƯỚC 5: BẮT ĐẦU CDB
Nếu CDB chưa chạy, hãy thực hiện các bước sau để khởi động nó và kiểm tra tính tương thích:
- Đặt môi trường thành
cdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
BƯỚC 6: KIỂM TRA LỖI
Sau khi khởi động cơ sở dữ liệu CDB, hãy thực hiện các bước sau để kiểm tra lỗi trong dạng PDB_PLUG_IN_VIOLATIONS
xem:
- Đặt môi trường thành
cdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
Lưu ý : Nếu có bất kỳ lỗi nào, hãy sửa chúng trước khi tiếp tục.
BƯỚC 7: KẾT NỐI VỚI CDB VÀ CẮM VÀO PDB
Thực hiện các bước sau để kết nối với CDB và cắm vào cơ sở dữ liệu PDDB12C bằng cách sử dụng tệp kê khai không phải CDB:
- Đặt môi trường thành
cdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
Lưu ý : Các tùy chọn sau được hỗ trợ và bạn có thể chọn một tùy chọn dựa trên môi trường của mình:
- COPY : Các tệp dữ liệu của dữ liệu
noncdb
vẫn còn nguyên vànoncdb
được sao chép để tạo PDB tại vị trí mới và giữ nguyên các tệp dữ liệu gốc ở vị trí ban đầu. Điều này có nghĩa là cơ sở dữ liệu noncdb vẫn hoạt động sau khi tạo PDB. - MOVE : Các tệp dữ liệu của
noncdb
được di chuyển đến một vị trí mới để tạo PDB. Trong trường hợp này,noncdb
cơ sở dữ liệu không có sẵn sau khi PDB được tạo. - NOCOPY : Các tệp dữ liệu của
noncdb
được sử dụng để tạo PDB2 và nó sử dụng cùng một vị trí vớinoncdb
. Trong trường hợp này,noncdb
cơ sở dữ liệu không có sẵn sau khi PDB được tạo.
Bạn có thể sử dụng FILE_NAME_CONVERT
tham số để chỉ định vị trí mới của các tệp dữ liệu trong khi sử dụng tùy chọn COPY hoặc MOVE .
BƯỚC 8: CHẠY TẬP LỆNH CHUYỂN ĐỔI
Sau khi hoàn thành bước 7, hãy thực hiện các bước sau để chuyển sang bộ chứa PDB và chạy tập lệnh chuyển đổi , $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
:
- Đặt môi trường thành
cdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
BƯỚC 9: KHỞI ĐỘNG PDB VÀ XÁC MINH CHẾ ĐỘ
Thực hiện các bước sau để khởi động PDB và xác minh rằng chế độ đang mở :
- Đặt môi trường thành
cdb12c
. Thực hiện lệnh sau:
Chạy đoạn mã sau tại dấu nhắc SQL:
Phần kết luận
Khi bạn chuyển đổi cơ sở dữ liệu non-CDB sang cơ sở dữ liệu pluggable CDB, bạn có thể chọn từ một số tùy chọn tùy thuộc vào kích thước của cơ sở dữ liệu.
Nếu cơ sở dữ liệu rất lớn, bạn có thể sử dụng tùy chọn NOCOPY . Điều này giảm thiểu lượng không gian thừa cần thiết và giảm thời gian cần thiết để thực hiện thao tác chuyển đổi. Các NOCOPY lựa chọn là rủi ro, tuy nhiên, bởi vì bạn không giữ tập tin cơ sở dữ liệu ban đầu nguyên vẹn. Vì vậy, nếu bạn cần khôi phục cơ sở dữ liệu về trạng thái trước đó, bạn phải khôi phục cơ sở dữ liệu bằng cách sử dụng các bản sao lưu được thực hiện trước khi hoạt động chuyển đổi.
Nếu kích thước cơ sở dữ liệu nhỏ hơn, bạn nên sử dụng tùy chọn COPY để nếu có bất kỳ vấn đề nào, việc dự phòng cho CDB cũ không đơn giản vì các tệp gốc luôn còn nguyên vẹn.
Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi.