Tôi đang cố gắng cắm một không phải CDB vào môi trường Multitenant mới của chúng tôi khi chúng tôi chuyển sang Multitenant. Tôi sẽ tạo một hình ảnh vàng của sản xuất không phải CDB của chúng tôi và sau đó tất cả các cơ sở dữ liệu dành cho nhà phát triển và thử nghiệm sẽ chỉ là bản sao của hình ảnh vàng. Nhưng trước tiên, tôi cần cắm ổ đĩa không phải CDB. Tôi có ảnh chụp nhanh của đĩa được gắn vào máy chủ cơ sở dữ liệu Multitenant. Tôi cũng đã tạo tệp XML và tôi đã sẵn sàng cắm tệp không phải CDB bằng lệnh này:
CREATE PLUGGABLE DATABASE gold180904 USING '/home/oracle/source_db.xml' NOCOPY SOURCE_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/data01', '/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data01', '/u01/app/oracle/oradata/data02','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data02', '/u01/app/oracle/oradata/data03','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data03', '/u01/app/oracle/oradata/data04','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data04') TEMPFILE REUSE;
Thật không may, tôi đã gặp phải lỗi sau:
CREATE PLUGGABLE DATABASE gold180904 * ERROR at line 1: ORA-65139: Mismatch between XML metadata file and data file /u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data03/datafile12.dbf for value of rdba (4194824 in the plug XML file, 4458552 in the data file)
Trong nghiên cứu của tôi, lỗi ORA-65139 thường thấy khi tệp XML được tạo với cơ sở dữ liệu mở dưới dạng ĐỌC VIẾT. Nhưng thực tế là tôi biết rằng cơ sở dữ liệu của tôi CHỈ ĐƯỢC ĐỌC khi tệp XML được tạo. Furhtermore, tất cả các vấn đề tương tự mà tôi tìm thấy trên MOS và trong các tìm kiếm của Google đều có "giá trị của fcpsb" trong khi dòng cuối cùng của thông báo lỗi của tôi cho biết "giá trị của rdba". Tôi không chắc RDBA phải làm gì với điều này và cả hai giá trị trong thông báo lỗi đều không ánh xạ đến danh sách tệp dữ liệu trong thông báo. Vì vậy, đây là một điều khó hiểu đối với tôi.
Sau khi thử một số cách khác nhau, tôi quyết định chạy kiểm tra tính tương thích của plugin.
DECLARE compatible BOOLEAN; BEGIN compatible:=DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file=>'/home/oracle/source_db.xml', pdb_name=>'GOLD180904'); END; /
Khi truy vấn PDB_PLUG_IN_VIOLATIONS, một dòng có lỗi. Thông điệp của nó trong quan điểm đó cho biết:
Gói PSU bản vá 180717 (CẬP NHẬT THIẾT LẬP CƠ SỞ DỮ LIỆU 12.1.0.2.180717):Được cài đặt trong PDB nhưng không được cài đặt trong CDB.
Điều này bây giờ có ý nghĩa hơn. Cơ sở dữ liệu nguồn là một môi trường sản xuất với PSU mới nhất được áp dụng. CDB là thương hiệu mới và vẫn chưa thấy bất kỳ bản vá lỗi nào. Tôi đã áp dụng PSU mới nhất cho CDB và hoạt động plugin đã hoạt động thành công trong lần thử tiếp theo.
Cuối cùng, rõ ràng thông báo lỗi không liên quan gì đến nguyên nhân gốc rễ của vấn đề. Ít nhất thì không đối với tôi.