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_


未完。。。。