SinoDB数据空间配置

  只有root数据库空间的实例,无法满足生产环境实际使用的需要。我们可以根据生产环境实际要求,创建合适的多个数据库空间,同时相应的调整onconfig配置文件。本文主要包含以下内容:

1.创建数据库空间
2.将逻辑日志从根数据库空间,迁移到正式的逻辑日志空间。
3.将物理日志从根数据库空间,迁移到正式的物理日志空间。
4.根据创建的数据库空间,更新onconfig

***请使用informix用户进行以下操作。

1. 规划并创建数据库空间

根据实际生产需要,提前规划好数据库空间,SinoDB 中可以创建多种类型的数据库空间。

本次实验我们规划创建的数据库空间如下:

#su - informix
$ cd /home/informix/dbs
$ touch llogdbs plogdbs tempdbs1 tempdbs2 tempdbs3 tempdbs4 datadbs1sbdbs1 bindbs1
$ chmod 660 /home/informix/dbs/
*

SinoDB 提供了onspaces命令,用于数据库空间的创建。

  • 创建逻辑日志数据库空间

$onspaces -c -d llogdbs -p /home/informix/dbs/llogdbs -o 0 -s 2048000

参数 解释
-c 创建dbspaces
-d 指定dbspaces名字
-p 指定chunk路径
-o 指定偏移量,单位为KB
-s 指定大小,单位为KB
  • 创建物理日志数据库空间

$onspaces -c -d plogdbs -p /home/informix/dbs/plogdbs -o 0 -s 2048000

  • 创建简单大对象数据库空间

$onspaces -c -b bindbs1 -g 4 -p /home/informix/dbs/bindbs1 -o 0 -s 1024000

参数 解释
-b 指定简单大对象数据库空间名字
-g 指定在磁盘上的BLOB 页大小
  • 创建智能大对象数据库空间

$onspaces -c -S sbdbs1 -p /home/informix/dbs/sbdbs1 -o 0 -s 1024000

参数 解释
-S 指定智能大对象数据库空间名字
  • 创建临时数据库空间

$onspaces -c -d tempdbs1 -t -p /home/informix/dbs/tempdbs1 -o 0 -k 4 -s 512000
$onspaces -c -d tempdbs2 -t -p /home/informix/dbs/tempdbs2 -o 0 -k 4 -s 512000
$onspaces -c -d tempdbs3 -t -p /home/informix/dbs/tempdbs3 -o 0 -k 4 -s 512000
$onspaces -c -d tempdbs4 -t -p /home/informix/dbs/tempdbs4 -o 0 -k 4 -s 512000

参数 解释
-t 指定创建的是临时dbspace
-k 指定在磁盘上的页大小
  • 创建数据数据库空间

$onspaces -c -d datadbs1 -p /home/informix/dbs/datadbs1-1 -o 0 -s 2048000 -k 4

参数 解释
-c 创建dbspaces
-d 指定dbspaces名字
-p 指定chunk路径
-o 指定偏移量,单位为KB
-s 指定大小,单位为KB
-k 指定在磁盘上的页大小
  • 查看创建的数据库空间

onstat -d

  • 删除DBSpace
    若执行过程中输入错误命令,可以参考如下命令删除已创建的数据库空间:

onspaces -d plogdbs
onspaces -d llogdbs
onspaces -d tempdbs1
onspaces -d bindbs1
onspaces -d sbdbs1
onspaces -d datadbs1

TIPs:
在执行删除命令之前,您必须删除这个空间中的所有数据库和表,保证其为空设备。

2. 迁移物理日志

数据库在第一次初始化时,将逻辑日志和物理日志全部保存在根数据库空间中。我们需要将逻辑日志和物理日志迁移到对应的数据库空间中。使用onparams命令,将逻辑日志和物理日志进行迁移。

  • 迁移物理日志

$onparams -p -d plogdbs -s 2047890 -y

3. 迁移逻辑日志

  • 多次执行以下命令,来创建新的逻辑日志文件,直至提示数据库空间不足。

$ onparams -a -d llogdbs -s 204780

  • onstat -l 查看已经创建的物理日志与逻辑日志文件。

$onstat -l

  • 切换并删除系统默认的逻辑日志

$ onmode -l
$ onmode -l
$ onmode -l
$ onmode -l
$ onmode -l
$ onmode -l
$ onmode -c
$ onstat -l

  • 删除根目录中的逻辑日志文件命令

$onparams -d -l 1 -y
$onparams -d -l 2 -y
$onparams -d -l 3 -y
$onparams -d -l 4 -y
$onparams -d -l 5 -y
$onparams -d -l 6 -y

至此,逻辑日志迁移成功。

4. 优化onconfig参数

vi /home/informix/sinodb/etc/onconfig.sinodb

修改onconfig.sinodb文件中的参数如下:

DBSPACETEMP tempdbs1,tempdbs2,tempdbs3,tempdbs4
SBSPACENAME sbdbs1
SYSSBSPACENAME sbdbs1
NETTYPE soctcp,2,2000,NET
MULTIPROCESSOR 1
VPCLASS cpu,num=2,noage
CLEANERS 32
DIRECT_IO 1
LOCKS 200000
DEF_TABLE_LOCKMODE row
SHMVIRTSIZE 1024000
SHMADD 512000
EXTSHMADD 8192
BUFFERPOOL size=2K,buffers=500000,lrus=32,lru_min_dirty=50,lru_max_dirty=60

修改参数后,重启数据库

$onmode -ky
$oninit -vy

5.验证

  • 建库、建表并插入数据

$ echo “create database testdb in datadbs1 with log;” | dbaccess
$ echo “create table tuser(cuserid int, cusername varchar(20));” | dbaccess testdb
$ echo “insert into tuser values(1, ‘sinodb’);” | dbaccess testdb
$ echo “select * from tuser;” | dbaccess testdb