PDB'yi aynı CDB içinde klonla (local / hot clone)
OracleMultitenantKomut
-- Hot clone on kosullari: local undo + ARCHIVELOG
SELECT property_value AS local_undo
FROM database_properties WHERE property_name = 'LOCAL_UNDO_ENABLED';
SELECT log_mode FROM v$database;
CREATE PLUGGABLE DATABASE <new_pdb> FROM <pdb>
FILE_NAME_CONVERT = ('/<pdb>/', '/<new_pdb>/');
-- OMF/ASM: CREATE PLUGGABLE DATABASE <new_pdb> FROM <pdb> CREATE_FILE_DEST = '+DATA';
ALTER PLUGGABLE DATABASE <new_pdb> OPEN;
SELECT name, open_mode FROM v$pdbs WHERE name = UPPER('<new_pdb>');Ne yapar?
Kaynak PDB'nin datafile'larını kopyalayarak aynı CDB'de yeni bir PDB oluşturur; local undo ve ARCHIVELOG ile kaynak read-write açıkken (hot clone) yapılabilir.
Ne zaman kullanılır?
Üretim PDB'sinden test/geliştirme kopyası, upgrade veya patch provası, riskli değişiklik öncesi hızlı kopya almak için.
Dikkat
Kopyalama süresince kaynakta ek I/O oluşur ve hedefte kaynak kadar alan gerekir. Shared undo modunda veya NOARCHIVELOG'da kaynak READ ONLY olmalıdır (19c dokümantasyonu). Klon üretim verisi içerir: maskeleme, DB link'ler, job'lar (DBMS_SCHEDULER) ve dış sistem bağlantıları açılmadan önce kontrol edilmeli.
İlgili
- PDB$SEED'den yeni PDB oluştur
- PDB'yi başka bir CDB'den DB link üzerinden klonla (remote clone)
- PDB'yi unplug et ve başka (veya aynı) CDB'ye plug et
- PDB'leri aç ve CDB yeniden başlatıldığında açık kalmasını sağla (SAVE STATE)
- PDB başına CPU, bellek, I/O ve depolama sınırı koy
- Hangi container'da olduğunu doğrula ve tüm PDB'leri root'tan sorgula (CDB_ / CONTAINERS)