GBase8s数据库服务开机自启动的三种方法
本文方案适用于REDHAT7/CENTOS7、SUSE12等。
前置准备
1. 确认GBase 8s已安装完成,且能正常手动启动(手动启动命令:su - gbasedbt -c "oninit"),若手动启动失败,需先排查数据库安装问题,再进行自启动配置。
2. 确认GBase 8s安装路径(默认路径为/opt/gbase)、数据库管理用户(默认用户为gbasedbt),。
3. 操作需使用root权限,避免权限不足导致配置失败。
4. 本文配置方案仅适用于单机环境。SCC、HAR、RHAC集群之节点启动顺序有特殊要求,可以依据本方案做微调。
方法一:服务配置法(支持故障自重启)
systemd是现代Linux系统的服务管理核心,通过配置服务文件可实现GBase 8s的开机自启、故障自重启,且便于后续服务管理,步骤如下:
步骤1:创建GBase 8s环境变量文件
环境变量文件用于指定GBase 8s的安装路径、配置文件、字符集等参数,确保服务启动时环境变量正确加载,避免启动失败。
1. 使用root账户进入环境变量配置目录:
cd /etc/sysconfig/ |
2. 创建环境变量文件gbasedbt_env,并写入配置(根据实际安装路径和需求调整参数):
vi gbasedbt_env |
3. 输入以下内容:
# GBase 8s环境变量配置 |
4. 保存并退出(vi编辑器:按Esc,输入:wq回车)。
步骤2:创建systemd服务文件
服务文件用于定义GBase 8s服务的启动规则、依赖关系、启动/停止命令等,systemd通过该文件管理数据库服务。
1. 进入systemd服务文件目录:
cd /usr/lib/systemd/system/ |
2. 创建服务文件gbasedbt.service:
vi gbasedbt.service |
3. 写入以下配置(根据实际路径调整ExecStart和ExecStop路径,注释可保留):
[Unit] |
说明:若不需要故障自重启,可将Type=forking改为Type=oneshot,并注释掉Restart和RestartSec两行。
4. 保存并退出vi编辑器。
步骤3:配置服务并设置开机自启
1. 重新加载systemd配置,使新创建的服务文件生效:
systemctl daemon-reload |
2. 设置GBase 8s服务开机自启:
systemctl enable gbasedbt |
3. 启动GBase 8s服务(若数据库已手动启动,可跳过此步骤):
systemctl start gbasedbt |
4. 查看服务状态,确认启动成功:
systemctl status gbasedbt |
若输出中显示active (running),则说明服务启动成功,开机自启配置生效。
方法二:开机启动脚本法
该方法通过修改系统开机启动脚本/etc/rc.d/rc.local,添加数据库启动命令,实现开机自启,步骤简单,适用于不支持systemd的旧版Linux系统,或快速临时配置。
步骤1:确认rc.local文件可执行
部分Linux系统默认rc.local文件不可执行,需先赋予执行权限:
chmod +x /etc/rc.d/rc.local |
步骤2:添加数据库启动命令
1. 编辑rc.local文件:
vi /etc/rc.d/rc.local |
2. 在文件末尾添加以下命令(根据实际环境调整环境变量文件路径和启动命令):
# 启动GBase 8s数据库(切换到gbasedbt用户,加载环境变量,执行启动命令) |
说明:
- /home/gbasedbt/profile.gbaseserver:GBase 8s的环境变量文件路径。
- oninit -vy:带详细输出的启动命令,-v显示启动过程,-y非交互模式(避免启动时需要手动确认)。
3. 保存并退出vi编辑器。
步骤3:验证配置
1. 手动执行rc.local文件,测试数据库是否能正常启动:
/etc/rc.d/rc.local |
2. 切换到gbasedbt用户,查看数据库状态:
su - gbasedbt |
若输出中显示On-Line,则说明配置生效,重启系统后数据库会自动启动。
方法三:crontab定时任务配置法(简易方法)
通过crontab的@reboot定时任务,实现系统重启后自动启动GBase 8s,步骤极简,适用于快速配置。
1. 切换到gbasedbt用户,编辑crontab定时任务:
su - gbasedbt |
2. 在文件末尾添加以下内容(调整环境变量文件路径):
@reboot source /home/gbasedbt/profile.gbaseserver && oninit -vy |
3. 保存并退出,重启系统后,数据库会自动启动,可通过onstat -命令验证。
开机自启验证方法
无论使用哪种方法,配置完成后,建议重启系统验证是否生效,步骤如下:
# 重启系统 |
若重启后,数据库状态为active (running)(systemd方式)或On-Line(onstat方式),则说明开机自启配置成功。
常见问题排查
问题1:systemd启动服务失败,提示“EnvironmentFile not found”
原因:环境变量文件路径错误,或文件未创建。
解决:确认gbasedbt_env文件路径与服务文件中EnvironmentFile配置一致,若文件不存在,重新创建并写入正确配置。
问题2:重启系统后,数据库未自动启动,systemctl status显示“inactive”
原因1:未执行systemctl enable gbasedbt,未设置开机自启。
解决1:执行systemctl enable gbasedbt,重新重启系统验证。
原因2:启动命令路径错误,或环境变量配置错误。
解决2:检查ExecStart路径(/opt/gbase/bin/oninit)是否正确,环境变量文件中GBASEDBTDIR是否与实际安装路径一致。
问题3:启动服务时,提示“permission denied”(权限不足)
原因:服务文件中User和Group配置错误,或文件权限不足。
解决:确认服务文件中User=gbasedbt、Group=gbasedbt,并赋予服务文件和环境变量文件正确权限:
chmod 644 /usr/lib/systemd/system/gbasedbt.service |
评论
(1)创建实例
ENTER THE NUMBER OF DATA DBSPACES [Default:1]: 3
ENTER THE NUMBER OF TEMP DBSPACES [Default:1]: 3
Enter "Y" TO ENABLE ENVIRONMENT GL_USEGLU, OR ENTER "N" TO DISABLE: [Default:N]: y
INSTANCE SUMMARY:
Instance name: gbase01
GBase install directory: /opt/gbase
IP address & port: 192.168.10.88:9088
Character set: zh_CN.utf8
Logical log space size: 3000 MB
Physical log space size: 3000 MB
Smart LOB space size: 2030 MB
Temp DBSpace size: 2030 MB
Data path: /opt/gbase/gbase01_dbs
Data path free size: 495819 MB
The number of data DBSpace: 3
The number of temp DBSpace: 3
Environment GL_USEGLU: 1
(2)/etc/sysconfig创建gbasedbt_env
[root@abc sysconfig]# cat gbasedbt_env
# GBase 8s环境变量配置
GBASEDBTDIR=/opt/gbase # 数据库安装根路径
GBASEDBTSERVER=abc # 数据库服务器名称
ONCONFIG=onconfig.gbase01 # 数据库配置文件名
# 系统路径配置,确保能找到数据库执行命令
PATH=/opt/gbase/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
# 动态链接库路径,避免启动时缺失依赖
LD_LIBRARY_PATH=/opt/gbase/lib:/opt/gbase/incl/esql:/usr/lib:/usr/lib64
# 字符集配置,根据实际业务需求调整(默认UTF-8)
DB_LOCALE=zh_CN.utf8
CLIENT_LOCALE=zh_CN.utf8
SERVER_LOCALE=zh_CN.utf8
GL_USEGLU=1
DBDATE=Y4MD-
(3)创建systemd服务文件
[root@abc sysconfig]#
[root@abc sysconfig]# cd /usr/lib/systemd/system
[root@abc system]#
[root@abc system]#
[root@abc system]# cat gbasedbt.service
[Unit]
Description=GBase 8s Database Server # 服务描述
Wants=network-online.target # 依赖网络服务(确保网络启动后再启动数据库)
After=network.target network-online.target # 启动顺序:在网络服务之后启动
[Service]
Type=oneshot # 守护进程模式,支持故障自重启
User=gbasedbt # 启动数据库的用户(默认gbasedbt,不可修改)
Group=gbasedbt # 启动数据库的用户组(默认gbasedbt,不可修改)
RemainAfterExit=yes # 服务启动后保持运行状态
EnvironmentFile=-/etc/sysconfig/gbasedbt_env # 加载环境变量文件(-表示文件不存在也不报错)
ExecStart=/opt/gbase/bin/oninit # 数据库启动命令(绝对路径,oninit为默认启动命令)
ExecStop=/opt/gbase/bin/onmode -ky # 数据库停止命令(安全关闭,不可修改参数)
# Restart=always # 故障自重启(非手动停止时,异常退出自动重启)
# RestartSec=60 # 故障重启等待时间(单位:秒,避免频繁重启)
(4)执行systemctl status gbasedbt.service

热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526