postgresqlのパッケージに含まれているプログラムの1つ データベースの情報をファイルに出力する事ができる。
例 hogeがオーナーの foo データベースから bar テーブルをダンプする。
pg_dump -U hoge -t bar foo > example.dump
引数として -d ( copyコマンドではなくINSERT文でデータを挿入する)を使うとバージョン間の互換性が良くなる。
こんにちは、技術推進部の佐藤です。 4 月ということもあり、社会人デビューをされた方たちを目にする機会が増えました。 「自分が若かった頃はこんなにしっかりしていたかな」などと懐かしんでいたら、ふと以前在籍していた会社で血の気が引くような失敗をしたことを思い出しました。 今回はそのお話をいたします。 ただ、その失敗から得た対策のおかげで、今まで 10 年以上もの間に一度も同じような失敗を起こしていません。 これからデータベースを触る方、今まで触っていても失敗したことがない方はご参考になれば幸いです。 何が起こったのか 背景 事件 どう対処したか 初動 その後 収束 学びとその後の対策 防止する仕…
こんにちは、Enterprise Cloud部 ソリューションアーキテクト1課 宮形 です。今年に入ってガバメントクラウドのブログを書くようになりまして、どの記事も前向きでポジティブな内容を心がけておりましたが、今回は一転して後ろ向きなタイトルになります。 本BLOGではガバメントクラウドにおいてAWSに各システムをリフト&シフトした後に、AWSから抜け出す方法 について検討した内容を記載させていただきます。 このBLOGを書こうと思い立った理由 AWSから抜け出す方法を各サービス毎に検討する 仮想サーバー EC2 データベースのマネージドサービス RDS、Aurora コンテナの実行環境 E…
カラム名で検索したい時は以下のようにする select table_name, column_name from information_schema.columns where column_name ='カラム名'; 登録したデータがどこに入っているのか分からない時は以下のようにする pg_dump --data-only --inserts -U postgres DB名 > a.txt a.txtをvi等で開いて、探したいデータを検索する
今回は皆さんが大好きな便利ツール「pg2arrow」のお話です。PostgreSQLでポータブルな列指向データ形式 Apache Arrow を読み出すには、Arrow_Fdwを利用する事ができます。 PG-StromではGPU-Direct SQLにも対応していますし、列指向データという事もあって、被参照列しかI/Oが発生しない、同じ列のデータが近傍に固まっているという大量データ処理に適した特性を持ってもいます。また、Apache Arrow形式のファイルを作成するにはPyArrowやPandasなど様々なツールがありますが、我々DB屋としてはPostgreSQLに格納されたトランザクショナ…
Cloud SQLのDBからデータのバックアップをスキーマごとローカルに持ってきたい 手順が以下にあったのでメモ cloud.google.com まず、Cloud SQLからデータをバックアップする $ pg_dump --dbname="my_context" --schema='"my_context"' --file="/uggds/my-project/{data_source}-{timestamp}-dump.dmp" --format=c --no-owner --no-acl リストアする $ pg_restore --dbname=local_my_context "/ug…
デフォルトのバックアップコマンド pg_dump ・デフォルトのスクリプト形式を選択するとpsqlコマンドでリストアできる。 $ pg_dump database名 > backup_file名リストアコマンド psql $ psql database名 < backup_file名アーカイブ形式のリストアコマンド pg_dump アーカイブ形式の場合はpg_dumpに-Fオプションをつける $ pg_dump -Fc database名 > backup_file名・-cはcustom形式を表す。-tとするとtar形式になる リストアコマンド pg_restore $ pg_restore …
SREの林 aka もりはやです。 先日オンプレで稼働していたとあるPostgreSQLのDBを、Amazon Aurora PostgreSQL(以後はAurora)に移行を行ったところ CREATE INDEX が以下のエラーで作成できない問題に苦労させられたため、解決策と合わせて公開します。 これがベストな対応かは自信がないため、より良い方法をご存知の方はお気軽に教えてください。 以下はDBのリストア中に CREATE INDEX で発生したエラーです。 pg_restore: error: could not execute query: ERROR: could not write …
こんにちは! Tech KAYAC Advent Calendar 2023 11日目を担当する荒賀(@ken39arg)です。 在籍期間15年と弊社の中でかなり古参になってしまった私ですが、アドベントカレンダーを年に2本書くのは初めてです。1 今回の内容は、今年7月に無事に成功したお仕事の話で、完了したらブログに書くように言われていたものです。 が、どうしても筆が進まず、のらりくらりと逃げていたのですが、良い年越しをするためにいい加減書いておくか〜という内容です。 TL;DR Rails + PostgreSQL + Apartment という構成のサービスで下記の1行の設定変更コミットを取…
引っ越しました。 環境 Pleroma v2.6.0 元サーバ ConoHa VPS 512MBプラン Ubuntu 20.04 先サーバ さくらインターネット VPS 1GBプラン Ubuntu 22.04 作業内容 VPS作成とOSインストール さくらインターネットのVPSでOS (Ubuntu 22.04)をインストール、公開鍵を登録 ログイン ローカルからログイン ssh ubuntu@NEW_SERVER_IP 更新・ユーザ追加 新サーバ 更新 sudo apt update sudo apt upgrade ユーザ追加 sudo adduser nixeneko sudo gpas…
この記事はGMOペパボエンジニア Advent Calendar 2023の10日目になります🎄 最近PaaSであるHerokuにあるサービスをAWS(Amazon EKS on Fargate)で動かそうとしています。まだ検証段階ではあるものの、動作するところまではこぎつけました。HerokuとAWSを以下の組み合わせで移設しようとしています。 Heroku Dynos → Amazon EKS Heroku Postgres(Add-on) → Amazon Aurora PostgreSQL Redis Cloud(Add-on) → Amazon ElastiCache for Red…
タイトルで言いたいことだいたい言っちゃったんですが、 readerエンドポイントでpg_dump を実行していたら、大きめのテーブルをdumpしている時に接続がちょこちょこ途切れる現象が発生していました。 それで、DBのログを見てみたら以下のエラーがありました FATAL: terminating connection due to conflict with recovery DETAIL: User was holding a relation lock for too long. これは、以下のサイトに詳しいのですが www.fujitsu.com 「writer側の更新によるWAL(ト…
問題 PleromaのサーバーをUbuntu 20.04からUbuntu 22.04へと移行しようと思ったが、PostgreSQLのデータベースのバックアップからリストアするところで止まってしまって、うまく行かなかった。 環境 Pleromaのバージョン: v2.6.0 元サーバ Ubuntu 20.04.6 LTS PostgreSQLのバージョン: 12.16 (Ubuntu 12.16-0ubuntu0.20.04.1) 移行先サーバ Ubuntu 22.04.3 LTS PostgreSQLのバージョン: 14.9 (Ubuntu 14.9-0ubuntu0.22.04.1) 試行1:…
こんにちは。プロダクト開発部の新田です。 AGRI SMILEで、複数プロダクトをフロントエンド・バックエンドに亘って開発する業務をしています。 AGRI SMILEでのHerokuのユースケース AGRI SMILEでは、オンラインで学術集会を開催できるプラットフォーム、ONLINE CONFを提供しています。 このシステムはHerokuを利用してホスティングされています。 なぜAWSやGCP等のクラウドインフラでなくPaaSであるHerokuを利用しているかというと、WEBアプリケーションエンジニアであっても容易にインフラをコントロールできるのが一つの理由ですが、なにより学術集会の性質との…
今日も北海道のニセコにいますが、これから帰ります。電車+飛行機の長旅ですね。 IT用語に「ダンプ(dump)」というのがあります。dumpという英単語そのものは「中身を放出する、ゴミを捨てる」という意味だそうですが、IT系に限ると以下のような意味になります。 ダンプとは、デバッグやデータ修復のために、ファイルやメモリの内容をディスクに出力することである。 ダンプされたファイルにはダンプ作成時のメモリ上のデータが丸ごと書き出される。プログラムの開発などを行う場面では、データをダンプしてデバッガに読み込ませると、プログラムの問題点を発見できることがある。特にUNIX系OSにおける、メモリを強制的に…
pg_dumpで作成されたダンプは、内部的に整合性があります。 つまり、ダンプはpg_dumpが開始された際のデータベースのスナップショットを示しています。https://www.postgresql.jp/document/15/html/backup-dump.html pg_dumpで作成されたダンプは、内部的に整合性があります。つまり、pg_dumpが行われている際のデータベース更新はダンプに含まれません。pg_dumpの操作はデータベースに対する他の作業を妨げません(VACUUM FULL などの、排他的なロックが必要な作業は例外です)。https://www.postgresql.…