pg数据库的搭建

yum安装:

yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm ##下载rpm包

yum module disable postgresql ##清除自带旧版本

yum -y install postgresql13-server.x86_64 ##下载pg13

/usr/pgsql-13/bin/postgresql-13-setup initdb ##初始化数据库

vim /var/lib/pgsql/13/data/postgresql.conf ##修改配置文件

listen_addresses = '*' # what IP address(es) to listen on;

port = 25432

max_connections = 2048

password_encryption = scram-sha-256

shared_buffers = 1024MB

dynamic_shared_memory_type = posix

max_wal_size = 1GB

min_wal_size = 80MB

log_destination = 'stderr'

logging_collector = on

log_directory = 'log'

log_filename = 'postgresql-%a.log'

log_truncate_on_rotation = on

log_rotation_age = 1d

log_rotation_size = 0

log_line_prefix = '%m [%p] '

log_timezone = 'Asia/Shanghai'

idle_in_transaction_session_timeout = 30000 ##设置闲置连接30秒自动断开

datestyle = 'iso, ymd'

timezone = 'Asia/Shanghai'

timezone = 'Asia/Shanghai'

lc_monetary = 'zh_CN.UTF-8'

lc_numeric = 'zh_CN.UTF-8'

lc_time = 'zh_CN.UTF-8'

default_text_search_config = 'pg_catalog.simple'

vim /var/lib/pgsql/13/data/pg_hba.conf ##设置访问权限,在最后追加一行

host all all 0.0.0.0/0 md5

修改data存储路径:

vim /usr/lib/systemd/system/postgresql-13.service

Environment=PGDATA=/data/pgsql/data

systemctl restart postgresql-13.service ##启动pgsql

#登录数据库命令:

psql -U postgres #会进入postgres用户的控制台

#\l ##查看有哪些数据库

#\c postgresql ###选择postgresql 这个数据库,会提示进入连接 #然后就可以用select 等语句查询了

ALTER USER postgres WITH PASSWORD 'postgres' ; #修改数据库密码

\q #退出数据库

PostgreSQL的配置文件主要有如下3个(postgresql.conf,pg_hba.conf,pg_ident.conf) 可以通过如下方式查找:

# select name, setting from pg_settings where category='File Locations' ;

查询连接服务:

select count( * ) from pg_stat_activity where state not like '%idle';

===1===

postgresql.conf 数据库相关配置 该文件包含一些通用设置,比如内存分配,新建database的默认存储位置,PostgreSQL服务器的IP地址,日志的位置以及许多其他设置。

postgres=# select name, context, unit, setting, boot_val, reset_val from pg_settings where name in ('listen_address','max_connetctons','shared_buffers','effective_cache_size','work_mem','maintenance_work_mem') order by context, name; name | context | unit | setting | boot_val | reset_val ----------------------+------------+------+---------+----------+----------- shared_buffers | postmaster | 8kB | 16384 | 1024 | 16384 effective_cache_size | user | 8kB | 524288 | 524288 | 524288 maintenance_work_mem | user | kB | 65536 | 65536 | 65536 work_mem | user | kB | 4096 | 4096 | 4096 (4 rows) context 设置为postmaster,

更改此形参后需要重启PostgreSQL服务才能生效; 设置为user,那么只需要执行一次重新加载即可全局生效。重启数据库服务会终止活动连接,但重新加载不会。 unit 字段表示这些设置的单位; setting是指当前设置;boot_val是指默认设置;reset_val是指重新启动服务器或重新加载设置之后的新设置; 在postgresql.conf中修改了设置后,一定记得查看一下setting和reset_val并确保二者是一致,否则说明设置并未生效,需要重新启动服务器或者重新加载设置

===2===

pg_hba.conf 客户端认证配置文件 允许哪些用户连接到哪个数据库,允许哪些IP或者哪个网段的IP连接到本服务器,以及指定连接时使用的身份验证模式 pg_hba.conf 客户端认证配置文件的认证类型包括:

> trust 本地可以使用 psql -U postgres 直接登录服务器; (生产环境勿用)

> peer 本地可以使用 psql -h 127.0.0.1 -d postgres -U postgres 直接登录服务器; (peer使用发起端的操作系统名进行身份验证)

> password 使用 用户名密码(明文密码) 登录 ; (生产环境勿用) > ident ident是Linux下PostgreSQL默认的local认证方式,凡是能正确登录服务器的操作系统用户(注:不是数据库用户)就能使用本用户映射的数据库用户不需密码登录数据库。

> md5 md5是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户

> reject 拒绝认证 建议使用md5方式,不同用户相同密码加密的结果也不相同,因为会使用用户名和密码一同加密. 所以要注意:若已设密码的用户名称改变了,密码也会失效... Ident和peer模式适用于Linux,Unix和Mac,不适用于windwos

===3===

pg_ident.conf 用户映射文件 若客户端使用ident类型认证,就需要这里的映射关系了.

