1. 資料庫啟動/關閉
# 切換 oracle 用戶
su - oracle
# 進入 SQL*Plus
sqlplus /nolog
sqlplus / as sysdba
# 啟動/關閉
STARTUP;
SHUTDOWN IMMEDIATE;
# 遠程連線
sqlplus /nolog
CONN sys/password@ip:1521/sid AS SYSDBA
# 腳本啟停
dbstart # 啟動腳本
dbshut # 關閉腳本
2. 監聽器管理
LSNRCTL START
LSNRCTL STOP
LSNRCTL STATUS
3. 用戶與權限管理
建立用戶
CREATE USER ittbank IDENTIFIED BY 123456
DEFAULT TABLESPACE ittbank;
授權核心角色
GRANT CONNECT, RESOURCE, DBA TO ittbank;
CONNECT:7 項基本權限(含 CREATE SESSION)
RESOURCE:建表、建序列等開發權限
DBA:所有系統權限
刪除用戶(級聯)
DROP USER username CASCADE;
修改密碼
PASSWORD username; -- 已連線狀態
ALTER USER username IDENTIFIED BY newpwd; -- DBA 執行
權限查詢
SELECT * FROM USER_ROLE_PRIVS; -- 當前用戶角色
SELECT * FROM USER_SYS_PRIVS; -- 系統權限
SELECT * FROM USER_TAB_PRIVS; -- 表級權限
SELECT * FROM DBA_USERS; -- 所有用戶 (需 DBA)
4. 表空間管理
建立(自動擴展)
CREATE TABLESPACE ittbank
DATAFILE '/u01/app/oracle/oradata/ORCL/ittbank.dbf'
SIZE 300M AUTOEXTEND ON;

刪除(含內容與文件)
DROP TABLESPACE ittbank INCLUDING CONTENTS AND DATAFILES;
調整大小
-- 修改(可增可減)
ALTER DATABASE DATAFILE '.../ittbank.dbf' RESIZE 200M;
-- 僅增加
ALTER TABLESPACE ittbank ADD DATAFILE '.../ittbank.dbf' SIZE 2048M;
空間查詢
-- 數據文件
SELECT * FROM DBA_DATA_FILES;
-- 表空間總量
SELECT tablespace_name, SUM(bytes)/1024/1024 AS total_mb
FROM dba_data_files GROUP BY tablespace_name;
-- 表空間剩餘
SELECT tablespace_name, SUM(bytes)/1024/1024 AS free_mb
FROM dba_free_space GROUP BY tablespace_name;
5. 連接數調整(需重啟)
ALTER SYSTEM SET PROCESSES=1000 SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
6. PL/SQL 基礎結構
SET SERVEROUTPUT ON;
DECLARE
-- 宣告區
BEGIN
-- 執行區
DBMS_OUTPUT.PUT_LINE('Hello World!');
EXCEPTION
-- 例外區
END;