在开始部署YashanDB数据库之前,我们需要做好充分的环境准备工作。这就像盖房子前需要打好地基一样,基础工作做扎实了,后续的数据库安装和运行才能稳定可靠。根据我多次部署YashanDB的经验,环境准备主要包含以下几个关键环节:
首先是虚拟机环境的配置。大多数开发者会选择在VMware虚拟机中部署YashanDB进行测试和开发,因此需要设置好主机与虚拟机之间的文件共享机制。其次是系统依赖的安装,特别是OpenSSL这样的基础加密库,版本兼容性非常重要。最后是数据库安装包的准备和基础目录结构的创建。
提示:建议在进行这些准备工作前,先为虚拟机创建一个快照,这样如果在配置过程中出现问题,可以快速回滚到初始状态。
在VMware中设置共享文件夹是主机与虚拟机之间传输文件最便捷的方式之一。具体操作步骤如下:
这样设置后,每次启动虚拟机时,共享文件夹都会自动启用。我建议将共享文件夹命名为简单易记的名称,比如"Share",这样后续操作时不容易出错。
虚拟机启动后,还需要在Linux系统中进行挂载配置才能访问共享文件夹。以下是详细步骤:
bash复制# 切换到root用户
su root
# 创建挂载点目录
mkdir /mnt/hgfs
# 将挂载配置添加到fstab文件,实现开机自动挂载
echo ".host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0" >> /etc/fstab
# 立即挂载所有在fstab中定义的设备
mount -a
执行完这些命令后,你应该能在/mnt/hgfs目录下看到共享文件夹的内容。如果遇到权限问题,可以尝试以下命令:
bash复制chmod 777 /mnt/hgfs
注意:在某些Linux发行版中,可能需要先安装VMware Tools或open-vm-tools才能正常使用共享文件夹功能。如果挂载失败,可以尝试安装这些工具包。
YashanDB对OpenSSL的版本有特定要求,通常需要1.1.1版本。这是因为:
以下是安装OpenSSL 1.1.1的完整过程:
bash复制# 切换到home目录
cd /home
# 下载OpenSSL源码包
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
# 解压源码包
tar -xzf openssl-1.1.1.tar.gz
# 进入源码目录
cd openssl-1.1.1
# 配置编译选项
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
# 编译并安装
make && make install
安装完成后,可能会遇到库文件找不到的问题,表现为:
bash复制openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
解决方法如下:
bash复制# 查找libssl.so.1.1文件位置
find / -name "libssl.so.1.1" 2>/dev/null
# 将库文件路径添加到系统配置
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf.d/openssl.conf
echo "/home/openssl-1.1.1" >> /etc/ld.so.conf.d/openssl.conf
# 更新动态链接库缓存
ldconfig -v
# 验证安装
openssl version -a
提示:如果系统中有多个OpenSSL版本,可以通过修改PATH环境变量来确保使用正确的版本:
bash复制echo 'export PATH=/usr/local/openssl/bin:$PATH' >> ~/.bashrc source ~/.bashrc
在部署YashanDB前,建议创建清晰的目录结构:
bash复制mkdir -p /home/yashan/install
mkdir -p /home/yashan/data
mkdir -p /home/yashan/logs
这种目录结构的好处是:
将下载好的YashanDB安装包从共享文件夹移动到安装目录:
bash复制mv /mnt/hgfs/Share/yashandb-personal-23.2.3.100-linux-x86_64.tar.gz /home/yashan/install/
建议在移动完成后验证文件完整性:
bash复制cd /home/yashan/install
md5sum yashandb-personal-23.2.3.100-linux-x86_64.tar.gz
将计算结果与官方提供的MD5值进行比对,确保文件在传输过程中没有损坏。
YashanDB安装完成后,需要为系统管理员(sys)账户设置密码:
bash复制yasboot cluster password set -n yasdb_123 -c yashandb
这里有几个注意事项:
如果需要修改密码策略(如有效期、复杂度等),可以使用以下命令:
bash复制# 查看当前密码策略
yasql -U sys -W yasdb_123 -c "SELECT * FROM password_policy;"
# 修改密码有效期(例如设置为90天)
yasql -U sys -W yasdb_123 -c "ALTER SYSTEM SET password_life_time=90;"
正确的关闭流程对数据库完整性至关重要:
bash复制# 连接到数据库
yasql -U sys -W yasdb_123
# 执行关闭命令
SQL> shutdown immediate;
# 退出连接
exit
shutdown immediate命令会:
启动数据库的命令如下:
bash复制yasboot cluster start -c yashandb
启动过程会:
如果启动失败,可以检查以下内容:
bash复制cat /home/yashan/logs/yashandb/alert.log
bash复制netstat -tulnp | grep 1688
bash复制df -h
bash复制free -m
可能原因及解决方法:
解决方法:
bash复制# 查看当前使用的OpenSSL路径
which openssl
# 如果使用的是旧版本,可以创建符号链接
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
常见原因:
检查步骤:
在完成基础部署后,可以考虑以下优化措施:
bash复制sysctl -w kernel.shmmax=4294967296
sysctl -w kernel.shmall=1048576
在实际部署YashanDB时,我发现以下几个小技巧特别有用:
在虚拟机设置中,为数据库服务器预留足够的CPU和内存资源,避免资源争用。
定期对虚拟机创建快照,特别是在进行重要配置变更前,这样可以在出现问题时快速回滚。
使用脚本自动化重复性任务,比如启动/停止数据库、备份等操作,可以减少人为错误。
在测试环境中尝试不同的配置参数,找到最适合自己应用场景的配置组合。