一种非常好数据库升级的思路,测试的起源来自于下面的帖子:
在结合下面的例子相信在异构os上也没有问题,遗憾的是手头没有环境,懒的搭建测试了!
把9i 下的表空间迁移到10g上,创建表空间trans_tbs时datafile拉了扩展名了,看起来不是很舒服,对付着看吧!:)
C:>sqlplus system/manager
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 1月 13 21:29:19 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string DB9i
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
C:ORACLEORA92DB9ISYSTEM01.DBF
C:ORACLEORA92DB9IUNDOTBS01.DBF
C:ORACLEORA92DB9IUSERS01.DBF
--创建一个自包含的表空间
SQL> create tablespace trans_tbs datafile 'C:ORACLEORA92DB9Itrans_tbs' size
5m ;
表空间已创建。
SQL> create user xys identified by manager default tablespace trans_tbs;
用户已创建
SQL> grant connect , resource , dba to xys;
授权成功。
SQL> connect xys/manager
已连接。
--创建测试数据
SQL> create table t as select *from dba_objects;
表已创建。
--将要transport tablespace改为read only是必须的!
SQL> alter tablespace trans_tbs read only;
表空间已更改。
SQL> host exp 'sys/manager as sysdba' file='E:trans_tbstrans_tbs.dmp' transpor
t_tablespace=y tablespaces=TRANS_TBS
Export: Release 9.2.0.1.0 - Production on 星期六 1月 13 21:35:43 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不会导出表数据(行)
关于导出可传输的表空间元数据...
用于表空间 TRANS_TBS...
. 正在导出群集定义
. 正在导出表定义
. . 正在导出表 T
. 正在导出引用完整性约束条件
. 正在导出触发器
. 结束导出可传输的表空间元数据
在没有警告的情况下成功终止导出。
SQL> EXIT
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开
C:>SET ORACLE_SID=ORCL
C:>sqlplus system/system
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:45:42 2007
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
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
SQL> host copy C:oracleora92DB9itrans_tbs E:ORACLEPRODUCT10.2.0ORADATAO
RCLtrans_tbs
已复制 1 个文件。
SQL> host imp 'sys/system as sysdba' transport_tablespace=y tablespaces=TRANS_TB
s file='E:trans_tbstrans_tbs.dmp' datafiles='E:ORACLEPRODUCT10.2.0ORADATA
ORCLtrans_tbs' tts_owners=xys fromuser=xys touser=xys
Import: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:46:48 2007
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
经由常规路径由 EXPORT:V09.02.00 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
IMP-00017: 由于 ORACLE 错误 29343, 以下语句失败:
"BEGIN sys.dbms_plugts.checkUser('XYS'); END;"
IMP-00003: 遇到 ORACLE 错误 29343
ORA-29343: 数据库中不存在用户 XYS (从用户 XYS 映射)
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1895
ORA-06512: 在 line 1
IMP-00000: 未成功终止导入
--创建用户是必须的,否则会出现上面的错误!
SQL> create user xys identified by manager default tablespace users;
用户已创建。
SQL> grant dba , connect, resource to xys;
授权成功。
SQL> host imp 'sys/system as sysdba' transport_tablespace=y tablespaces=TRANS_TB
s file='E:trans_tbstrans_tbs.dmp' datafiles='E:ORACLEPRODUCT10.2.0ORADATA
ORCLtrans_tbs' tts_owners=xys fromuser=xys touser=xys
Import: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:46:07 2007
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
经由常规路径由 EXPORT:V09.02.00 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 XYS 的对象导入到 XYS
. . 正在导入表 "T"
成功终止导入, 没有出现警告。
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLTRANS_TBS
SQL> CONNECT XYS/MANAGER
已连接。
SQL> SELECT count (*) FROM T;
COUNT(*)
----------
6166