數據文件DataFile ②
?
??? 昨天學習了之后,今天關于DataFile就沒什么內容可以講的了。主要就是datafile的修改和一些參數的查詢問題了,簡單了解一下。
?
?
一、DataFile的重命名和重定位
?
??? 1、單個TableSpace的DataFile重命名及重定位
?
??? 重命名步驟:
?
??? ① 使包含該DataFile的非SYSTEM TableSpace脫機
??????? ALTER TABLESPACE users OFFLINE NOEMAL;
??? ② 利用操作系統重命名DataFile
??? ③ 使用ALTER TABLESPACE RENAME DATAFILE語句改文件名
??????? ALTER TABLESPACE users
??????? RENAME DATAFILE '/u02/oracle/rbdb1/user1.dbf','/u02/oracle/rbdb1/user2.dbf'
??????? TO '/u02/oracle/rbdb1/users01.dbf','/u02/oracle/rbdb1/users02.dbf';
??? ④ 備份數據庫
?
??? 注:重定位的操作基本上與重命名相同,即在改變名稱的基礎上也通過操作系統改變了位置。
?
??? 2、多個TableSpace中的DataFile重命名和重定位
?
??? ① 確保數據庫被裝載,但是關閉(必須關閉,與單TableSpace不同)
??? ② 利用操作系統重命名及重定位DataFile
??? ③ 使用ALTER DATABASE命令
??????? ALTER DATABASE
??????? RENAME FILE '/u02/oracle/rbdb1/sort01.dbf','/u02/oracle/rbdb1/user3.dbf'
??????? TO '/u02/oracle/rbdb1/temp01.dbf','/u02/oracle/rbdb1/users03.dbf';
??? ④ 備份數據庫
?
?
二、驗證DataFile中的數據塊
?
??? 如果需要配置Oracle來校驗數據塊,則需要將DB_BLOCK_CHECHSUM參數項設置為TRUE
?
??? 注:DB_BLOCK_CHECHSUM的默認值是FALSE,但可以動態改變。
?
??? 工作過程:
當啟用塊校驗時,Oracle為每個寫到磁盤的塊計算校驗和,包括臨時塊。DBWn為每個塊計算校驗和后,將其存儲在塊的頭部,下一次Oracle讀一個數據塊時,使用它來校驗和檢測塊中的訛誤,若有錯誤則返回ORA-01578,并將錯誤信息寫入跟蹤文件
?
?
三、查看數據文件信息
?
??? DBA_DATA_FILES:每個數據文件的說明信息,包括所屬表空間和文件標識
??? DBA_EXTENTS:組成數據庫中所有段的盤區,包括盤區的數據文件標識
??? DBA_FREE_SPACE:表空間中的空閑盤區,包含該盤區的數據文件標識
??? V$DATAFILE:來自控制文件的數據文件信息
??? V$DATAFILE_HEADER:包括來自數據文件頭部的信息
?
??? SELECT NAME, FILE#, STATUS, CHECKPOINT_CHANGE# "CHECKPOINT"
????? FROM V$DATAFILE;
?
??? NAME:數據文件全名
??? FILE#:文件號
??? STATUS:SYSTEM表空間的DataFile直接標SYSTEM,其他則標ONLINE|OFFLINE(RECOVER)
??? CHECKPOINT_CHANGE#:最近的檢測點寫入的最終SCN
?