在AIX环境为Oracle表空间增加裸设备(逻辑卷)

oracleKing 2011-01-21

当执行插入等操作时出现错误提示“unable to extand table ……” ,则说明该表所在表空间空间不足了。

如果是在winserver下则为表空间增加文件即可(本文不做介绍)。

本文主要介绍数据库服务器环境为AIX时,如何为表空间增加裸设备。

这里 包含AIX系统存储管理的基本介绍;

AIX通过三个层次对存储进行管理:物理卷(PV)、卷组(GV),逻辑卷(LV);

数据库空间不足了就需要给表空间增加裸设备(逻辑卷),在sqlplus中通过alter命令将LV增加给表空间;

大体分为以下几步:

1、查看可用卷组

在AIX命令行中执行:

#lsvg – o //查看所有可用卷组

2、查看卷组中的逻辑卷

在AIX命令行中执行:

lsvg –l datavg03

其中datavg03为1中查看到某卷组名称,管理人员希望将此卷组分配给数据库使用。

返回结果中STATE MOUNT列表名了逻辑卷的占用状态,open/syncd表示已被表空间占用,closed/syncd表示未使用

3、查看逻辑卷容量大小

在AIX命令行中执行:

#lslv lvdata0315

其中lvdata0315为2中查看到的某未分配逻辑卷,在分配给表空间之前需要先确定它的容量。

容量大小为LPs×PPSIZE

4、将未使用的逻辑卷加入表空间

在sqlplus中以sysdba执行:

SQL>alter tablespace tablespacename add datafile ‘/dev/rlvdata0318’ size 4090

注意:将上句中/dev/rlvdata0318替换成2中查到未占用的逻辑卷名称,将该逻卷名称前加“/dev/r”;

         逻辑卷名称注意大小写

         size指示的大小应略小于3中计算逻辑卷大小

5、查看是否添加成功

在sqlplus中执行:

select t1.name , t2.name from system.v$tablespace t1,system.v$datafile t2 where t1.ts#=t2.ts# ;

返回结果包含两列:表空间名、文件名;如果结果中某行包含了4中操作的表空间及4中增加的逻辑卷名,那就说明增加成功了。


 如果是创建新的表空间,操作也类似。这里只记录一个遇到的问题。

执行创建表空间的ddl语句,则报错:

ORA-01119: error in creating database file '/dev/r****'
ORA-27041: unable to open file
IBM AIX RISC System/6000 Error: 13: Permission denied
Additional information: 11

如果你确信裸设备路径没有写错的话,那可能是由于裸设备的属主没有赋予Oracle用户所引起的。

可在aix命令行中执行 #chown -R oracle:dba lvname 更改要添加到表空间的裸设备的属主,其中lvname为裸设备名称。

如果使用的oracle RAC,那么创建了用裸设备创建了表空间,建立了表,在查询新表有时成功有时失败,失败时提示:

ORA-01157:  cannot identify/lock data file [number]  - see DBWR trace file

ORA-01110:  data file [number]:"dev/r*****"

这可能是由于没有在RAC中的所有节点上配置裸设备属主引起的。

解决方式,telnet到所哟节点,然后执行命令 #chown -R oracle:dba lvname

相关推荐