安装postgresql-12:

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
yum install postgresql12-contrib postgresql12-server postgresql12 -y

初始化:

/usr/pgsql-12/bin/postgresql-12-setup initdb

修改配置:

echo "listen_addresses = '*'" >> /var/lib/pgsql/12/data/postgresql.conf

开机启动:

systemctl enable postgresql-12 --now && systemctl status postgresql-12

修改远程连接:

/var/lib/pgsql/12/data/pg_hba.conf

# IPv4 local connections:
host    all             all             192.168.1.0/24          trust
host    all             all             127.0.0.1/32            trust



连接数据库:

psql -U postgres -h 192.168.1.123 -p 30100 -d dbname

备份数据库的表:

PGPASSWORD="password" pg_dump --username=postgres --host=192.168.1.123 --port=30100 --dbname=db_name > /root/db.sql

备份数据库:

pg_dumpall --file xxx.sql --host 192.168.1.123 --port "30100" --username "postgres" \
--no-password --database "postgres" --verbose --data-only

数据导入:如果提示数据库不存在则需要先创建数据库。

psql -U postgres -h 192.168.1.123 -p5432 -d postgres -f postgres.sql


密码处理:

环境变量:

export PGPASSWORD="$pg_password"
pg_dump -p 7432 -U scm > pg.dump
# or
PGPASSWORD="$pg_password" pg_dump -p 7432 -U scm > pg.dump

使用.pgpass文件:在主目录下新建~/.pgpass文件,并赋权限为600,文件内容为

hostname:port:database:username:password


备份数据库:

-W,按提示输入密码

--inserts,使用insert命令形式导出数据,这种方式比默认的copy方式慢很多,但是可用于将数据导入到非PostgreSQL数据库。

pg_dumpall -h 127.0.0.1 -U admin -p 5432 -W --inserts > bak.sql

列出输数据库:

->\l

列出当前数据库所有表:

->\d

查看某数据库大小:

select pg_database_size('dbname');

人性化显示大小:

select pg_size_pretty(pg_database_size('dbname'));

查看所有数据库大小:

select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database;

其他命令:

\password:设置密码
 
\q:退出
 
\h:查看SQL命令的解释,比如\h select。
 
\?:查看psql命令列表。
 
\l:列出所有数据库。
 
\c [database_name]:连接其他数据库。
 
\d:列出当前数据库的所有表格。先使用 \c database 连接到数据库
 
\d [table_name]:列出某一张表格的结构。
 
\du:列出所有用户。
 
\e:打开文本编辑器。
 
\conninfo:列出当前数据库和连接的信息。

参考文章:

cnblogs.com/mchina/archive/2013/04/19/3028573.html

参考:

https://mytecdb.com/blogDetail.php?id=144

备份脚本:

#!/bin/bash

export PGPASSWORD="123456"
pg_dump --username=postgres --host=192.168.1.12 --port=5432 --dbname=postgres > ./postgres.sql