1. 📖 概述 数据备份是数据库运维的核心任务。 2. 💾 逻辑备份 2.1 pg_dump # 全库备份 pg_dump -U postgres -d mydb -F c -f mydb_backup.dump # SQL格式 pg_dump -U postgres -d mydb -f mydb_backup.sql # 仅备份schema pg_dump -U postgres -d mydb
1. 📖 概述 主从复制实现数据冗余和读写分离,提高可用性。 2. 🔄 流复制 2.1 主库配置 -- postgresql.conf wal_level = replica max_wal_senders = 10 -- pg_hba.conf host replication replicator 10.0.1.0/24 md5 -- 创建复制用户 CREATE USER replicator WITH REPLICATION PASSWORD 'password'; 2.2 从库配置
1. 📖 概述 监控和日志是保障数据库稳定运行的关键。 2. 📊 性能监控 2.1 系统视图 -- 活动连接 SELECT * FROM pg_stat_activity; -- 数据库统计 SELECT * FROM pg_stat_database; -- 表统计 SELECT * FROM pg_stat_user_tables; -- 索引使用 SELECT * FROM pg_stat_user_indexes;
1. 📖 概述 合理的权限管理是数据库安全的基础。 2. 👥 用户管理 2.1 创建用户 -- 普通用户 CREATE USER myapp WITH PASSWORD 'password'; -- 超级用户 CREATE USER admin WITH SUPERUSER PASSWORD 'admin_pass'; -- 带权限 CREATE USER developer WITH PASSWORD 'dev_pass' CREATEDB VALID UNTIL '2025-12-31'; 2.2
1. 📖 概述 数据迁移是常见的运维任务,包括MySQL到PostgreSQL的迁移。 2. 🔄 MySQL到PostgreSQL 2.1 使用pgloader # 安
1. 📖 概述 完整的电商系统数据库设计实战案例。 2. 🏗️ 数据库架构 2.1 核心表设计 -- 用户表 CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, phone VARCHAR(20), is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMPTZ DEFAULT
1. 📖 概述 完整的博客系统数据库设计,包含文章、评论、标签等功能。 2. 🏗️ 数据库设计 -- 用户表 CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, bio TEXT, avatar_url TEXT, created_at TIMESTAMPTZ DEFAULT NOW() );
1. 📖 概述 使用PostgreSQL构建实时数据分析系统,包括用户行为分析、实时报表等。 2. 📊 事件表设计 -- 用户行为事件表 CREATE TABLE events ( id BIGSERIAL PRIMARY KEY, event_type VARCHAR(50) NOT NULL, user_id
1. 📖 概述 本章介绍如何在Go语言中连接和操作PostgreSQL数据库,包括标准库database/sql、流行ORM库、连接池管理等。 2. 🚀 快
1. 概述 本章总结PostgreSQL生产环境部署和运维的最佳实践,涵盖安全、性能、备份、监控等关键领域。 2. 安全最佳实践 2.1 网络安全 # pg_hba.conf - 配置客户
1. 容器化的前世今生 1.1 传统部署时代的痛点 想象一下 2010 年以前的软件部署方式: 开发者本地写代码 → 打成 jar/war 包 → 运维在物理机上配置环境 → 手动部署 → 祈祷不出
1. 整体架构概览 K8s 集群分为两类节点: ┌────────────────────────────────────────────────────
1. Pod Pod 是 K8s 中最小的可部署单元。 1.1 Pod 是什么 Pod 不是容器,而是一个或多个容器的集合,这些容器共享: 网络命名空间:同一个 Pod 中的容器共享 IP 和 Port,
1. 工作负载概览 工作负载类型 ├── Deployment → 无状态应用(Web 服务、API 服务)★ 最常用 ├── StatefulSet → 有状态应用(数据库、消息队列) ├── DaemonSet → 每个节点都
1. K8s 网络基础模型 K8s 的网络模型有三个基本要求: 所有 Pod 之间可以不经 NAT 直接通信(跨节点也可以) 所有 Node 可以与所有 Pod 直接通信(不经 NAT) Pod 自己看到的
1. 存储概览 K8s 存储架构: 应用 (Pod) ↓ volumeMounts Volume(挂载点) ↓ PersistentVolumeClaim(存储申请) ↓ StorageClass(动
1. 为什么要分离配置 十二因素应用(12-Factor App)的第三条:在环境中存储配置。 # 不好的做法:配置写死在代码或镜像里 const dbDSN = "mysql://user:password@prod-db:3306/myapp" # 好的做法
1. K8s 安全概览 K8s 的安全模型分为四层(4C 安全模型): Cloud(云/数据中心) └── Cluster(K8s 集群) └── Container(容器
1. Helm 是什么 Helm 是 K8s 的包管理器,类比: Linux 的 apt/yum Node.js 的 npm Go 的 go mod 解决的问题: 没有 Helm 时,部署一个有多个组件的应用(Deployment + Service + Ingress + ConfigMap + HPA +
1. 项目概述 1.1 项目:Go Todo API 服务 一个简单的 RESTful API 服务,包含: HTTP API(Todo CRUD) MySQL 数据库 Redis 缓存 Prometheus 监控指标 结构化日志 优雅关闭 1.2 技术栈 语言: