mirror of
https://github.com/BagelHole/DevOps-Security-Agent-Skills.git
synced 2026-08-22 12:49:53 +02:00
69 lines
1.3 KiB
Markdown
69 lines
1.3 KiB
Markdown
---
|
|||
|
|
name: postgresql
|
||
|
|
description: Administer PostgreSQL databases. Configure replication, backups, and performance tuning. Use when managing PostgreSQL deployments.
|
||
|
|
license: MIT
|
||
|
|
metadata:
|
||
|
|
author: devops-skills
|
||
|
|
version: "1.0"
|
||
|
|
---
|
||
|
|
|
||
|
|
# PostgreSQL
|
||
|
|
|
||
|
|
Administer and optimize PostgreSQL databases.
|
||
|
|
|
||
|
|
## Installation & Setup
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Install
|
||
|
|
apt install postgresql postgresql-contrib
|
||
|
|
|
||
|
|
# Access
|
||
|
|
sudo -u postgres psql
|
||
|
|
|
||
|
|
# Create database and user
|
||
|
|
CREATE USER myapp WITH PASSWORD 'secret';
|
||
|
|
CREATE DATABASE mydb OWNER myapp;
|
||
|
|
GRANT ALL PRIVILEGES ON DATABASE mydb TO myapp;
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# /etc/postgresql/15/main/postgresql.conf
|
||
|
|
max_connections = 200
|
||
|
|
shared_buffers = 256MB
|
||
|
|
effective_cache_size = 768MB
|
||
|
|
work_mem = 4MB
|
||
|
|
maintenance_work_mem = 64MB
|
||
|
|
```
|
||
|
|
|
||
|
|
## Backup & Restore
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Backup
|
||
|
|
pg_dump mydb > backup.sql
|
||
|
|
pg_dump -Fc mydb > backup.dump # Custom format
|
||
|
|
|
||
|
|
# Restore
|
||
|
|
psql mydb < backup.sql
|
||
|
|
pg_restore -d mydb backup.dump
|
||
|
|
```
|
||
|
|
|
||
|
|
## Replication
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Primary
|
||
|
|
ALTER SYSTEM SET wal_level = replica;
|
||
|
|
CREATE USER replicator REPLICATION LOGIN PASSWORD 'secret';
|
||
|
|
|
||
|
|
# Replica
|
||
|
|
pg_basebackup -h primary -U replicator -D /var/lib/postgresql/15/main -P
|
||
|
|
```
|
||
|
|
|
||
|
|
## Best Practices
|
||
|
|
|
||
|
|
- Regular VACUUM and ANALYZE
|
||
|
|
- Monitor slow queries
|
||
|
|
- Implement connection pooling (PgBouncer)
|
||
|
|
- Regular backups with pg_dump or pg_basebackup
|