只有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