Не претендуя на оригинальность, описываю свои действия.
set ORACLE_SID=db
sqlplus "/ as sysdba"
col file_name format a70; select tablespace_name, file_name from dba_data_files;
Те файлы, что появятся в результате запроса, надо переносить
alter database backup controlfile to trace as '/path/to/trace.file';
shutdown immediate;
exit
/path/to/ находим файл trace.file. (В нём необходимый набор для пересоздания управляющих файлов (control files)). Переносим его в целевую систему.
STARTUP NOMOUNT;
CREATE CONTROLFILE REUSE DATABASE "DB" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 4544
LOGFILE
GROUP 1 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\REDO01.LOG' SIZE 10M,
GROUP 2 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\REDO02.LOG' SIZE 10M,
GROUP 3 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\REDO03.LOG' SIZE 10M
DATAFILE
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\SYSTEM01.DBF',
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\UNDOTBS01.DBF',
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\SYSAUX01.DBF',
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\MYDB.DBF',
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\USERS01.DBF'
CHARACTER SET CL8MSWIN1251;
sqlplus "/ as sysdba"
shutdown immediate;
@\path\to\db.sql; alter database open resetlogs;