В чем разница между 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.

Другие вопросы по тегам