-- 擴充現有資料檔
ALTER DATABASE DATAFILE 'd:\ORANT\DATABASE\USER1ORCL.ORA' RESIZE 1000M;
ALTER DATABASE DATAFILE 'd:\ORANT\DATABASE\RBS1ORCL.ORA' RESIZE 300M;
ALTER DATABASE DATAFILE 'd:\ORANT\DATABASE\TMP1ORCL.ORA' RESIZE 300M;
-- 建立索引表空間
CREATE TABLESPACE INDEX_DATA
DATAFILE 'd:\ORANT\DATABASE\INDEX_DATA' SIZE 500M;
-- 1. 離線並刪除舊回滾段 RB1-RB16
ALTER ROLLBACK SEGMENT "RB1" OFFLINE;
...
DROP ROLLBACK SEGMENT "RB1";
...
-- 2. 在 ROLLBACK_DATA 表空間建立新回滾段
CREATE ROLLBACK SEGMENT "RB1" TABLESPACE "ROLLBACK_DATA"
STORAGE (INITIAL 1M NEXT 1M);
... (RB1-RB6)
-- 3. 上線
ALTER ROLLBACK SEGMENT "RB1" ONLINE;
... (RB1-RB6)
注意:Oracle 9i+ 建議改用自動 UNDO 管理(UNDO_MANAGEMENT=AUTO、UNDO_TABLESPACE),手動回滾段已棄用。
-- 新增 4 組 10MB 日誌
ALTER DATABASE ADD LOGFILE 'c:\orant\database\log1.ora' SIZE 10M;
ALTER DATABASE ADD LOGFILE 'c:\orant\database\log2.ora' SIZE 10M;
ALTER DATABASE ADD LOGFILE 'c:\orant\database\log3.ora' SIZE 10M;
ALTER DATABASE ADD LOGFILE 'c:\orant\database\log4.ora' SIZE 10M;
-- 移除舊日誌
ALTER DATABASE DROP LOGFILE 'c:\orant\database\log1orcl.ora';
... (log1orcl-log4orcl)
# SGA 目標:1/3 ~ 1/2 實體記憶體
DB_BLOCK_BUFFERS = 16000 # 2K block → 32MB buffer cache
DB_BLOCK_SIZE = 2048
SHARED_POOL_SIZE = 30720000 # 30MB,專用伺服器建議 ×10
LOG_BUFFER = 655360 # 640KB
SORT_AREA_SIZE = 327680 # 320KB,專用伺服器建議 ×100
GLOBAL_NAMES = FALSE
ROLLBACK_SEGMENTS = (RB1,RB2) # 大型庫建議 6-8 個
# 併發與鎖設定
DML_LOCKS = 1000
OPEN_CURSORS = 200
# 建議補充參數(9i+)
# PROCESSES = 300
# SESSIONS = 335
# UNDO_MANAGEMENT = AUTO
# UNDO_TABLESPACE = UNDOTBS1
# PGA_AGGREGATE_TARGET = 50M
DB_BLOCK_BUFFERS × DB_BLOCK_SIZE = Buffer Cache 大小SHARED_POOL_SIZE:專用伺服器環境需放大,共用伺服器可較小SORT_AREA_SIZE:排序操作記憶體,過大易導致記憶體壓力LOG_BUFFER:通常 64KB-1MB,避免過大造成檢查點延遲