本来给数据库增加表空间是系统管理员或者dba干的活,但是客户有时候也太”信任“我了,什么活都拿给我干,没法子只好硬着头皮搞了。平时我遇到最多的数据库就是oracle,db2,informix给db2增加表空间的情况还没有遇到过,先在这里总结一下oracle和informix增加表空间的方法。
ORACLE
在slqplus执行
alter tablespace 表空间名 add datafile '路径/数据文件' size 1000m Autoextend on next 100m
就给oracle表空间增加了一个1000m的数据文件,如果使用裸设备把datafile的路径指定到一个逻辑卷(对于不用LVM的系统直接指定到分区也一样)上就可以了。如果不用自动扩展的表空间使用maxsize指定最大值就行了,命令如下
alter tablespace 表空间名 add datafile '路径/数据文件' size 1000m maxsize 2000m
INFORMIX
使用onspace命令用不同参数就可以搞定新建\删除\增加表空间的操作
以下的内容摘抄于http://www.chinaitpower.com/2005September/2005-09-13/206738.html
利用onspaces命令创建数据空间
语法: onspaces -c [-b] [-d] [-z] [-m] [-o] [-p] [-s] [-t]
-c 创建blobspace或dbspace
-b blobspace blobspace名
-d dbspace dbspace名
-g page size blobpages大小
-m mirror 镜像设备设的全路径名和偏移量(KB)
-o offset 偏移量(KB)
-p pathname chunk设备的全路径名
-s size dbspace大小(KB)
-t 创建临时dbspace
onspaces 命令用于创建数据空间、临时空间和存储blob数据的空间(blobspace)。键入onspaces--可以获得该命令的联机帮助。利用onstat -D或onstat -d可以看到系统中的关于数据空间的重要信息。包括:chunk的状态、空闲、每一chunk读写的次数。系统中可能包括的多个系统空间,特别当进行数据分片后,我们建议用户最好能利用命令行来创建数据空间。
可以利用如下命令创建数据空间:
onspaces -c -d datadbs1 -o 0 -p /dev/rrvol3 -s 60000
可以用如下的方式创建临时数据空间:
onspaces -c -d tempdbs1 -t -o 0 -p /dev/rrvol5 -s 80000
在系统中,临时数据空间非常重要,通常情况下,应将多个临时数据空间分布在独立的物理设备上。
利用onspaces命令删除数据空间
增加或删除chunks
语法: onspaces -a -d [-m] [-o] [-p]
-a spacename 为dbspace新增chunk
-m pathname 镜像设备的全路径名和偏移量(KB)
-o offset 主设备的偏移量(KB)
-p pathname chunk设备的全路径名
-s size chunk大小
-d spacename 删除chunk
-o offset chunk设备的偏移量(KB)
onspaces不仅能创建数据空间还能删除数据空间、临时数据空间或存储blob数据的空间。在删除数据空间时,必须首先保证它是无用的,即该数据空间上无数据库或表。
如需删除数据空间,请键入如下命令:onspaces -d dbspace_name /blobspace_name
数据空间最初由一个chunk(first chunk)构成,一旦其空间用尽,用户必须追加chunk为了提高系统性能,用户在为数据空间分配chunk时需要计算以保证它的大小能适应未来的需要,否则在追加chunk的时候,它与先前的chunk在物理上不一定相邻,导致增加读取数据的时间。关于如何计算空间需求将在以后章节中阐述。利用 onspaces命令可以对数据空间增加或者删除chunk,除此之外,利用该命令还可以完成如下任务:启动镜像、中止镜像或改变chunk的状态。
例如可以用如下命令为数据空间增加chunk:
onspaces -a -d datadbs1 -0 60002 -p /dev/rrvol3 -s 60000
再如可以用如下方式从数据空间中删除chunk:
onspaces -d datadbs1 -o 60002 -p /dev/rrvol3 -s 60000
增加表空间,难免涉及到增加硬盘和LVM的操作,下面是LVM的参考资料
1、《通用线程:学习 Linux LVM,第 2部分》
http://www.ibm.com/developerworks/cn/linux/filesystem/lvm/lvm-2/
2、《LVM2添加新硬盘的方法》
http://hi.baidu.com/h2000r/blog/item/5d8f6c59e8892c292934f02a.html
3、《Linux LVM 的使用详解》
http://hi.baidu.com/sinyo/blog/item/d793be3e866682f9828b13c6.html