ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 不同的default tablespace数据迁移(二)

不同的default tablespace数据迁移(二)

原创 Linux操作系统 作者:zhanglei_itput 时间:2009-07-17 19:03:01 0 删除 编辑

 

    前段时间做过不同default tablespace的测试,在imp时,首先imp到用户的default tablespace(无论与exp数据库服务器中的tablespace是否一致),当没有指定用户表空间的时候,10g会自动imp到user表空间。

     测试详细过程见链接:http://space.itpub.net/9252210/viewspace-567223

     但是最近发现有时候imp会报错,报错:ORA-00959: tablespace 'xx' does not exist,详细信息如下:
     导致错误信息的原因为:
     1.  分区表
     2.  表中含有blob,clob字段

    
     测试结果如下:

1. 第一个数据库创建表空间及用户
SQL>CREATE  TABLESPACE "TEST1" DATAFILE '/oracle/oradata/test/test02.bdf' SIZE 5M

SQL> create user ecc_test1 identified by edd default tablespace test1;
User created.

SQL> grant connect,resource to ecc_test1;
Grant succeeded.


2. 第二个数据库创建表空间及用户
SQL>CREATE  TABLESPACE "TEST2" DATAFILE '/oracle/oradata/dupt/test02.bdf' SIZE 5M ;

SQL> create user ecc_test2 identified by edd default tablespace test2;
User created.

SQL> grant connect,resource to ecc_test2;
Grant succeeded.


3. 用户ecc_test1创建4个table(不指定表空间,指定表空间,含有lob字段,分区表)
SQL> conn ecc_test1/edd@test
Connected.
a. 不显式指定对象表空间
SQL> create table t1_notb (id varchar(1));
Table created.

b.显式指定对象表空间
SQL> create table t2_tb  (id varchar(1))  tablespace test1;
Table created.

c. 含有lob字段
SQL> create table t3_lob  (id varchar(1), id_lob blob);
Table created.

d. 分区表
create table t4_par
(
  id  number,
  id2 number
)
partition by range (id)
(
  partition id11 values less than (2),
  partition id22 values less than (4)
 
)

e. 查询对象表空间
SQL> select table_name, tablespace_name from user_tables;

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
T1_NOTB                        TEST1
T2_TB                          TEST1
T3_LOB                         TEST1
T4_PAR

4. exp 用户 ecc_test1
C:\Users\Atao>exp ecc_test1/edd@test file=c:\ecc_test.dmp
Export: Release 10.2.0.1.0 - Production on 星期五 7月 17 18:53:42 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 ECC_TEST1 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 ECC_TEST1 的对象类型定义
即将导出 ECC_TEST1 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 ECC_TEST1 的表通过常规路径...
. . 正在导出表                         T1_NOTB导出了           3 行
. . 正在导出表                           T2_TB导出了           4 行
. . 正在导出表                          T3_LOB导出了           1 行
. . 正在导出表                          T4_PAR
. . 正在导出分区                            ID11导出了           0 行
. . 正在导出分区                            ID22导出了           0 行
. 正在导出同义词
. 正在导出视图
. 正在导出存储过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
成功终止导出, 没有出现警告。

5.imp用户ecc_test2
C:\Users\Atao>imp ecc_test2/edd@dupt file=c:\ecc_test.dmp full=y
Import: Release 10.2.0.1.0 - Production on 星期五 7月 17 18:57:39 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
警告: 这些对象由 ECC_TEST1 导出, 而不是当前用户
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 ECC_TEST1 的对象导入到 ECC_TEST2
. . 正在导入表                       "T1_NOTB"导入了           3 行
. . 正在导入表                         "T2_TB"导入了           4 行
IMP-00017: 由于 ORACLE 错误 959, 以下语句失败:
 "CREATE TABLE "T3_LOB" ("ID" VARCHAR2(1), "ID_LOB" BLOB)  PCTFREE 10 PCTUSED"
 " 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROU"
 "PS 1 BUFFER_POOL DEFAULT) TABLESPACE "TEST1" LOGGING NOCOMPRESS LOB ("ID_LO"
 "B") STORE AS  (TABLESPACE "TEST1" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSI"
 "ON 10 NOCACHE LOGGING  STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 "
 "BUFFER_POOL DEFAULT))"
IMP-00003: 遇到 ORACLE 错误 959
ORA-00959: tablespace 'TEST1' does not exist
IMP-00017: 由于 ORACLE 错误 959, 以下语句失败:
 "CREATE TABLE "T4_PAR" ("ID" NUMBER, "ID2" NUMBER)  PCTFREE 10 PCTUSED 40 IN"
 "ITRANS 1 MAXTRANS 255 TABLESPACE "TEST1" LOGGING PARTITION BY RANGE ("ID" )"
 "  (PARTITION "ID11" VALUES LESS THAN (2)  PCTFREE 10 PCTUSED 40 INITRANS 1 "
 "MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POO"
 "L DEFAULT) TABLESPACE "TEST1" LOGGING NOCOMPRESS, PARTITION "ID22" VALUES L"
 "ESS THAN (4)  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL"
 " 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "TEST1"
 "" LOGGING NOCOMPRESS )"
IMP-00003: 遇到 ORACLE 错误 959
ORA-00959: tablespace 'TEST1' does not exist
成功终止导入, 但出现警告。


SQL> select table_name, tablespace_name from user_tables;
TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
T2_TB                          TEST2
T1_NOTB                        TEST2

 

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

上一篇: iostat -x 1 10
请登录后发表评论 登录
全部评论

注册时间:2009-02-10

  • 博文量
    400
  • 访问量
    1108181