Oracle 10g开始提供了强大的数据库跨平台迁移功能,可以对不同体系架构,不同操作系统间的oracle数据库进行迁移!但endianess必须要相同,11g开始不同的endianess之间也可以进行相互迁移!下面演示下将windows 32位上的oracle数据库迁移到rhel6 64位上。
一:准备windows环境
这里采取32位winxp系统,如果之前安装过oracle服务器或者客户端需要卸载干净(清注册表),否则安装会报错,oracle版本为
10.2.0
.1
1. SQL> select * from v$transportable_platform; 2. 3. PLATF PLATFORM_NAME ENDIAN_FORMAT 4. ----- ---------------------------------------- -------------- 5. 1 Solaris[tm] OE (32-bit) Big 6. 2 Solaris[tm] OE (64-bit) Big 7. 7 Microsoft Windows IA (32-bit) Little 8. 10 Linux IA (32-bit) Little 9. 6 AIX-Based Systems (64-bit) Big 10. 3 HP-UX (64-bit) Big 11. 5 HP Tru64 UNIX Little 12. 4 HP-UX IA (64-bit) Big 13. 11 Linux IA (64-bit) Little 14. 15 HP Open VMS Little 15. 8 Microsoft Windows IA (64-bit) Little 16. 9 IBM zSeries Based Linux Big 17. 13 Linux 64-bit for AMD Little 18. 16 Apple Mac OS Big 19. 12 Microsoft Windows 64-bit for AMD Little 20. 17 Solaris Operating System (x86) Little 21. 18 IBM Power Based Linux Big 22. 17 rows selected
1.1 新建一个自定义的表空间,并在表空间上建表,插数据 1. SQL> create tablespace win_migrate 2. 2 datafile 'E:\oracle\product\10.2.0\oradata\winorcl\win_migrate01.dbf' 3. 3 size 10M; 4. 表空间已创建。 5. 6. SQL> create table t_migrate (a number) tablespace win_migrate; 7. 表已创建。 8. 9. SQL> insert into t_migrate values (1); 10. 已创建 1 行。 11. 12. SQL> commit; 13. 提交完成 1.2 在源服务器上将数据库变成自读模式并使用rman转换副本 1. SQL> shutdown immediate 2. 数据库已经关闭。 3. 已经卸载数据库。 4. ORACLE 例程已经关闭。 5. SQL> startup mount 6. ORACLE 例程已经启动。 7. 8. Total System Global Area 612368384 bytes 9. Fixed Size 1292036 bytes 10. Variable Size 188745980 bytes 11. Database Buffers 415236096 bytes 12. Redo Buffers 7094272 bytes 13. 数据库装载完毕。 14. 15. SQL> alter database open read only; 16. 数据库已更改。 17. 18. C:\Users\Naruto>rman target / 19. 恢复管理器: Release 10.2.0.3.0 - Production on 星期日 7月 17 19:57:49 2011 20. Copyright (c) 1982, 2005, Oracle. All rights reserved. 21. 连接到目标数据库: WINORCL (DBID=1904834971) 22. 23. RMAN> convert database to platform 'Linux 64-bit for AMD' format 'e:\data\%U'; 24. 25. 启动 convert 于 17-7月 -11 26. 使用目标数据库控制文件替代恢复目录 27. 分配的通道: ORA_DISK_1 28. 通道 ORA_DISK_1: sid=147 devtype=DISK 29. 30. 在数据库中找到外部表 SH.SALES_TRANSACTIONS_EXT 31. 32. 在数据库中找到目录 SYS.SUBDIR 33. 在数据库中找到目录 SYS.XMLDIR 34. 在数据库中找到目录 SYS.MEDIA_DIR 35. 在数据库中找到目录 SYS.LOG_FILE_DIR 36. 在数据库中找到目录 SYS.DATA_FILE_DIR 37. 在数据库中找到目录 SYS.WORK_DIR 38. 在数据库中找到目录 SYS.ADMIN_DIR 39. 在数据库中找到目录 SYS.DATA_PUMP_DIR 40. 41. 在数据库中找到 BFILE PM.PRINT_MEDIA 42. 43. 在口令文件中找到用户 SYS (具有 SYSDBA and SYSOPER 权限) 44. 通道 ORA_DISK_1: 启动数据文件转换 45. 输入数据文件 fno=00001 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\WINORCL\SYSTEM01.DBF ——————————其他输出省略———————————— 二:将e:\data目录下的所有文件和控制文件的跟踪脚本复制到linux服务器上,可以使用winscp和ftp等工具,这里直接采用samba共享 1. SQL> select p.spid from v$session s ,v$process p 2. 2 w