PolarDB单节点版本安装指南

目录

硬件和软件需求

预配置操作系统

确保Transparent Hugepage关闭

修改内核参数

配置资源限制

创建安装用户组和用户

安装PolarDB-O数据库和PFS文件系统

配置安装PFS

启动&停止数据库

检查安装

进程检查

FAQ

硬件和软件需求

如果测试环境安装PolarDB数据库,满足下面列表要求即可;如果是生产环境安装,则所有硬盘需>1TB,内存>16GB,CPU大于4核心,千兆网卡等。

需求项 配置说明 实验环境
硬盘

系统盘

本地数据盘

PFS数据盘

/dev/sda

/dev/sdb

/dev/sdc

操作作系统 Linux Centos 7.2或以上。建议字符集设置为 LANG=en_US.UTF-8

CentOS Linux release 7.9.2009 (Core)

LANG=en_US.UTF-8

文件系统 PolarDB-O 要求本地盘文件系统为Ext4,数据盘使用 PolarFS(PFS)。

系统盘:XFS

本地数据盘:XFS

PFS数据盘:PolarFS

预配置操作系统

确保Transparent Hugepage关闭

cat /sys/kernel/mm/transparent_hugepage/enabled 
always madvise [never]
# 如果没有关闭,则修改GRUB配置文件,在如下所示处追加transparent_hugepage=never
vi /boot/grub2/grub.cfg
linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl_polardb--o-root ro crashkernel=auto rd.lvm.lv=cl_polardb-o/root rhgb
 quiet LANG=en_US.UTF-8 transparent_hugepage=never

修改内核参数

cat /etc/sysctl.d/70-polardb.cfg 
vm.dirty_expire_centisecs=3000
net.ipv4.tcp_synack_retries=2
net.core.rmem_default=262144
vm.dirty_background_bytes=409600000
net.core.wmem_default=262144
kernel.shmall=107374182
vm.mmap_min_addr=65536
vm.overcommit_ratio=90
kernel.shmmni=819200
net.core.rmem_max=4194304
vm.dirty_writeback_centisecs=100
fs.file-max=76724600
net.core.somaxconn=4096
fs.aio-max-nr=1048576
net.ipv4.tcp_max_tw_buckets=262144
vm.swappiness=0
fs.nr_open=20480000
net.ipv4.tcp_fin_timeout=5
net.ipv4.ip_local_port_range=40000 65535
net.ipv4.tcp_keepalive_probes=3
net.ipv4.tcp_mem=8388608 12582912 16777216
kernel.shmmax=274877906944
kernel.sem=4096 2147483647 2147483646 512000
net.ipv4.tcp_keepalive_intvl=20
net.ipv4.tcp_keepalive_time=60
vm.overcommit_memory=0
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_rmem=8192 87380 16777216
net.ipv4.tcp_wmem=8192 65536 16777216
net.core.wmem_max=4194304
vm.dirty_ratio=80
net.core.netdev_max_backlog=10000
vm.zone_reclaim_mode=0
net.ipv4.tcp_tw_reuse=1
vm.nr_hugepages=0
vm.nr_overcommit_hugepages=1000000

配置资源限制

cat /etc/security/limits.d/polardb_limits.conf
* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft memlock unlimited
* hard memlock unlimited
* soft core unlimited
* hard core unlimited

创建安装用户组和用户

groupadd polardb
useradd -g polardb polardb
# 增加sudo权限
visudo
# 末尾追加
polardb ALL=(ALL) ALL

安装PolarDB-O数据库和PFS文件系统

# su - polardb
# 执行以下命令,安装PolarDB-O数据库。
$ sudo rpm -i PolarDB-O-0200-2.0.0-20200709.alios7.x86_64.rpm
# 执行以下命令,安装PFS文件系统。
$ sudo rpm -i t-polarstore-pfsd-san-1.1.41-20200830160257.alios7.x86_64.rpm 
$ vi ~/.bash_profile
export PGPORT=5432
export PGDATA=/data
export LANG=en_US.utf8
export PGHOME=/usr/local/polardb_o_current
export PFSHOME=/usr/local/polarstore/pfsd
export PFSDISK=sdc
export PFSDIR=/sdc/data
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PFSHOME/bin/:$PATH
export PGHOST=$PGDATA
export PGUSER=polardb
export PGDATABASE=polardb
$ source ~/.bash_profile

配置安装PFS

#  以polardb用户登录,执行以下命令,格式化$PFSDISK设备
$ sudo /usr/local/bin/pfs -C disk mkfs -u 30 -f $PFSDISK
# 等待一段时间,回显输出 pfs mkfs succeeds! 后,执行以下命令,启动PFS服务。
$ sudo /usr/local/polarstore/pfsd/bin/start_pfsd.sh -p $PFSDISK
# 执行以下命令,创建PFS的数据库目录。
$ sudo /usr/local/bin/pfs -C disk mkdir $PFSDIR
# 查看/sdc/目录
$ sudo /usr/local/bin/pfs -C disk ls "/"$PFSDISK"/"
  File  1     4194304           Tue Nov 24 14:22:13 2020  .pfs-paxos
  File  1     33554432          Tue Nov 24 14:22:13 2020  .pfs-journal
   Dir  1     1536              Tue Nov 24 18:05:44 2020  data
