2024-11-27-PostgreSQL

  1. DOCKER部署
    1. 单机
    2. 高可用
  2. 创建 用户 数据库
  3. 备份和恢复

DOCKER部署

单机

创建env配置文件
#pgsqlenv.env
POSTGRES_PASSWORD=123456
# 指定 端口 指定挂载目录 密码
docker run -d --rm --name pgsql  --env-file /home/docker/pgsql/pgsqlenv.env -p 15432:5432 --network inet -v /home/docker/pgsql/data/:/var/lib/postgresql/data/ postgres:14.10

高可用

创建 用户 数据库

#连接到容器内
docker exec -it pgsql psql -U postgres
$ psql (14.10 (Debian 14.10-1.pgdg120+1))
$ Type "help" for help.
#\q 退出
postgres=# \q
创建用户 
CREATE USER sonar WITH PASSWORD '123456';
创建数据库
CREATE DATABASE sonarqubedb;
赋权
GRANT ALL PRIVILEGES ON DATABASE sonarqubedb TO sonar;

备份和恢复

#备份
#pg_dump  -U username -h hostname dbname > backup.sql
#pg_dumpall  -U username -h hostname  > backupall.sql
#-U 指定用户名
#-h 指定服务器的主机名(可选,如果是在本地可以省略)
#dbname 是要备份的数据库名。
#backup.sql 是备份文件的名字
docker exec -it psql pg_dumpall  -U sonar sonarqubedb > /home/sonaralldb.sql  
docker exec -it psql pg_dumpall  -U sonar  > backall.sql  
#恢复
#psql -U username -h hostname -d dbname -f backup.sql
#-U 指定用户名。
#-h 指定服务器的主机名(可选,如果是在本地可以省略)。
#-d 指定要恢复到的数据库名。
#-f 指定备份文件
docker exec -it psql -U sonar -d sonarqubedb  -f sonaralldb.sql