欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle數(shù)據(jù)庫(kù)、表空間與存儲(chǔ)結(jié)構(gòu)圖文詳解

 更新時(shí)間:2025年09月17日 11:33:58   作者:迷茫的坐標(biāo)  
在Oracle數(shù)據(jù)庫(kù)中,查詢表空間信息是一個(gè)常見(jiàn)需求,它可以幫助數(shù)據(jù)庫(kù)管理員或開(kāi)發(fā)者了解數(shù)據(jù)庫(kù)的存儲(chǔ)情況,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)、表空間與存儲(chǔ)結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下

一、核心概念:像理解倉(cāng)庫(kù)一樣理解Oracle

想象一下一個(gè)大倉(cāng)庫(kù)(數(shù)據(jù)庫(kù)),這個(gè)倉(cāng)庫(kù)被劃分成了幾個(gè)大的區(qū)域(表空間),比如“家電區(qū)”、“食品區(qū)”。每個(gè)大區(qū)域里放著很多貨架(段),比如“電視貨架”、“冰箱貨架”。每個(gè)貨架又是由一連串的貨位(區(qū)) 組成的,而最小的存儲(chǔ)單位就是每一個(gè)貨位(數(shù)據(jù)塊)。

1. 數(shù)據(jù)塊 (Data Block)

  • 是什么:Oracle邏輯存儲(chǔ)結(jié)構(gòu)中最小的邏輯單位,就像倉(cāng)庫(kù)中最小的一個(gè)貨位。
  • 關(guān)鍵點(diǎn)
    • 大小由參數(shù) DB_BLOCK_SIZE 決定。
    • 一個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)或多個(gè)物理塊(操作系統(tǒng)塊)。
    • 結(jié)構(gòu)包括塊頭存儲(chǔ)區(qū)兩部分。

2. 區(qū) (Extent)

  • 是什么:由一組連續(xù)的數(shù)據(jù)塊結(jié)合而成。是Oracle存儲(chǔ)分配的最小單位。就像一組連續(xù)的貨位組成了一個(gè)完整的貨位區(qū)間。

3. 段 (Segment)

  • 是什么:由一個(gè)或多個(gè)區(qū)組成,是數(shù)據(jù)庫(kù)對(duì)象的存儲(chǔ)載體。就像一整個(gè)貨架。
  • 種類(PPT中明確提到的):
    • 數(shù)據(jù)段:存儲(chǔ)表中所有數(shù)據(jù)(如一張學(xué)生表的所有數(shù)據(jù))。
    • 索引段:存儲(chǔ)表上最佳查詢的所有索引數(shù)據(jù)。
    • 臨時(shí)段:存儲(chǔ)表排序操作期間建立的臨時(shí)表的數(shù)據(jù)。
    • 回滾段:存儲(chǔ)數(shù)據(jù)修改之前的位置和值(用于回滾事務(wù))。
  • 注意視圖(View)不是段,它只是一個(gè)虛擬表,不存儲(chǔ)數(shù)據(jù)。

4. 表空間 (Tablespace)

  • 是什么:數(shù)據(jù)庫(kù)的最大邏輯劃分區(qū)域。就是一個(gè)最大的邏輯區(qū)域。
  • 關(guān)鍵點(diǎn)
    • 一個(gè)表空間由一個(gè)或多個(gè)數(shù)據(jù)文件組成。
    • 一個(gè)數(shù)據(jù)文件只屬于一個(gè)表空間。
    • 表空間的大小等于其所有數(shù)據(jù)文件大小之和。
  • 默認(rèn)表空間(創(chuàng)建數(shù)據(jù)庫(kù)時(shí)自動(dòng)生成):
    • SYSTEM:系統(tǒng)表空間
    • SYSAUX:輔助系統(tǒng)表空間
    • UNDO:撤銷表空間
    • USERS:用戶表空間

5. 數(shù)據(jù)庫(kù) (Database)

  • 是什么:以上所有內(nèi)容的物理和邏輯集合。就是整個(gè)倉(cāng)庫(kù)。
  • 物理結(jié)構(gòu):由三種核心文件構(gòu)成:
    • 數(shù)據(jù)文件 (.dbf):真正存儲(chǔ)數(shù)據(jù)的地方。
    • 控制文件 (.ctl):數(shù)據(jù)庫(kù)中最小但最重要的文件,記錄數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。
    • 日志文件 (.log):記錄所有數(shù)據(jù)變化,用于恢復(fù)。
      • 重做日志文件:記錄實(shí)時(shí)變化。
      • 歸檔日志文件:重做日志的歷史備份。

二、動(dòng)手實(shí)踐:如何創(chuàng)建數(shù)據(jù)庫(kù)和表空間

方法一:界面方式(推薦新手使用)

創(chuàng)建數(shù)據(jù)庫(kù):使用DBCA(數(shù)據(jù)庫(kù)配置助手)工具。

這是一個(gè)圖形化向?qū)?,按照步驟選擇數(shù)據(jù)庫(kù)名稱、字符集、存儲(chǔ)位置等即可輕松完成創(chuàng)建。

啟動(dòng)DBCA,進(jìn)入cmd命令行輸入dbca;在搜索欄搜索dbca文件以管理員的方式運(yùn)行(推薦使用后者)出現(xiàn)“歡迎使用”界面,如圖所示,單擊“下一步”按鈕進(jìn)入創(chuàng)建數(shù)據(jù)庫(kù)的向?qū)А?/p>

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

