ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用TRANSPORT_TABLESPACE特性把9i的表空间迁移到10g测试!

利用TRANSPORT_TABLESPACE特性把9i的表空间迁移到10g测试!

原创 Linux操作系统 作者:warehouse 时间:2007-01-13 00:00:00 0 删除 编辑

一种非常好数据库升级的思路,测试的起源来自于下面的帖子:

http://www.itpub.net/705187.html

在结合下面的例子相信在异构os上也没有问题,遗憾的是手头没有环境,懒的搭建测试了!

http://www.eygle.com/archives/2004/06/10g_transport_tbs.html

把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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-61723/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-07

  • 博文量
    717
  • 访问量
    5145707