針對 Linux/Unix 環境,匯總 Oracle 11g 日常運維高頻命令,含實例啟停、監聽控制、用戶權限體系、表空間自動擴展、會話監控、動態參數調整,適合 DBA 隨身速查。
# 切換 oracle 用戶
su - oracle
# 進入 SQL*Plus 不登錄
sqlplus /nolog
# 以 SYSDBA 登錄
sqlplus / as sysdba
# 啟動/關閉
STARTUP;
SHUTDOWN IMMEDIATE;
# 遠程連接
sqlplus /nolog
CONN sys/sys@ip:1521/orainstance AS SYSDBA
# 腳本啟停
dbstart # 啟動腳本
dbshut # 關閉腳本
lsnrctl start
lsnrctl stop
lsnrctl status
-- 創建用戶並指定默認表空間
CREATE USER ittbank IDENTIFIED BY 123456 DEFAULT TABLESPACE ittbank;
-- 三大標準角色
GRANT CONNECT, RESOURCE, DBA TO ittbank; -- CONNECT(7權限)、RESOURCE(建表)、DBA(全權)
-- 刪除用戶(級聯)
DROP USER "name" CASCADE;
-- 修改密碼
ALTER USER ittbank IDENTIFIED BY newpassword;
-- 或已連接會話中
PASSWORD ittbank;
-- 權限查詢
SELECT * FROM user_role_privs; -- 當前用戶角色
SELECT * FROM user_sys_privs; -- 系統權限
SELECT * FROM user_tab_privs; -- 表級權限
SELECT name FROM dba_users; -- 所有用戶
SHOW USER; -- 當前用戶
-- 創建自動擴展表空間(推薦)
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 tablespace_name, SUM(bytes)/1024/1024 FROM dba_data_files GROUP BY tablespace_name; -- 總大小
SELECT tablespace_name, SUM(bytes)/1024/1024 FROM dba_free_space GROUP BY tablespace_name; -- 剩餘空間
ALTER SYSTEM SET processes=1000 SCOPE=SPFILE;DECLARE...BEGIN...EXCEPTION...END; + SET SERVEROUTPUT ON + DBMS_OUTPUT.PUT_LINESELECT COUNT(*) FROM sys.v_$session;建議將常用命令做成別名或腳本,減少手工輸入錯誤;權限授予遵循最小權限原則,生產環境慎用 DBA 角色。