某用户使用ORACLE数据库,其中SCP数据库采用双机冷备份,随着用户量的增加,scu数据库空间达到阀值80%,需要增加数据文件。现网SCP硬件如下:
SUN dual-Fire V880-6*1.2GHz-12G-6*73G-2*NIC-2*SCSI-2*3310(12*73G) JBOD-2*72" Rack-Solaris8/SC3.0-Without Service-Eng. Doc-DDS4-Conf. Sheet
ORACLE数据库信息如下:
ORACLE 9i Enterprise Edition, V9.2.0, SUN SPARC Solaris 64Bit Platform, English Version, 25 Users, English Document
其中ORACLE的数据文件安装在共享磁盘中。
目前表空间的扩容方案为首先检查目前的磁盘空间是否足够,在磁盘空间允许的情况下,增加逻辑卷,然后再将该数据文件加入到ORACLE数据库;
操作步骤
? 信息确认
1) 明确卷组信息:
root@scp1 # vxdg list
NAME STATE ID
rootdg enabled 1095846169.1025.scp1
scpdg enabled 1095847191.1235.scp1
sharedg enabled 1095847234.1272.scp1
其中sharedg是用来存放oracle数据文件的,scpdg用来存放scu应用。因此新增的逻辑卷将存放于sharedg卷组中;
2) 确定新增逻辑卷的位置和名字
ORACLE所使用的逻辑卷的详细信息如下:
root@scp1 # ls -al
total 4
drwxr-xr-x 2 root root 512 Sep 24 2004 .
drwxr-xr-x 4 root root 512 Sep 22 2004 ..
crw-rw---- 1 oracle dba 315,123008 Apr 25 2005 lvcontrol01_150
crw-rw---- 1 oracle dba 315,123007 Apr 25 2005 lvcontrol02_150
crw-rw---- 1 oracle dba 315,123009 Apr 25 2005 lvcontrol03_150
crw-rw---- 1 oracle dba 315,123005 Feb 27 09:36 lvindex_1024
crw-rw---- 1 oracle dba 315,123010 Mar 2 15:00 lvredo1_350
crw-rw---- 1 oracle dba 315,123011 Mar 2 15:00 lvredo2_350
crw-rw---- 1 oracle dba 315,123012 Mar 2 15:00 lvredo3_350
crw-rw---- 1 oracle dba 315,123015 Feb 27 09:36 lvscudata
crw-rw---- 1 oracle dba 315,123013 Apr 18 2005 lvspfile
crw-rw---- 1 oracle dba 315,123014 Sep 22 2004 lvsrvmcfg
crw-rw---- 1 oracle dba 315,123000 Feb 27 09:36 lvsystem_650
crw-rw---- 1 oracle dba 315,123002 Sep 24 2004 lvtemp_1024
crw-rw---- 1 oracle dba 315,123006 Feb 27 09:36 lvtools_150
crw-rw---- 1 oracle dba 315,123003 Feb 27 09:36 lvundo1_1024
crw-rw---- 1 oracle dba 315,123004 Sep 22 2004 lvundo2_1024
crw-rw---- 1 oracle dba 315,123001 Feb 27 09:36 lvuser_120
root@scp1 # pwd
/global/.devices/node@1/dev/vx/rdsk/sharedg
因此新增的逻辑卷将位于/dev/vx/rdsk/sharedg目录下,名字为lvscudata_1
3) 了解sharedg的磁盘使用信息
root@scp1 # vxdisk -g sharedg list
DEVICE TYPE DISK GROUP STATUS
c2t3d0s2 sliced c2t3d0 sharedg online spare
c2t4d0s2 sliced c2t4d0 sharedg online
c2t5d0s2 sliced c2t5d0 sharedg online
c2t8d0s2 sliced c2t8d0 sharedg online
c2t9d0s2 sliced c2t9d0 sharedg online
c2t10d0s2 sliced c2t10d0 sharedg online
c2t11d0s2 sliced c2t11d0 sharedg online
c2t12d0s2 sliced c2t12d0 sharedg online
c2t13d0s2 sliced c2t13d0 sharedg online
c3t3d0s2 sliced c3t3d0 sharedg online spare
c3t4d0s2 sliced c3t4d0 sharedg online
c3t5d0s2 sliced c3t5d0 sharedg online
c3t8d0s2 sliced c3t8d0 sharedg online
c3t9d0s2 sliced c3t9d0 sharedg online
c3t10d0s2 sliced c3t10d0 sharedg online
c3t11d0s2 sliced c3t11d0 sharedg online
c3t12d0s2 sliced c3t12d0 sharedg online
c3t13d0s2 sliced c3t13d0 sharedg online
该lvscudata_1将占用c2t4d0 c2t5d0 c2t8d0 c2t9d0 c2t10d0 c2t11d0 c2t12d0 c2t13d0 c3t4d0 c3t5d0 c3t8d0 c3t9d0 c3t10d0 c3t11d0 c3t12d0 c3t13d0 磁盘;
? 具体操作步骤
以下步骤必须在当前拥有sharedg的节点上操作,如下假设当前主机为scp1。
1) 确认目前的磁盘空间是否足够
root@scp1 # vxassist -g sharedg maxsize layout=stripe-mirror,nolog
Maximum volume size: 1121720320 (547715Mb)
可以看出sharedg能作raid10的逻辑卷最大能到(547715Mb),空间足够;
2) 增加逻辑卷
root@scp1 # vxassist -g sharedg make lvscudata_1 5100m layout=stripe,nolog
c2t4d0 c2t5d0 c2t8d0 c2t9d0 c2t10d0 c2t11d0 c2t12d0 c2t13d0
增加逻辑卷,注意如果要增加的数据文件的大小为5000m,那么创建的逻辑卷应该略大于数据文件的大小,如本例中设置逻辑卷的大小为5100m。另外,对于ORACLE数据库,没有象INFORMIX类似的使用的逻辑卷最大为2G的限制;但是一般情况下,建议一个数据文件的大小不要超过5000M.
3) 进行逻辑卷镜像
root@scp1 # vxassist -g sharedg mirror lvscudata_1
c3t4d0 c3t5d0 c3t8d0 c3t9d0 c3t10d0 c3t11d0 c3t12d0 c3t13d0
4) 逻辑卷条带化
root@scp1 # vxassist -g sharedg convert lvscudata_1 layout=stripe-mirror,nolog
5) 设置逻辑卷日志方式
root@scp1 # vxassist -g sharedg addlog lvscudata_1
6) 设置逻辑卷的宿主和权限
root@scp1 # vxedit -g sharedg set user=oracle group=dba mode=0660 lvscudata_1
7) 下面这步比较关键,否则双机切换后因为卷信息不同步将会出问题
root@scp1 # scconf -c -D name=sharedg,sync
8) 然后是用oracle用户把/dev/vx/rdsk/sharedg/lvscudata_1加入数据库
root@scp1 # su - oracle
scp1% sqlplus "/ as sysdba"
SQL> SELECT * FROM V_$TABLESPACE;
TS# NAME INC
---------- ------------------------------ ---
0 SYSTEM YES
1 UNDOTBS1 YES
2 TEMP YES
3 INDX YES
4 TOOLS YES
5 USERS YES
6 SCUDATATBS YES
7 rows selected.
执行如下命令:
SQL> ALTER TABLESPACE SCUDATATBS ADD DATAFILE '/dev/vx/rdsk/sharedg/lvscudata_1' SIZE 5000M;
commit;
9) 检查确认
SQL> select NAME from V_$DATAFILE;
可以使用如上命令查看数据文件是否生效;
SQL> select b.file_id ID, b.tablespace_name tablespacename, b.bytes byte, (b.bytes-sum(nvl(a.bytes,0))) used,sum(nvl(a.bytes,0)) freespace,sum(nvl(a.bytes,0))/(b.bytes)*100 freepercentage FROM dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_id,b.bytes order by b.file_id;
使用如上命令查看各个数据文件和表空间的使用情况;
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9479798/viewspace-1050078/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9479798/viewspace-1050078/