init.ora、tnsnames.ora、listener.ora 複製至新主機。源庫關閉,開始遷移。export ORACLE_SID=service
sqlplus / as sysdba
SQL> startup nomount;
無恢復目錄時,無法直接 RESTORE CONTROLFILE FROM AUTOBACKUP (ASM/特定版本限制)。使用 DBMS_BACKUP_RESTORE 內部包底層還原:
DECLARE
devtype VARCHAR2(256);
done BOOLEAN;
BEGIN
devtype := dbms_backup_restore.deviceAllocate(NULL);
dbms_backup_restore.restoreSetDatafile;
dbms_backup_restore.restoreControlfileTo('/opt/data/SERVICE/control01.ctl');
dbms_backup_restore.restoreBackupPiece('/opt/backup/control_c-4194659530-20050805-01', DONE => done);
END;
/
cp control01.ctl control02.ctl
cp control01.ctl control03.ctl
SQL> ALTER DATABASE MOUNT;
RMAN> CONNECT TARGET /
RMAN> RESTORE DATABASE;
輸出顯示各 datafile 還原路徑與備份片段 handle。
RMAN> LIST BACKUP OF ARCHIVELOG ALL;RMAN> RECOVER DATABASE;
RMAN 自動還原並應用序列 15553 起的歸檔日誌,直至最新。過程中顯示每個 archive log thread=1 sequence=XXXXX 的還原與應用細節。
SET NEWNAME 重定向)。DBMS_BACKUP_RESTORE 是繞過限制的有效手段。RESTORE DATABASE + RECOVER DATABASE 兩條指令完成核心還原恢復。ALTER DATABASE OPEN RESETLOGS 開啟新資料庫化身。CONFIGURE CONTROLFILE AUTOBACKUP ON)。