如何在Ubuntu上遷移Oracle數據
在Ubuntu系統上遷移Oracle數據庫,需根據數據量、版本兼容性及環境需求選擇合適方法。常見方法包括Oracle Data Pump(expdp/impdp)、RMAN轉換數據庫、直接拷貝數據庫文件及第三方工具(如Navicat),以下是詳細步驟及注意事項:
expdp
導出或RMAN備份),防止數據丟失。expdp/impdp
,需在Ubuntu上安裝對應版本的Oracle Instant Client,并配置PATH
、LD_LIBRARY_PATH
等環境變量。Data Pump是Oracle官方推薦的高效遷移工具,支持大數據量、增量遷移及并行處理。
sqlplus / as sysdba
),創建用于存放導出文件的邏輯目錄(需與Ubuntu物理路徑對應):CREATE OR REPLACE DIRECTORY tmpDir AS '/home/oracle/export_temp';
expdp
命令導出指定對象(如dbTest
schema),生成.dmp
文件:expdp username/password@localhost:1521/ORCL schemas=dbTest directory=tmpDir dumpfile=export_ubuntu.dmp logfile=expdp_ubuntu.log
scp
將.dmp
文件復制到目標Ubuntu服務器(假設目標IP為192.168.1.101
):scp -P 22 /home/oracle/export_temp/export_ubuntu.dmp oracle@192.168.1.101:/home/oracle/import_temp
CREATE OR REPLACE DIRECTORY tmpDir AS '/home/oracle/import_temp';
impdp
命令將.dmp
文件導入目標數據庫,可通過REMAP_TABLESPACE
調整表空間(若目標表空間名稱不同):impdp username/password@localhost:1521/ORCL schemas=dbTest directory=tmpDir dumpfile=export_ubuntu.dmp logfile=impdp_ubuntu.log remap_tablespace=SOURCE_TS:TARGET_TS
SELECT COUNT(*)
確認數據完整性。若源與目標Ubuntu系統的Oracle數據庫版本或平臺(如x86→ARM)不同,需使用RMAN轉換數據庫格式。
-- 開啟歸檔模式
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- 執行全備
rman target /
RMAN> BACKUP DATABASE FORMAT '/home/oracle/backup/full_%U.bkp';
RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/home/oracle/backup/controlfile.bkp';
CONVERT DATABASE
命令轉換為目標平臺格式(需提前查詢目標平臺的V$TRANSPORTABLE_PLATFORM
):rman target /
RMAN> CONVERT DATABASE TRANSPORT SCRIPT '/home/oracle/convert/crdb.sql' NEW DATABASE 'ubuntu_target' FORMAT '/home/oracle/convert/%U';
crdb.sql
腳本(該腳本會重新創建控制文件、數據文件等):sqlplus / as sysdba @/home/oracle/convert/crdb.sql
rman target /
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
若源與目標Ubuntu系統的Oracle版本、操作系統位數(如均為64位)及字符集完全一致,可直接拷貝數據庫文件(數據文件、控制文件、重做日志文件)。
sudo systemctl stop oracle
rsync
或scp
拷貝$ORACLE_BASE/oradata
目錄下的所有文件到目標服務器:rsync -avz /home/oracle/oradata/ oracle@192.168.1.101:/home/oracle/oradata/
$ORACLE_SID
環境變量(與源服務器一致),啟動Oracle服務:export ORACLE_SID=ORCL
sqlplus / as sysdba
SQL> STARTUP;
Navicat等圖形化管理工具提供直觀的遷移向導,適合不熟悉命令行的用戶。
AWR
或ASH
報告分析目標數據庫的性能(如查詢響應時間、鎖等待)。注意事項:
FLASHBACK DATABASE
確保數據一致性)。CREATE DATABASE ... CHARACTER SET AL32UTF8
)。