10.rowid和rownum的區別
rowid和rownum都是僞列,但含義完全不同。
(1)rowid是物理地址,用於定位oracle中具體數據的物理存儲位置
(2)rownum則是sql的輸出結果排序
11.數據文件
(1)數據文件的特性:
--|每個數據文件只與一個數據庫相關聯
--|數據文件一旦建立,就不能改變其大小
--|一個表空間可以由一個或者多個數據文件組成
(2)數據文件的類型:
--|系統數據文件:系統數據
--|撤銷數據文件:撤銷記錄
--|臨時數據文件:暫存臨時文件
--|用戶數據文件:存儲用戶文件
(3)每個數據文件都有兩個序號
--|絕對文件序號:唯一標識數據庫中的數據文件
--|相對文件序號:唯一標識表空間的數據文件
(4)查看數據庫中的文件信息
--|DBA_DATA_FILES
--|V$DATAFILE
(5)建立和添加數據文件
Alter tablespace ts_zmb add datafile 'E\oracle\mydb02.dbf' size 100M
(6)改變數據文件的大小
--|更改表空間時設置文件自動增長
Alter tablespace ts_zmb
add datafile 'E\oracle\mydb02.dbf' size 100M
autoextend on next 512K
maxsize 500M
--|使該數據文件自動增長失敗
Alter database datafile 'E\oracle\mydb02.dbf'
autoextend off
--|降低數據文件的大小
Alter database datafile 'E\oracle\mydb02.dbf'
resize 300M
(7)重新命名和定位數據文件
--|爲單個表空間重新命名和定位數據文件的步驟如下:
1)將包含所需數據文件的非SYSTEM表空間脫機;
2)使用操作系統命令複製數據文件到新位置或新名稱。
3)確保新的指定文件名和老的文件名不同;
4)使用帶RENAME DATAFILE選項的SQL命令ALTER TABLESPACE修改數據庫中的該文 件。
例如,修改test03.dbf爲test04.dbf:
12.日誌文件
(1)數據修改->提交->寫入日誌文件->數據文件
--|如果沒有成功寫入數據文件,則用重做日誌文件(redo log)恢復
(2)數據大量修改導致內存空間不足->(未提交)->數據文件
--|如果沒有成功寫入數據文件,則會用undo記錄回滾未提交的記錄
(3)聯機重做日誌文件包含多個重做日誌文件組,每個日誌文件組有一個或者多個文件成員,每個成員應放在不同的磁盤上,每組的成員的內容都相同
(4)數據文件和日誌文件不應當保存在同一個磁盤上,避免因磁盤故障照成恢復困難。
(5)非歸檔模式只能保證數據庫避免實例失敗,而不能實現介質恢復。只能利用完整數據庫備份來進行恢復數據庫的操作
13.塊 (1)塊的存儲參數
--|PCTFREE該參數是一個百分數,是空閒存儲區與整個數據塊大小的比值
--|PCTUSED該參數是一個百分數,是已用存儲區與整個數據塊大小的比值
(2)對錶的塊進行修改
Alter table scott.dept
PCTRREE 20
PCTUSED 30
(3)行遷移和記錄鏈接
--|當update語句更新一條記錄時,由於塊中沒有足夠存儲空間,Oracle無法將這條記錄完全存儲到原有的塊中,這時,oracle將這條記錄全部轉移到另外一個新的塊中,但在原來的塊中留下一個指針指向新的塊,這種方式爲行遷移。
--|如果記錄太大,(如字段爲LONG或LONG RAW),一個完整的數據庫都無法保存一條記錄,Oracle將這條記錄分成較小的片段(行片段),每一個行片段放在一個塊中,通過指針鏈接所有的塊,這種方式叫記錄鏈接。
rowid和rownum都是僞列,但含義完全不同。
(1)rowid是物理地址,用於定位oracle中具體數據的物理存儲位置
(2)rownum則是sql的輸出結果排序
11.數據文件
(1)數據文件的特性:
--|每個數據文件只與一個數據庫相關聯
--|數據文件一旦建立,就不能改變其大小
--|一個表空間可以由一個或者多個數據文件組成
(2)數據文件的類型:
--|系統數據文件:系統數據
--|撤銷數據文件:撤銷記錄
--|臨時數據文件:暫存臨時文件
--|用戶數據文件:存儲用戶文件
(3)每個數據文件都有兩個序號
--|絕對文件序號:唯一標識數據庫中的數據文件
--|相對文件序號:唯一標識表空間的數據文件
(4)查看數據庫中的文件信息
--|DBA_DATA_FILES
--|V$DATAFILE
(5)建立和添加數據文件
Alter tablespace ts_zmb add datafile 'E\oracle\mydb02.dbf' size 100M
(6)改變數據文件的大小
--|更改表空間時設置文件自動增長
Alter tablespace ts_zmb
add datafile 'E\oracle\mydb02.dbf' size 100M
autoextend on next 512K
maxsize 500M
--|使該數據文件自動增長失敗
Alter database datafile 'E\oracle\mydb02.dbf'
autoextend off
--|降低數據文件的大小
Alter database datafile 'E\oracle\mydb02.dbf'
resize 300M
(7)重新命名和定位數據文件
--|爲單個表空間重新命名和定位數據文件的步驟如下:
1)將包含所需數據文件的非SYSTEM表空間脫機;
2)使用操作系統命令複製數據文件到新位置或新名稱。
3)確保新的指定文件名和老的文件名不同;
4)使用帶RENAME DATAFILE選項的SQL命令ALTER TABLESPACE修改數據庫中的該文 件。
例如,修改test03.dbf爲test04.dbf:
12.日誌文件
(1)數據修改->提交->寫入日誌文件->數據文件
--|如果沒有成功寫入數據文件,則用重做日誌文件(redo log)恢復
(2)數據大量修改導致內存空間不足->(未提交)->數據文件
--|如果沒有成功寫入數據文件,則會用undo記錄回滾未提交的記錄
(3)聯機重做日誌文件包含多個重做日誌文件組,每個日誌文件組有一個或者多個文件成員,每個成員應放在不同的磁盤上,每組的成員的內容都相同
(4)數據文件和日誌文件不應當保存在同一個磁盤上,避免因磁盤故障照成恢復困難。
(5)非歸檔模式只能保證數據庫避免實例失敗,而不能實現介質恢復。只能利用完整數據庫備份來進行恢復數據庫的操作
13.塊 (1)塊的存儲參數
--|PCTFREE該參數是一個百分數,是空閒存儲區與整個數據塊大小的比值
--|PCTUSED該參數是一個百分數,是已用存儲區與整個數據塊大小的比值
(2)對錶的塊進行修改
Alter table scott.dept
PCTRREE 20
PCTUSED 30
(3)行遷移和記錄鏈接
--|當update語句更新一條記錄時,由於塊中沒有足夠存儲空間,Oracle無法將這條記錄完全存儲到原有的塊中,這時,oracle將這條記錄全部轉移到另外一個新的塊中,但在原來的塊中留下一個指針指向新的塊,這種方式爲行遷移。
--|如果記錄太大,(如字段爲LONG或LONG RAW),一個完整的數據庫都無法保存一條記錄,Oracle將這條記錄分成較小的片段(行片段),每一個行片段放在一個塊中,通過指針鏈接所有的塊,這種方式叫記錄鏈接。