跨平台oracle数据库迁移,跨平台迁移oracle数据库指南
Oracle 10g开始提供了强大的数据库跨平台迁移功能,可以对不同体系架构,不同操作系统间的oracle数据库进行迁移!但endianess必须要相同,11g开始不同的endianess之间也可以进行相互迁移!下面演示下将windows 32位上的oracle数据库迁移到rhel6 64位上。
一:准备windows环境这里采取32位winxp系统,如果之前安装过oracle服务器或者客户端需要卸载干净(清注册表),否则安装会报错,oracle版本为10.2.0.1SQL>select * from v$transportable_platform;
PLATF 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
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
1.1 新建一个自定义的表空间,并在表空间上建表,插数据SQL>create tablespace win_migrate
2 datafile 'E:\oracle\product\10.2.0\oradata\winorcl\win_migrate01.dbf'
3 size 10M;
表空间已创建。
SQL>create table t_migrate (a number) tablespace win_migrate;
表已创建。
SQL>insert into t_migrate values (1);
已创建 1 行。
SQL>commit;
提交完成
1.2 在源服务器上将数据库变成自读模式并使用rman转换副本SQL>shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>startup mount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1292036 bytes
Variable Size 188745980 bytes
Database Buffers 415236096 bytes
Redo Buffers 7094272 bytes
数据库装载完毕。
SQL>alter database open read only;
数据库已更改。
C:\Users\Naruto>rman target /
恢复管理器: Release 10.2.0.3.0 - Production on 星期日 7月 17 19:57:49 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: WINORCL (DBID=1904834971)
RMAN>convert database to platform 'Linux 64-bit for AMD' format 'e:\data\%U';
启动 convert 于 17-7月 -11
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1:sid=147devtype=DISK
在数据库中找到外部表 SH.SALES_TRANSACTIONS_EXT
在数据库中找到目录 SYS.SUBDIR
在数据库中找到目录 SYS.XMLDIR
在数据库中找到目录 SYS.MEDIA_DIR
在数据库中找到目录 SYS.LOG_FILE_DIR
在数据库中找到目录 SYS.DATA_FILE_DIR
在数据库中找到目录 SYS.WORK_DIR
在数据库中找到目录 SYS.ADMIN_DIR
在数据库中找到目录 SYS.DATA_PUMP_DIR
在数据库中找到 BFILE PM.PRINT_MEDIA
在口令文件中找到用户 SYS (具有 SYSDBA and SYSOPER 权限)
通道 ORA_DISK_1: 启动数据文件转换
输入数据文件fno=00001name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\WINORCL\SYSTEM01.DBF
——————————其他输出省略————————————
二:将e:\data目录下的所有文件和控制文件的跟踪脚本复制到linux服务器上,可以使用winscp和ftp等工具,这里直接采用samba共享SQL>select p.spid from v$session s ,v$process p
2 wherep.addr=s.paddr
3 ands.username='SYS'and s.program like '%rman%';
SPID
------------
476
3488
4056
三.在linux服务器上准备相应的目录,并将上传的文件移动到相关的目录,修改控制文件脚本和初始化参数文件[root@rhel6 ~]# mount -t cifs -ousername=yang//192.168.50.195/data /mnt
Password:
[root@rhel6 ~]# ls /mnt
DATA_D-WINORCL_I-1904915064_TS-EXAMPLE_FNO-5_03MHMQUN DATA_D-WINORCL_I-1904915064_TS-UNDOTBS1_FNO-2_04MHMQUU INIT_00MHMQTE_1_0.ORA
DATA_D-WINORCL_I-1904915064_TS-SYSAUX_FNO-3_02MHMQU8 DATA_D-WINORCL_I-1904915064_TS-USERS_FNO-4_06MHMQV3 winorcl_ora_4056.trc
DATA_D-WINORCL_I-1904915064_TS-SYSTEM_FNO-1_01MHMQTF DATA_D-WINORCL_I-1904915064_TS-WIN_MIGRATE_FNO-6_05MHMQV2
[oracle@rhel6 ~]$ mkdir -p /u01/app/admin/winorcl/{adump,bdump,cdump,udump}
[oracle@rhel6 ~]$ mkdir -p /u01/app/oradata/winorcl
[oracle@rhel6 ~]$ mkdir -p /u01/app/flash_recovery_area/WINORCL
[oracle@rhel6 ~]$ cp /mnt/DATA_D-WINORCL_I-1904915064_TS-* /u01/app/oradata/winorcl/
[oracle@rhel6 ~]$ cp /mnt/INIT_00MHMQTE_1_0.ORA $ORACLE_HOME/dbs/initwinorcl.ora
[oracle@rhel6 ~]$ cp /mnt/winorcl_ora_4056.trc ~/winorcl.sql
[oracle@rhel6 ~]$ cd /u01/app/oradata/winorcl
[oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-EXAMPLE_FNO-5_03MHMQUN example01.dbf
[oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-SYSAUX_FNO-3_02MHMQU8 sysaux01.dbf
[oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-SYSTEM_FNO-1_01MHMQTF system01.dbf
[oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-UNDOTBS1_FNO-2_04MHMQUU undotbs1.dbf
[oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-USERS_FNO-4_06MHMQV3 users01.dbf
[oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-WIN_MIGRATE_FNO-6_05MHMQV2 win_migrate01.dbf
[oracle@rhel6 ~]$ cat winorcl.sql
CREATE CONTROLFILE REUSE SET DATABASE "winorcl" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/oradata/winorcl/redo01.dbf' SIZE 50M,
GROUP 2 '/u01/app/oradata/winorcl/redo02.dbf' SIZE 50M,
GROUP 3 '/u01/app/oradata/winorcl/redo03.dbf' SIZE 50M
DATAFILE
'/u01/app/oradata/winorcl/system01.dbf',
'/u01/app/oradata/winorcl/undotbs1.dbf',
'/u01/app/oradata/winorcl/sysaux01.dbf',
'/u01/app/oradata/winorcl/users01.dbf',
'/u01/app/oradata/winorcl/example01.dbf',
'/u01/app/oradata/winorcl/win_migrate01.dbf'
CHARACTER SET ZHS16GBK
;
[oracle@rhel6 dbs]$ grep -v '^$' initwinorcl.ora
# Please change the values of the following parameters:
control_files="/u01/app/oradata/winorcl/control01.dbf","/u01/app/oradata/winorcl/control02.dbf"
db_recovery_file_dest="/u01/app/flash_recovery_area"
db_recovery_file_dest_size=21474836480
audit_file_dest="/u01/app/admin/winorcl/adump"
background_dump_dest="/u01/app/admin/winorcl/bdump"
user_dump_dest="/u01/app/admin/winorcl/udump"
core_dump_dest="/u01/app/admin/winorcl/cdump"
db_name="winorcl"
# Please review the values of the following parameters:
__shared_pool_size=167772160
__large_pool_size=4194304
__java_pool_size=16777216
__streams_pool_size=0
__db_cache_size=415236096
remote_login_passwordfile="EXCLUSIVE"
db_domain="766.com"
dispatchers="(PROTOCOL=TCP) (SERVICE=winorclXDB)"
# The values of the following parameters are from source database:
processes=150
nls_language="SIMPLIFIED CHINESE"
nls_territory="CHINA"
sga_target=612368384
db_block_size=8192
compatible="10.2.0.1.0"
log_archive_format="ARC%S_%R.%T"
db_file_multiblock_read_count=16
undo_management="AUTO"
undo_tablespace="UNDOTBS1"
job_queue_processes=10
open_cursors=300
pga_aggregate_target=203423744
四:开始迁移[oracle@rhel6 ~]$ exportORACLE_SID=winorcl
[oracle@rhel6 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jul 17 20:25:10 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>conn /as sysdba
Connected to an idle instance.
SQL>create spfile from pfile;
File created.
SQL>startup nomount
ORACLE instance started.
Total System Global Area 612368384 bytes
Fixed Size 2022696 bytes
Variable Size 188744408 bytes
Database Buffers 415236096 bytes
Redo Buffers 6365184 bytes
SQL>@/home/oracle/winorcl.sql;
Control file created.
SQL>alter database open resetlogs;
Database altered.
SQL>select dbid,name from v$database;
DBID NAME
---------- ---------------------------
1904915064 WINORCL
SQL>select * from t_migrate;
A
----------
1
SQL>select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
--------------------------------------------------------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
EXAMPLE
WIN_MIGRATE
7 rows selected.
SQL>alter tablespace temp add tempfile '/u01/app/oradata/winorcl/temp01.dbf' size 50M;
Tablespace altered.
五:收尾工作SQL>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>startup upgrade
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 2020056 bytes
Variable Size 83889448 bytes
Database Buffers 176160768 bytes
Redo Buffers 6365184 bytes
Database mounted.
Database opened.
SQL>@?/rdbms/admin/utlirp.sql;
SQL>spool /tmp/upgrade.log
SQL>@?/rdbms/admin/utlrp.sql;
SQL>startup force
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)