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

Oracle 進階運維命令匯總:EXP/IMP、註釋、空間監控與復制技巧

     編輯:Oracle 資料庫基礎

EXP/IMP 精準導出導入

用戶/表級導出

-- 單用戶
exp scott/tiger file=scott.dmp
-- 多用戶
exp system/manager owner=(user1,user2) file=multi.dmp
-- 單表
exp user/pass tables=emp
-- 多表
exp user/pass tables=(emp,dept)
-- 跨用戶表(需 DBA)
exp system/manager tables=(scott.emp,hr.dept)

導入指定表/重映射用戶

exp scott/tiger file=a.dmp
imp test/test fromuser=scott tables=emp file=a.dmp
imp test/test tables=dept file=a.dmp

關鍵規則:導出用戶若有 DBA 權限,導入用戶也必須有 DBA;否則可省略 FROMUSER/TOUSER。

對象註釋管理

-- 表註釋
COMMENT ON TABLE emp IS '員工基本信息表';
-- 列註釋
COMMENT ON COLUMN emp.ename IS '員工姓名';
-- 查詢註釋
SELECT * FROM USER_TAB_COMMENTS WHERE COMMENTS IS NOT NULL;
SELECT * FROM USER_COL_COMMENTS WHERE COMMENTS IS NOT NULL;

對象與空間快速檢視

需求SQL
當前用戶對象列表SELECT * FROM TAB;
表結構描述DESC table_name
表空間使用率見下方詳細查詢
回滾段狀態SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
數據文件路徑SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_DATA_FILES ORDER BY FILE_ID;
當前連接用戶SHOW USER

表空間使用率查詢(含剩餘百分比)

COL TABLESPACE FORMAT A20
SELECT B.FILE_ID 文件ID,
       B.TABLESPACE_NAME 表空間,
       B.FILE_NAME 物理文件,
       B.BYTES 總字節,
       (B.BYTES - SUM(NVL(A.BYTES,0))) 已使用,
       SUM(NVL(A.BYTES,0)) 剩餘,
       ROUND(SUM(NVL(A.BYTES,0))/B.BYTES*100,2) 剩餘百分比
FROM DBA_FREE_SPACE A, DBA_DATA_FILES B
WHERE A.FILE_ID = B.FILE_ID
GROUP BY B.TABLESPACE_NAME, B.FILE_NAME, B.FILE_ID, B.BYTES
ORDER BY B.TABLESPACE_NAME;

實用 DDL/DML 分類速記

  • DDL:CREATE/ALTER/DROP/TRUNCATE/RENAME
  • DML:INSERT/DELETE/UPDATE/SELECT
  • DCL:GRANT/REVOKE/SET ROLE
  • 事務:COMMIT/ROLLBACK/SAVEPOINT
  • 其他:COMMENT/ANALYZE/AUDIT/EXPLAIN PLAN

常用開發技巧集錦

場景SQL/命令
建同結構空表CREATE TABLE b AS SELECT * FROM a WHERE 1=2;
備份表數據CREATE TABLE emp_bak AS SELECT * FROM emp;
查重複記錄SELECT sid,COUNT(*) FROM t GROUP BY sid HAVING COUNT(*)>1;
字符串拼接col1||col2 或 CONCAT(col1,col2)
格式化日期TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')
跨用戶複製表COPY FROM u1/p1@db1 TO u2/p2@db2 CREATE t2 USING SELECT * FROM t1;
視圖排序繞過CREATE VIEW v AS SELECT * FROM t GROUP BY col1,col2;(代替 ORDER BY)
快速創建用戶GRANT CONNECT,RESOURCE TO u IDENTIFIED BY pwd;

聚合函數速查

  • COUNT(*):行數
  • SUM/AVG/MIN/MAX:數值聚合
  • DISTINCT:去重
  • GROUP BY:分組統計

SPOOL 導出文本文件最小化模板

SPOOL d:\output.txt
SELECT col1||','||col2||','||col3 FROM table_name;
SPOOL OFF

配合 SET COLSEP ',' TRIMSPOOL ON LINESIZE 32767 PAGESIZE 0 HEADING OFF TERM OFF 可生成標準 CSV。

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