技术开发 频道

有关transport tablespace的测试全过程

    【IT168 技术文档】一个月前,在某种场合下,有人问我transport tablespace ,当时我没说清楚,甚是尴尬。。于是当时回来就立刻找了相关资料,现把资料和大家一起分享有关transport tablespace的测试全过程。transport tablespace 测试全过程,数据库oracle9.2.0.4,操作系统平台HP

    1.建立测试表空间

create tablespace tts_test datafile '/dev/vgjs03/rjsdata00274' size 2046m reuse extent management local uniform size 1m;

    2.建立测试表

create table tts_test( a number(10), b number(10) )tablespace tts_test;

    3.往测试表中灌数据

variable i number; begin for i in 1..30000 loop insert into tts_test(a,b) values(i,i+1); end loop; commit; end;

    4.检测测试表空间的完整性

execute dbms_tts.transport_set_check('tts_test', true);

    若报过程dbms_tts.transport_set_check不存在,则用sys的数据库用户执行脚本"$ORACLE_HOME/rdbms/admin/dbmsplts.sql"建立之.

    5.将要测试的表空间改为只读

alter tablespace tts_test read only;

    6.导出元数据

exp 'sys/password@cntjs as sysdba' transport_tablespace=y tablespaces=tts_test file=tts.dmp log=tts_e.log

    7.使用dd命令拷贝出裸设备的数据

dd if=/dev/vgjs03/rjsdata00274 of=raw_device ibs=1024 obs=1024

    8.删除测试的表空间

drop tablespace tts_test including contents;

    9.使用dd命令将7中拷贝出的文件重新拷到裸设备中

dd if=raw_device of=/dev/vgjs03/rjsdata00274 ibs=1024 obs=1024

    10.使用imp导入测试表空间

imp 'sys/password@cntjs as sysdba' transport_tablespace=y tablespaces=tts_test file='/oracle_export/changqr/tts.dmp' datafiles='/dev/vgjs03/rjsdata00274' tts_owners=supp fromuser=supp touser=supp log=tts_i.log

    11.将测试表空间改为可读写

alter tablespace tts_test read write;

    以上步骤,已经在江苏数据库上测试通过.

    关键点:

    1.一定要保证所要导出表空间中数据的完备性,具体定义参见oracle的官方文档.
    2.在表空间改为只读后明确有几个用户的数据在此表空间上.

0
相关文章