比如,服务器上有名为user1的操作系统用户,同时数据库上也有同名的数据库用户,user1登录操作系统后可以直接输入psql,以user1数据库用户身份登录数据库且不需密码。 很多初学者都会遇到psql -U username登录数据库却出现“username ident 认证失败”的错误,明明数据库用户已经createuser。 原因就在于此,使用了ident认证方式,却没有同名的操作系统用户或没有相应的映射用户。 解决方案:1、在pg_ident.conf中添加映射用户;2、改变认证方式。 CentOS7安装了PostgreSQL10和pgadmin4后,pgadmin4始终登陆数据库提示用户认证失败, 就是因为Linux下PostgreSQL默认的local认证方式是ident,而pg_ident.cong用户映射文件里并没有任何映射用户, 所以可以修改认证方式为md5,即可使用密码成功登陆了.

Kingbase是一款国产的关系型数据库管理系统,基于PostgreSQL二次开发而来,具有高性能、高可用、高可靠性和易于管理等特点。下面介绍如何搭建Kingbase数据库集群。 1. 安装Kingbase 首先需要安装Kingbase数据库管理系统。可以从官网下载安装包进行安装。安装过程中需要注意选择安装路径和安装组件,如需安装Kingbase集群版,则需要选择“集群版”组件。 2. 配置Kingbase集群 在安装完成后,需要对Kingbase集群进行配置。具体步骤如下: (1)创建Kingbase集群配置文件 在Kingbase安装目录下创建一个新的目录,例如“/data/kingbase/cluster”,然后在该目录下创建一个新的配置文件,例如“kingbase.conf”。 (2)配置Kingbase集群参数 在配置文件中添加如下配置参数: shared_buffers = 128MB work_mem = 4MB max_connections = 1000 max_prepared_transactions = 100 listen_addresses = '*' port = 5432 wal_level = hot_standby max_wal_senders = 8 wal_keep_segments = 8 synchronous_commit = off max_standby_archive_delay = 30s max_standby_streaming_delay = 30s 其中,shared_buffers表示共享缓冲区大小,work_mem表示每个会话使用的内存大小,max_connections表示最大连接数,listen_addresses表示允许连接的IP地址,port表示监听的端口,wal_level表示WAL日志记录级别,max_wal_senders表示最大WAL发送者数,wal_keep_segments表示保留的WAL日志段数,synchronous_commit表示同步提交方式,max_standby_archive_delay和max_standby_streaming_delay表示主备延迟时间。 (3)初始化Kingbase集群 执行如下命令初始化Kingbase集群: initdb -D /data/kingbase/cluster (4)启动Kingbase集群 执行如下命令启动Kingbase集群: pg_ctl -D /data/kingbase/cluster -l /data/kingbase/cluster/logfile start 3. 配置Kingbase主备复制 Kingbase支持主备复制功能,可以实现数据的备份和高可用性。具体步骤如下: (1)创建主备复制用户 在Kingbase中创建一个新用户,用于主备复制。例如: create user repl with replication password 'repl123'; (2)配置主数据库 在主数据库中修改配置文件“kingbase.conf”,添加如下配置参数: wal_level = hot_standby max_wal_senders = 8 wal_keep_segments = 8 archive_mode = on archive_command = 'cp %p /data/archive/%f' 其中,archive_mode表示开启归档模式,archive_command表示归档命令。 (3)配置备份数据库 在备份数据库中修改配置文件“kingbase.conf”,添加如下配置参数: hot_standby = on primary_conninfo = 'host=192.168.1.100 port=5432 user=repl password=repl123' restore_command = 'cp /data/archive/%f %p' 其中,hot_standby表示开启热备模式,primary_conninfo表示主数据库连接信息,restore_command表示恢复命令。 (4)启动备份数据库 执行如下命令启动备份数据库pg_ctl -D /data/kingbase/cluster -l /data/kingbase/cluster/logfile start (5)测试主备复制 在主数据库中创建一个测试表,并插入一条记录: create table test(id int, name varchar(20)); insert into test values(1, 'kingbase'); 然后在备份数据库中查询该表: select * from test; 可以看到备份数据库中已经同步了主数据库中的数据。 4. 配置Kingbase集群负载均衡 Kingbase集群可以通过负载均衡实现高可用和高性能。可以使用HAProxy等工具进行负载均衡配置。 具体步骤如下: (1)安装HAProxy 在Linux系统中执行如下命令安装HAProxy: yum install haproxy (2)配置HAProxy 在HAProxy配置文件“/etc/haproxy/haproxy.cfg”中添加如下配置: listen kingbase_cluster bind 192.168.1.100:5432 mode tcp balance roundrobin server kingbase1 192.168.1.101:5432 check server kingbase2 192.168.1.102:5432 check 其中,192.168.1.100为HAProxy的IP地址,192.168.1.101和192.168.1.102为Kingbase集群中两个节点的IP地址。 (3)重启HAProxy 执行如下命令重启HAProxy: systemctl restart haproxy 5. 总结 通过以上步骤,我们可以搭建一个基于Kingbase的数据库集群,实现数据备份、高可用和负载均衡等功能,提高数据库的性能和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值