Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • Developer Tools
    • コマンドライン
    • Heroku VS Code Extension
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Working with Node.js
      • Node.js Behavior in Heroku
      • Troubleshooting Node.js Apps
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Python でのバックグランドジョブ
      • Python Behavior in Heroku
      • Django の使用
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Maven の使用
      • Spring Boot の使用
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Migrating to Heroku Postgres
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Working with AI
    • Heroku Inference
      • Inference API
      • Quick Start Guides
      • AI Models
      • Inference Essentials
    • Vector Database
    • Model Context Protocol
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • データベースとデータ管理
  • Heroku Postgres
  • Postgres のデータ転送と保持
  • Heroku Postgres ロールバック

Heroku Postgres ロールバック

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2024年05月07日(火)

Table of Contents

  • ロールバックデータベースの作成
  • プロビジョニング解除
  • ロールバックステータス
  • 一般的なユースケース: 重大なデータ損失の後のリカバリ

Heroku Postgres ロールバックでは、データベースの状態を以前の時点に “ロールバック” します。

ロールバックは、プライマリデータベースには影響を与えません。これは、フォーク​と同じパターンに従います。ロールバックでは、どのような方法でもプライマリに直接接続されていない新しいデータベースをプロビジョニングします。フォークと同様に、ロールバックも、使用可能になるまでにしばらく時間がかかります。ロールバックが使用可能になると、プライマリにプロモートできます。ロールバックがプライマリになると、以前のアドオンを削除できます。

ロールバック期間は、データベースプラン​によって異なります。

データベースの資格情報がプライマリでリセットされている場合は、ロールバックが、資格情報のリセットより前の時点までさかのぼって引き続きサポートされます。ロールバックプロセス中にフォークが作成されると、新しい一連の資格情報が作成されます。

ロールバックデータベースの作成

ロールバックする前に、目的のロールバックポイントがデータベースで使用可能なことを確認します。データベースプランごとに、ロールバックの可用性が異なります。現在のデータベースのロールバックの可用性を確認するには、heroku pg:info​ コマンドを使用します。

$ heroku pg:info --app example-app
=== HEROKU_POSTGRESQL_YELLOW_URL (DATABASE_URL)
Plan:        Standard 0
Status:      Available
Data Size:   584.6 MB
Tables:      29
PG Version:  9.2.4
Connections: 8
Fork/Follow: Available
Rollback:    from 2013-10-18 20:00 UTC
Created:     2013-04-18 20:14 UTC
Maintenance: not required

ロールバックがフォーキング後の新しいフォークで、またフォロー解除後のフォロワーで使用可能になる前に遅延が発生します。

ロールバックデータベースの作成では、フォロワー​の作成と同じメカニズムが使用されます。プロビジョニングは、--rollback​ フラグを使用した新しいデータベースアドオンの作成時に実行されます。--rollback​フラグは、同じアプリ上のデータベースの環境設定名、フォーム appname::HEROKU_POSTGRESQL_COLOR​ の引数、または任意の Heroku Postgres データベースのフル URL を受け取ることができます。

さらに、ロールバック先の時刻を指定する必要があります。目的の時間を示す方法には、次の 2 つがあります。

  • 明示的なタイムスタンプ​ - 明示的なタイムスタンプを指定できます。2013-10-22 12:34+00:00​という形式を使用します。タイムゾーンのオフセットを含める必要があります。また、シンボリックタイムゾーン 2013-10-22 12:34 US/Pacific​ を使用することもできます。

  • 間隔​ - 間隔を指定できます。3 days 7 hours 22 minutes​という形式を使用します。リカバリ時間は --to​ フラグを使用して、またリカバリ間隔は --by​ を使用して渡す必要があります。両方ではなく、少なくとも 1 つが存在する必要があります。ロールバックは、秒単位まで正確ではありません。リカバリ時間または間隔で指定された秒数は無視されます。

次の例は、完全なロールバックを示しています。

$ heroku addons:create heroku-postgresql:standard-0 --rollback HEROKU_POSTGRESQL_YELLOW --to '2013-10-21 15:52+00' --app example-app

このコマンドは、ターゲットのリカバリ時間 (と経過時間) をコマンドラインにエコーします。

ロールバックの準備には、データセットのサイズに応じて、数分から数時間かかることがあります。heroku pg:wait​コマンドは、すべての新しいデータベースのプロビジョニングステータスを表示するため、ロールバックがいつ最新になるかを判定するために使用できます。

$ heroku pg:wait --app example-app
Waiting for database HEROKU_POSTGRESQL_SILVER_URL... available

プロビジョニング解除

ロールバックが完了したら、heroku addons:destroy​ を使用してそれをプロビジョニング解除します。

$ heroku addons:destroy HEROKU_POSTGRESQL_YELLOW --app example-app
    !    WARNING: Destructive Action
    !    This command will affect the app: example-app
    !    To proceed, type "example-app" or re-run this command with --confirm example-app

ロールバックステータス

heroku pg:info​ を実行すると、データベースのロールバックのステータスを確認できます。Rollback​ フィールドには 3 つのステータスがあります。

  • Rollback: from YYYY-MM-DD HH:SS UTC​: データベースはロールバックをサポートしており、使用可能なバックアップがあります。最も古いロールバックポイントのタイムスタンプが表示されます。
  • Rollback: Capturing Snapshot​: データベースはロールバックをサポートしており、最初のバックアップが進行中です。
  • Unsupported​: データベースはロールバックをサポートしていません。

一般的なユースケース: 重大なデータ損失の後のリカバリ

ロールバックは、重要なテーブルを誤って削除するなど、重大なデータ損失の問題のための優れた安全策です。ロールバックを使用して失ったデータを復旧するには、次のようにします。

  1. ロールバックを作成します。

    $ heroku addons:create heroku-postgresql:standard-0 --rollback HEROKU_POSTGRESQL_YELLOW --to '2013-10-21 15:52+00' --app example-app
    Creating heroku-postgresql:standard-0 on ⬢ example-app... $50/month
    Database will become available after it completes rolling back
    to 2013-10-21 15:52+0000.
    Use `heroku pg:wait` to track status.
    postgresql-adjacent-88888 is being created in the background. The app will restart when complete...
    Use heroku addons:info postgresql-adjacent-88888 to check creation progress
    Use heroku addons:docs heroku-postgresql to view documentation
    
  2. ロールバックデータベースがプロビジョニングされていることを確認します。

    $ heroku pg:wait --app example-app
    Waiting for database HEROKU_POSTGRESQL_SILVER... available
    
  3. ロールバックをプライマリデータベースとしてプロモート​します。

    $ heroku pg:promote HEROKU_POSTGRESQL_SILVER --app example-app
    
  4. 新しいリーダーのすべてのフォロワー​を再作成します (該当する場合)。

    $ heroku addons:create heroku-postgresql:standard-0 --follow HEROKU_POSTGRESQL_SILVER --app example-app
    Creating heroku-postgresql:standard-0 on ⬢ example-app... $50/month
    The database should be available in 3-5 minutes.
    Use `heroku pg:wait` to track status.
    postgresql-rigid-99330 is being created in the background. The app will restart when complete...
    Use heroku addons:info postgresql-rigid-99330 to check creation progress
    Use heroku addons:docs heroku-postgresql to view documentation
    

関連カテゴリー

  • Postgres のデータ転送と保持
MySQL から Heroku 上の Postgres への移行 Heroku Postgres データベースのインポートとエクスポート

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices