你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
nccloud
1、yum安装源码编译所需依赖
## python-devel 没有yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel gcc-c++ openssl-devel cmake
2、编译 ./configure --prefix=/data/pgsql --without-icu (先切换到pg的源码目录)
#安装,-j为指定CPU核数,可根据主机CPU适当更改make -j 20 && make install
3、pg环境变量配置#此处环境变量为用户变量,可自定义pg的起停用户,以user用户为例useradd usermkdir /data/pgsql/datachown -R user.user /data/pgsql/data#此时需修改user用户环境变量vim /home/user/.bash_profile#添加以下几行,/data/pgsql为编译时指定的安装目录export PGHOME=/data/pgsqlexport PGDATA=/data/pgsql/dataPATH=$PATH:$HOME/bin:$PGHOME/bin
4、数据库初始化#因已经配好环境变量,可直接执行相对路径命令初始化initdb5、数据库配置修改、启动#共2个配置需修改,pg数据目录中的pg_hba.conf和postgresql.conf#pg_hba.conf记录服务访问权限配置,最后一行加如下参数,此处为方便允许所有IP访问host all all 0.0.0.0/0 trust#postgresql.conf记录数据库服务的配置,修改如下配置listen_addresses = '*' #监听IPmax_connections = 300 #最大连接数,可根据业务需要修改shared_buffers = 128GB #见下方注释,可根据业务需要修改#启动pg_ctl -D /data/pgsql/data -l logfile start
Tips:shred_buffer什么是shred_buffer,为什么需要shared_buffers?1、在数据库系统中,我们主要关注磁盘io,大多数oltp工作负载都是随机io,因此从磁盘获取非常慢。2、为了解决这个问题,postgres将数据缓存在RAM中,以此来提高性能,即使ssd的情况下RAM也要快很多。3、shared_buffers是一个8KB的数组,postgres在从磁盘中查询数据前,会先查找shared_buffers的页,如果命中,就直接返回,避免从磁盘查询。shared_buffers存储什么?1、表数据2、索引,索引也存储在8K块中。3、执行计划,存储基于会话的执行计划,会话结束,缓存的计划也就被丢弃。主从构建:大致流程是在主节点创建主从同步的用户,并允许该用户从从节点连接主节点用于主从复制,然后修改主节点配置文件指定主从模式,最后从节点指定主节点拉取数据、启动、验证主从1、从节点备份数据库数据目录#此处备份为以防万一,一般不需要cp -r /data/pgsql/data /data/backup/2、从节点清空数据目录下数据rm -rf /data/pgsql/data/*3、修改主节点配置、重启#创建用于主从同步的用户create role postgrerepl login replication encrypted password '密码';#共2个配置需修改,pg数据目录中的pg_hba.conf和postgresql.conf#pg_hba.conf修改允许从节点IP连接主节点postgrerepl用于主从复制host replication 用于主从同步的用户名 从节点IP/掩码 trust示例:host replication postgrerepl 192.168.0.1/32 trust#postgresql.conf修改主从配置,wal_level控制wal存储的级别。决定有多少信息被写入到WAL中。#默认值是最小的(minimal),其中只写入从崩溃或立即关机中恢复的所需信息。replica #增加 wal 归档信息同时包括只读服务器需要的信息。(9.6版本中新增,将之前版本的 archive #和 hot_standby合并)要启用 WAL 归档(archive_mode)和流复制,必须使用replica#或更高级别(logical)wal_level = replica # minimal, replica, or logicalmax_wal_size = 1GBmin_wal_size = 80MBmax_wal_senders = 10 # max number of walsender processes#重启pg_ctl -D /data/pgsql/data -l logfile restart4、从节点指定主节点并拉取数据并启动#拉取数据pg_basebackup -h 主节点IP -U postgrerepl -p 7101 -F p -X s -v -P -R -D /data/pgsql/data#启动pg_ctl -D /data/pgsql/data start5、验证主从#登陆主节点查看主从信息select * from pg_stat_replication;#登陆主节点创建测试库create database test#登陆从节点查看是否将主节点测试库同步\d test
要回复问题请先登录或注册
5 个回复
nccloud
1、yum安装源码编译所需依赖
##
python-devel 没有
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel gcc-c++ openssl-devel cmake
2、编译 ./configure --prefix=/data/pgsql --without-icu (先切换到pg的源码目录)
nccloud
#安装,-j为指定CPU核数,可根据主机CPU适当更改
make -j 20 && make install
nccloud
3、pg环境变量配置
#此处环境变量为用户变量,可自定义pg的起停用户,以user用户为例
useradd user
mkdir /data/pgsql/data
chown -R user.user /data/pgsql/data
#此时需修改user用户环境变量
vim /home/user/.bash_profile
#添加以下几行,/data/pgsql为编译时指定的安装目录
export PGHOME=/data/pgsql
export PGDATA=/data/pgsql/data
PATH=$PATH:$HOME/bin:$PGHOME/bin
nccloud
4、数据库初始化
#因已经配好环境变量,可直接执行相对路径命令初始化
initdb
5、数据库配置修改、启动
#共2个配置需修改,pg数据目录中的pg_hba.conf和postgresql.conf
#pg_hba.conf记录服务访问权限配置,最后一行加如下参数,此处为方便允许所有IP访问
host all all 0.0.0.0/0 trust
#postgresql.conf记录数据库服务的配置,修改如下配置
listen_addresses = '*' #监听IP
max_connections = 300 #最大连接数,可根据业务需要修改
shared_buffers = 128GB #见下方注释,可根据业务需要修改
#启动
pg_ctl -D /data/pgsql/data -l logfile start
nccloud
Tips:shred_buffer
什么是shred_buffer,为什么需要shared_buffers?
1、在数据库系统中,我们主要关注磁盘io,大多数oltp工作负载都是随机io,因此从磁盘获取非常慢。
2、为了解决这个问题,postgres将数据缓存在RAM中,以此来提高性能,即使ssd的情况下RAM也要快很多。
3、shared_buffers是一个8KB的数组,postgres在从磁盘中查询数据前,会先查找shared_buffers的页,如果命中,就直接返回,避免从磁盘查询。
shared_buffers存储什么?
1、表数据
2、索引,索引也存储在8K块中。
3、执行计划,存储基于会话的执行计划,会话结束,缓存的计划也就被丢弃。
主从构建:
大致流程是在主节点创建主从同步的用户,并允许该用户从从节点连接主节点用于主从复制,然后修改主节点配置文件指定主从模式,最后从节点指定主节点拉取数据、启动、验证主从
1、从节点备份数据库数据目录
#此处备份为以防万一,一般不需要
cp -r /data/pgsql/data /data/backup/
2、从节点清空数据目录下数据
rm -rf /data/pgsql/data/*
3、修改主节点配置、重启
#创建用于主从同步的用户
create role postgrerepl login replication encrypted password '密码';
#共2个配置需修改,pg数据目录中的pg_hba.conf和postgresql.conf
#pg_hba.conf修改允许从节点IP连接主节点postgrerepl用于主从复制
host replication 用于主从同步的用户名 从节点IP/掩码 trust
示例:
host replication postgrerepl 192.168.0.1/32 trust
#postgresql.conf修改主从配置,wal_level控制wal存储的级别。决定有多少信息被写入到WAL中。
#默认值是最小的(minimal),其中只写入从崩溃或立即关机中恢复的所需信息。replica
#增加 wal 归档信息同时包括只读服务器需要的信息。(9.6版本中新增,将之前版本的 archive
#和 hot_standby合并)要启用 WAL 归档(archive_mode)和流复制,必须使用replica
#或更高级别(logical)
wal_level = replica # minimal, replica, or logical
max_wal_size = 1GB
min_wal_size = 80MB
max_wal_senders = 10 # max number of walsender processes
#重启
pg_ctl -D /data/pgsql/data -l logfile restart
4、从节点指定主节点并拉取数据并启动
#拉取数据
pg_basebackup -h 主节点IP -U postgrerepl -p 7101 -F p -X s -v -P -R -D /data/pgsql/data
#启动
pg_ctl -D /data/pgsql/data start
5、验证主从
#登陆主节点查看主从信息
select * from pg_stat_replication;
#登陆主节点创建测试库
create database test
#登陆从节点查看是否将主节点测试库同步
\d test