windows下的oracle迁移到linux上

最近学习了一下oracle数据库启动原理,于是,就把在Windows创建起来做测试的数据库。

 

  移植到linux下使用,前几天把Linux移植到Windows成功,但Windows移植到Linux碰到问题会多,

 

  Windows下不区分大小写,但在Linux是区分的,这点务必请大家注意,下面让我们一起去这过程吧!

 

  还是和上面讲的一样,我直接通过文件复制,把原来在Windows下使用的数据库移植到linux下,

 

  而不需要通过其他工具。

 

  虽然此移植在实际生产用途不大,但对一个刚Oracle来说,确实能从中学到很多东西, 所以写下此文以供参考:

 

  系统环境:linux 下是32 位平台,linux内存,CPU等硬件条件和windows是一样。

 

  如果硬件条件不一至,下面讲的数据迁移可能会碰到其他问题。

 

  软件环境:linux平台和windows平台装的oracle软件版本是

 

  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

 

  都是以企业版安装。

 

  如果两边版本不一至,还没有实验过。

 

  我粗略讲一下过程,把windows下的数据文件,控制文件,重做日志组文件,

 

  参数文件,复到到linux下,然后把参数文件里的控制文件改成linux目录

 

  下结构,同时使数据重新生成控制文件。详细步骤如下:

 

  linux平台下的数据库配制如下

 

  数据库是以文件系统管理

 

  实例名:orcl

 

  数据库名:orcl

 

ORACLE_BASE=/u01/app/oracle/ 

ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 

 

 

  数据库文件存放位置:/u02/oradata/orcl

 

  windows平台下的数据库配制如下

 

  数据库是以文件系统管理

 

  实例名:orcl

 

  数据库名:orcl 由于数据库是从windows文件直接复制过来,所以数据库名是不能更改的

oracle_BASE=D:/oracle 

ORACLE_HOME=D:/oracle/product/10.2.0/db_1 

ORACLE_SID=orcl 

 

 

  数据库文件存放位置:D:/oracle/oradata/orcl

 

  步骤如下:

 

  --登录到windows下数据库 

 

c:/>sqlplus / as sysdba 

  SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 7月 1 14:53:23 2008 

  Copyright (c) 1982, 2005, Oracle. All rights reserved. 

 

 

  连接到:

 

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 

  With the Partitioning, OLAP and Data Mining options 

 

 

  --创建参数pfile文件

 

SQL> create pfile='initorcl.ora' from spfile; 

 

 

  文件已创建。

 

  --关毕数据库

 

SQL> shutdown immediate; 

 

 

  数据库已经关闭。

 

  已经卸载数据库。

 

  ORACLE 例程已经关闭。

 

  linux平台如输入如下创建文件夹

 

  mkdir -o /u02/oradata/orcl

 

  复制参数文件,控制文件,数据文件,重做日志组文件到linux平台下的目录,

 

  我这里是在linux开了一个samba服务,然后把/u02/oradata/orcl文件夹共享

也可以在linux开个FTP,通过FTP把文件传到linux机器上

 

  windows平台数据文件,,重做日志组文件和控制文件放在 D:/oracle/oradata/orcl

 

  linux平台下的数据文件 /u02/oradata/orcl

 

  linux平台下的实例参数文件window平台下的 D:/oracle/product/10.2.0/db_1/database/initorcl.ora

 

  复制到linux平台下的目录

 

  /u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora

 

  注意这里的文件名,linux下文件名是区分大小写的,所以把全部改成小写的

 

  以下是linux平台输入如下命令来创建文件夹:

 

mkdir -p /u01/app/oracle/admin/orcl/adump 

  mkdir -p /u01/app/oracle/admin/orcl/bdump 

  mkdir -p /u01/app/oracle/admin/orcl/cdump 

  mkdir -p /u01/app/oracle/admin/orcl/dpdump 

  mkdir -p /u01/app/oracle/admin/orcl/pfile 

  mkdir -p /u01/app/oracle/admin/orcl/udump 

 

 

  如果/u01/app/oracle/flash_recovery_area也不存在,也创建

 

