总结给数据库增加表空间的方法

小结给数据库增加表空间的方法

本来给数据库增加表空间是系统管理员或者dba干的活,但是客户有时候也太”信任“我了,什么活都拿给我干,没法子只好硬着头皮搞了。平时我遇到最多的数据库就是oracle,db2,informix给db2增加表空间的情况还没有遇到过,先在这里总结一下oracle和informix增加表空间的方法。

     ORACLE

     在slqplus执行

 

Sql代码 总结给数据库增加表空间的方法 总结给数据库增加表空间的方法总结给数据库增加表空间的方法
  1. alter tablespace 表空间名 add datafile '路径/数据文件' size 1000m Autoextend on next 100m   
alter tablespace 表空间名 add datafile '路径/数据文件' size 1000m Autoextend on next 100m 

 就给oracle表空间增加了一个1000m的数据文件,如果使用裸设备把datafile的路径指定到一个逻辑卷(对于不用LVM的系统直接指定到分区也一样)上就可以了。如果不用自动扩展的表空间使用maxsize指定最大值就行了,命令如下

Sql代码 总结给数据库增加表空间的方法 总结给数据库增加表空间的方法总结给数据库增加表空间的方法
  1. alter tablespace 表空间名 add datafile '路径/数据文件' size 1000m maxsize 2000m     
alter tablespace 表空间名 add datafile '路径/数据文件' size 1000m maxsize 2000m   

    INFORMIX

    使用onspace命令用不同参数就可以搞定新建\删除\增加表空间的操作

    以下的内容摘抄于http://www.chinaitpower.com/2005September/2005-09-13/206738.html

Java代码 总结给数据库增加表空间的方法 总结给数据库增加表空间的方法总结给数据库增加表空间的方法
  1. 利用onspaces命令创建数据空间   
  2.   
  3. 语法: onspaces -c [-b] [-d] [-z] [-m] [-o] [-p] [-s] [-t]   
  4.   
  5. -c      创建blobspace或dbspace   
  6.   
  7. -b blobspace blobspace名   
  8.   
  9. -d dbspace   dbspace名   
  10.   
  11. -g page size  blobpages大小   
  12.   
  13. -m mirror    镜像设备设的全路径名和偏移量(KB)   
  14.   
  15. -o offset    偏移量(KB)   
  16.   
  17. -p pathname   chunk设备的全路径名   
  18.   
  19. -s size    dbspace大小(KB)   
  20.   
  21. -t       创建临时dbspace   
  22.   
  23.   
  24. onspaces 命令用于创建数据空间、临时空间和存储blob数据的空间(blobspace)。键入onspaces--可以获得该命令的联机帮助。利用onstat -D或onstat -d可以看到系统中的关于数据空间的重要信息。包括:chunk的状态、空闲、每一chunk读写的次数。系统中可能包括的多个系统空间,特别当进行数据分片后,我们建议用户最好能利用命令行来创建数据空间。   
  25.   
  26. 可以利用如下命令创建数据空间:   
  27.   
  28. onspaces -c -d datadbs1 -o 0 -p /dev/rrvol3 -s 60000  
  29.   
  30. 可以用如下的方式创建临时数据空间:   
  31.   
  32. onspaces -c -d tempdbs1 -t -o 0 -p /dev/rrvol5 -s 80000  
  33.   
  34. 在系统中,临时数据空间非常重要,通常情况下,应将多个临时数据空间分布在独立的物理设备上。   
  35.   
  36.   
  37. 利用onspaces命令删除数据空间   
  38.   
  39. 增加或删除chunks   
  40.   
  41. 语法: onspaces -a -d [-m] [-o] [-p]   
  42.   
  43. -a spacename    为dbspace新增chunk   
  44.   
  45. -m pathname    镜像设备的全路径名和偏移量(KB)   
  46.   
  47. -o offset      主设备的偏移量(KB)   
  48.   
  49. -p pathname     chunk设备的全路径名   
  50.   
  51. -s size      chunk大小   
  52.   
  53. -d spacename    删除chunk   
  54.   
  55. -o offset      chunk设备的偏移量(KB)   
  56.   
  57.   
  58. onspaces不仅能创建数据空间还能删除数据空间、临时数据空间或存储blob数据的空间。在删除数据空间时,必须首先保证它是无用的,即该数据空间上无数据库或表。   
  59.   
  60. 如需删除数据空间,请键入如下命令:onspaces -d dbspace_name /blobspace_name   
  61.   
  62. 数据空间最初由一个chunk(first chunk)构成,一旦其空间用尽,用户必须追加chunk为了提高系统性能,用户在为数据空间分配chunk时需要计算以保证它的大小能适应未来的需要,否则在追加chunk的时候,它与先前的chunk在物理上不一定相邻,导致增加读取数据的时间。关于如何计算空间需求将在以后章节中阐述。利用 onspaces命令可以对数据空间增加或者删除chunk,除此之外,利用该命令还可以完成如下任务:启动镜像、中止镜像或改变chunk的状态。   
  63.   
  64. 例如可以用如下命令为数据空间增加chunk:   
  65.   
  66. onspaces -a -d datadbs1 -0 60002 -p /dev/rrvol3 -s 60000  
  67.   
  68. 再如可以用如下方式从数据空间中删除chunk:   
  69.   
  70. onspaces -d datadbs1 -o 60002 -p /dev/rrvol3 -s 60000  
利用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