進入管理環境
su - oracle
lsnrctl start
svrmgrl
SVRMGR> CONNECT INTERNAL;
SVRMGR> SHUTDOWN IMMEDIATE;
SVRMGR> STARTUP;
查看現有表空間
SELECT * FROM dba_tablespaces;
-- SYSTEM, RBS, TEMP, TOOLS, USERS
刪除 USERS 表空間
ALTER TABLESPACE users OFFLINE;
DROP TABLESPACE users;
查看表空間剩餘空間
SELECT tablespace_name, SUM(bytes)/1024/1024 AS mb
FROM dba_free_space
GROUP BY tablespace_name;
查看資料檔路徑與大小
SELECT tablespace_name, bytes/1024/1024 AS mb, file_name
FROM dba_data_files;
重建 RBS 表空間與 Rollback Segment
-- 1. 離線並刪除舊 Rollback Segment
ALTER ROLLBACK SEGMENT r01 OFFLINE;
DROP ROLLBACK SEGMENT r01;
-- 重複處理所有 RBS 中的段
-- 2. 刪除並重建 RBS 表空間
ALTER TABLESPACE rbs OFFLINE;
DROP TABLESPACE rbs;
CREATE TABLESPACE rbs
DATAFILE '/dev/rdrd/rbs01.ora' SIZE 500M,
'/dev/rdrd/rbs02.ora' SIZE 500M;
-- 3. 建立 4 個 Rollback Segment,每個 250M(INITIAL+NEXT*MAXEXTENTS = OPTIMAL)
CREATE ROLLBACK SEGMENT r01 TABLESPACE rbs
STORAGE (INITIAL 200M NEXT 2M OPTIMAL 250M MINEXTENTS 2 MAXEXTENTS 25);
-- 重複建立 r02, r03, r04
-- 4. 上線所有段
ALTER ROLLBACK SEGMENT r01 ONLINE;
-- ...
-- 5. 檢查狀態
SELECT segment_name, tablespace_name, status FROM dba_rollback_segs;
重建臨時表空間 TEMP
ALTER TABLESPACE temp OFFLINE;
DROP TABLESPACE temp;
CREATE TABLESPACE temp
DATAFILE '/dev/rdrd/drd22' SIZE 1000M
STORAGE (INITIAL 300M NEXT 20M MINEXTENTS 2 MAXEXTENTS 35 PCTINCREASE 0);
TOOLS 與 SYSTEM 表空間大小建議
- TOOLS:50M 足夠。
- SYSTEM:100M 足夠。
建立業務表空間(範例)
CREATE TABLESPACE dd_data
DATAFILE '/dev/rdrd/drd9' SIZE 1000M,
'/dev/rdrd/drd10' SIZE 1000M,
'/dev/rdrd/drd26' SIZE 1000M,
'/dev/rdrd/drd35' SIZE 1000M,
'/dev/rdrd/drd42' SIZE 500M;
-- 同理建立 dd_idx, jx_data, jx_idx, sf_data, sf_idx, jf_data, jf_idx
建立業務用戶與權限
CREATE USER ddbh IDENTIFIED BY ddbh
DEFAULT TABLESPACE dd_data
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON dd_data
QUOTA UNLIMITED ON dd_idx
QUOTA UNLIMITED ON rbs
QUOTA UNLIMITED ON temp;
GRANT CONNECT, RESOURCE, IMP_FULL_DATABASE, EXP_FULL_DATABASE,
CREATE PUBLIC SYNONYM, DROP PUBLIC SYNONYM TO ddbh;
-- 若需查 V$SESSION、KILL SESSION、DROP/CREATE USER
GRANT SELECT ON v_$session TO PUBLIC;
GRANT ALTER SYSTEM, DROP USER, CREATE USER TO ddbh;