Oracle

Oracle 11G 中實例啟動但數據庫未掛載時可以查詢哪些視圖?

  • March 19, 2017

如果我理解正確,當實例啟動時,一些視圖被載入到記憶體中,我們可以像v$instance. 而且它不需要安裝 db 。

如果是這樣,除了?還有其他可以查詢的視圖v$instance嗎?

另外,當我查詢時v$database,它說數據庫未安裝,但當我嘗試給出隨機名稱時出現不同的錯誤。它只是視圖名稱的不同錯誤處理v$database(因為它似乎被認為是重要的或已知的數據庫)或任何其他原因?

SQL> select * from v$database;
select * from v$database
             *
ERROR at line 1:
ORA-01507: database not mounted


SQL> select * from v$data;
select * from v$data
             *
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only


SQL> select * from testing;
select * from testing
             *
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only

更新:

似乎以下觀點也有效:v$session, v$sql.

問的原因是我只是想實際了解每個視圖或數據庫表的範圍和用途。

一般來說,大多數動態性能視圖,稱為V$視圖,它們填充在記憶體中,具體來說是SGA,在實例啟動過程之後可以訪問。如果這些V$視圖包含儲存在物理文件(如控製文件或數據文件)中的資訊,則必須安裝和/或打開您的數據庫。

例如,當您的數據庫實例已啟動但數據庫已解除安裝時,您可以描述v$database視圖但在安裝數據庫之前無法訪問其內容。這是因為視圖必須從控製文件中獲取資訊,這些資訊在安裝數據庫之前是不可訪問的。

SQL> startup nomount

Instance is started.

SQL> desc v$database

Can view the structure becuase it is pupulated in SGA.

SQL> select * from v$database;
select * from v$database
             *
ERROR at line 1:
ORA-01507: database not mounted


SQL> alter database mount;

Database altered.

SQL> select * from v$database;

Now, you may access it's contents.

v$instance實例啟動後可訪問。顧名思義,它包含與記憶體和程序相關的資訊。

引用自:https://dba.stackexchange.com/questions/161062