linux版本:
[oracle@xys udump]$ uname -a
Linux xys 2.4.21-4.EL #1 Fri Oct 3 18:13:58 EDT 2003 i686 i686 i386 GNU/Linux
oracle版本都是10.2.0.1
1、拷贝之前确认两个平台下ENDIAN_FORMAT相同,这里相同都是Little
SQL> select *from v$transportable_platform;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ----------------------------------- ------------------------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
10 Linux IA (32-bit) Little
6 AIX-Based Systems (64-bit) Big
3 HP-UX (64-bit) Big
5 HP Tru64 UNIX Little
4 HP-UX IA (64-bit) Big
11 Linux IA (64-bit) Little
15 HP Open VMS Little
8 Microsoft Windows IA (64-bit) Little
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ----------------------------------- ------------------------------
9 IBM zSeries Based Linux Big
13 Linux 64-bit for AMD Little
16 Apple Mac OS Big
12 Microsoft Windows 64-bit for AMD Little
17 Solaris Operating System (x86) Little
18 IBM Power Based Linux Big
17 rows selected.
2、检查一下linux下db_name=test oracle_sid=orcl的库,确认其可以正常open,同时
查询dbf,ctl,redo的位置:
[oracle@xys oracle]$ export ORACLE_SID=ORCL
[oracle@xys oracle]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 1 20:08:59 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/opt/app/oracle/oradata/orcl/system01.dbf
/opt/app/oracle/oradata/orcl/undotbs01.dbf
/opt/app/oracle/oradata/orcl/sysaux01.dbf
/opt/app/oracle/oradata/orcl/users01.dbf
/opt/app/oracle/oradata/orcl/trans.dbf
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/opt/app/oracle/oradata/orcl/control01.ctl
/opt/app/oracle/oradata/orcl/control02.ctl
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/opt/app/oracle/oradata/orcl/redo01.log
/opt/app/oracle/oradata/orcl/redo02.log
/opt/app/oracle/oradata/orcl/redo03.log
SQL>
3、get linux下db的参数文件到win下,同时修改参数文件并且创建相应的目录
4、oradim创建服务,并且启动实例
5、get dbf,controlfile,redo(其实只get dbf即可)
6、重建controlfile:
SQL> CREATE CONTROLFILE set DATABASE "TEST" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'E:\oracle\product\10.2.0\oradata\orcl\redo01.log' SIZE 10M,
9 GROUP 2 'E:\oracle\product\10.2.0\oradata\orcl\redo02.log' SIZE 10M,
10 GROUP 3 'E:\oracle\product\10.2.0\oradata\orcl\redo03.log' SIZE 10M
11 -- STANDBY LOGFILE
12 DATAFILE
13 'E:\oracle\product\10.2.0\oradata\orcl\system01.dbf',
14 'E:\oracle\product\10.2.0\oradata\orcl\undotbs01.dbf',
15 'E:\oracle\product\10.2.0\oradata\orcl\sysaux01.dbf',
16 'E:\oracle\product\10.2.0\oradata\orcl\users01.dbf',
17 'E:\oracle\product\10.2.0\oradata\orcl\trans.dbf'
18 CHARACTER SET WE8ISO8859P1
19 ;
CREATE CONTROLFILE set DATABASE "TEST" RESETLOGS ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01158: database already mounted
--上面创建controlfile出错是由于系统存在一个db_name=test的db,暂时shutdown之后
再建即可,尽管已在该参数文件中增加了db_unique_name,貌似没起作用,先不管了,能创建就行
SQL> /
Control file created.
SQL> select status from v$instance;
STATUS
------------------------
MOUNTED
SQL> alter database open resetlogs;
Database altered.
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TRANS.DBF
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
简单测试一下发现没有问题:
SQL> create table t(id int);
Table created.
SQL> insert into t values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t;
ID
----------
1
SQL>
[oracle@xys udump]$ uname -a
Linux xys 2.4.21-4.EL #1 Fri Oct 3 18:13:58 EDT 2003 i686 i686 i386 GNU/Linux
oracle版本都是10.2.0.1
1、拷贝之前确认两个平台下ENDIAN_FORMAT相同,这里相同都是Little
SQL> select *from v$transportable_platform;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ----------------------------------- ------------------------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
10 Linux IA (32-bit) Little
6 AIX-Based Systems (64-bit) Big
3 HP-UX (64-bit) Big
5 HP Tru64 UNIX Little
4 HP-UX IA (64-bit) Big
11 Linux IA (64-bit) Little
15 HP Open VMS Little
8 Microsoft Windows IA (64-bit) Little
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ----------------------------------- ------------------------------
9 IBM zSeries Based Linux Big
13 Linux 64-bit for AMD Little
16 Apple Mac OS Big
12 Microsoft Windows 64-bit for AMD Little
17 Solaris Operating System (x86) Little
18 IBM Power Based Linux Big
17 rows selected.
2、检查一下linux下db_name=test oracle_sid=orcl的库,确认其可以正常open,同时
查询dbf,ctl,redo的位置:
[oracle@xys oracle]$ export ORACLE_SID=ORCL
[oracle@xys oracle]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 1 20:08:59 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/opt/app/oracle/oradata/orcl/system01.dbf
/opt/app/oracle/oradata/orcl/undotbs01.dbf
/opt/app/oracle/oradata/orcl/sysaux01.dbf
/opt/app/oracle/oradata/orcl/users01.dbf
/opt/app/oracle/oradata/orcl/trans.dbf
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/opt/app/oracle/oradata/orcl/control01.ctl
/opt/app/oracle/oradata/orcl/control02.ctl
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/opt/app/oracle/oradata/orcl/redo01.log
/opt/app/oracle/oradata/orcl/redo02.log
/opt/app/oracle/oradata/orcl/redo03.log
SQL>
3、get linux下db的参数文件到win下,同时修改参数文件并且创建相应的目录
4、oradim创建服务,并且启动实例
5、get dbf,controlfile,redo(其实只get dbf即可)
6、重建controlfile:
SQL> CREATE CONTROLFILE set DATABASE "TEST" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'E:\oracle\product\10.2.0\oradata\orcl\redo01.log' SIZE 10M,
9 GROUP 2 'E:\oracle\product\10.2.0\oradata\orcl\redo02.log' SIZE 10M,
10 GROUP 3 'E:\oracle\product\10.2.0\oradata\orcl\redo03.log' SIZE 10M
11 -- STANDBY LOGFILE
12 DATAFILE
13 'E:\oracle\product\10.2.0\oradata\orcl\system01.dbf',
14 'E:\oracle\product\10.2.0\oradata\orcl\undotbs01.dbf',
15 'E:\oracle\product\10.2.0\oradata\orcl\sysaux01.dbf',
16 'E:\oracle\product\10.2.0\oradata\orcl\users01.dbf',
17 'E:\oracle\product\10.2.0\oradata\orcl\trans.dbf'
18 CHARACTER SET WE8ISO8859P1
19 ;
CREATE CONTROLFILE set DATABASE "TEST" RESETLOGS ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01158: database already mounted
--上面创建controlfile出错是由于系统存在一个db_name=test的db,暂时shutdown之后
再建即可,尽管已在该参数文件中增加了db_unique_name,貌似没起作用,先不管了,能创建就行
SQL> /
Control file created.
SQL> select status from v$instance;
STATUS
------------------------
MOUNTED
SQL> alter database open resetlogs;
Database altered.
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TRANS.DBF
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
简单测试一下发现没有问题:
SQL> create table t(id int);
Table created.
SQL> insert into t values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t;
ID
----------
1
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15689685/viewspace-440464/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15689685/viewspace-440464/