首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 入門筆記 Day 1:架構核心、服務元件、使用者管理與權限指令

     編輯:Oracle 資料庫基礎

Oracle 核心優勢

高併發存取能力:多版本一致性讀取(MVCC)實現「讀不寫鎖、寫不讀鎖」,支援大量並發使用者。

關鍵 Windows 服務

服務名稱功能
OracleService資料庫例程核心進程(如 OracleServiceORCL)
OracleTNSListener網路監聽器,處理客戶端連線請求
OracleDBConsoleEnterprise Manager Database Console (10g/11g)
OracleJobScheduler資料庫內部排程器 (10g+)

記憶體架構:SGA (System Global Area)

  • 共用池:Library Cache(SQL/PLSQL 快取)、Data Dictionary Cache
  • 資料庫緩衝區快取:資料塊拷貝,LRU 演算法管理
  • 重做日誌緩衝區:交易變更向量,定期由 LGWR 寫入線上重做日誌檔
  • 大型池:共用伺服器 UGA、RMAN、平行查詢訊息緩衝
  • Java 池 / Streams 池:依功能啟用

背景進程

儲存結構

  • 邏輯:表空間 → 區段 → 區塊 → 區塊
  • 物理:資料檔、控制檔、線上重做日誌檔、參數檔、密碼檔
  • 基本表空間:SYSTEM, SYSAUX, UNDO, TEMP, USERS, INDEX

資料庫運作模式

進程職責
DBWn資料庫寫入進程,將髒塊從緩衝區寫回資料檔
LGWR日誌寫入進程,將重做日誌緩衝區寫入線上重做日誌檔
SMON系統監控,例程啟動時執行復原、清理臨時段
PMON進程監控,清理失敗連線的資源、釋放鎖
CKPT檢查點進程,更新資料檔與控制檔的檢查點資訊
ARCn歸檔進程,將填滿的線上重做日誌複製至歸檔目的地
RECO分散式交易恢復

查看模式:ARCHIVE LOG LIST

預設使用者帳號

模式特徵適用場景
NOARCHIVELOG無歸檔日誌,僅支援不完整復原測試環境、可容忍資料遺失
ARCHIVELOG產生歸檔日誌,支援時間點復原 (PITR)生產環境、零資料遺失需求
帳號預設密碼角色
SYSCHANGE_ON_INSTALLSYSDBA,最高權限
SYSTEMMANAGERDBA,管理權限
SCOTTTIGER範例結構,學習用

最佳實務:安裝完成立即修改密碼、鎖定 SCOTT、啟用密碼驗證函數。

使用者與結構

  • Oracle 以「使用者 = 結構」一對一對應
  • 建立使用者即建立同名結構
  • 刪除使用者預設僅限無物件;含物件需 DROP USER ... CASCADE

常用權限管理指令

-- 建立使用者
CREATE USER app_user IDENTIFIED BY "Str0ngP@ss"
  DEFAULT TABLESPACE users
  TEMPORARY TABLESPACE temp
  QUOTA UNLIMITED ON users;

-- 角色授予
GRANT CONNECT, RESOURCE TO app_user;  -- 基本連線與建立物件權限
GRANT DBA TO app_user;                -- 完整管理權限(慎用)

-- 系統權限
GRANT CREATE TABLE, CREATE VIEW, CREATE PROCEDURE TO app_user;
REVOKE CREATE TABLE FROM app_user;

-- 物件權限
GRANT SELECT, INSERT, UPDATE ON scott.emp TO app_user;
REVOKE UPDATE ON scott.emp FROM app_user;

-- 權限傳遞
GRANT SELECT ON scott.emp TO app_user WITH GRANT OPTION;

-- 密碼管理
ALTER USER app_user IDENTIFIED BY "NewP@ss";
ALTER USER app_user ACCOUNT LOCK;
ALTER USER app_user ACCOUNT UNLOCK;

-- 刪除使用者
DROP USER app_user;           -- 無物件
DROP USER app_user CASCADE;   -- 含物件強制刪除

交易控制

  • 顯性交易:COMMIT/ROLLBACK/SAVEPOINT 由使用者控制
  • 隱性交易:DDL(CREATE, ALTER, DROP)、DCL(GRANT, REVOKE)隱含 COMMIT
  • 自動提交:SET AUTOCOMMIT ON/OFF(SQL*Plus 專用)

結語

Day 1 奠定 Oracle 架構心智模型:例程 + 資料庫 = 完整系統。掌握 SGA 元件、背景進程分工、表空間規劃與權限最小授予原則,是後續效能調校、備份復原、安全強化的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved