Oracle Windows 迁移至Linux 文件复制方式

尊重原创,转载请注明出处,谢谢!www.wujianren.com

一、linux平台下的数据库配制如下:
创建实例名:orclbj
数据库名:orclbj
ORACLE_BASE=/opt/oracle/

ORACLE_HOME=/opt/oracle/product/10.2.0/db_1

ORACLE_SID=orclbj

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

二、windows平台下的数据库配制如下:
实例名:orclbj
数据库名:orclbj 由于数据库是从windows文件直接复制过来,所以数据库名是不能更改的
ORACLE_BASE=D:\oracle

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

ORACLE_SID=orclbj

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

三、步骤如下:

1、–登录到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=’initorclbj.ora’ from spfile;

文件已创建。
–关毕数据库

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

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

mkdir -o /opt/oradata
复制参数文件,控制文件,数据文件,重做日志组文件到linux平台下的目录 /opt/oradata ,
window平台下的 D:\oracle\product\10.2.0\db_1\database\initorclbj.ora
复制到linux平台下的目录
/opt/oracle/product/10.2.0/db_1/dbs/initorclbj.ora    #####注意这里的文件名,linux下文件名是区分大小写的
用vi打开文件/opt/oracle/product/10.2.0/db_1/dbs/initorclbj.ora

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

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

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

orclbj.__db_cache_size=75497472
orclbj.__java_pool_size=4194304
orclbj.__large_pool_size=4194304
orclbj.__shared_pool_size=75497472
orclbj.__streams_pool_size=4194304
*.audit_file_dest=’/opt/oracle/admin/orclbj/adump’
*.audit_trail=’DB’
*.background_dump_dest=’/opt/oracle/admin/orclbj/bdump’
*.compatible=’10.2.0.1.0′
*.control_files=’/opt/oradata/orclbj/CONTROL01.CTL’,’/opt/oradata/orclbj/CONTROL02.CTL’,’/opt/oradata/orclbj/CONTROL03.CTL’
*.core_dump_dest=’/opt/oracle/admin/orclbj/cdump’
*.db_block_size=8192
*.db_domain=”
*.db_file_multiblock_read_count=16
*.db_name=’orclbj’
*.db_recovery_file_dest=’/opt/oracle/flash_recovery_area’
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclbjXDB)’
*.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=’/opt/oracle/admin/orclbj/udump’

创建密码文件

orapwd file=/opt/oracle/product/10.2.0/db_1/dbs/orapworclbj password=<密码> #####如果没又有的话需要创建,但一般情况是不需要创建的,因为Linux安装实例的时候已经创建过密码了。

3、inux下登录数据库

[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 – Production on Mon Jul 7 13:24:382008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL>

–启动到mount下

SQL> startup mount pfile=’/opt/oracle/product/10.2.0/db_1/dbs/initorclbj.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 from pfile=’/opt/oracle/product/10.2.0/db_1/dbs/initorclbj.ora’;
File created.

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

4、生成控制文件的跟踪文件。

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打开,删除  — End of tempfile additions. 之后的数据。

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

5、

SQL>shutdown immediate; ####关闭数据库

SQL>@/opt/bak/xxx.trc; ####用此跟踪文件直接启动数据库。

完成。

发表评论