linux → windows
oracle 11.2.0.3
一。备份:linux 上的oracle 数据库
rman>
startup mount;/或者 startup;
BACKUP DATABASE format='/net_bak/136_49/orcl_a';
--在/net_bak/136_49/下自动生成控制文件备份
c-1297486756-20170113-01
二。拷贝文件到windows D:\orcl_bak
三。dbca 创建 orcl 实例
sql>shutdown immediate;
删除 数据文件和控制文件。
rman>
startup nomount;
restore controlfile from
'D:\orcl_bak\c-1297486756-20170116-01';
alter database mount;
catalog start with 'D:\orcl_bak';
run {
ALLOCATE CHANNEL ch0 TYPE disk;
set newname for datafile 1 to
'D:\app\openclusteradmin\oradata\orcl\system01.dbf';
set newname for datafile 2 to
'D:\app\openclusteradmin\oradata\orcl\sysaux01.dbf';
set newname for datafile 3 to
'D:\app\openclusteradmin\oradata\orcl\undotbs01.dbf';
set newname for datafile 4 to
'D:\app\openclusteradmin\oradata\orcl\users01.dbf';
set newname for datafile 5 to
'D:\app\openclusteradmin\oradata\orcl\ktc_sp01.dbf';
set newname for datafile 6 to
'D:\app\openclusteradmin\oradata\orcl\kt_sp02.dbf';
set newname for datafile 8 to
'D:\app\openclusteradmin\oradata\orcl\KT_SP_01.dbf';
set newname for datafile 9 to
'D:\app\openclusteradmin\oradata\orcl\KT_SP_02.dbf';
set newname for datafile 10 to
'D:\app\openclusteradmin\oradata\orcl\KT_SP_03.dbf';
restore database;
switch datafile all;
release channel ch0;
}
四。三种错误提示
alter database open; X
ORA-01589: must use RESETLOGS or NORESETLOGS option for database
open
recover database; X
RMAN-06054: media recovery requesting unknown archived log for
thread 1 with sequence 97 and starting SCN of 92559470
alter database open resetlogs;X
unable to re-create online log '/oracleDB/orcl/redo01.log'
五。唯一解决办法
下面这个方法也不成
sql>
alter database rename file
'/oracleDB/orcl/redo01.log' to
'D:\app\openclusteradmin\oradata\orcl\redo01.log'; alter database rename file
'/oracleDB/orcl/redo02.log' to 'D:\app\openclusteradmin\oradata\orcl\redo02.log';
alter database rename file
'/oracleDB/orcl/redo03.log' to 'D:\app\openclusteradmin\oradata\orcl\redo03.log';
只能手动重建控制文件
sql>
alter database backup controlfile to trace as
'd:\orcl_a.sql';
shutdown immediate;
手动删除 old control file;
startup nomount;
修改:d:\bakcontrol.sql中 online log 得路径
CREATE CONTROLFILE REUSE DATABASE "ORCL"
RESETLOGS ARCHIVELOG
MAXLOGFILES
16
MAXLOGMEMBERS 3
MAXDATAFILES
100
MAXINSTANCES
8
MAXLOGHISTORY 292
LOGFILE
GROUP 1
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\redo01.log' SIZE 128M BLOCKSIZE 512,
GROUP 2
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\redo02.log' SIZE 128M BLOCKSIZE 512,
GROUP 3
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\redo03.log' SIZE 128M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\SYSTEM01.DBF',
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\SYSAUX01.DBF',
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\UNDOTBS01.DBF',
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\USERS01.DBF',
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\KTC_SP01.DBF',
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\KT_SP02.DBF',
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\KT_SP_01.DBF',
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\KT_SP_02.DBF',
'D:\APP\OPENCLUSTERADMIN\ORADATA\ORCL\KT_SP_03.DBF'
CHARACTER SET ZHS16GBK
;
六。查看数据库状态
select open_mode from v$database;
已经是mounted了
alter database open resetlogs;
七。查看临时表空间
select name from v$tablespace;
TEMP
TEMP_USER
编写创建临时表空间文件
ALTER TABLESPACE TEMP ADD
TEMPFILE 'D:\app\openclusteradmin\oradata\orcl\temp01.dbf' size
10m;
ALTER TABLESPACE TEMP_USER ADD TEMPFILE
'D:\app\openclusteradmin\oradata\orcl\temp_user01.dbf' size
10m;
至此已经完成异构平台的数据库迁移。