rman target /
run {
allocate channel c1 type disk;
backup database plus archivelog;
backup current controlfile format ‘/backup/%T_CTL_%U’;
backup spfile format ‘/backup/%T_SPFILE_%U’;
release channel c1;
}
目标库恢复
安装同版本软件,创建必要目录;将备份集、控制文件、spfile 拷至目标端。
若数据文件路径不同,设置转换参数并启动到 NOMOUNT:
sqlplus / as sysdba
alter system set db_file_name_convert=‘/old/path’,‘/new/path’ scope=spfile;
alter system set log_file_name_convert=‘/old/path’,‘/new/path’ scope=spfile;
shutdown immediate; startup nomount;
RMAN 恢复:
rman target /
restore database;
recover database;
alter database open resetlogs;
说明
同平台整库迁移常用以上流程;跨平台需结合 RMAN 的跨平台能力(见第四部分)。
四、跨平台迁移与增量策略
跨平台整库(RMAN CONVERT DATABASE)
检查可传输性与平台名:
sqlplus / as sysdba
SET SERVEROUTPUT ON;
DECLARE db_ready BOOLEAN; BEGIN db_ready := DBMS_TDB.CHECK_DB(‘<目标平台名>’); END; /
SELECT platform_name, endian_format FROM v$transportable_platform;
源库只读并转换:
alter database open read only;
rman target /
convert database new database ‘newdb’ to platform ‘<目标平台名>’ format ‘/tmp/%U’;
将生成的数据文件、PFILE 与转换脚本(如 crdb.sql)传到目标端:
sqlplus / as sysdba
startup nomount;
@/target-dir/crdb.sql