暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
patroni+etcd-pg15搭建集群测试.txt
163
14页
2次
2023-10-16
25墨值下载
1.安装 postgresql 数据库
关闭防火墙和 selinux
下载并解压缩 PostgreSQL 安装包:
wget https://ftp.postgresql.org/pub/source/v15.0/postgresql-15.0.tar.gz
tar zxvf postgresql-15.0.tar.gz
--手动下载地址:https://www.postgresql.org/ftp/source/
进入解压后的目录,执行以下命令编译和安装 PostgreSQL
groupadd -g 60000 pgsql
useradd -u 60000 -g pgsql pgsql
echo "pgsql"|passwd --stdin pgsql
安装目录:/postgresql/pg15
mkdir -p /postgresql/pg15
mkdir -p /postgresql/pgdata
chown -R pgsql:pgsql /postgresql
chmod -R 775 /postgresql
cd postgresql-15.0
su - pgsql
tar -zxvf postgresql-15.0.tar.gz
chown -R pgsql.pgsql postgresql-15.0
cd postgresql-15.0
./configure --prefix=/postgresql/pg15 --without-readline --without-zlib
#安装在/postgresql/pg15 目录下,进入管理页面后输入的内容,不显示在命令行里面
make && make install
oracle linux8 安装报错:
bash: make: command not found...
[root@pg1 opt]# yum -y install make
configure: error: in `/opt/pg/postgresql-15.0':
configure: error: no acceptable C compiler found in $PATH
处理办法,安装 gcc
.配置 yum 源安装依赖包
vi /etc/yum.repos.d/yum.repo
[LocalAppStream]
name=LA
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1
[LocalBaseOS]
name=LB
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1
yum clean all
yum makecache
yum repolist
--mount -o loop CentOS-7-x86_64-DVD-1810.iso /mnt/
[root@orcl postgresql-15.0]# yum -y install gcc
运行以下命令初始化数据库:
配置环境变量:
su - pgsql
vi ~/.bash_profile
export LANG=en_US.UTF8
export PS1="[`whoami`@`hostname`:"'$PWD]$'
export PGPORT=5432
export PGDATA=/postgresql/pgdata
export PGHOME=/postgresql/pg15
export
LD_LIBRARY_PATH=$PGHOME/lib:/ib64:/usr/ib64:/usr/loca/lib64:/ib:/usr/lib:/usr/lo
cal/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH:.
export DATE=`date +"%Y%m%d%H%M"`
export MANPATH=$PGHOME/share/man:$MANPATH
export PGHOST=$PGDATA
export PGUSER=postgres
export PGDATABASE=postgres
source ~/.bash_profile
初始化数据库:
#初始化到 pgdata 目录,字符集为 UTF8,字符为 en_US.utf8,初始化给哪个用户,-X 事物日志存放:不
指定就放到默认的位置,指定了就存放到指定位置,一般生产环境建议将事物日志放到磁盘好的位置。
[pgsql@orcl:/postgresql/pg15/bin]$initdb -D /postgresql/pgdata -E UTF8
--locale=en_US.utf8 -U postgres
启动 PostgreSQL 服务:
pg_ctl start
or
nohup /postgresql/pg12/bin/postgres -D /postgresql/pgdata >
/postgresql/pg12/pglog.out 2>&1 &
/usr/pgsql-15/bin/pg_ctl -D /usr/pgsql-15/data start
[pgsql@pg1:/postgresql/pg15/bin]$psql -h 127.0.0.1 -Upostgres
--修改 postgres 用户密码: ALTER USER postgres WITH PASSWORD 'postgres';
设置网络访问
pg_hba.conf 主要参数配置(repl 是流复制用户):
host all all 0.0.0.0/0 md5
host replication repl 0.0.0.0/0 md5
主机,所有的数据库,所有的用户,都能通过任意网段登陆上来,但是需要通过 md5 密码进来。
设置参数文件:postgresql.conf
listen_addresses = '*'
port = 5432
wal_level=replica
archive_mode=on
archive_command='test ! -f /postgresql/backup/archive_wals/%f && cp %p
/postgresql/backup/archive_wals/%f'
logging_collector = on
log_directory = 'log'
log_truncate_on_rotation = on
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
max_wal_senders=10 #最大发送进程多少个,至少 10
wal_sender_timeout=5000s #60s 还没发过去就断开了
hot_standby=on #说明这台机器不仅仅用于数据归档也用于数据查询
wal_receiver_status_interval = 10s #多久向主机报告一次从的状态,从每次数据复制都会向主报
告状态,这里只是设置最长的时间间隔
hot_standby_feedback = on #如果有错误的数据复制,是否向主进行反馈
select pg_switch_wal(); #切归档
复制虚拟机作为备库
修改 ip hostname hosts
2.搭建 postgres 主从流复制
主库:
#create role repuser login encrypted password 'repuser' replication;
postgres=# create role repl login encrypted password 'repl' replication;
CREATE ROLE
postgres=# \du
List of roles
Role name | Attributes | Member
of
-----------+------------------------------------------------------------
+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
repl | Replication | {}
上面配置了 pg_hba.conf --host replication repl 0.0.0.0/0
md5
备库
[pgsql@pg2:/postgresql/pgdata]$ pg_basebackup -D /postgresql/pgdata/ -F p -Pv -R
-h192.168.31.101 -p5432 -Urepl -l backup202305
修改备库参数文件:
vi postgresql.conf
primary_conninfo = 'host=192.168.31.101 port=5432 user=repl password=repl'
restore_command = 'cp /postgresql/backup/archive_wals/%f %p' #从该目录拷贝到工作
目录进行恢复
recovery_target_timeline = 'latest' #指定在哪个时间线上进行恢复操作,默认选项。表示使用
最新的时间线来进行 PITR 操作
--其它参数和主库一样
pg_ctl start
postgres=# select pg_switch_wal();
-[ RECORD 1 ]-+-----------
pg_switch_wal | 0/15000078
postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid | 4755
usesysid | 16388
usename | repl
application_name | walreceiver
client_addr | 192.168.31.102
client_hostname |
client_port | 38810
backend_start | 2023-05-26 10:05:20.227016+08
backend_xmin | 739
state | streaming
sent_lsn | 0/16000000
write_lsn | 0/16000000
flush_lsn | 0/16000000
replay_lsn | 0/16000000
write_lag | 00:00:00.24577
flush_lag | 00:00:00.24577
replay_lag | 00:00:00.061861
sync_priority | 0
sync_state | async
reply_time | 2023-05-26 10:05:30.380184+08
创建表测试完成
3.下载安装 etcd
下载安装 etcd,各个节点都要安装 etcd
https://github.com/etcd-io/etcd/releases
解压安装:
of 14
25墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。