AIX用裸设备给表空间添加数据文件

     近期在对生产数据库表空间进行扩容,目的是春节期间保证表空间的使用率,不会出现紧急告警信息。

  1、查看表空间使用率的SQL语句

set pagesize 200
col tablespace_name for a16
col SUM_SIZE(M)  for 99999999
col USED_SIZE(M) for 99999999
col USED_RATE(%) for 99999999
col FREE_SIZE(M) for 99999999
SELECT d.tablespace_name, sum_blocks "SUM_BLOCKS",
       sum_size || 'M' "SUM_SIZE(M)",
       sum_size - nvl(free_size, 0) || 'M' "USED_SIZE(M)",
       nvl(free_size,0) || 'M' "FREE_SIZE(M)",
       round((1 - nvl(free_size, 0) / sum_size) * 100, 2) || '%' "USED_RATE(%)"
  FROM (SELECT tablespace_name, round(SUM(bytes) / (1024 * 1024), 2) sum_size,
                SUM(blocks) sum_blocks
           FROM dba_data_files
          GROUP BY tablespace_name) d,
       (SELECT tablespace_name,
                round(SUM(bytes) / (1024 * 1024), 2) free_size
           FROM dba_free_space
          GROUP BY tablespace_name) f
 WHERE d.tablespace_name = f.tablespace_name(+)
 ORDER BY 5 DESC;

  2、查看数据文件存放位置以及数据文件类型

SELECT file_name, a.autoextensible, a.status, a.online_status
  FROM dba_data_files a; #建议关闭自动扩展,自动扩展后,空间太庞大,不易于管理和维护

  3、查看表空间是否是BIGFILE类型的表空间

  

SELECT a.tablespace_name, a.bigfile, a.extent_management,
       a.segment_space_management
  FROM dba_tablespaces a; #查看表空间是否是BIGfile文件,BIGFile类型表空间有个最大的SIZE限制,如果数据文件超过这个最大限制,则是很危险的。

  

  Oracle10g引进了一个新的表空间类型(BIGFILE),相对于bigfile的类型就是smallfile,它不像传统的表空间那样最多由1022个文件组成;一个BIGFILE表空间只包含一个数据文件,根据选择的块的大小,最大从32TB至128TB。

  查看表空间类型有:smallfile和bigfile,查看默认表空间类型:

  

select * from database_properties a where a.PROPERTY_NAME= 'DEFAULT_TBS_TYPE';

  修改默认表空间类型:

  

ALTER DATABASE SET DEFAULT bigfile tablespace;#修改默认表空间类型为Bigfile

  4、查看卷组信息

  查看VG是否有空间能够进行分区给逻辑卷。

  

命令:
  lsvg -o #已经激活的卷组   lsvg datavg #查看datavg卷组基本信息   lsvg -l datavg #查看datavg具体有哪些逻辑卷组成 AIX 查看检索新的物理磁盘   lspv #查看现有磁盘信息   cfgmgr -v #进行系统扫盘   powermt display dev=all #查看是否有多链路磁盘   extendvg 'datavg' 'hdisk14 hdisk15' #将物理磁盘hdisk14,hdisk15加入到datavg里
  mklv oradata_lv datavg 100 #创建一个叫oradata_lv的逻辑卷,并分配给它100个PP --从lsvg -l datavg的显示结果可看到,PPs:LPs=1:1说明大小是一致的
  
  

   5、新增裸设备

  新增裸设备的逻辑卷,最好是使用smitty mklv命令,使用mklv命令一般容易出错。

  

aix的裸设备是lv
1)smit lv 输入名字,如system_r500M
2)选择vg  选择datavg
3)输入lp个数 count(lp)= 总计大小/PP Size
4)然后输入设备类型raw(不要选择),创建成功后,返回/dev
5)查看ls -l,多了rsystem_r500M名称的设备,但属主是root 跟system
6)需要修改system_r500M和rsystem_r500M宿主权限
   #chown oracle:oinstall system_r500M
   #chown oracle:oinstall rsystem_r500M
7)新增卷组
  smitty mkvg
使用命令添加:
#mkvg -f -y'datavg01' -s'512' '-n' hdisk12 hdisk13 hdisk14
  -f:强制卷组在指定的物理卷上创建
  -y:卷组名称
  -s:设置每个物理分区的兆字节数
  -n:指定在系统重新启动时,卷组不是自动地可获得。缺省值是自动激活卷组。
  -C:创建“提高的并发卷组”,仅使用-C和hacmp ES,在没有Hacmp ES产品的卷组和系统上不可用。

   使用命令创建裸设备:

  

#mklv -t raw -y system_r500M -a m -e x -o y datavg 100
-t: 逻辑卷类型 raw代表裸设备,还支持jfs2,jfs等
-y:指定逻辑卷名代替系统生成的名称
-a:设定内部物理卷分配策略 m:在每个物理卷的外部中间扇区内分配逻辑分区,这是默认值。
-e:确定内部物理卷分配策略 x:根据最大物理卷数量分配 m:根据最小物理卷数量分配逻辑分区,这是缺省值。
-o:指定打开/关闭重叠I/O串行化
-w:打开active镜像写一致性以确保在通常的I/O处理中逻辑卷副本之间的数据一致性。p:打开,只适用于大卷组 n:没有镜像一致性

  6、给表空间添加数据文件

  

alter tablespace system add datafile '/dev/rsystem_500M' size 450M;

  7、rac+hacmp环境下添加裸设备

  

操作步骤:
a:创建concurrent LV
smit hacmp
—>system manageent (c-spoc)
 —>HACMP Concurrent logical Volume Management
  —>concurrent logical volume
   —>add a concurrent logical volume
    —>选择所在vgname
     —>选在所在pv name
     —>输入lp数量
注:
  physical volume name:可不选
   logical volume name:system_500M(这里不用写上字符设备的R,不然以后不好区分)
   logical volume type:raw
OK,其他默认即可
b:更改各节点的属主,一般情况下数据文件会创建在/dev下,会产生r开头的文件和没有r开头的2个文件。
chown oracle:dba /dev/rsystem_500M 是r开头的设备。
注:补充一句,r开头的文件为字符设备,最小的传输单位8bit,而没有r开头的文件是块设备就是我们所说的block设备,他传输的最小单位是512byte。
c:为表空间扩展数据文件。

一定要要在各节点上都要修改裸设备的宿主权限,否则另一个节点回报错误,没有权限去写。解决办法需要重启机器才可以,这对于生产库来说是很危险的。切记!!
原文地址:https://www.cnblogs.com/oracle-dba/p/3515821.html