根据搜集的资料安装测试并在安装测试过程中整理的文档,如有不足希望不吝赐教。
因为公司一个项目可能使用PotsgreSQL作为数据库,因此领导领导安排先初步了解下其安装配置以及简单的备份,以下是对安装过程的简单记录。
这个是备份记录:《CentOS7中PotsgreSQL11双机备份简单配置过程记录》
目录
一、安装
二、连接PostgreSQL数据库
1.切换postgres用户
2.列出所有的数据库
3.退出数据库
三、PostgreSQL数据库目录
四、PostgreSQL简单配置
1.修改监听的ip和端口
2.修改数据库log相关的参数
3.内存参数的配置
五、配置链接host
1.修改pg_hba.conf文件
六、其他
安装部分来自官网文档,地址:https://www.postgresql.org/download/linux/redhat/
本次安装环境为:centos7(×86_64) + PostgreSQL11、
Install the repository RPM:(1、2、3步可以添加-y参数)
yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
Install the client packages:
yum install postgresql11
Optionally install the server packages:
yum install postgresql11-server
Optionally initialize the database and enable automatic start:
/usr/pgsql-11/bin/postgresql-11-setup initdb
设置开机启动。启动以及查看状态:
systemctl enable postgresql-11
systemctl start postgresql-11
systemctl status postgresql-11
并连接数据库:su - postgres
1.默认位置
当前位置下data目录为数据库目录。使用pwd查看当前目录:
查看data目录:
PostgreSQL数据库的配置主要是通过修改数据目录下的postgresql.conf文件来实现
使用postgresql用户连接数据库后,进入到/var/lib/pgsql/data目录下,编辑postgresql.conf文件:
根据实际修改,修改完成后需要重启数据库才能生效:
日志收集,一般是打开的:
日志目录,一般使用默认值:
只保留一天的日志,进行循环覆盖
共享内存的大小,用于共享数据块。如果你的机器上有足够的内存,可以把这个参数改的大一些,这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读,而不需要再从文件上去读取。
单个SQL执行时,排序、hash json所用的内存,SQL运行完后,内存就释放了。
同样的,在postgres用户下,修改pg_hba.conf文件,在文件最后添加需要允许访问的主机ip:
vim /var/lib/pgsql/11/data/pg_hba.conf
上面为允许任何主机访问,或者修改为指定ip即可,例如:host all all 172.17.0.9/32 trust
1.json字段
之前使用sqlservr和mysql比较多,可以存json格式数据但基本是当作字符串处理,而postgresql可以直接处理json格式数据,将字段作为条件查询:
假设有字段msg,类型为json,保存数据如下:
{"ip": "172.17.0.84","user": "postgres","password": "postgres"}
{"ip": "172.17.0.86","user": "postgres","password": "postgres"}
如果要查询ip为172.17.0.84的数据,可以使用下面的语句:
select * from tablename where (msg->>'ip')::text = '172.17.0.84';
这里只是稍稍尝试了一下,个人觉得这个在一些时候很实用,比如某个实体的属性,可以使用json格式保存,这样会少很多字段,并且属性扩展时的数据库成本几乎可以忽略。不知道这么理解是不是正确。
END