崖山从0到1系列01-YCA/YCP培训-01
由于项目有崖山数据库需求,所以了解了一下崖山数据库,感觉崖山上手很容易,架构和ORACLE有很大相似之处。尤其是跟ORACLE的强大兼容性,在很多去O项目中,有不俗的成绩。
逛了一下崖山的官网,发现文档很全,很符合我的风哥,照着文档一路下来,基本很顺畅就能安装起来,这里一定要个大赞!
接下里一起带着大家走进崖山的从0到1吧!
第一章崖山db的安装部署-centos7.8安装yashandb23.2.3
–升级Openssl到1.1.1o(源码安装)
备份文件
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
编译openssl-1.1.1o
官网下载地址:https://github.com/openssl/openssl/tags
tar zxvf openssl-OpenSSL_1_1_1o.tar.gz
cd openssl-OpenSSL_1_1_1o
./config --prefix=/usr/local/openssl
make && make install
建立连接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo “/usr/local/openssl/lib” >> /etc/ld.so.conf
ldconfig -v
验证
openssl version
关闭交换分区
# sysctl -w vm.swappiness=0
# echo "vm.swappiness=0">> /etc/sysctl.conf
调整自动分配本地端口范围
使用cat /proc/sys/net/ipv4/ip_local_port_range查看连接可用的本地端口范围,下限值建议大于30000以减少端口冲突。
# sysctl -w net.ipv4.ip_local_port_range='32768 60999'
echo "net.ipv4.ip_local_port_range=32768 60999" >> /etc/sysctl.conf
调整进程的VMA上限
使用sysctl -a|grep vm.max_map_count查看当前上限值,建议大于2000000以增大数据库进程可拥有的VMA大小。
# sysctl -w vm.max_map_count=2000000
echo "vm.max_map_count=2000000" >> /etc/sysctl.conf
系统限制
#调整资源限制值
将部分资源限制值(使用ulimit -a可查看所有的资源限制值)调整为推荐值或以上。
资源项 推荐值 COMMAND 资源项说明
open files 1048576 ulimit -n 1048576
vi /etc/security/limits.conf后添加
- soft nofile 1048576
- hard nofile 1048576 进程打开的文件数
max user processes 1048576 ulimit -u 1048576
vi /etc/security/limits.conf后添加 - soft nproc 1048576
- hard nproc 1048576 最大用户进程数
max memory size unlimited ulimit -m unlimited
vi /etc/security/limits.conf后添加 - soft rss unlimited
- hard rss unlimited 进程最大占用内存值
stack size 8192 ulimit -s 8192
vi /etc/security/limits.conf后添加 - soft stack 8192
- hard stack 8192 进程最大栈
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
配置大页内存
启用大页内存
执行如下命令查看当前大页内存配置:(回显信息以实际为准)
$ grep -i huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
估算大页内存需求。首先估算YashanDB的大页内存需求:
配置参数 默认值
DATA_BUFFER_SIZE 32M
REDO_BUFFER_SIZE 8M
VM_BUFFER_SIZE 16M
SHARE_POOL_SIZE 64M
LARGE_POOL_SIZE 8M
DBWR_BUFFER_SIZE 4M
WORK_AREA_POOL_SIZE 16M
AUDIT_QUEUE_SIZE 16M
根据配置计算YashanDB所需内存总量UserSize,即上述所有配置项的总和(未配置的项目按默认值计算)
如需规划使用MMS表空间,还需估计MMS表空间所需内存总量MMSSize。
YashanDB至少需要大页内存空间LargePageSize = (UserSize + MMSSize + 64M) * 1.2。
YashanDB需要的大页内存页面数HugePages = Ceil(LargePageSize / Hugepagesize)。
Notice:
若将所有内存都划归大页管理,可能造成系统无法启动或其他异常,请谨慎使用。
配置时,需确保系统内存容量足以支持大页配置的数值。
启用大页内存并根据上述估算值更改相关配置:
本文以大页尺寸 2M、申请16个大页(即规划32M大页内存)为例,生产环境配置请以实际为准。
编辑/etc/sysctl.conf文件:
#vi /etc/sysctl.conf
追加以下配置:
vm.nr_hugepages=16
vm.nr_overcommit_hugepages=0
#关闭透明大页
部分操作系统默认开启了透明大页选项,可执行以下命令确认:
#Red Hat Enterprise Linux 内核
#cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
#其他内核
#cat /sys/kernel/mm/transparent_hugepage/enabled
若显示[always] madvise never或always [madvise] never,则说明透明大页已开启。
若显示always madvise [never],则说明透明大页已关闭。
执行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"
通过以下指令检查当前系统的引导类型:
# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
两种引导的启动文件路径分别为:
BIOS:/boot/grub2/grub.cfg
UEFI:/boot/efi/EFI/<distro_name>/grub.cfg,distro_name为系统发行版本名称,例如ubuntu、fedora、debian等。
执行grub2–mkconfig指令重新配置grub.cfg。
## BIOS 引导
# grub2-mkconfig -o /boot/grub2/grub.cfg
## UEFI 引导
# grub2-mkconfig -o /boot/efi/EFI/<distro_name>/grub.cfg
重启操作系统,使配置永久生效。
# reboot
验证透明大页已关闭:
## Red Hat Enterprise Linux 内核
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
## 其他内核
# cat /sys/kernel/mm/transparent_hugepage/enabled
应显示always madvise [never]。
关闭防火墙selinux
systemctl stop firewalld
vi /etc/selinux/config
disabled
–安装yashandb
新建用户
useradd yashan
echo yashan_123 |passwd yashan --stdin
创建用户组
groupadd YASDBA --必须大写
usermod -a -G YASDBA yashan --有了这个用户组,可以使用yasql / as sysdba 登录数据库
创建目录
mkdir -p /app/yasdb_home
mkdir -p /app/yasdb_data
mkdir -p /app/install
chown -R yashan:yashan /app
su - yashan
cd /app
rz
yashandb-personal-23.2.1.100-linux-x86_64.tar.gz
tar -zxvf yashandb-personal-23.2.1.100-linux-x86_64.tar.gz -C ./install
生成参数文件
$install/bin/yasboot package se gen --cluster yashandb -u yashan -p yashan_123 --ip 192.168.127.39 --port 22 --install-path /app/yasdb_home --data-path /app/yasdb_data --begin-port 1688
执行安装:重复安装需要加–force
install/bin/yasboot package install -t hosts.toml -i yashandb-personal-23.2.1.100-linux-x86_64.tar.gz
或者
执行部署并安装插件(插件实现dblink功能及更丰富的内置函数)
$ install/bin/yasboot package install -t hosts.toml -i yashandb-23.2.0.2-linux-x86_64.tar.gz --plugin yashandb-plugins-all-23.2.0.2-linux-x86_64.tar.gz
此步骤会运行yasom yasagent服务
部署数据库
install/bin/yasboot cluster deploy -t yashandb.toml
配置环境变量:
cd /app/yasdb_home/yashandb/23.2.1.100/conf
[yashan@db01 conf]$ vi yashandb.bashrc
export YASDB_HOME=/app/yasdb_home/yashandb/23.2.1.100
export PATH=${YASDB_HOME}/bin:$PATH
export LD_LIBRARY_PATH=${YASDB_HOME}/lib:$LD_LIBRARY_PATH
if command -v rlwrap >/dev/null 2>&1; then
alias yasql="rlwrap yasql"
fi
export YASDB_DATA=/app/yasdb_data/db-1-1
[yashan@db01 conf]$
[yashan@db01 conf]$ cat yashandb.bashrc >> ~/.bashrc
source ~/.bashrc
env|grep YAS
YASDB_HOME=/app/yasdb_home/yashandb/23.2.1.100
YASDB_DATA=/app/yasdb_data/db-1-1
设置sys用户密码:至少8位,至少包含1个特殊字符,好像没有限制大写字母
[yashan@db01 conf]$ cd /app/yasdb_data/db-1-1/instance
ls
mv yasdb.pwd yasdb1.pwd
[yashan@db01 instance]$ yaspwd file=yasdb.pwd
Enter password for SYS:yas123
YASPW-00002 password complexity failed for SYS user : password must contain at least 8 characters
[yashan@db01 instance]$
[yashan@db01 instance]$ yaspwd file=yasdb.pwd
Enter password for SYS:yasdb123
YASPW-00002 password complexity failed for SYS user : password must contain at least 1 special character
[yashan@db01 instance]$ yaspwd file=yasdb.pwd
Enter password for SYS:yasdb_123
或者使用如下命令设置密码,更简单
yasboot cluster password set -n yashan_123 -c yashandb
yasql / as sysdba
使用YasBoot查看YashanDB数据库状态,显示以下信息表示安装成功
[yashan@db01 instance]$ yasboot cluster status -c yashandb
host_id | node_type | nodeid | pid
---------------------------------------
host0001 | db | 1-1:1 | 21938
----------+-----------+--------+-------
[yashan@db01 instance]$ ps -ef|grep yas
登陆验证,显示以下信息表示登陆成功
[yashan@db01 instance]$ yasql sys/yashan_123
SQL> select database_name,open_mode from v$database;
DATABASE_NAME OPEN_MODE
---------------------------------------------------------------- -----------------
yashandb READ_WRITE
1 row fetched.
SQL>
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------------------------------------------------------- -------------
yasdb OPEN
1 row fetched.
重启服务器,启动服务顺序
注意:数据库服务依赖yasom yasagent服务;
yasboot process yasom start -c yashandb
yasboot process yasagent start -c yashandb
yasboot cluster start -c yashandb
yasql sys/yashan_123
关机顺序(关闭数据库-关闭依赖服务)
yasboot cluster stop -c yashandb
yasboot process yasagent stop -c yashandb
yasboot process yasom stop -c yashandb
查看数据库状态
yasboot cluster status -c yashandb