This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
сервис_postgresql [2025/05/12 13:21] val [CloudNativePG PgBouncer] |
сервис_postgresql [2025/10/28 08:35] (current) val [Клиент psql] |
||
|---|---|---|---|
| Line 55: | Line 55: | ||
| * [[https://habr.com/ru/companies/oleg-bunin/articles/766898/|Операторы в Kubernetes]] и [[https://habr.com/ru/companies/flant/articles/684202/|Обзор операторов PostgreSQL для Kubernetes. Часть 3: CloudNativePG]] | * [[https://habr.com/ru/companies/oleg-bunin/articles/766898/|Операторы в Kubernetes]] и [[https://habr.com/ru/companies/flant/articles/684202/|Обзор операторов PostgreSQL для Kubernetes. Часть 3: CloudNativePG]] | ||
| + | |||
| + | * Dynamic Volume Provisioning [[Система Kubernetes#rancher local-path-provisioner]] | ||
| <code> | <code> | ||
| Line 90: | Line 92: | ||
| storage: | storage: | ||
| size: 10Gi | size: 10Gi | ||
| + | # storageClass: local-path | ||
| </code><code> | </code><code> | ||
| kube1:~/my-pgcluster# kubectl create ns my-pgcluster-ns | kube1:~/my-pgcluster# kubectl create ns my-pgcluster-ns | ||
| Line 122: | Line 125: | ||
| # sudo -u postgres psql | # sudo -u postgres psql | ||
| + | |||
| + | postgres=# SELECT version(); | ||
| postgres=# ALTER USER postgres WITH PASSWORD 'strongpassword'; | postgres=# ALTER USER postgres WITH PASSWORD 'strongpassword'; | ||
| Line 128: | Line 133: | ||
| postgres=# \l | postgres=# \l | ||
| + | postgres=> SELECT datname FROM pg_database; | ||
| postgres=# CREATE USER keycloak WITH PASSWORD 'strongpassword'; | postgres=# CREATE USER keycloak WITH PASSWORD 'strongpassword'; | ||
| Line 144: | Line 150: | ||
| keycloak=# \d user_entity | keycloak=# \d user_entity | ||
| + | |||
| + | keycloak=# SELECT id, username FROM user_entity; | ||
| keycloak=# SELECT * FROM user_entity WHERE username='admin'; | keycloak=# SELECT * FROM user_entity WHERE username='admin'; | ||
| Line 215: | Line 223: | ||
| kube1:~/my-pgcluster# kubectl -n my-pgcluster-ns get all | kube1:~/my-pgcluster# kubectl -n my-pgcluster-ns get all | ||
| </code> | </code> | ||
| + | ===== Потоковая репликация ===== | ||
| + | |||
| + | * [[https://selectel.ru/blog/tutorials/how-to-set-up-replication-in-postgresql/|Как настроить репликацию в PostgreSQL]] | ||
| + | |||
| ===== Резервное копирование и восстановление ===== | ===== Резервное копирование и восстановление ===== | ||
| Line 234: | Line 246: | ||
| gate# sudo -u postgres pg_dump -d keycloak > /tmp/keycloak.sql | gate# sudo -u postgres pg_dump -d keycloak > /tmp/keycloak.sql | ||
| - | gate# scp /tmp/keycloak.* kube1: | + | gate# ###scp /tmp/keycloak.* kube1: |
| </code> | </code> | ||
| Line 251: | Line 263: | ||
| kube1:~# kubectl -n my-postgres-ns exec -ti pod/my-postgres-postgresql-0 -- env PGPASSWORD="strongpassword" psql -U postgres -c "CREATE USER keycloak WITH PASSWORD 'strongpassword';" | kube1:~# kubectl -n my-postgres-ns exec -ti pod/my-postgres-postgresql-0 -- env PGPASSWORD="strongpassword" psql -U postgres -c "CREATE USER keycloak WITH PASSWORD 'strongpassword';" | ||
| - | kube1:~# cat ~/keycloak.dump | kubectl -n my-postgres-ns exec -i pod/my-postgres-postgresql-0 -- env PGPASSWORD="strongpassword" pg_restore -C -d postgres -U postgres | + | kube1:~# ssh gate.corp13.un cat /tmp/keycloak.dump | kubectl -n my-postgres-ns exec -i pod/my-postgres-postgresql-0 -- env PGPASSWORD="strongpassword" pg_restore -C -d postgres -U postgres |
| </code> | </code> | ||
| Line 281: | Line 293: | ||
| * [[https://pgbarman.org/]] | * [[https://pgbarman.org/]] | ||
| + | * [[https://sidmid.ru/barman-%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80-%D0%B1%D1%8D%D0%BA%D0%B0%D0%BF%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2-postgresql/|Barman. менеджер бэкапов для серверов PostgreSQL]] | ||
| ==== CloudNativePG Backup ==== | ==== CloudNativePG Backup ==== | ||
| Line 330: | Line 343: | ||
| kube1:~/my-pgcluster# kubectl -n my-pgcluster-ns apply -f my-scheduled-backup.yaml | kube1:~/my-pgcluster# kubectl -n my-pgcluster-ns apply -f my-scheduled-backup.yaml | ||
| - | kube1# kubectl -n my-pgcluster-ns describe backup my-scheduled-backup | + | kube1# kubectl -n my-pgcluster-ns describe backups.postgresql.cnpg.io my-scheduled-backup |
| - | kube1# kubectl -n my-pgcluster-ns get backup | + | kube1# kubectl -n my-pgcluster-ns get backups.postgresql.cnpg.io |
| </code> | </code> | ||
| Line 340: | Line 353: | ||
| <code> | <code> | ||
| - | kube1:~/my-pgcluster# kubectl -n my-pgcluster-ns create secret generic minio-secret \ | + | kube1:~# kubectl create ns my-pgcluster-ns |
| + | |||
| + | kube1:~# kubectl -n my-pgcluster-ns create secret generic minio-secret \ | ||
| --from-literal=ACCESS_KEY_ID=root \ | --from-literal=ACCESS_KEY_ID=root \ | ||
| --from-literal=ACCESS_SECRET_KEY=strongpassword | --from-literal=ACCESS_SECRET_KEY=strongpassword | ||