Открыть PDB и сохранить их открытыми при перезапусках CDB (SAVE STATE)
OracleMultitenantКоманда
-- Open all PDBs (RAC: INSTANCES = ALL):
ALTER PLUGGABLE DATABASE ALL OPEN;
-- ALTER PLUGGABLE DATABASE <pdb> OPEN INSTANCES = ALL;
-- Save the current open state (opens automatically after a CDB restart):
ALTER PLUGGABLE DATABASE <pdb> SAVE STATE;
-- Saved states:
SELECT con_name, instance_name, state, restricted FROM dba_pdb_saved_states;
-- Remove the saved state:
ALTER PLUGGABLE DATABASE <pdb> DISCARD STATE;
-- If it opens RESTRICTED, find the reason:
SELECT name, cause, type, message
FROM pdb_plug_in_violations
WHERE status <> 'RESOLVED';Что делает
Открывает PDB в режиме READ WRITE и сохраняет текущее состояние открытия, чтобы при перезапуске CDB PDB автоматически открывалась в том же режиме.
Когда использовать
После создания, подключения или клонирования PDB; когда замечено, что PDB остаются в MOUNTED после перезапуска CDB.
Внимание
SAVE STATE фиксирует состояние на момент выполнения команды: если запустить её при закрытой PDB, будет записано состояние "closed" (или запись будет удалена). В RAC состояние хранится для каждого экземпляра; при управлении через сервисы (сервисы PDB через srvctl) запуск через Clusterware предпочтительнее SAVE STATE. На standby Data Guard режим открытия зависит от роли.
Связанные материалы
- Создать новую PDB из PDB$SEED
- Клонировать PDB в пределах той же CDB (локальный / горячий клон)
- Клонировать PDB из другой CDB через DB link (удалённый клон)
- Отключить PDB (unplug) и подключить её к другой (или той же) CDB
- Задать для каждой PDB лимиты CPU, памяти, I/O и хранилища
- Проверить, в каком контейнере вы находитесь, и запросить все PDB из root (CDB_ / CONTAINERS)