OS版本:CentOS Linux release 7.9.2009 (Core)
PostgreSql版本:v9.6.22
下载地址:https://www.postgresql.org/ftp/source/v9.6.22/
软件包下载地址:https://ftp.postgresql.org/pub/source/v9.6.22/postgresql-9.6.22.tar.gz
学习参考地址:http://www.postgres.cn/index.php/v2/home
开始配置:
一:在Master节点配置
1:创建目录:
mkdir /data/pgsql /data/pg_data -p
2:下载软件包
wget https://ftp.postgresql.org/pub/source/v9.6.22/postgresql-9.6.22.tar.gz
3:解压及编译安装:
安装编译依赖:yum -y install readline-devel zlib-devel gcc
解压软件包:tar -zxvf postgresql-9.6.22.tar.gz
切换到解压后的目录:cd postgresql-9.6.22
开始编译:
./configure --prefix=/data/pgsql
make
make install
4:添加环境变量:编辑文件/etc/profile
export PG_HOME=/data/pgsql
export PGDATA=/data/pg_data
export PATH=$PATH:$PG_HOME/bin
应用环境变量:source /etc/profile
5:创建用户:
groupadd postgres
useradd postgres -g postgres
配置目录权限:
chown postgres.postgres /data/pg_data
chmod -R 700 /data/pg_data
6:初始化数据库
切换到postgres用户下:su - postgres
/data/pgsql/bin/initdb --encoding=UTF8 --lc-collate=en_US.utf8 --lc-ctype=en_US.utf8 -D $PGDATA
7:数据库启停:
pg_ctl start -D /data/pg_data
pg_ctl stop -D /data/pg_data
8:配置登录权限:修改配置文件( /data/pg_data/pg_hba.conf )
允许远程登录(示例配置的权限放的有点大,生产的要严格配置)
host all all 0.0.0.0/0 md5
允许被复制 (示例配置的权限放的有点大,生产的要严格配置)
host replication postgres 0.0.0.0/0 md5
9:修改监听地址及端口:/data/pg_data/postgresql.conf
listen_addresses = '*' #监控所有的接口
hot_standby = on #允许在恢复期间进行查询
archive_mode = on #开启归档模式
#archive_command = ‘cp %p /var/lib/postgresql/10/main/%f’ #归档命令(当前没有配置)
wal_level = replica #备份模式
max_wal_senders = 5 #最多有多少个流复制连接
wal_sender_timeout = 60s #流复制超时时间
max_connections = 100 #最大连接时间,必须要小于从库的配置
10:创建用户:
A:创建具有可登录和replication的权限的用户
CREATE ROLE lifeng login replication encrypted password '123456'
create role lifeng login replication encrypted password '123456'
CREATE DATABASE lifeng OWNER lifeng;
GRANT ALL PRIVILEGES ON DATABASE lifeng TO lifeng;
A:创建用户:CREATE USER dbuser WITH PASSWORD '12345678';
B:创建用户数据库:CREATE DATABASE exampledb OWNER dbuser;
C:将exampledb数据库的所有权限都赋予dbuser:
GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser;
修改用户postgres的密码:
ALTER USER postgres WITH PASSWORD 'postgres' ;
11:登录测试
切换到postgres用户 :su - postgres
系统会默认创建一个用户postgres和一个数据库:postgres
psql -Upostgres -dpostgres
schemas
Mysql:db_name.table_name
Postgresql:db_name.schemas_name.table_name
二:数据库基本操作
\l 查看当前所有的数据库
\dns 列表当前所有的schemas
创建数据库:create database test;
创建schemas:postgres=# create schema data;
创建表:
create table data.test(id int,name varchar(64));
create table data.testtable(id int,name varchar(64));
创建一个带索引的表
create table data.t2(id int,name varchar(64),unique(id));
创建一个带序列的表
create table data.t3(id serial not null,name varchar(64));
切换默认的schemas
set search_path to data
插入数据
三:在备机上进行基础配置
备份库同步数据:
pg_basebackup -Xs -h10.12.65.141 -p5432 -Upostgres -D $PGDATA -v -Fp
修改目录权限:
chmod -R 700 /data/pg_data
备机配置文件修改:
hot_
未完。。。。