然后我们可以直接将这两个文件传输到Windows平台上:
C:\oracle\oradata\EYGLE\DATAFILE>ftp 172.16.33.109
Connected to 172.16.33.109.
220 (vsFTPd 2.0.3)
User (172.16.33.109:(none)): oracle
331 Please specify the password.
Password:
230 Login successful.
ftp> bin
200 Switching to Binary mode.
ftp> mget oradata/eygle/EYGLE/datafile/trans.dbf
200 Switching to Binary mode.
mget oradata/eygle/EYGLE/datafile/trans.dbf? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for oradata/eygle/EYGLE/datafile/trans.dbf (10493952 bytes).
226 File send OK.
ftp: 收到 10493952 字节,用时 1.13Seconds 9327.96Kbytes/sec.
ftp> mget oradata/exp_trans.dmp
200 Switching to Binary mode.
mget oradata/exp_trans.dmp? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for oradata/exp_trans.dmp (16384 bytes).
226 File send OK.
ftp: 收到 16384 字节,用时 0.00Seconds 16384000.00Kbytes/sec.
ftp> quit
221 Goodbye.
SQL> create user trans identified by trans;
用户已创建。
SQL> grant connect,resource to trans;
授权成功。
接下来执行导入:
C:\oracle\oradata\EYGLE\DATAFILE>imp '/ as sysdba' tablespaces=trans transport_tablespace=y file=exp_trans.dmp datafiles=C:\oracle\oradata\EYGLE\DATAFILE\trans.dbf
Import: Release 10.2.0.3.0 - Production on 星期四 7月 12 15:55:30 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SYS 的对象导入到 SYS
. 正在将 SYS 的对象导入到 SYS
. 正在将 TRANS 的对象导入到 TRANS
. . 正在导入表 "TEST"
. 正在将 SYS 的对象导入到 SYS
成功终止导入, 没有出现警告。
我们看到这个文件可以直接被Windows上的系统识别。
SQL> select count(*) from trans.test;
COUNT(*)
----------
615
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
TRANS READ ONLY
已选择6行。
6. Oracle10g同字节序跨平台迁移的增强
上一节介绍的方法不免过于复杂,也许很多朋友会发出这样的疑问,既然同字节序数据文件跨平台的差异如此之小,为什么Oracle不直接实现这一技术呢?
也许是这一迁移的技术优先级较低,在Oracle10gR2中,Oracle开始支持同字节序数据库的跨平台迁移。
这一技术实现有以下几点注意事项:
1. 源平台和目的平台需要具有相同的字节序
2. 重做日志文件和控制文件不会传输,迁移之后需要重建控制文件使用RESETLOGS方式打开数据库;临时文件不会被传输
3. BFILES、外部表和Directories、口令文件等不会被传输。
我们通过Linux平台到Windows平台的迁移来看一下这一技术的实现。
1. 确认平台及版本
首先要确定源平台和目标平台具有相同的字节序:
SQL> select PLATFORM_NAME, ENDIAN_FORMAT from V$TRANSPORTABLE_PLATFORM
2 where platform_name in ('Linux IA (32-bit)','Microsoft Windows IA (32-bit)');
PLATFORM_NAME ENDIAN_FORMAT
---------------------------------------- --------------
Microsoft Windows IA (32-bit) Little
Linux IA (32-bit) Little
然后需要确定源平台及目标平台的数据库版本,通常需要这两者具有相同的数据库版本,本例的情况有所不同,Linux平台的数据库版本为10.2.0.1,Windows平台的数据库版本为10.2.0.3,数据库版本不同将使情况稍微复杂一点,而且需要注意的是,通常高版本的数据库不能向低版本迁移。
2. 确认迁移是否支持
跨平台迁移需要数据库处于READ ONLY模式打开,使用DBMS_TDB.CHECK_DB进行检查:
SQL> set serveroutput on
SQL> declare
2 db_ready boolean;
3 begin
4 db_ready := dbms_tdb.check_db('Microsoft Windows IA (32-bit)');
5 end;
6 /
PL/SQL procedure successfully completed.
如果以上过程成功执行,并没有其他相关警告输出,则说明数据库可以支持跨平台转移。
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|