total 73728 (unit: 512Bytes)
# 其他的pfs命令可以执行如下命令查询
$ sudo /usr/local/bin/pfs -C disk --help

配置安装PolarDB

# 初始化数据库集群,以polardb用户登录,执行如下命令:
$ initdb -D $PGDATA -E UTF8 --locale=C -U polardb
# 说明 -E 参数指定数据库字符集,--locale 指定本地化参数,-U 指定初始化用户,其他的参数可以
# 执行initdb --help 命令查看。

# 初始化PFS数据
$ sudo /usr/local/polardb_o_current/bin/polar-initdb.sh $PGDATA/ $PFSDIR/ disk

# 修改配置文件,
$ cd /data/
$ vi postgresql.conf
listen_addresses = '*' # 监听所有连接
port = 5432 # 监听端口 (后文成为$port)
max_connections = 2048 # 最大连接数
unix_socket_directories = '.' # socket文件地址目录
timezone = 'UTC-8' # 时区
log_timezone = 'UTC-8' # 日志时区
log_destination = 'csvlog' # 日志文件格式
logging_collector = on # 启用日志收集
log_directory = 'polardb_log' # 日志存放目录
polar_enable_shared_storage_mode=on # 启用共享存储模式
polar_hostid=1 # PFS的挂载id
polar_datadir='/sdc/data/' # PFS目录
polar_disk_name='sdc' # PFS设备名称
polar_storage_cluster_name=disk # PFS设备类型

$ vi $PGDATA/pg_hba.conf
host    all             all             0.0.0.0/0               md5

启动&停止数据库

$ pg_ctl start -D $PGDATA
$ pg_ctl stop -D $PGDATA

注意:修改过postgresql.conf文件后,请确认在修改前是否曾经启动过数据库,若曾经启动过,请 在修改并保存 postgresql.conf文件后先手动删除同目录下的polar_node_static.conf文件:rm $PGDATA/polar_node_static.conf之后再重新启动数据库以确保修改过的配置文件生效.

注意:如果服务器系统重启后,需要首先启动PFSD服务,然后再启动polardb服务 ,即:

sudo /usr/local/polarstore/pfsd/bin/start_pfsd.sh -p $PFSDISK
pg_ctl start -D $PGDATA

检查安装

$ psql -h$PGDATA -p$PGPORT -c"select version()"
PostgreSQL 11.2 (POLARDB Database Compatible with Oracle 11.2.9)

进程检查

PolarDB-O 数据库启动成功之后,会在数据库目录下生成一个postmaster.pid,其中第一行是PolarDB for O 守护进程pid,用户可以通过ps -a|grep 守护进程pid 可以得到所有的PolarDB-O 进程,其中有如下几类常见辅助进程。

  • /usr/local/polardb_o_current/bin/polar-postgres -D data 为PolarDB for O 的守护进程。
  • postgres: logger 为PolarDB-O 的打印日志进程。
  • postgres: checkpointer 为PolarDB-O 的周期性检查点进程。
  • postgres: background writer 为PolarDB-O 的周期性刷脏进程。
  • postgres: walwriter 为PolarDB-O 的定期WAL 日志刷盘进程。
  • postgres: autovacuum launcher 为PolarDB-O 的自动清理调度进程。
  • postgres: stats collector 为PolarDB-O 的统计信息收集进程。

FAQ

问题:启动polardb数据库报错
$ pg_ctl start -D $PGDATA
[PFSD_SDK INF Apr 13 19:38:28.528304][1563]pfs_mount_prepare 153: pfs_mount_prepare success for sdc hostid 1
..................................[PFSD_SDK ERR Apr 13 19:39:03.047497][1563]chnl_connection_poll_shm 1179: connect timeout! st.size 4096
[PFSD_SDK ERR Apr 13 19:39:03.047567][1563]chnl_connection_poll_shm 1220: Connect failed err -1 : Connection timed out
[PFSD_SDK ERR Apr 13 19:39:03.048727][1563]chnl_connect_shm 1267: Failed poll shm: Success
[PFSD_SDK INF Apr 13 19:39:03.048766][1563]pfsd_sdk_init 179: pfsd_chnl_connect failed
[PFSD_SDK INF Apr 13 19:39:03.048788][1563]pfs_mount_post 194: pfs_mount_post err : -1
2021-04-13 19:39:03 UTC FATAL:  can't mount PBD sdc, id 1
2021-04-13 19:39:03 UTC LOG:  database system is shut down
 stopped waiting
pg_ctl: could not start server
Examine the log output.

解决:
启动pfsd服务:sudo /usr/local/polarstore/pfsd/bin/start_pfsd.sh -p $PFSDISK

参考:Polardb官方安装部署指南

安装介质:PolarDB-O-0200-2.0.0-20200902034114.alios7.x86_64.rpm

你可能感兴趣的:(数据库,polardb)