Oracle數據庫、表空間與存儲結構圖文詳解
一、核心概念:像理解倉庫一樣理解Oracle
想象一下一個大倉庫(數據庫),這個倉庫被劃分成了幾個大的區(qū)域(表空間),比如“家電區(qū)”、“食品區(qū)”。每個大區(qū)域里放著很多貨架(段),比如“電視貨架”、“冰箱貨架”。每個貨架又是由一連串的貨位(區(qū)) 組成的,而最小的存儲單位就是每一個貨位(數據塊)。
1. 數據塊 (Data Block)
- 是什么:Oracle邏輯存儲結構中最小的邏輯單位,就像倉庫中最小的一個貨位。
- 關鍵點:
- 大小由參數
DB_BLOCK_SIZE決定。 - 一個數據塊對應一個或多個物理塊(操作系統塊)。
- 結構包括塊頭和存儲區(qū)兩部分。
- 大小由參數
2. 區(qū) (Extent)
- 是什么:由一組連續(xù)的數據塊結合而成。是Oracle存儲分配的最小單位。就像一組連續(xù)的貨位組成了一個完整的貨位區(qū)間。
3. 段 (Segment)
- 是什么:由一個或多個區(qū)組成,是數據庫對象的存儲載體。就像一整個貨架。
- 種類(PPT中明確提到的):
- 數據段:存儲表中所有數據(如一張學生表的所有數據)。
- 索引段:存儲表上最佳查詢的所有索引數據。
- 臨時段:存儲表排序操作期間建立的臨時表的數據。
- 回滾段:存儲數據修改之前的位置和值(用于回滾事務)。
- 注意:視圖(View)不是段,它只是一個虛擬表,不存儲數據。
4. 表空間 (Tablespace)
- 是什么:數據庫的最大邏輯劃分區(qū)域。就是一個最大的邏輯區(qū)域。
- 關鍵點:
- 一個表空間由一個或多個數據文件組成。
- 一個數據文件只屬于一個表空間。
- 表空間的大小等于其所有數據文件大小之和。
- 默認表空間(創(chuàng)建數據庫時自動生成):
SYSTEM:系統表空間SYSAUX:輔助系統表空間UNDO:撤銷表空間USERS:用戶表空間
5. 數據庫 (Database)
- 是什么:以上所有內容的物理和邏輯集合。就是整個倉庫。
- 物理結構:由三種核心文件構成:
- 數據文件 (.dbf):真正存儲數據的地方。
- 控制文件 (.ctl):數據庫中最小但最重要的文件,記錄數據庫的物理結構。
- 日志文件 (.log):記錄所有數據變化,用于恢復。
- 重做日志文件:記錄實時變化。
- 歸檔日志文件:重做日志的歷史備份。
二、動手實踐:如何創(chuàng)建數據庫和表空間
方法一:界面方式(推薦新手使用)
創(chuàng)建數據庫:使用DBCA(數據庫配置助手)工具。
這是一個圖形化向導,按照步驟選擇數據庫名稱、字符集、存儲位置等即可輕松完成創(chuàng)建。
啟動DBCA,進入cmd命令行輸入dbca;在搜索欄搜索dbca文件以管理員的方式運行(推薦使用后者)出現“歡迎使用”界面,如圖所示,單擊“下一步”按鈕進入創(chuàng)建數據庫的向導。

在“操作”窗口中,用戶可以選擇要執(zhí)行的操作,這里選中“創(chuàng)建數據庫”選項,如圖所示,單擊“下一步”按鈕。

在“數據庫模板”窗口中,選擇相應選項后單擊“顯示詳細資料”按鈕可查看該數據庫模板的各種信息。這里選擇“一般用途或事務處理”選項,如圖所示,單擊“下一步”按鈕。

在“數據庫標識”窗口中輸入“全局數據庫名”和“SID”,如圖所示,單擊“下一步”按鈕。

在“管理選項”窗口中可以選擇配置Enterprise Manager企業(yè)管理器或者配置Database Control管理本地數據庫,這里保持默認設置,如圖所示,單擊“下一步”按鈕。

在“數據庫身份證明”窗口中,將所有賬戶設置為同一管理口令,如圖所示,單擊“下一步”按鈕。

在“數據庫文件所在位置”窗口中,選擇“所有數據庫文件使用公共位置”,單擊“瀏覽”按鈕選擇數據庫文件的存放路徑,如圖所示,單擊“下一步”按鈕。

下一步

選擇你自己找的到的地方

注意勾選示例方案

在“初始化參數”和“數據庫存儲”窗口中也保持默認配置,兩次單擊“下一步”按鈕。


在“創(chuàng)建選項”窗口中選擇“創(chuàng)建數據庫”選項,如圖3.9所示,單擊“完成”按鈕,之后會彈出確認創(chuàng)建的對話框,單擊“確定”按鈕開始創(chuàng)建數據庫。

耐心等待

創(chuàng)建數據庫完畢后,系統會彈出窗口顯示相關的提示信息,如圖所示,需要在這一步解鎖SCOTT、SYSTEM、SYS賬戶并設置其口令,單擊窗口中的“口令管理”按鈕,彈出“口令管理”對話框。找到以上三個用戶賬戶,將“是否鎖定賬戶”一欄里的勾去掉,修改口令。

計算機管理->服務與應用程序->服務,注意將所有與Oracle有關的服務打開

創(chuàng)建表空間:使用navicat工具。
關于nvicat連接Oracle服務器的鏈接:http://www.dhdzp.com/database/349734h29.htm
連接服務器,其他->表空間

新建表空間,輸入名稱、大小;注意下面的路徑、自動擴展和下一個大小。

