为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

oracle 数据库由Linux平台向Windows平台迁移

2018-04-30 10页 doc 28KB 25阅读

用户头像

is_005190

暂无简介

举报
oracle 数据库由Linux平台向Windows平台迁移oracle 数据库由Linux平台向Windows平台迁移 最近学习了一下oracle数据库启动原理,突然想我在linux创建的数据库想把移植到windows用 经过一翻思考,动手把linux下的数据库直接通过原文件复制到windows下启动起来了。 虽然此移植在实际生产用途不大,但对一个刚oracle来说,确实能从中学到很多东西,所以写 下此文以供大家参考,欢迎提出宝贵介意。 系统环境:linux 下是32 位平台,linux内存,CPU等硬件条件和windows是一样。 如果硬件条件不一至,下面讲的数据迁移可...
oracle 数据库由Linux平台向Windows平台迁移
oracle 数据库由Linux平台向Windows平台迁移 最近学习了一下oracle数据库启动原理,突然想我在linux创建的数据库想把移植到windows用 经过一翻思考,动手把linux下的数据库直接通过原文件复制到windows下启动起来了。 虽然此移植在实际生产用途不大,但对一个刚oracle来说,确实能从中学到很多东西,所以写 下此文以供大家参考,欢迎提出宝贵介意。 系统环境:linux 下是32 位平台,linux内存,CPU等硬件条件和windows是一样。 如果硬件条件不一至,下面讲的数据迁移可能会碰到其他问。 软件环境:linux平台和windows平台装的oracle软件版本是 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod 都是以企业版安装。 如果两边版本不一至,还没有实验过。 我粗略讲一下过程,把linux下的数据文件,控制文件,重做日志组文件, 参数文件,复到到windows下,然后把参数文件里的控制文件改成windows目录 下结果,同时使数据重新生成控制文件。详细步骤如下: linux平台下的数据库配制如下 数据库是以文件系统管理 实例名:orcl 数据库名:orcl ORACLE_BASE=/u01/app/oracle/oracle ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1 ORACLE_SID=orcl 数据库文件存放位置:/u02/oradata/orcl windows平台下的数据库配制如下 数据库是以文件系统管理 实例名:linux 由于我的windows平台上已经有一个实例名为orcl的,所以我把linux平台移过来改为linux实例名 数据库名:orcl 由于数据库是从linux文件直接复制过来,所以数据库名是不能 更改的 ORACLE_BASE=D:\oracle ORACLE_HOME=D:\oracle\product\10.2.0\db_1 ORACLE_SID=linux 数据库文件存放位置:D:\oracle\oradata\linux 步骤如下: --登录到linux下数据库 [oracle@localhost ~]$ 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 例程已经关闭。 复制参数文件,控制文件,数据文件,重做日志组文件到windows平台下的目录, 我这里是通过Samba来复制到windows平台下的目录,也可以在linux开个FTP, 把以 上文件通过FTP下载到windows平台文件夹下面 windows平台如输入如下创建文件夹 mkdir D:\oracle\oradata\linux linux平台下的数据文件,重做日志组文件和控制文件放在 /u02/oradata/orcl windows平台我把放到 D:\oracle\oradata\linux 把linux下/u02/oradata/orcl所有文件都复制到D:\oracle\oradata\linux 把linux平台下的实例参数文件 /u01/app/oracle/oracle/product/10.2.0/db_1/dbs/initorcl.ora 复制到window平台下的 D:\oracle\product\10.2.0\db_1\database\initlinux.ora (这里注意文件名,windows平台下我把改成initlinux.ora) 以下是windows平台在cmd命令下输入的命令 创建文件夹: mkdir D:\oracle\admin\linux\adump mkdir D:\oracle\admin\linux\bdump mkdir D:\oracle\admin\linux\cdump mkdir D:\oracle\admin\linux\dpdump mkdir D:\oracle\admin\linux\pfile mkdir D:\oracle\admin\linux\udump 如果D:\oracle\flash_recovery_area也不存在,也创建 mkdir D:\oracle\flash_recovery_area 环境变量 set ORACLE_SID=linux 或者打开注册 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1 把ORACLE_SID改成linux 用UltraEdit打开文件 D:\oracle\product\10.2.0\db_1\database\initlinux.ora 把linux下的目录结构改成windows下的目录结构,如果实例名也有,同时更改 实例名为linux, 下面文件是我的参数文件信息。供参考: orcl.__db_cache_size=92274688 orcl.__java_pool_size=4194304 orcl.__large_pool_size=4194304 orcl.__shared_pool_size=62914560 orcl.__streams_pool_size=0 *.audit_file_dest='D:\oracle\admin\linux\adump' *.background_dump_dest='D:\oracle\admin\linux\bdump' *.compatible='10.2.0.1.0' *.control_files='D:\oracle\oradata\linux\control01.ctl','D:\oracle\or adata\linux\control02.ctl','D:\oracle\oradata\linux\control03.ctl' *.core_dump_dest='D:\oracle\admin\linux\cdump' *.db_block_size=8192 *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='orcl' *.db_recovery_file_dest='D:\oracle\flash_recovery_area' *.db_recovery_file_dest_size=2147483648 *.job_queue_processes=10 *.nls_language='SIMPLIFIED CHINESE' *.nls_territory='CHINA' *.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='D:\oracle\admin\linux\udump' 在windows下创建linux实例实启动 D:\oracle\product\10.2.0\db_1\bin\oradim.exe -new -sid linux 创建密码文件 D:\oracle\product\10.2.0\db_1\bin\orapwd.exe file=D:\oracle\product\10.2.0\db_1\database\PWDlinux.ora password=<密 码> 登录数据库 c:\>sqlplusw / as sysdba 启动到nomount下 SQL> startup mount pfile=D:\oracle\product\10.2.0\db_1\database\initlinux.ora; ORACLE 例程已经启动。 Total System Global Area 167772160 bytes Fixed Size 1247900 bytes Variable Size 62915940 bytes Database Buffers 100663296 bytes Redo Buffers 2945024 bytes 数据库装载完毕。 --创建一个spfile文件,下次以spfile文件启动 SQL> create spfile='spfilelinux.ora' from pfile; 文件已创建。 这样在D:\oracle\product\10.2.0\db_1\database下有一个spfilelinux.ora 文件 下次启时候直接以spfile文件启动 --做一个把控制文件的内容生成到跟踪文件命令,这一部很重要,生成到跟踪文件里的就是重创控制文件的命令。 SQL> alter database backup controlfile to trace; 数据库已更改。 关闭数据库 SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 打开跟踪文件,目录为D:\oracle\admin\linux\udump 查找最新修改文件*.trc,如我的机子上是linux_ora_3632.trc 用UltraEdit打开,并查找这行:“-- Set #1. NORESETLOGS case” 选中并复制到 “-- End of tempfile additions. -- -- Set #2. RESETLOGS case”为止。 因为我在linux下已经把所有的文件都复制过来了,所以我选用Set #1. NORESETLOGS case这段创建控制文件模版 把选中这段文字所有目录结构改成windows平台下的目录结构,下面是我的样例如下: STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'D:\ORACLE\ORADATA\LINUX\REDO01.LOG' SIZE 50M, GROUP 2 'D:\ORACLE\ORADATA\LINUX\REDO02.LOG' SIZE 50M, GROUP 3 'D:\ORACLE\ORADATA\LINUX\REDO03.LOG' SIZE 50M -- STANDBY LOGFILE DATAFILE 'D:\ORACLE\ORADATA\LINUX\SYSTEM01.DBF', 'D:\ORACLE\ORADATA\LINUX\UNDOTBS01.DBF', 'D:\ORACLE\ORADATA\LINUX\SYSAUX01.DBF', 'D:\ORACLE\ORADATA\LINUX\USERS01.DBF' CHARACTER SET ZHS16GBK ; RECOVER DATABASE -- Database can now be opened normally. ALTER DATABASE OPEN; 保存一个sql语句文本如c:\CreateControl.sql 最后在空闲例程状态下,执行c:\creacontr.sql 在sqlplusw里执行保存的脚本,如 SQL> @c:\creacontr.sql; 出现一系统成功提示信息。 检查里面数据是否有丢失等等。 以下是在服务器端加上监听配制, 在D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora加上以下内 容 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) (SID_NAME = ORCL) ) #以下这段是需要加的内容 (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) (SID_NAME = LINUX) ) ) 重起监听程序 c:>\lsnrctl stop c:>\lsnrctl start 在客户段配制文件tnsnames.ora 最后面加入如下内容: LINUX = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = zjhmobile)(PORT = 1521)) ) (CONNECT_DATA = (SID = LINUX) (SERVER = DEDICATED) ) ) 完. 转自:
/
本文档为【oracle 数据库由Linux平台向Windows平台迁移】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索