關源庫 → 拷貝文件 → 目標機修改參數/重命名 → Mount 狀態改名 → Open 數據庫
SELECT * FROM v$instance;
SELECT * FROM v$database;
SELECT * FROM v$tablespace;
SELECT * FROM v$datafile;
記錄:實例名、版本、塊大小、表空間名、數據文件路徑、控制文件、日志文件、SPFILE 路徑。
SET LINESIZE 130 PAGESIZE 2000 TRIMSPOOL ON ECHO OFF VERIFY OFF TIMING OFF FEEDBACK OFF HEAD OFF
SPOOL cpfile.bat
SELECT 'copy '||name||' z:\orcl\'||SUBSTR(name, INSTR(name, '\', -1)+1) FROM v$controlfile
UNION ALL
SELECT 'copy '||member||' z:\orcl\'||SUBSTR(member, INSTR(member, '\', -1)+1) FROM v$logfile
UNION ALL
SELECT 'copy '||name||' z:\orcl\'||SUBSTR(name, INSTR(name, '\', -1)+1) FROM v$datafile
UNION ALL
SELECT 'copy '||name||' z:\orcl\'||SUBSTR(name, INSTR(name, '\', -1)+1) FROM v$tempfile
UNION ALL
SELECT 'copy '||value||' z:\orcl\'||SUBSTR(value, INSTR(value, '\', -1)+1) FROM v$parameter WHERE name='spfile';
SPOOL OFF
假設目標機映射盤符為 Z:,路徑統一為 z:\orcl\
SPOOL renfile.sql
SELECT 'ALTER DATABASE RENAME FILE '''||member||''' TO ''d:\oradata\orcl\'||SUBSTR(member, INSTR(member, '\', -1)+1)||''';' FROM v$logfile
UNION ALL
SELECT 'ALTER DATABASE RENAME FILE '''||name||''' TO ''d:\oradata\orcl\'||SUBSTR(name, INSTR(name, '\', -1)+1)||''';' FROM v$datafile
UNION ALL
SELECT 'ALTER DATABASE RENAME FILE '''||name||''' TO ''d:\oradata\orcl\'||SUBSTR(name, INSTR(name, '\', -1)+1)||''';' FROM v$tempfile;
SPOOL OFF
CREATE PFILE FROM SPFILE; -- 生成文本參數文件便於修改
HOST lsnrctl stop
SHUTDOWN IMMEDIATE
-- 將 Windows 服務改為「手動」啟動,防止意外啟動導致文件不一致
HOST cpfile.bat
STARTUP
HOST lsnrctl start
pfile、tnsnames.ora、口令文件、renfile.sql 到對應目錄pfile 中 control_files 參數指向新路徑STARTUP MOUNT PFILE='?/dbs/initorcl.ora'@renfile.sql — 執行重命名CREATE SPFILE FROM PFILE;ALTER DATABASE OPEN;HOST lsnrctl startSELECT file_name FROM dba_data_files; 確認路徑正確SELECT * FROM v$tempfile; 檢查臨時文件是否自動創建 (OMF 環境下自動)-- 重建實例服務
oradim -NEW -SID test -STARTMODE manual -PFILE "D:\Oracle\admin\test\pfile\init.ora"
-- 日志組管理
ALTER DATABASE ADD LOGFILE GROUP 3 ('/u01/log3a.rdo','/u02/log3b.rdo') SIZE 100M;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE CLEAR LOGFILE '/u01/log2a.rdo';
-- 臨時文件管理
ALTER TABLESPACE temp ADD TEMPFILE '/oradata/temp03.dbf' SIZE 10G;
ALTER DATABASE TEMPFILE '/oradata/temp02.dbf' DROP INCLUDING DATAFILES;
245GB 數據庫,Windows 跨網段拷貝約 9 小時 (千兆網絡)。建議:
- 使用壓縮工具 (7z -mx=1) 壓縮後傳輸
- 或採用 RMAN 备份集 + 壓縮 + 並行通道
- 存儲層面支援快照/克隆 (NetApp SnapMirror, EMC TimeFinder) 可分鐘級完成