本文档实施目标 AIX  表空间:ITDB  方式:裸设备方式扩容方案      作者:johncoco 日期:2016/1/29


1、查询oracle数据库表空间ITDB使用到的裸设备文件,注意裸设备文件( 开头带r)与裸设备(不带r)的区

wKiom1arBPWBwErsAAAbPyX43Fw802.png

spacer.gif

  查询表空间已使用的裸设备文件名称

  >select * from  DBA_DATA_FILES where tablespace_name = 'ITDB';

  /dev/rora_uip_tbs01

  .

  .

  /dev/rora_uip_tbs27

这些裸设备文件对应的裸设备(lv)为ora_uip_tbs*

2、查看VG卷组信息

  # lsvg

  rootvg

  datavg

  dmvg

  data02vg

3、这些裸设备LV位于data02vg卷组

 #lsvg -l data02vg

 ora_uip_tbs15       raw        16      16      1    open/syncd    N/A

 .

 .

 ora_uip_tbs27       raw        16      16      1    open/syncd    N/A

 #lsvg data02vg

 data02vg信息

 PP大小为:256MB   共有PPs为: 799个   共有容量为:204544MB=256MB*799=199.25GB

                 可用PPs为: 165个   可用容量为:42240MB=41.25GB

4、新的LV(卷)从ora_uip_tbs28开始建立,建立三个LV,每个10GB,每个LV的pp_size=256MB   PPs_number=10GB/256MB=40

5、新建3个裸设备(LV)

    AIX 的裸 设备跟 LINUX 有些不一样, 建立完 LV 会在 /dev/ 下生成跟 LV 名称前加 R的文件, 它就是 LV 的裸设备文件。

  命令格式: mklv -y LVname -T O -w n -s n -r n VGname NumPPs

 #mklv -y  ora_uip_tbs28  -t 'raw' -T O -w n -s n -r n data02vg 40

  #mklv -y  ora_uip_tbs29  -t 'raw' -T O -w n -s n -r n data02vg 40

  #mklv -y  ora_uip_tbs30  -t 'raw' -T O -w n -s n -r n data02vg 40

6、查看参考属性修改rlv块设备权限

  #ls -l /dev/ora_uip_tbs*

  按照参考修改

  #chown oracle:dba ora_uip_tbs28

  #chown oracle:dba ora_uip_tbs29

  #chown oracle:dba ora_uip_tbs30

7、然后添加三个裸设备文件到表空间ITDB(注意放入裸设备文件的数据文件略小于裸设备容量 10200MB<10240MB)

sqlplus>

  >ALTER TABLESPACE "ITDB" ADD DATAFILE  '/dev/rora_uip_tbs28 '  SIZE 10200M REUSE;

  >ALTER TABLESPACE "ITDB" ADD DATAFILE  '/dev/rora_uip_tbs29 '  SIZE 10200M REUSE;

  >ALTER TABLESPACE "ITDB" ADD DATAFILE  '/dev/rora_uip_tbs30 '  SIZE 10200M REUSE;


使用裸设备作为oracle的数据文件的注意事项
1、一个裸设备只能放置一个数据文件
2、数据文件的大小不能超过裸设备的大小
如果是日志文件,则裸设备最大可用大小=裸设备对应分区大小 - 1 * 512 (保留一个redo lock)
如果是数据文件,则裸设备最大可用大小=裸设备对应分区大小 - 2 * db_block_size(保留两个block)
为了简单起见,对所有的文件设置称比裸设备小1M即可。
3、数据文件最好不要设置称自动扩展,如果设置称自动扩展,一定要把maxsize设置设置为比裸设备小

4、linux下oracle不能直接把逻辑卷作为裸设备,也要进行绑定。unix下就不需要。