DBAtlas · Veritabanı operasyon atlası

PDB'yi unplug et ve başka (veya aynı) CDB'ye plug et

OracleMultitenant

Komut

-- KAYNAK CDB: kapat ve XML manifest'e unplug et
ALTER PLUGGABLE DATABASE <pdb> CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE <pdb> UNPLUG INTO '/u01/stage/<pdb>.xml';
-- (Tek dosya arsivi: UNPLUG INTO '/u01/stage/<pdb>.pdb' - datafile'lar dahil, 12.2+)
DROP PLUGGABLE DATABASE <pdb> KEEP DATAFILES;

-- HEDEF CDB: once uyumlulugu kontrol et
SET SERVEROUTPUT ON
DECLARE
  l_ok BOOLEAN;
BEGIN
  l_ok := DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
            pdb_descr_file => '/u01/stage/<pdb>.xml',
            pdb_name       => '<pdb>');
  DBMS_OUTPUT.PUT_LINE(CASE WHEN l_ok THEN 'COMPATIBLE' ELSE 'NOT COMPATIBLE - see PDB_PLUG_IN_VIOLATIONS' END);
END;
/
SELECT name, cause, type, status, message
FROM   pdb_plug_in_violations
WHERE  name = UPPER('<pdb>') AND status <> 'RESOLVED';

-- Dosyalar yerinde kaliyorsa NOCOPY, baska konuma kopyalanacaksa COPY FILE_NAME_CONVERT:
CREATE PLUGGABLE DATABASE <pdb> USING '/u01/stage/<pdb>.xml' NOCOPY TEMPFILE REUSE;
-- .pdb arsivinden: CREATE PLUGGABLE DATABASE <pdb> USING '/u01/stage/<pdb>.pdb'
--                    FILE_NAME_CONVERT = ('/u01/stage/', '/u02/oradata/<cdb>/<pdb>/');
ALTER PLUGGABLE DATABASE <pdb> OPEN;

Ne yapar?

PDB'yi CDB'den ayırıp meta verisini XML manifest'e (veya datafile'larla birlikte tek .pdb arşivine) yazar; hedef CDB'de uyumluluk kontrolünden sonra aynı dosyalarla yeniden takar.

Ne zaman kullanılır?

PDB'yi aynı sunucudaki daha yeni sürümlü CDB'ye taşımak (unplug/plug upgrade), CDB konsolidasyonu veya ağ üzerinden klonun mümkün olmadığı taşımalar için.

Dikkat

Unplug sonrası PDB kaynak CDB'de kullanılamaz (kesinti). NOCOPY ile plug edilen dosyalar artık hedef CDB'ye aittir; hata durumunda geri dönüş için önce dosya seviyesinde kopya veya RMAN yedeği al. ERROR tipindeki violation'lar çözülmeden PDB RESTRICTED açılır. Aynı CDB'ye geri takarken AS CLONE kullanmazsan aynı GUID ile çakışma olabilir.

DBAtlas'ta aç →

İlgili