首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 資料庫遷移完整方案:權限、表空間、用戶、結構、資料分階遷移

     編輯:Oracle 資料庫相關知識

Oracle 資料庫跨環境遷移需嚴謹規劃權限、儲存結構、物件定義與資料一致性。本文提供從來源環境權限審計到目標環境驗證的標準化遷移流程。

階段 0:前置權限審計

-- 檢查來源用戶權限與角色
SELECT * FROM dba_tab_privs WHERE grantee = 'SCOTT';
SELECT * FROM dba_role_privs WHERE grantee = 'SCOTT';

-- 解鎖帳號
ALTER USER scott ACCOUNT UNLOCK;

-- 授予遷移所需權限
GRANT CONNECT, RESOURCE, DBA TO scott;

階段 1:表空間規劃與建立

-- 先刪除同名表空間(含內容與資料檔)
DROP TABLESPACE ts_name INCLUDING CONTENTS AND DATAFILES;

-- 建立業務表空間
CREATE TABLESPACE xx_bp
  DATAFILE 'F:\app\xx_bp.ora'
  SIZE 50M
  AUTOEXTEND ON NEXT 1M;

-- 建立歷史/索引等專用表空間
CREATE TABLESPACE xx_hs ...;
CREATE TABLESPACE xx_indx ...;

表空間設計原則

  • 依業務域劃分:業務、歷史、索引、臨時、UNDO
  • 預留成長空間,啟用 AUTOEXTEND
  • 建立用戶時指定預設/臨時表空間,避免落入 SYSTEM

階段 2:建立目標用戶

CREATE USER mig_user IDENTIFIED BY password
  DEFAULT TABLESPACE xx_bp
  TEMPORARY TABLESPACE temp
  QUOTA UNLIMITED ON xx_bp;

GRANT CONNECT, RESOURCE TO mig_user;

階段 3:DDL 結構遷移

-- 範例:建表含表空間、儲存參數、主鍵
CREATE TABLE xx.bp_oper_detail_tb (
  task_id      VARCHAR2(50) NOT NULL,
  flow_id      NUMBER(19)   NOT NULL,
  ...
  state        INTEGER      NOT NULL
)
TABLESPACE xx_bp PCTFREE 10 INITRANS 1 MAXTRANS 255
STORAGE (INITIAL 64K NEXT 8K MINEXTENTS 1 MAXEXTENTS UNLIMITED);

-- 主鍵索引指定表空間
ALTER TABLE xx.bp_oper_detail_tb
  ADD CONSTRAINT bp_oper_detail_pk PRIMARY KEY (task_id, workitemid, flow_node)
  USING INDEX TABLESPACE xx_bp PCTFREE 10 INITRANS 2 MAXTRANS 255
  STORAGE (INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED);

遷移清單

  • 表、索引、約束、觸發器
  • 視圖、同義詞、序列
  • PL/SQL 套件、程序、函數
  • 資料庫連結、作業排程

階段 4:資料遷移

-- 範例:參考資料載入
INSERT INTO sm_field_parent_tb (field_id, parent_field, last_modi_date)
VALUES ('VH0007', 'VH0000', '20160420074707');
...
COMMIT;

大量資料策略

  • EXP/IMP 或 Data Pump (EXPDP/IMPDP)
  • DBMS_DATAPUMP API 程式化控制
  • 分區表採用 EXCHANGE PARTITION 秒級切換
  • 異構遷移:SQL*Loader、GoldenGate、CDC 工具

階段 5:驗證與切換

  1. 重新登入目標資料庫
  2. 核對物件計數:SELECT COUNT(*) FROM user_tables 等
  3. 抽樣比對關鍵表筆數、檢核和
  4. 應用端測試:功能、效能、邊界案例
  5. 切換 DNS/連線池指向新環境

遷移檢核表

項目驗證方式
表空間/用戶/配額DBA_TABLESPACES, DBA_USERS
物件完整性USER_OBJECTS 狀態 VALID
資料一致性筆數、MD5、關鍵欄位抽樣
權限對等DBA_TAB_PRIVS, DBA_ROLE_PRIVS
應用連線連線池、TNS、Wallet 測試

標準化遷移流程 + 完整驗證清單,是跨環境 Oracle 遷移成功的關鍵。

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