手动安装示例
与传统vb_initdb建库相比,资源池化建库将目录分为三种类型:每个实例独占且不共享、每个实例独占且共享、所有实例共享。其中需要共享的目录均需存放到磁阵设备上,而不共享的目录存放在本地盘上。另外备机建库只需要建隶属于自己的目录,不需要再次创建所有实例共享的目录结构。资源池化新增了相关GUC参数,以及将系统表存储方式从页式切换到段页式。
此处的单步手动安装是指通过单步执行相关命令进行资源池化建库。
前置条件
主机已经挂载磁阵LUN设备,并且已经安装ultrapath多路径软件。
磁阵设备可用。
操作步骤
1、 为磁阵LUN盘符创建软链接,并赋予相应的用户权限(假设磁阵LUN对应的盘符为/dev/sde,/dev/sdf)。
sudo ln -s /dev/sde /dev/tpcc_data
sudo ln -s /dev/sdf /dev/tpcc_log
sudo chmod 777 /dev/tpcc_data
sudo chmod 777 /dev/tpcc_log
2、为需要磁阵RAWIO权限的可执行文件赋权。
sudo -i setcap CAP_SYS_RAWIO+ep 绝对路径/perctrl
perctrl:用于对dss相关工具和进程赋予读写权限的可执行工具。
3、创建DSS服务端进程及建资源池化库需要的配置文件。
测试目录(假设为/data/test):
└─dss_home/
├── cfg
│ ├── dss_inst.ini
│ └── dss_vg_conf.ini
└── log // 启动前需存在log目录
dss_init.ini配置内容如下:
INST_ID=0
_LOG_LEVEL=55
_LOG_BACKUP_FILE_COUNT=128
_LOG_MAX_FILE_SIZE =20M
LSNR_PATH=/data/test/dss_home
STORAGE_MODE=RAID
_SHM_KEY=12
对于上述配置的参数说明如下:
- INST_ID:配置实例号,取值范围[0, 63],每个主备下的dssserver进程各不相同。
- _LOG_LEVEL:日志级别。
- _LOG_BACKUP_FILE_COUNT:日志文件最多保留的个数。
- _LOG_MAX_FILE_SIZE:单个日志文件最大大小。
- LSNR_PATH:DSS客户端与服务端之间通信使用的domain socket保存的目录,一般设为DSS服务端进程的家目录。
- STORAGE_MODE:DSS对应的存储设备类型,磁阵的话配置为RAID。
- _SHM_KEY:共享内存KEY,需要保证每个DSS各不相同。
dss_vg_conf.ini配置内容如下:
data:/dev/tpcc_data
log: /dev/tpcc_log
表示+data目录的内容存放在/dev/tpcc_data设备上,+log目录内容存放在/dev/tpcc_log设备上。这里要注意下,约定通过根目录名是否有+字符区分是文件系统中的文件,还是DSS中的文件。用户可以把DSS当做类似分布式文件系统来看待。
4、使用DSS客户端工具(dsscmd)在磁阵设备上初始化VG(类似于在裸盘上初始化文件系统的操作)。
# 清空磁阵LUN开头数据
dd if=/dev/zero bs=2048 count=100000 of=/dev/tpcc_data
dd if=/dev/zero bs=2048 count=100000 of=/dev/tpcc_log
# 创建VG
dsscmd cv -g data -v /dev/tpcc_data -s 2048 -D /data/ss_test/dss_home
dsscmd cv -g log -v /dev/tpcc_log -s 65536 -D /data/ss_test/dss_home
# 拉起dssserver
dssserver -D /data/ss_test/dss_home &
vb_initdb -D /data/ss_test/dn_primary --nodename=single_node -w Gauss_234 --vgname="+data,+log" --enable-dss --dms_url="0:127.0.0.1:1611,1:127.0.0.1:1711" -I 0 --socketpath="UDS:/data/ss_test/dss_home/.dss_unix_d_socket"
其中新增5个相关参数:
- --vgname:卷组名,指定资源池化库建在哪个卷组下,这个名字与dss_vg_conf.ini文件中的配置项相关,卷组名需要出现在配置文件中,并且以“+”字符开头。
- --enable-dss:表示资源池化库要建到DSS里。
- --dms_url:”0:127.0.0.1:1611,1:127.0.0.1:1711”,格式为instance_id:ip:port。
- -I :指定当前节点的实例号,取值范围[0,63]。
- --socketpath:指定DSS客户端(这里指集成到数据库相关可执行文件中的DSS客户端动态库)与服务端通信使用的unix domain socket存放的位置。
6、建资源池化库成功,通过vb_ctl start命令拉取数据库进程。
vb_ctl start -D /data/ss_test/dn_primary
7、按照上述步骤再重新执行安装备机。