测试目的:
确定在导入/导出过程中表分区是否能正常成功导入。
测试环境:
源数据库:Oracle 9i on windows 2003 server 32 bit
目的数据库:Oracle 9i on Red Hat Linux 32 bit
测试思路:
整库导出,导入的时候按照用户导入,确定导入之后,表分区是否都可用。
测试步骤:
1.创建基础环境:
参考《关于Oracle 9i导入导出数据的测试报告》中“测试步骤”中的“创建基础环境”环节部分。
2.创建存放分区的表空间,也可以放在已存在的同一表空间,此次测试将分区放在两个不同表空间。
创建语句:
CREATE TABLESPACE P1
DATAFILE 'C:\ORACLE\ORADATA\KMYKS\P101.DBF' SIZE 50M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
LOGGING
ONLINE
SEGMENT SPACE MANAGEMENT AUTO
/
CREATE TABLESPACE P2
DATAFILE 'C:\ORACLE\ORADATA\KMYKS\P201.DBF' SIZE 50M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
LOGGING
ONLINE
SEGMENT SPACE MANAGEMENT AUTO
/
3.创建分区表并且插入数据:
create table test_part
(no int,
value varchar2(20)
)
partition by hash(no)
(partition part_1 tablespace P1,
partition part_2 tablespace P2)
/
insert into test_part values(1,123);
insert into test_part values(2,123);
insert into test_part values(3,123);
insert into test_part values(4,123);
insert into test_part values(5,123);
insert into test_part values(6,123);
insert into test_part values(7,123);
insert into test_part values(8,123);
insert into test_part values(9,123);
insert into test_part values(10,123);
insert into test_part values(11,123);
insert into test_part values(12,123);
4.测试该表创建是否成功:
表分区里数据查询
5.全库导出,命令:
exp system file=C:\full_part.dmp log=C:\full_part.log full=y buffer=99999999
6.对相同用户导入:
imp system file=/tmp/full_part.dmp log=/tmp/full_part_imp.log buffer=99999999 fromuser=TOM touser=TOM;
执行命令后,报错:
IMP-00003: ORACLE error 959 encountered
ORA-00959: tablespace 'P1' does not exist
原因:未在目的数据库创建相应的表分区所在的表空间(tablespace)
导入结果:
创建表空间之后,导入成功,应用刚才确定表内数据和分区内数据的方法能确定导入成功!!!