В чем разница между v $ pdbs и dba_pdbs в Oracle?
Я новичок в подключаемых базах данных и озадачен просмотром словаря DBA_PDBS
а также V$PDBS
. В чем разница? Документация тоже бесполезна:
V$PDBS
отображает информацию о PDB, связанных с текущим экземпляром. 1
SELECT * FROM v$pdbs;
CON_ID NAME OPEN_MODE ...
2 PDB$SEED READ ONLY
3 XEPDB1 READ WRITE
DBA_PDBS
описывает PDB, принадлежащие данной CDB. 2
SELECT * FROM dba_pdbs;
PDB_ID PDB_NAME STATUS ...
2 PDB_SEED NORMAL
3 XEPDB1 NORMAL
Внутри V$PDBS
похоже, основан на SYS.X$CON
, пока DBA_PDBS
основан на SYS.CONTAINERS$
.
1 ответ
Есть аналогичные случаи с V$DATAFILE против DBA_DATA_FILES или V$TABLESPACE против DBA_TABLESPACES: в этом случае данные этих представлений считываются из управляющих файлов базы данных и, вероятно, являются избыточными для целей восстановления / восстановления (т.е. когда табличное пространство SYSTEM еще не доступно, DBAxxx представления отсутствуют, но когда экземпляр базы данных должен работать с файлами данных и табличными пространствами). Вероятно, по той же причине, что у нас есть V$PDBS в дополнение к DBA_PDBS.