Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Ada Dalam Detailnya

Saya memiliki database Oracle 12.1.0.2 Multitenant yang saya coba hapus dari PDB. Namun, saya keliru menghapus penyimpanan dari server database dan PDB tidak dapat mengakses file-nya. Saat mencabut PDB, saya mendapatkan kesalahan berikut:

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'

Yah itu sangat disayangkan tetapi untuk diharapkan dalam kasus saya. Saya salah mencabut penyimpanan untuk PDB ini sebelum saya mencabutnya. Sebagian besar literatur di situs dukungan Oracle mengatakan untuk memulihkan PDB dari cadangan Anda. Tapi PDB ini adalah tiruan dari produksi dan saya tidak peduli untuk mencadangkannya. Ini adalah 25+TB dan jika terjadi kesalahan, saya menghapus PDB dan membuat klon produksi baru. Tidak ada cadangan yang diperlukan kecuali mungkin untuk menyelamatkan saya dari kesalahan konyol saya menghapus penyimpanan sebelum mencabut.

Karena saya tidak dapat mencabut PDB, saya mencoba untuk melepaskan PDB tetapi saya mendapatkan kesalahan yang berbeda:

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

Sekarang saya merasa seperti berada dalam situasi Catch-22. Saya tidak dapat mencabut PDB dan juga tidak dapat menjatuhkannya.

Saya telah melihat kesalahan ini pada banyak kesempatan dan selalu berharap saya bisa menjatuhkan PDB tanpa harus mencabutnya terlebih dahulu. Saya tidak punya keinginan untuk menghubungkan ini ke CDB lain. Aku hanya ingin hal itu pergi untuk selamanya. Dan saat itulah saya menyadari bahwa itu ada dalam detailnya. Ketika saya membaca pesan kesalahan ORA-65179 itu, saya fokus pada bagian terakhirnya. PDB tidak dicabut terlebih dahulu. Saya telah membaca pesan kesalahan ini setidaknya 20 kali dalam pekerjaan saya dengan Multitenant dan saya melewatkan detail penting yang menghentikan saya dari menjatuhkan PDB yang sekarang akan saya soroti di bawah ini.

ORA-65179:tidak dapat menjaga file data untuk database pluggable yang tidak dicabut

Rincian yang terus saya lewati adalah bahwa saya tidak dapat MENYIMPAN file data. Apakah itu berarti saya dapat menghapus PDB jika saya juga menghapus file data?

SQL> drop pluggable database GOLD2019_08_22_125953 including datafiles;

 Pluggable database dropped. 

Benar saja, saya dapat dengan mudah menjatuhkan PDB. Terkadang, hal yang paling menarik ditemukan dalam detailnya jika kita memperlambat sedikit dan memastikan bahwa kita melihat semua yang ada di depan kita alih-alih melompat ke akhir.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan string berisi fungsi dalam kueri SQL Oracle

  2. Sql*plus selalu mengembalikan kode keluar 0?

  3. Contoh Oracle Dynamic SQL untuk Menyisipkan Catatan Menggunakan DBMS_SQL

  4. Perbedaan antara pengguna dan skema di Oracle?

  5. FLOOR() Fungsi di Oracle