Tôi đang cố gắng xóa một PDB trong Oracle 19.3 không còn cần thiết nữa. Tôi gặp lỗi sau:
SQL> alter pluggable database DEV_PDB close immediate instances=all;
Pluggable database altered.
SQL> alter pluggable database DEV_PDB unplug into '/tmp/DEV_PDB.xml';
alter pluggable database DEV_PDB unplug into '/tmp/DEV_PDB.xml'
*
ERROR at line 1:
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5590 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5589 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5588 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5587 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5586 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5585 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5584 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5583 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5582 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5581 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5580 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5579 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5578 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5577 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5576 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-17528: A read-only file or a file opened read-only cannot be written to:
/u01/app/oracle/oradata/DEV_PDB/data04/users01.dbf.
Hmm… thú vị. Tôi không gặp sự cố này khi thực hiện quy trình tương tự trong Oracle 12.1.0.2 (tôi đã bỏ qua 12.2 và 18).
Nhờ MOS Note 2419236.1 và một số công việc của riêng tôi (Note không khớp chính xác với vấn đề của tôi), tôi đã có thể giải quyết vấn đề. Vấn đề là PDB này đã từng là cơ sở để nhân bản PDB trong môi trường của tôi. Chúng tôi tạo một PDB trong môi trường Multitenant của mình và sao chép nó để tạo nhiều cơ sở dữ liệu thử nghiệm và nhà phát triển cho nhân viên CNTT của chúng tôi. Tôi được biết rằng trong Oracle 12.2 trở lên, Oracle sẽ thay đổi quyền đối với tệp ở cấp hệ điều hành cho bất kỳ PDB nguồn sao chép nào. Quyền đối với tệp được đặt thành chỉ đọc. Khi tôi cố gắng rút phích cắm PDB, nó cần ghi thông tin vào tiêu đề tệp dữ liệu và chúng tôi nhận được các lỗi ở trên.
Cách giải quyết là chỉ cần thay đổi quyền tệp của các tệp dữ liệu thành 640 và thử lại thao tác rút phích cắm. Cách giải quyết trong Lưu ý 2419236.1 yêu cầu thời gian chết nhưng cách giải quyết khác của tôi thì không.