保存輸入表名稱

在用戶這里查看,沒有剛剛創(chuàng)建的話就新建一個

新建用戶,注意用戶名和表空間要與剛剛創(chuàng)建的表空間一致,保存。

之后就能查詢到創(chuàng)建的表空間。

方法二:命令方式(需掌握的核心技能)
手動創(chuàng)建數據庫(謹慎操作!)
```sql
-- 1. 創(chuàng)建初始化參數文件(initmydb.ora),設置必要參數如:
DB_NAME=mydb
CONTROL_FILES=("E:\app\...\control01.ctl", "E:\app\...\control02.ctl")
...
-- 2. 連接并啟動實例到NOMOUNT狀態(tài)
CONN sys/password AS SYSDBA
STARTUP NOMOUNT pfile='E:\app\...\initmydb.ora';
-- 3. 執(zhí)行CREATE DATABASE命令(核心)
CREATE DATABASE mydb
LOGFILE GROUP 1 ('redo01.log') SIZE 50M,
GROUP 2 ('redo02.log') SIZE 50M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
CHARACTER SET ZHS16GBK -- 使用中文常用字符集
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'system01.dbf' SIZE 500M
SYSAUX DATAFILE 'sysaux01.dbf' SIZE 500M
UNDO TABLESPACE undotbs DATAFILE 'undotbs01.dbf' SIZE 200M
DEFAULT TABLESPACE users DATAFILE 'users01.dbf' SIZE 100M;
-- 4. 創(chuàng)建附加表空間(可選)
CREATE TABLESPACE mytbs DATAFILE 'mytbs01.dbf' SIZE 100M;
```
**注意**:手動創(chuàng)建極易出錯,如果出錯,需要**刪除所有已創(chuàng)建的數據文件**后重新運行。
使用SQL命令創(chuàng)建表空間
這是最常用的命令操作,必須掌握: ```sql -- 創(chuàng)建一個名為`mytbs`的本地管理、自動段空間管理的表空間 CREATE TABLESPACE mytbs DATAFILE 'E:\app\oradata\mydb\mytbs01.dbf' -- 數據文件路徑 SIZE 100M -- 初始大小 AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED -- 自動擴展 EXTENT MANAGEMENT LOCAL -- 本地化管理 SEGMENT SPACE MANAGEMENT AUTO; -- 段空間自動管理 -- 創(chuàng)建一個大數據文件表空間(BIGFILE) CREATE BIGFILE TABLESPACE liyu_big DATAFILE 'liyu_big.dbf' SIZE 2G; -- 修改表空間大小 ALTER TABLESPACE liyu_big RESIZE 1G; -- 重命名表空間(注意:SYSTEM和SYSAUX不能重命名) ALTER TABLESPACE liyu_2 RENAME TO new_liyu_2; -- 刪除表空間( INCLUDING CONTENTS 會同時刪除段數據) DROP TABLESPACE liyu_big INCLUDING CONTENTS AND DATAFILES; ```
三、總結與回顧
| 概念 | 類比 | 解釋 | 創(chuàng)建方式 |
|---|---|---|---|
| 數據庫 | 整個倉庫 | 數據物理和邏輯的集合 | CREATE DATABASE 或 DBCA |
| 表空間 | 倉庫分區(qū) | 最大的邏輯存儲單元,由數據文件組成 | CREATE TABLESPACE 或 OEM |
| 段 | 貨架 | 存儲數據庫對象(表、索引等) | (隨表/索引自動創(chuàng)建) |
| 區(qū) | 一組貨位 | 由連續(xù)數據塊組成,分配存儲的最小單位 | (自動分配) |
| 數據塊 | 單個貨位 | 最小的I/O邏輯存儲單位 | (由參數決定) |
學習建議:
- 理解概念:務必搞清這些概念之間的包含關系:數據庫 > 表空間 > 段 > 區(qū) > 數據塊。
- 動手練習:在自己安裝的Oracle環(huán)境或學校實驗室中,優(yōu)先使用DBCA創(chuàng)建數據庫,然后多用SQL命令練習表空間的創(chuàng)建、修改和刪除。這是最實際有效的學習方式。
- 謹慎操作:
DROP命令一旦執(zhí)行無法撤回,操作前務必確認無誤。
到此這篇關于Oracle數據庫、表空間與存儲結構的文章就介紹到這了,更多相關Oracle表空間與存儲結構內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
centos 6.5下安裝oracle 11gR2與Oracle自動啟動的配置
CentOS 下安裝 Oracle 是一件比較麻煩的事情,下面這篇文章主要介紹了在 centos 6.5下安裝oracle 11gR2的前的配置步驟,以及安裝完成后,如何設置為隨系統自動啟動。配置完成后,啟動圖形化安裝,沒有什么可說的,本文就沒有一一截圖。需要的朋友可以參考借鑒。2017-01-01
navicat使用Oracle創(chuàng)建庫以及用戶超詳細教程
本文介紹如何使用Navicat連接Oracle數據庫,步驟包括準備工作、新建連接、輸入用戶名和密碼、測試連接、建立庫和用戶、授權以及測試的相關資料,需要的朋友可以參考下2024-09-09
Oracle監(jiān)聽器被優(yōu)化大師掛掉后的完美解決方法
這篇文章主要介紹了Oracle監(jiān)聽器被優(yōu)化大師掛掉后的完美解決方法,需要的朋友可以參考下2017-08-08
oracle停止數據庫后linux完全卸載oracle的詳細步驟
本文介紹了linux完全卸載oracle的詳細步驟,卸載前需使用SQL*PLUS停止數據庫和相關服務,詳細步驟看下面說明,大家可以參考使用2014-01-01

