Tôi có cơ sở dữ liệu Oracle 12.1.0.2 Multitenant mà tôi đang cố gắng xóa PDB khỏi đó. Tuy nhiên, tôi đã xóa nhầm bộ nhớ khỏi máy chủ cơ sở dữ liệu và PDB không thể truy cập các tệp của nó. Khi rút phích cắm PDB, tôi gặp lỗi sau:
SQL> alter pluggable database GOLD2019_08_22_125953 unplug into '/tmp/GOLD2019_08_22_125953.xml';
alter pluggable database GOLD2019_08_22_125953 unplug into '/tmp/GOLD2019_08_22_125953.xml'
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 50277 - see DBWR trace file
ORA-01110: data file 50277:
'/u01/app/oracle/oradata/mt_golden_2019_08_22_125953/data03/datafile_20.dbf'
Điều đó thật đáng tiếc nhưng có thể xảy ra trong trường hợp của tôi. Tôi đã rút nhầm bộ lưu trữ cho PDB này trước khi tôi rút phích cắm. Hầu hết các tài liệu trên trang web hỗ trợ của Oracle đều nói rằng hãy khôi phục PDB từ bản sao lưu của bạn. Nhưng PDB này là một bản sao của sản xuất và tôi không quan tâm đến việc sao lưu nó. Nó là 25 + TB và nếu có vấn đề gì xảy ra với nó, tôi sẽ xóa PDB và tạo một bản sao sản xuất mới. Không cần sao lưu ngoại trừ có thể cứu tôi khỏi sai lầm ngớ ngẩn của tôi khi xóa bộ nhớ trước khi rút phích cắm.
Vì tôi không thể rút phích cắm PDB, tôi đã cố gắng chỉ thả PDB nhưng tôi gặp lỗi khác:
SQL> drop pluggable database GOLD2019_08_22_125953 keep datafiles;
drop pluggable database GOLD2019_08_22_125953 keep datafiles
*
ERROR at line 1:
ORA-65179: cannot keep datafiles for a pluggable database that is not unplugged
Bây giờ tôi cảm thấy như thể tôi đang ở trong một tình huống Catch-22. Tôi không thể rút phích cắm của PDB cũng như không thể thả nó.
Tôi đã gặp lỗi này nhiều lần và luôn ước mình có thể làm rơi PDB mà không cần phải rút phích cắm trước. Tôi không muốn cắm cái này vào một CDB khác. Tôi chỉ muốn mọi thứ diễn ra tốt đẹp. Và đó là khi tôi nhận ra rằng nó nằm trong chi tiết. Khi tôi đọc thông báo lỗi ORA-65179 đó, tôi đã tập trung vào phần sau của nó. Đầu tiên, PDB không được rút phích cắm. Tôi đã đọc thông báo lỗi này ít nhất 20 lần trong quá trình làm việc với Multitenant và tôi đã bỏ lỡ chi tiết quan trọng khiến tôi không thể đánh rơi PDB mà bây giờ tôi sẽ đánh dấu bên dưới.
ORA-65179:không thể giữ lại các tệp dữ liệu cho cơ sở dữ liệu có thể cắm được chưa được rút phích cắm
Chi tiết tôi tiếp tục bỏ qua là tôi không thể GIỮ các tệp dữ liệu. Điều đó có nghĩa là tôi có thể bỏ PDB nếu tôi cũng xóa các tệp dữ liệu?
SQL> drop pluggable database GOLD2019_08_22_125953 including datafiles; Pluggable database dropped.
Chắc chắn, tôi có thể dễ dàng đánh rơi PDB. Đôi khi, những điều thú vị nhất được tìm thấy trong các chi tiết nếu chúng ta chỉ chậm lại một chút và đảm bảo rằng chúng ta nhìn thấy mọi thứ trước mắt thay vì nhảy đến cùng.