Oracle

Oracle 數據庫創建的下一步是什麼?創建模式還是創建表空間?

  • April 30, 2013

我是一名程序員,我一個人帶著我命名為 Wilson 的排球被扔到 DBA/Sysadmin 島。我正在努力在這裡生存。

我應該為應用程序創建一個數據庫。之前將執行它的伺服器有一個非常相似的應用程序的數據庫。我對 Oracle 了解不多,所以我重用了 ZFS 文件系統並將它們的創建方式留給了它們(因為老實說,我不知道為什麼要這樣創建它們,但我很確定這是有充分理由的) .

app/oradata_smart_ora1    858M  12.2G   858M  /oradata/SMART/ora1
app/oradata_smart_ora2   7.18M  18.0G  7.18M  /oradata/SMART/ora2
app/oradata_smart_ora3   7.18M  36.0G  7.18M  /oradata/SMART/ora3
app/oradata_smart_ora4   60.6K   400G  60.6K  /oradata/SMART/ora4
app/oradata_smart_redo1   400M  2.61G   400M  /oradata/SMART/redo1
app/oradata_smart_redo2   200M  2.80G   200M  /oradata/SMART/redo2
app/oradata_smart_redo3   200M  2.80G   200M  /oradata/SMART/redo3

由於我重用了文件系統,因此我創建了數據庫並將控製文件放在舊數據庫文件所在的相同位置(/oradata/SMART/ora1、/oradata/SMART/ora2、/oradata/SMART/ora3)。像 MySQL 一樣思考,我app/oradata_smart_ora4 60.6K 400G 60.6K /oradata/SMART/ora4專門創建了在那裡儲存數據庫。

數據庫啟動和掛載沒有問題。現在是我卡住的地方。我讀過這個這個這個這個這個等等,但我仍然有疑問。

請注意,該伺服器將在其整個生命週期內管理數百萬/十億條記錄。

  1. 現在我的數據庫已創建,下一步是什麼?創建模式或表空間?
  2. 表空間問題:表空間數據文件是儲存表中實際數據的地方嗎?需要多少?預設還是臨時?我需要多少空間?自動擴展?

對於所有這些問題,我真的很抱歉,但我真的想在遵循 Oracle 最佳實踐的同時正確地做到這一點。如果您需要更多資訊來回答您的問題,請告訴我。

您錯過了一個了解 Oracle 概覽的地方:概念指南。它涵蓋了所有主要主題(包括備份和恢復,這非常重要,不會出現在您發布的連結列表中)。

下一步是什麼?創建模式或表空間?

兩個都!它們是正交的。使用者是訪問您的數據庫的邏輯實體。表空間是一個儲存概念。一個使用者可以訪問多個表空間,一個表空間可以儲存來自多個模式的數據。您需要兩者,並且您需要向您創建的使用者授予對適當表空間的訪問權限。(有關使用者和模式之間的區別,請參見此處。)

表空間數據文件是儲存表中實際數據的位置嗎?

是的,所有數據庫的數據和索引都儲存在表空間中。主要的儲存結構有:

  • 普通表空間儲存普通的持久數據。這將是你的數據庫中最大的部分,空間使用明智。
  • 臨時表空間儲存非持久性數據——在會話或事務結束時被清除的全域臨時表,用於磁碟排序等的臨時儲存等。
  • 撤消表空間和重做日誌文件:這就是 Oracle 用來提供 ACID 保證的方法。
  • 控製文件:它們描述您的數據庫(名稱、文件、日誌序列和檢查點資訊,甚至一些備份資訊)。

(系統表空間是一個普通的表空間,除了你不應該在其中儲存任何東西 - 將其視為 Oracle 內部和普通使用的禁區。)

此外,您應該非常注意您的重做日誌文件,這是“數據庫恢復最關鍵的結構”。它們是“熱的”(大量寫入)並且應該在它們自己的磁碟/lun 上。

多少

$$ tablespaces/datafiles $$需要嗎?

只要你需要。這裡沒有一般規則。數據文件的數量將取決於您需要儲存多少數據、作業系統限制、Oracle 數據文件大小限制、您的儲存(硬碟/卷)限制、備份/恢復注意事項(例如,只有一個巨大的 Bigfile 數據文件可能不是最好的主意),…

如何建構表空間也取決於您。在您的表空間中為每個“應用程序”擁有一個表空間可能是入門的好方法。如果需要,您始終可以稍後創建更多表空間(但請記住,將對像從一個表空間移動到另一個表空間可能非常耗時,並且可能需要停機或相當複雜的操作)。

預設還是臨時?

兩個都!您需要空間來持久儲存數據,還需要一些臨時儲存空間來執行數據庫。

我需要多少空間?

幾兆字節到幾兆字節之間的任何地方——只有你可以在這裡知道。要估計一個表所需的空間,請創建一個具有相同結構的表,用一些樣本數據填充它(應該或多或少在統計上代表您將在其中儲存的內容)並測量空間使用情況。然後外推。不要忘記包含所需空間的索引(和物化視圖)!

自動擴展?

我會說是的,使用自動擴展功能,但設置限制。您可能不應該讓 Oracle 嘗試自動擴展文件系統上的實際可用空間。並監控空間使用情況。(請記住,數據文件擴展相對昂貴。不要將自動擴展大小設置得太小。)

對於 ZFS,Oracle 有一份您可能感興趣的白皮書:為 Oracle 數據庫配置 ZFS (270k PDF)。

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