YashanDB个人版已正式向所有用户和开发者全面开放下载,特此参加「产品体验官」尝鲜活动。本文基于Centos 7.9 部署单机的 YashanDB Personal 23.1。
安装YashanDB前准备
服务器准备
因为是个人尝鲜使用YashanDB,根据官网准备了最小配置的服务器,信息如下:
服务器名称 | IP | 操作系统版本 | CPU | 内存 | 硬盘 |
---|---|---|---|---|---|
YashanDB01 | 192.168.159.51 | Centos 7.9 | X86_64, 2C | 4G | 50G,SSD |
操作系统参数调整
关闭交换分区
[root@YashanDB01 ~]# sysctl -w vm.swappiness=0
vm.swappiness = 0
[root@YashanDB01 ~]# echo "vm.swappiness = 0">> /etc/sysctl.conf
调整自动分配本地端口范围
[root@YashanDB01 ~]# sysctl -w net.ipv4.ip_local_port_range='32768 60999'
net.ipv4.ip_local_port_range = 32768 60999
[root@YashanDB01 ~]# echo "net.ipv4.ip_local_port_range = 32768 60999" >> /etc/sysctl.conf
调整进程的VMA上限
[root@YashanDB01 ~]# sysctl -w vm.max_map_count=2000000
vm.max_map_count = 2000000
[root@YashanDB01 ~]# echo "vm.max_map_count=2000000" >> /etc/sysctl.conf
调整资源限制值
[root@YashanDB01 ~]# ulimit -n 65536
[root@YashanDB01 ~]# ulimit -u 65536
[root@YashanDB01 ~]# ulimit -m unlimited
[root@YashanDB01 ~]# ulimit -s 8192
[root@YashanDB01 ~]#
[root@YashanDB01 ~]# echo "
> * soft nofile 65536
> * hard nofile 65536
> * soft nproc 65536
> * hard nproc 65536
> * soft rss unlimited
> * hard rss unlimited
> * soft stack 8192
> * hard stack 8192
> " >> /etc/security/limits.conf
关闭透明大页
vi /etc/default/grub
,在GRUB_CMDLINE_LINUX
中添加或修改参数transparent_hugepage=never
。
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
- 执行
grub2–mkconfig
指令重新配置grub.cfg
。
[root@YashanDB01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-a3f44a3410c642c8b1f3c4270c5fdfaa
Found initrd image: /boot/initramfs-0-rescue-a3f44a3410c642c8b1f3c4270c5fdfaa.img
done
- 重启操作系统,使配置永久生效。
- 检查透明大页已关闭。
[root@YashanDB01 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
显示为always madvise [never]
,说明透明大页已关闭。
创建安装用户
1. 创建yashan用户
[root@YashanDB01 ~]# useradd -d /home/yashan -m yashan
[root@YashanDB01 ~]# passwd yashan
Changing password for user yashan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
2. 配置sudo免密
为文件/etc/sudoers添加写权限,并进行编辑
[root@YashanDB01 ~]# ll /etc/sudoers
-r--r-----. 1 root root 4328 Sep 30 2020 /etc/sudoers
[root@YashanDB01 ~]# chmod +w /etc/sudoers
[root@YashanDB01 ~]# vi /etc/sudoers
在文件最后添加如下内容
yashan ALL=(ALL) NOPASSWD:ALL
将文件恢复成只读的属性
[root@YashanDB01 ~]# chmod -w /etc/sudoers
3. 将yashan用户加入到YASDBA用户组
[root@YashanDB01 ~]# groupadd YASDBA
[root@YashanDB01 ~]# usermod -a -G YASDBA yashan
目录规划
安装YashanDB必须规划两个目录,HOME目录和DATA目录,本次安装,均规划在/data/yashan下。
[root@YashanDB01 ~]# mkdir -p /data/yashan
[root@YashanDB01 ~]# chown -R yashan:yashan /data/yashan
[root@YashanDB01 data]# chmod -R 775 /data/yashan
下载软件包
- 到YashanDB官网找到YashanDB安装包的下载途径,个人环境为x86架构的,选择了对应的安装包进行下载。
- 在yashan用户主目录下创建一个空目录,作为安装包的存放路径
[root@YashanDB01 data]# su - yashan
Last login: Thu Nov 30 16:46:14 CST 2023 on pts/1
[yashan@YashanDB01 ~]$ mkdir install
- 将软件包放到/home/yashan/install目录下,并解压软件包:
[yashan@YashanDB01 ~]$ cd /home/yashan/install/
[yashan@YashanDB01 install]$ tar zxf yashandb-personal-23.1.1.100-linux-x86_64.tar.gz
使用脚本安装YashanDB
1. 获取安装脚本
进入到目录/home/yashan/install/scripts/,可以找到安装YashanDB所需的脚本
[yashan@YashanDB01 install]$ cd /home/yashan/install/scripts/
[yashan@YashanDB01 scripts]$ ll
total 32
-rwxrwxr-x. 1 yashan yashan 3296 Nov 9 18:16 createResourceCgroup.sh
-rwxrwxr-x. 1 yashan yashan 2934 Nov 9 18:16 initDB.sh
-rwxrwxr-x. 1 yashan yashan 2104 Nov 9 18:16 initStandby.sh
-rw-rw-r--. 1 yashan yashan 411 Nov 9 18:16 install.ini
-rwxrwxr-x. 1 yashan yashan 1412 Nov 9 18:16 install.sh
-rwxrwxr-x. 1 yashan yashan 1157 Nov 9 18:16 startup.sh
-rwxrwxr-x. 1 yashan yashan 1157 Nov 9 18:16 stop.sh
-rwxrwxr-x. 1 yashan yashan 667 Nov 9 18:16 yascheckStart.sh
2. 安装参数调整
通过修改install.ini文件的内容来调整安装参数。
[yashan@YashanDB01 scripts]$ vi install.ini
这里仅调整了YASDB_HOME和YASDB_DATA参数,其余均保持了默认。
[install]
YASDB_HOME=/data/yashan/yasdb_home
YASDB_DATA=/data/yashan/yasdb_data
REDO_FILE_SIZE=100M
REDO_FILE_NUM=4
INSTALL_SIMPLE_SCHEMA_SALES=N
NLS_CHARACTERSET=UTF8
[instance]
LISTEN_ADDR=0.0.0.0:1688
DB_BLOCK_SIZE=8K
DATA_BUFFER_SIZE=256M
SHARE_POOL_SIZE=256M
WORK_AREA_POOL_SIZE=32M
LARGE_POOL_SIZE=32M
REDO_BUFFER_SIZE=8M
UNDO_RETENTION=300
OPEN_CURSORS=310
MAX_SESSIONS=1024
RUN_LOG_LEVEL=INFO
NODE_ID=1-1:1
3. 执行安装
运行安装脚本install.sh。
[yashan@YashanDB01 scripts]$ ./install.sh
运行初始化脚本initDB.sh。
[yashan@YashanDB01 scripts]$ ./initDB.sh process started! Database open succeed !
使环境变量生效。
[yashan@YashanDB01 scripts]$ source ~/.bashrc
4. 设置sys用户口令
[yashan@YaShanDB01 scripts]$ cd $YASDB_DATA/instance
[yashan@YaShanDB01 instance]$ mv yasdb.pwd yasdb1.pwd
[yashan@YaShanDB01 instance]$ yaspwd file=yasdb.pwd
Enter password for SYS:password
5. 验证安装是否成功
使用yasql工具连接数据库,查看实例状态。
[yashan@YaShanDB01 instance]$ yasql / as sysdba
YashanDB SQL Personal Edition Release 23.1.1.100 x86_64
Connected to:
YashanDB Server Personal Edition Release 23.1.1.100 x86_64 - X86 64bit Linux
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
-------------
OPEN
1 row fetched.
SQL> SELECT database_name FROM v$database;
DATABASE_NAME
----------------------------------------------------------------
yasdb
1 row fetched.
至此,已完成YashanDB的单机部署。
安装YashanDB DBeaver
YashanDB DBeaver是基于DBeaver二次开发的,能支持YashanDB数据库图形化开发及管理。
软件包准备
1. 下载YashanDB DBeaver
本次在Windows环境安装,在官网下载对应的安装包。
2. 下载JDK
DBeaver的运行依赖于Java环境,版本为V23.1的DBeaver,依赖于JDK17及以上版本的Java环境。可到如下地方进行下载:
下载 Microsoft Build of OpenJDK | Microsoft Learn。
安装及配置
1. 解压JDK及DBeaver安装包
本文将JDK及DBeaver安装包解压到了D盘。
2. 配置java环境变量
以管理员身份打开cmd,执行如下命令将java的bin目录加入到环境变量。
setx PATH %PATH%;D:\jdk-21.0.1+12\bin /m
打开一个新的cmd,执行java -version
命令,确认环境变量是否添加成功。
C:\Users\markliu>java -version
openjdk version "21.0.1" 2023-10-17 LTS
OpenJDK Runtime Environment Microsoft-8526870 (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Microsoft-8526870 (build 21.0.1+12-LTS, mixed mode, sha
ring)
3. 配置DBeaver
编辑D:\dbeaver\dbeaver.ini文件,在头部加入如下内容。
-vm
D:\jdk-21.0.1+12\bin #具体路径以本地解压的jdk目录为准,定位到bin目录即可
现在即可正常打开DBeaver程序。
连接数据库
YashanDB的默认端口是1688,如客户端到服务器的1688端口不通,可先到服务器上停止防火墙或放通1688端口。
[root@YaShanDB01 listener]# firewall-cmd --zone=public --add-port=1688/tcp --permanent
success
[root@YaShanDB01 listener]# firewall-cmd --reload
success
[root@YaShanDB01 listener]# firewall-cmd --zone=public --query-port=1688/tcp
yes
放通后,即可通过DBeaver配置连接信息并成功连接到数据库进行管理。
总结
本文主要记录了个人第一次进行YashanDB单机部署的过程,体验后感受如下:
- 文档提供的安装步骤很详细,单机部署的过程也相对简单,根据文档能比较轻松的完成部署。
- 从实例的连接方式、目录结构、表空间、实例启停、数据字典视图,以及官方文档中提到的一些功能来看,YashanDB确实形似Oracle。
- 在部署过程中,也遇到一些困惑,奇怪为何23.1版本的文档中在部署单机实例也必须指定–cluster参数,也不确定是否为特意设计的。后来倒是在22.2版本的文档中找到另一种使用脚本部署单机的方式,本文也采用了这种方法进行部署的。
因知道活动比较晚,有很多感兴趣的方面,如备份、主备模式、兼容性等,还未实际体验过。但这初次体验,确实让我对YashanDB有所期待,希望其能成为国产数据库中一颗冉冉升起的新星。