mkdir -p /u01/app/oracle/flash_recovery_area 

 

 

  设计环境变量

 

set ORACLE_SID=linux 

 

 

  或者更改oracle用户下的.bash_profile文件

 

ORACLE_SID=orcl; export ORACLE_SID 

 

 

  把ORACLE_SID改成orcl

 

  用vi打开文件/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora

 

  把windows下的目录结构改成linux下的目录结构。

 

  注意下,在linux下文件名和文件夹都是区分大小写的,请确保下面参数实际文件名大小写一至,否则就起动不了数据库。

 

  下面文件是我的参数文件信息。供参考:

 

      orcl.__db_cache_size=75497472 

  orcl.__Java_pool_size=4194304 

  orcl.__large_pool_size=4194304 

  orcl.__shared_pool_size=75497472 

  orcl.__streams_pool_size=4194304 

  *.audit_file_dest='/u01/app/oracle/admin/orcl/adump' 

  *.audit_trail='DB' 

  *.background_dump_dest='/u01/app/oracle/admin/orcl/bdump' 

  *.compatible='10.2.0.1.0' 

  *.control_files='/u02/oradata/orcl/CONTROL01.CTL','/u02/oradata/orcl/CONTROL02.CTL','/u02/oradata/orcl/CONTROL03.CTL' 

  *.core_dump_dest='/u01/app/oracle/admin/orcl/cdump' 

  *.db_block_size=8192 

  *.db_domain='' 

  *.db_file_multiblock_read_count=16 

  *.db_name='orcl' 

  *.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area' 

  *.db_recovery_file_dest_size=2147483648 

  *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' 

  *.job_queue_processes=10 

  *.open_cursors=300 

  *.pga_aggregate_target=16777216 

  *.processes=150 

  *.remote_login_passwordfile='EXCLUSIVE' 

  *.sga_target=167772160 

  *.undo_management='AUTO' 

  *.undo_tablespace='UNDOTBS1' 

  *.user_dump_dest='/u01/app/oracle/admin/orcl/udump' 

 

orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl password=<密码> 

 

 

  linux下登录数据库 

 

[oracle@localhost ~]$ sqlplus / as sysdba 

  SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 7 13:24:38 2008 

  Copyright (c) 1982, 2005, Oracle. All rights reserved. 

  Connected to an idle instance. 

  SQL> 

 

 

  --启动到mount下  

 

SQL> startup mount pfile=/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora; 

  ORACLE instance started. 

  Total System Global Area 167772160 bytes 

  Fixed Size 1218316 bytes 

  Variable Size 88082676 bytes 

  Database Buffers 75497472 bytes 

  Redo Buffers 2973696 bytes 

  Database mounted. 

 

 

  --创建一个spfile文件,下次以spfile文件启动 

 

SQL> create spfile='spfileorcl.ora' from pfile; 

  File created. 

 

 

  下次启时候直接以spfile文件启动

 

  --做一个把控制文件的内容生成到跟踪文件命令,这一部很重要,生成到跟踪文件里的就是重创控制文件的命令。

 

SQL> alter database backup controlfile to trace; 

  Database altered. 

 

 

  --关闭数据库

 

SQL> shutdown immediate; 

  ORA-01109: database not open 

  Database dismounted. 

  ORACLE instance shut down. 

 

 

  打开跟踪文件,目录为$ORACLE_BASE/admin/linux/udump

 

  查找最新修改文件*.trc,如我的机子上是linux_ora_3647.trc

 

  用vi打开,并查找这行:“-- Set #1. NORESETLOGS case”

 

  选中并复制到

 

  “-- End of tempfile additions.

 

  --

 

  -- Set #2. RESETLOGS case”为止。

 

  把选中这段文字所有目录结构改成linux平台下的目录结构,

 

  注意,linux下是区分在小写的,这里改过来,必须和实际文件名大小写一至,否则创建的控制文件不能启动。

http://www.wewill.cn/n22990c46.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值