db-backup
PostgreSQL、MySQL、MongoDB、Redisのデータベースに対し、バックアップスケジュール設定、障害復旧手順書作成、時点復旧、リージョン間レプリケーションなど、自動バックアップと復旧体制を構築するSkill。
📜 元の英語説明(参考)
Set up automated database backup, restore, and disaster recovery procedures for PostgreSQL, MySQL, MongoDB, and Redis. Use when you need to implement backup schedules, point-in-time recovery, cross-region replication, backup verification, or disaster recovery runbooks. Trigger words: database backup, pg_dump, mysqldump, mongodump, disaster recovery, point-in-time recovery, WAL archiving, backup rotation, restore database, RTO, RPO, backup verification.
🇯🇵 日本人クリエイター向け解説
PostgreSQL、MySQL、MongoDB、Redisのデータベースに対し、バックアップスケジュール設定、障害復旧手順書作成、時点復旧、リージョン間レプリケーションなど、自動バックアップと復旧体制を構築するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o db-backup.zip https://jpskill.com/download/14822.zip && unzip -o db-backup.zip && rm db-backup.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/14822.zip -OutFile "$d\db-backup.zip"; Expand-Archive "$d\db-backup.zip" -DestinationPath $d -Force; ri "$d\db-backup.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
db-backup.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
db-backupフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
データベースバックアップ
概要
このスキルは、包括的なデータベースバックアップと災害復旧戦略の実装を支援します。自動バックアップスケジューリング、ストレージ管理、バックアップ検証、特定時点へのリカバリ、PostgreSQL、MySQL、MongoDB、Redis のための災害復旧ランブックを網羅します。
手順
1. 要件の評価
以下に基づいてバックアップ戦略を決定します。
- RPO(Recovery Point Objective: 目標復旧時点): どの程度のデータ損失が許容されますか? (分 → WAL/binlog ストリーミング、時間 → 定期的なダンプ)
- RTO(Recovery Time Objective: 目標復旧時間): どのくらいの速さで復旧を完了させる必要がありますか? (分 → ホットスタンバイ、時間 → バックアップからのリストア)
- データベースサイズ: 小さい (<10GB) → フルダンプ、大きい (>100GB) → 増分/WAL アーカイブ
- コンプライアンス: 保存要件 (金融データの場合、30日、1年、7年)
2. バックアップ戦略の実装
PostgreSQL
# 完全論理バックアップ (小~中規模データベース)
pg_dump -Fc --no-owner --no-acl -h $DB_HOST -U $DB_USER $DB_NAME | \
gzip | aws s3 cp - s3://backups/pg/$(date +%Y%m%d_%H%M%S).dump.gz
# 特定時点へのリカバリのための WAL アーカイブ (大規模データベース)
# postgresql.conf:
# archive_mode = on
# archive_command = 'aws s3 cp %p s3://backups/pg-wal/%f'
# ベースバックアップ + PITR 用の WAL
pg_basebackup -D /backups/base -Ft -z -P -h $DB_HOST -U replication
MySQL
# 完全論理バックアップ
mysqldump --single-transaction --routines --triggers --all-databases \
-h $DB_HOST -u $DB_USER -p$DB_PASS | gzip > backup_$(date +%Y%m%d).sql.gz
# 特定時点へのリカバリのためのバイナリログ
mysqlbinlog --read-from-remote-server --host=$DB_HOST --raw binlog.000001
MongoDB
# PITR 用の oplog を含む完全バックアップ
mongodump --uri="$MONGO_URI" --oplog --gzip --archive | \
aws s3 cp - s3://backups/mongo/$(date +%Y%m%d_%H%M%S).archive.gz
3. バックアップローテーションポリシー
祖父-父-子ローテーションを実装します。
- 日次: 過去7日間を保持
- 週次: 過去4週の日曜日を保持
- 月次: 過去12ヶ月の月初を保持
- 年次: 無期限に保持 (またはコンプライアンスに従って)
4. バックアップ検証
すべてのバックアップ戦略には、自動検証を含める必要があります。
# 最新のバックアップをダウンロード
# 一時データベースにリストア
# 整合性チェックを実行 (行数、重要なテーブルのチェックサム)
# 本番環境のカウントと比較
# 差異が 0.1% を超える場合はアラート
# 一時データベースを破棄
5. 災害復旧ランブック
以下を網羅したステップバイステップのランブックを生成します。
- リストアするバックアップを特定する方法
- パラメータを含む正確なリストアコマンド
- リストアされたデータを検証する方法
- アプリケーションのトラフィックをリストアされたインスタンスにリダイレクトする方法
- 関係者へのコミュニケーションテンプレート
- インシデント後のレビューチェックリスト
例
例 1: S3 と検証を使用した PostgreSQL バックアップ
ユーザープロンプト:
本番データベース (250GB) の自動 PostgreSQL バックアップを設定してください。S3 に保存される毎日のフルバックアップ、特定時点へのリカバリのための WAL アーカイブ、およびバックアップがリストア可能であることを自動的に検証する必要があります。
エージェントの出力:
#!/bin/bash
# scripts/backup-postgres.sh
set -euo pipefail
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
S3_BUCKET="s3://myapp-backups/postgres"
DB_HOST="${DB_HOST:?required}"
DB_NAME="${DB_NAME:?required}"
echo "[$(date)] Starting backup of ${DB_NAME}..."
# Create base backup with checksums
pg_basebackup \
-h "$DB_HOST" -U replication \
-D /tmp/backup_${TIMESTAMP} \
-Ft -z -P --checkpoint=fast --wal-method=stream
# Upload to S3
aws s3 cp /tmp/backup_${TIMESTAMP}/base.tar.gz \
"${S3_BUCKET}/base/${TIMESTAMP}/base.tar.gz" \
--storage-class STANDARD_IA
# Upload WAL files
aws s3 sync /tmp/backup_${TIMESTAMP}/pg_wal/ \
"${S3_BUCKET}/base/${TIMESTAMP}/pg_wal/"
# Cleanup local
rm -rf /tmp/backup_${TIMESTAMP}
# Record backup metadata
echo "{\"timestamp\":\"${TIMESTAMP}\",\"type\":\"full\",\"size\":\"$(aws s3 ls ${S3_BUCKET}/base/${TIMESTAMP}/ --summarize | tail -1)\"}" >> /var/log/backup-history.jsonl
echo "[$(date)] Backup complete: ${TIMESTAMP}"
例 2: 災害復旧ランブック
ユーザープロンプト:
PostgreSQL データベースの災害復旧ランブックを作成してください。フルリストア、特定のタイムスタンプへの特定時点へのリカバリ、および読み取り専用レプリカへのフェイルオーバーの手順を含めてください。
エージェントは、 正確なコマンド、ステップごとの推定時間、検証クエリ、およびインシデント中にチームに通知するためのコミュニケーションテンプレートを含む詳細なランブックを生成します。
ガイドライン
- 常に保存時にバックアップを暗号化します (S3 SSE-KMS、またはアップロード前に gpg)。
- 毎月リストアをテストします — テストされていないバックアップはバックアップではありません。
- 本番環境とは異なるリージョンにバックアップを保存します。
- 最小限の権限でバックアップ操作に個別の IAM 認証情報を使用します。
- バックアップジョブの完了を監視します — バックアップが失敗した場合はすぐに警告します。
- 復元プロセスを文書化して、チームメンバーがプレッシャーの下で実行できるようにします。
- 500GB を超えるデータベースの場合は、増分バックアップ (pgBackRest、Percona XtraBackup) を優先します。
- バックアップ認証情報をシークレットマネージャーに保持し、スクリプトには決して記述しないでください。
- リストア訓練を実行して実際の RTO を計算します — 推定 RTO は通常楽観的です。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Database Backup
Overview
This skill helps you implement comprehensive database backup and disaster recovery strategies. It covers automated backup scheduling, storage management, backup verification, point-in-time recovery, and disaster recovery runbooks for PostgreSQL, MySQL, MongoDB, and Redis.
Instructions
1. Assess Requirements
Determine the backup strategy based on:
- RPO (Recovery Point Objective): How much data loss is acceptable? (minutes → WAL/binlog streaming, hours → periodic dumps)
- RTO (Recovery Time Objective): How fast must recovery complete? (minutes → hot standby, hours → restore from backup)
- Database size: Small (<10GB) → full dumps; Large (>100GB) → incremental/WAL archiving
- Compliance: Retention requirements (30 days, 1 year, 7 years for financial data)
2. Implement Backup Strategy
PostgreSQL
# Full logical backup (small-medium databases)
pg_dump -Fc --no-owner --no-acl -h $DB_HOST -U $DB_USER $DB_NAME | \
gzip | aws s3 cp - s3://backups/pg/$(date +%Y%m%d_%H%M%S).dump.gz
# WAL archiving for point-in-time recovery (large databases)
# postgresql.conf:
# archive_mode = on
# archive_command = 'aws s3 cp %p s3://backups/pg-wal/%f'
# Base backup + WAL for PITR
pg_basebackup -D /backups/base -Ft -z -P -h $DB_HOST -U replication
MySQL
# Full logical backup
mysqldump --single-transaction --routines --triggers --all-databases \
-h $DB_HOST -u $DB_USER -p$DB_PASS | gzip > backup_$(date +%Y%m%d).sql.gz
# Binary log for point-in-time recovery
mysqlbinlog --read-from-remote-server --host=$DB_HOST --raw binlog.000001
MongoDB
# Full backup with oplog for PITR
mongodump --uri="$MONGO_URI" --oplog --gzip --archive | \
aws s3 cp - s3://backups/mongo/$(date +%Y%m%d_%H%M%S).archive.gz
3. Backup Rotation Policy
Implement grandfather-father-son rotation:
- Daily: Keep last 7 days
- Weekly: Keep last 4 Sundays
- Monthly: Keep last 12 first-of-months
- Yearly: Keep indefinitely (or per compliance)
4. Backup Verification
Every backup strategy must include automated verification:
# Download latest backup
# Restore to temporary database
# Run integrity checks (row counts, checksum of critical tables)
# Compare against production counts
# Alert if variance > 0.1%
# Tear down temporary database
5. Disaster Recovery Runbook
Generate a step-by-step runbook covering:
- How to identify which backup to restore
- Exact restore commands with parameters
- How to verify the restored data
- How to redirect application traffic to the restored instance
- Communication template for stakeholders
- Post-incident review checklist
Examples
Example 1: PostgreSQL backup with S3 and verification
User prompt:
Set up automated PostgreSQL backups for my production database (250GB). I need daily full backups stored in S3, WAL archiving for point-in-time recovery, and automated verification that backups are restorable.
Agent output:
#!/bin/bash
# scripts/backup-postgres.sh
set -euo pipefail
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
S3_BUCKET="s3://myapp-backups/postgres"
DB_HOST="${DB_HOST:?required}"
DB_NAME="${DB_NAME:?required}"
echo "[$(date)] Starting backup of ${DB_NAME}..."
# Create base backup with checksums
pg_basebackup \
-h "$DB_HOST" -U replication \
-D /tmp/backup_${TIMESTAMP} \
-Ft -z -P --checkpoint=fast --wal-method=stream
# Upload to S3
aws s3 cp /tmp/backup_${TIMESTAMP}/base.tar.gz \
"${S3_BUCKET}/base/${TIMESTAMP}/base.tar.gz" \
--storage-class STANDARD_IA
# Upload WAL files
aws s3 sync /tmp/backup_${TIMESTAMP}/pg_wal/ \
"${S3_BUCKET}/base/${TIMESTAMP}/pg_wal/"
# Cleanup local
rm -rf /tmp/backup_${TIMESTAMP}
# Record backup metadata
echo "{\"timestamp\":\"${TIMESTAMP}\",\"type\":\"full\",\"size\":\"$(aws s3 ls ${S3_BUCKET}/base/${TIMESTAMP}/ --summarize | tail -1)\"}" >> /var/log/backup-history.jsonl
echo "[$(date)] Backup complete: ${TIMESTAMP}"
Example 2: Disaster recovery runbook
User prompt:
Create a disaster recovery runbook for our PostgreSQL database. Include steps for full restore, point-in-time recovery to a specific timestamp, and failover to a read replica.
Agent produces a detailed runbook with exact commands, estimated time per step, verification queries, and a communication template for notifying the team during an incident.
Guidelines
- Always encrypt backups at rest (S3 SSE-KMS, or gpg before upload)
- Test restores monthly — an untested backup is not a backup
- Store backups in a different region than production
- Use separate IAM credentials for backup operations with minimal permissions
- Monitor backup job completion — alert immediately if a backup fails
- Document the restore process so any team member can execute it under pressure
- For databases over 500GB, prefer incremental backups (pgBackRest, Percona XtraBackup)
- Keep backup credentials in a secrets manager, never in scripts
- Calculate actual RTO by running restore drills — estimated RTO is usually optimistic