[20121227]v$datafile訪問是從資料檔案獲取資訊嗎.txt
[20121227]v$datafile訪問是從資料檔案獲取資訊嗎.txt
記得以前開始學習oracle的時候,被問及訪問v$datafile從哪裡獲取資訊,當時想都沒想,從資料檔案.
雖然當時對方並沒有告訴答案,顯然認為水平不再同一檔次上.
直到有一次看一篇blog:
SELECT 'controlfile' "SCN location", 'SYSTEM checkpoint' NAME, checkpoint_change#
FROM v$database
UNION
SELECT 'file in controlfile', NAME, checkpoint_change#
FROM v$datafile
WHERE NAME LIKE '%users01%'
UNION
SELECT 'file header', NAME, checkpoint_change#
FROM v$datafile_header
WHERE NAME LIKE '%users01%';
實際上當我拿這個問題問初學者,許多的回答跟我當時一樣.為了加強理解自己做一些例子來說明:
測試很簡單,關閉資料庫,將表空間users對應的資料檔案改名,啟動資料庫到mount狀態,執行前面的指令碼:
$ mv users01.dbf users01.dbf.xxx
SQL> startup mount
ORACLE instance started.
Total System Global Area 2137886720 bytes
Fixed Size 2215064 bytes
Variable Size 1728054120 bytes
Database Buffers 402653184 bytes
Redo Buffers 4964352 bytes
Database mounted.
SQL> column name format a50
SQL> SELECT 'controlfile' "SCN location", 'SYSTEM checkpoint' NAME, checkpoint_change#
UNION
SELECT 'file header', NAME, checkpoint_change#
FROM v$database
UNION
SELECT 'file in controlfile', NAME, checkpoint_change#
FROM v$datafile
WHERE NAME LIKE '%users01%'
UNION
SELECT 'file header', NAME, checkpoint_change#
FROM v$datafile_header
WHERE NAME LIKE '%users01%';
--如果v$datafile從資料檔案獲得,已經檔案改名,應該無法獲取資訊,而現在可以查詢到,至少說明不是從資料檔案獲取的.
--實際上資料檔案的SCN是從v$datafile_header獲取的.
--如果你把資料檔案全部移走.依舊可以訪問v$datafile檢視.
記得以前開始學習oracle的時候,被問及訪問v$datafile從哪裡獲取資訊,當時想都沒想,從資料檔案.
雖然當時對方並沒有告訴答案,顯然認為水平不再同一檔次上.
直到有一次看一篇blog:
SELECT 'controlfile' "SCN location", 'SYSTEM checkpoint' NAME, checkpoint_change#
FROM v$database
UNION
SELECT 'file in controlfile', NAME, checkpoint_change#
FROM v$datafile
WHERE NAME LIKE '%users01%'
UNION
SELECT 'file header', NAME, checkpoint_change#
FROM v$datafile_header
WHERE NAME LIKE '%users01%';
實際上當我拿這個問題問初學者,許多的回答跟我當時一樣.為了加強理解自己做一些例子來說明:
測試很簡單,關閉資料庫,將表空間users對應的資料檔案改名,啟動資料庫到mount狀態,執行前面的指令碼:
$ mv users01.dbf users01.dbf.xxx
SQL> startup mount
ORACLE instance started.
Total System Global Area 2137886720 bytes
Fixed Size 2215064 bytes
Variable Size 1728054120 bytes
Database Buffers 402653184 bytes
Redo Buffers 4964352 bytes
Database mounted.
SQL> column name format a50
SQL> SELECT 'controlfile' "SCN location", 'SYSTEM checkpoint' NAME, checkpoint_change#
UNION
SELECT 'file header', NAME, checkpoint_change#
FROM v$database
UNION
SELECT 'file in controlfile', NAME, checkpoint_change#
FROM v$datafile
WHERE NAME LIKE '%users01%'
UNION
SELECT 'file header', NAME, checkpoint_change#
FROM v$datafile_header
WHERE NAME LIKE '%users01%';
SCN location NAME CHECKPOINT_CHANGE#
------------------- -------------------------------------------------- ------------------
controlfile SYSTEM checkpoint 3010736324
file in controlfile /u01/app/oracle11g/oradata/test/users01.dbf 3010736324
--如果v$datafile從資料檔案獲得,已經檔案改名,應該無法獲取資訊,而現在可以查詢到,至少說明不是從資料檔案獲取的.
--實際上資料檔案的SCN是從v$datafile_header獲取的.
SQL> column name format a50
SQL> select file#,status, CHECKPOINT_CHANGE#,name from v$datafile_header;
FILE# STATUS CHECKPOINT_CHANGE# NAME
---------- ------- ------------------ --------------------------------------------------
1 ONLINE 3010736324 /u01/app/oracle11g/oradata/test/system01.dbf
2 ONLINE 3010736324 /u01/app/oracle11g/oradata/test/sysaux01.dbf
3 ONLINE 3010736324 /u01/app/oracle11g/oradata/test/undotbs01.dbf
4 ONLINE 0
5 ONLINE 3010736324 /u01/app/oracle11g/oradata/test/example01.dbf
6 ONLINE 3010736324 /u01/app/oracle11g/oradata/test/rman01.dbf
7 ONLINE 3010736324 /u01/app/oracle11g/oradata/test/tools01.dbf
8 ONLINE 3010736324 /u01/app/oracle11g/oradata/test/test01.dbf
8 rows selected.
--如果你把資料檔案全部移走.依舊可以訪問v$datafile檢視.
SQL> select file#,TS#, RFILE#, STATUS ,NAME, CHECKPOINT_CHANGE# from v$datafile ;
FILE# TS# RFILE# STATUS NAME CHECKPOINT_CHANGE#
---------- ---------- ---------- ------- -------------------------------------------------- ------------------
1 0 1 SYSTEM /u01/app/oracle11g/oradata/test/system01.dbf 3010736324
2 1 2 ONLINE /u01/app/oracle11g/oradata/test/sysaux01.dbf 3010736324
3 2 3 ONLINE /u01/app/oracle11g/oradata/test/undotbs01.dbf 3010736324
4 4 4 ONLINE /u01/app/oracle11g/oradata/test/users01.dbf 3010736324
5 6 5 ONLINE /u01/app/oracle11g/oradata/test/example01.dbf 3010736324
6 7 6 ONLINE /u01/app/oracle11g/oradata/test/rman01.dbf 3010736324
7 8 7 ONLINE /u01/app/oracle11g/oradata/test/tools01.dbf 3010736324
8 9 8 ONLINE /u01/app/oracle11g/oradata/test/test01.dbf 3010736324
8 rows selected.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-751785/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- v$datafile&v$datafile_header,oracle 備份恢復時,查詢資料檔案資訊HeaderOracle
- 獲取資料庫bak檔案資訊資料庫
- 從資料字典中獲取ash資訊
- 第十四篇:獲取系統資料檔案資訊
- nodejs獲取檔案資訊,判斷是檔案或目錄NodeJS
- oracle_bbed.Datafile.Header_System.資料檔案頭資訊OracleHeader
- Python 獲取檔案建立、訪問、修改時間Python
- Request.ServerVariables,C#獲取伺服器資訊,C#獲取訪問資訊ServerC#伺服器
- 從網路裡面獲取資料寫入到檔案
- win10如何獲取檔案訪問許可權_win10怎麼獲取許可權看資料夾Win10訪問許可權
- 通過web url獲取檔案資訊Web
- Laravel file 上傳檔案資訊獲取Laravel
- laravel file上傳檔案資訊獲取Laravel
- 【CORE】在UNIX環境下從核心檔案獲取堆疊資訊
- 輕鬆找到並檢視織夢CMS的資料庫配置檔案,從而獲取資料庫連線資訊資料庫
- java 獲取資料夾大小、檔案大小、檔案個數Java
- oracle 資料檔案(Datafile ) 大小 限制 說明Oracle
- datafile.sql 檢視資料檔案和臨時檔案SQL
- 使用PHP獲取影像檔案的EXIF資訊PHP
- Python訪問Oracle的兩種資料獲取方式PythonOracle
- 針對從資料庫中獲取資訊出現部分null值和druid配置檔案{dataSource-1} init error問題資料庫NullUIError
- 怎樣從ipa格式檔案獲取資源圖片
- [20170221]資料檔案與檔案系統快取.txt快取
- 從session中獲取資料Session
- Java Web後臺從request裡面獲取的資料是亂碼問題JavaWeb
- java 讀取.txt檔案時,注意的問題Java
- 利用WinAPI(GetFileVersionInfo)獲取檔案版本資訊API
- 多例項訪問同一組資料檔案
- c#資料操作:資料庫訪問 和 檔案操作C#資料庫
- 獲取資料夾及其子資料夾下的所有檔案
- c++ 獲取檔案建立時間、修改時間、訪問時間、檔案內容長度C++
- openfiledialog 使用 讀取txt檔案 StreamReader 檢驗資料
- Cookie 獲取訪問時間Cookie
- Windows 11 資料夾訪問被拒絕,如何奪取檔案許可權Windows
- 你知道怎麼從jar包裡獲取一個檔案的內容嗎JAR
- 利用offline datafile檔案方式遷移資料
- php如何上傳txt檔案,並且讀取txt檔案PHP
- Sql server:從XML檔案中讀取配置資訊SQLServerXML