ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 把linux下db冷拷贝到win下

把linux下db冷拷贝到win下

原创 Linux操作系统 作者:OneGoodDream 时间:2008-09-02 11:01:28 0 删除 编辑
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>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15689685/viewspace-440464/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: SYSAUX不断的增大
请登录后发表评论 登录
全部评论

注册时间:2008-09-02

  • 博文量
    6
  • 访问量
    18930