oracle基于裸设备(raw device)扩充表空间

首先在oracle中查询表空间的使用情况,确认是哪个表空间不足。
select df.tablespace_name “Tablespace”,df.bytes/(1024*1024) “Total Size(MB)”, sum(fs.bytes)/(1024*1024) “Free Size(MB)”, round(sum(fs.bytes)*100/df.bytes) “% Free”, round((df.bytes-sum(fs.bytes))*100/df.bytes) “% Used”  from dba_free_space fs, (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name ) df  where fs.tablespace_name = df.tablespace_name  group by df.tablespace_name, df.bytes;

1、查看所有逻辑卷组(LVM分区系统中术语,类似于物理硬盘)
vgdisplay
会显示所有的卷组的详情

vgdisplay  -v  具体的卷组名
会显示该具体卷组的详情
包括卷组下面的逻辑卷(LVM分区系统中术语,类似于硬盘分区)
2、从逻辑卷组中分出一个逻辑卷
lvcreate –L 10240m -n lvName11 vgName2
vgName就是逻辑卷组的名字,假设这个卷组下已经有lvName1 lvName2 lvName3 lvName4…共10个逻辑卷了,那么你就创建lvName11好了
你划分好了之后,会生成一个 /dev/vgName2/lvName11 文件
3、查看当前所有的裸设备
raw -qa
你会看到所有的raw裸设备,假设有/dev/raw/raw1 /dev/raw/raw2 /dev/raw/raw3…假设有10个
4、把划分的逻辑卷绑定到一个新的裸设备上
raw /dev/raw/raw11 /dev/vgName2/lvName11
5、改变裸设备的属主为oracle,保证oracle·用户可以使用
hown oracle:oinstall /dev/raw/raw11
6、登陆oracle,把裸设备添加到空间不足的表空间上
sqlplus / as sysdba
ALTER TABLESPACE tablespaceName ADD DATAFILE ‘/dev/raw/raw11’ SIZE 10200M REUSE

注意这里的大小 不能用10240M,一定要略小于逻辑卷的大小,一个逻辑卷分出来之后,剩余的大小是小于指定大小的,
如果你把整个逻辑卷的大小指定给表空间,上面的sql语句会报空间不足的错误。

留言

提示:你的email不会被公布,欢迎留言^_^

*

验证码 *