Chinaunix首页 | 论坛 | 博客
  • 博客访问: 674721
  • 博文数量: 176
  • 博客积分: 4791
  • 博客等级: 上校
  • 技术积分: 1921
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-24 18:47
个人简介

it江湖漂,怎能不挨刀;一朝机器当,看你怎么着!

文章分类

全部博文(176)

文章存档

2014年(2)

2012年(17)

2011年(27)

2010年(18)

2009年(6)

2008年(21)

2007年(43)

2006年(42)

分类: LINUX

2007-11-15 10:05:14

有关transport tablespace的测试全过程

transport tablespace 测试全过程,数据库oracle9.2.0.4,操作系统平台hp11i,16个cpu,16g内存

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.在表空间改为只读后明确有几个用户的数据在此表空间上.
阅读(1145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~