在“數(shù)據(jù)庫(kù)模板”窗口中,選擇相應(yīng)選項(xiàng)后單擊“顯示詳細(xì)資料”按鈕可查看該數(shù)據(jù)庫(kù)模板的各種信息。這里選擇“一般用途或事務(wù)處理”選項(xiàng),如圖所示,單擊“下一步”按鈕。

在“數(shù)據(jù)庫(kù)標(biāo)識(shí)”窗口中輸入“全局?jǐn)?shù)據(jù)庫(kù)名”和“SID”,如圖所示,單擊“下一步”按鈕。

在“管理選項(xiàng)”窗口中可以選擇配置Enterprise Manager企業(yè)管理器或者配置Database Control管理本地?cái)?shù)據(jù)庫(kù),這里保持默認(rèn)設(shè)置,如圖所示,單擊“下一步”按鈕。

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

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

下一步

選擇你自己找的到的地方

注意勾選示例方案

在“初始化參數(shù)”和“數(shù)據(jù)庫(kù)存儲(chǔ)”窗口中也保持默認(rèn)配置,兩次單擊“下一步”按鈕。

在“創(chuàng)建選項(xiàng)”窗口中選擇“創(chuàng)建數(shù)據(jù)庫(kù)”選項(xiàng),如圖3.9所示,單擊“完成”按鈕,之后會(huì)彈出確認(rèn)創(chuàng)建的對(duì)話框,單擊“確定”按鈕開(kāi)始創(chuàng)建數(shù)據(jù)庫(kù)。

耐心等待

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

計(jì)算機(jī)管理->服務(wù)與應(yīng)用程序->服務(wù),注意將所有與Oracle有關(guān)的服務(wù)打開(kāi)

創(chuàng)建表空間:使用navicat工具。

關(guān)于nvicat連接Oracle服務(wù)器的鏈接:http://www.dbjr.com.cn/database/349734h29.htm

連接服務(wù)器,其他->表空間

新建表空間,輸入名稱、大??;注意下面的路徑、自動(dòng)擴(kuò)展和下一個(gè)大小。

保存輸入表名稱

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

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

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

方法二:命令方式(需掌握的核心技能)

手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)(謹(jǐn)慎操作?。?/h4>
```sql
-- 1. 創(chuàng)建初始化參數(shù)文件(initmydb.ora),設(shè)置必要參數(shù)如:
DB_NAME=mydb
CONTROL_FILES=("E:\app\...\control01.ctl", "E:\app\...\control02.ctl")
...

-- 2. 連接并啟動(dòng)實(shí)例到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;
```

**注意**:手動(dòng)創(chuàng)建極易出錯(cuò),如果出錯(cuò),需要**刪除所有已創(chuàng)建的數(shù)據(jù)文件**后重新運(yùn)行。

使用SQL命令創(chuàng)建表空間

這是最常用的命令操作,必須掌握:

```sql
-- 創(chuàng)建一個(gè)名為`mytbs`的本地管理、自動(dòng)段空間管理的表空間
CREATE TABLESPACE mytbs
  DATAFILE 'E:\app\oradata\mydb\mytbs01.dbf' -- 數(shù)據(jù)文件路徑
  SIZE 100M                                  -- 初始大小
  AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED   -- 自動(dòng)擴(kuò)展
  EXTENT MANAGEMENT LOCAL                    -- 本地化管理
  SEGMENT SPACE MANAGEMENT AUTO;             -- 段空間自動(dòng)管理

-- 創(chuàng)建一個(gè)大數(shù)據(jù)文件表空間(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 會(huì)同時(shí)刪除段數(shù)據(jù))
DROP TABLESPACE liyu_big INCLUDING CONTENTS AND DATAFILES;
```

三、總結(jié)與回顧

概念類比解釋創(chuàng)建方式
數(shù)據(jù)庫(kù)整個(gè)倉(cāng)庫(kù)數(shù)據(jù)物理和邏輯的集合CREATE DATABASEDBCA
表空間倉(cāng)庫(kù)分區(qū)最大的邏輯存儲(chǔ)單元,由數(shù)據(jù)文件組成CREATE TABLESPACEOEM
貨架存儲(chǔ)數(shù)據(jù)庫(kù)對(duì)象(表、索引等)(隨表/索引自動(dòng)創(chuàng)建)
區(qū)一組貨位由連續(xù)數(shù)據(jù)塊組成,分配存儲(chǔ)的最小單位(自動(dòng)分配)
數(shù)據(jù)塊單個(gè)貨位最小的I/O邏輯存儲(chǔ)單位(由參數(shù)決定)

學(xué)習(xí)建議

  1. 理解概念:務(wù)必搞清這些概念之間的包含關(guān)系:數(shù)據(jù)庫(kù) > 表空間 > 段 > 區(qū) > 數(shù)據(jù)塊。
  2. 動(dòng)手練習(xí):在自己安裝的Oracle環(huán)境或?qū)W校實(shí)驗(yàn)室中,優(yōu)先使用DBCA創(chuàng)建數(shù)據(jù)庫(kù),然后多用SQL命令練習(xí)表空間的創(chuàng)建、修改和刪除。這是最實(shí)際有效的學(xué)習(xí)方式。
  3. 謹(jǐn)慎操作DROP命令一旦執(zhí)行無(wú)法撤回,操作前務(wù)必確認(rèn)無(wú)誤。

到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)、表空間與存儲(chǔ)結(jié)構(gòu)的文章就介紹到這了,更多相關(guān)Oracle表空間與存儲(chǔ)結(jié)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論