PostgreSQLのパッケージに含まれているクライアントプログラムの1つ。 データベースにアクセスして、コマンド操作を行える。 また、-f オプションでファイルに記述したSQL コマンドを垂れ流すことができる。
例
psql database_name psql -d database_name psql -U user_name psql -f sql_command_file
概要 PostgreSQLでプログラム上から単発のSQLを実行したい場合に、ファイルを経由せずに1回限りのパスワードを与える方法の話です。 最初に結論まとめ コマンドプロンプトの/cのセッション内で環境変数を設定し、そのままコマンドも実行します。例えば次のようになります。 cmd /c "set PGPASSWORD=user1password&&psql.exe --username=user1 --dbname=postgres --command="CREATE DATABASE database1'"" 話の背景 PostgreSQLでpsql.exeを使って、--commandオプシ…
はじめに 万一の障害や操作ミスなどに備えてデータベースのバックアップは必要不可欠です。 さまざまなバックアップ管理ツールがありますが、今回は WAL-G というツールでデータをバックアップとリストアする方法を紹介します。 WAL-Gとは WAL-G(公式ドキュメント)は PostgreSQL のバックアップ・リストアツールである WAL-E の後継として開発されたツールです。 WAL-E の機能を継承しているため、 WAL-E と同様にベースバックアップと WAL アーカイブを使用して、特定の時点または最新の状態にデータを復元することができます。 WAL-E と比べて復旧時の復元速度が 4 倍…
結論 環境変数に各種設定項目を設定して実行します。この環境変数は psql コマンドと共通です。 direnv で設定するとたとえば接続先ごとに柔軟な変更ができます。 例 $ export PGSSLMODE="verify-ca" $ export PGSSLROOTCERT="server-ca.pem" $ export PGSSLCERT="client-cert.pem" $ export PGSSLKEY="client-key.pem" $ pgcli -h localhost -p 5432 -U username -d postgres 参考 参考の参考 psql では環境変…
大規模なシステムでは、パフォーマンスやセキュリティ上の制約により、複数のデータベースをシャーディング(水平分割)するアーキテクチャを選択するケースは多いかと思います。 多くのPostgreSQLユーザーはpsqlコマンドを使って調査や保守を行いますが、シャーディングにより沢山のデータベースを管理するようになると、データベースの接続先を入力するのはとても面倒な作業となります。 エンジニアたるもの、「面倒だ」と思う心は大切にすべきです。 今回はシャーディングされたデータベースをpsqlで管理するための工夫をご紹介します。 寺岡 佑起(テラオカ ユウキ)AWS Summit 2022で発表してきまし…
psqlコマンドを実行する際にパスワード入力を省略するためのメモになります。
psqlコマンドを利用し、外部データベースにアクセスできるまでのメモになります。
結論 -P pager=off オプションを付与します。 例 例えば、以下のようにコマンドを実行すればページャが発動しません。 $ psql -P pager=off -U foo-p 5432 -d my_database -h localhost -c "SELECT relname, n_live_tup FROM pg_stat_user_tables WHERE schemaname='public';" 使いどころ psql の結果をログとして自動取得する際などに有効かと思います。 例えば、上記のコマンド例での SQL文 は、全テーブルのレコード数一覧を表示するものになりますが、こ…
GUIアプリケーションであれば横スクロールという方法があるので長くてもなんとかなります。ただ、psqlやpgcliを使っている以上は横スクロールなんていうことはできません。 発想の転換をします。すべて縦に表示してしまったら別に問題がないのではないでしょうか?探すと実行する前に-xオプション(expanded output)を実行すると縦にデータが表示できるのがわかりました。 実際に見てみましょう。 GUIアプリケーションをつかったらいいのでは? GUIアプリケーションを使うのもいいのですが、総じてそういったアプリというのは重いもので立ち上がるまでの待ち時間と色々ポチポチするだけ時間がもったいな…
WindowsのPCでRailsの開発ができるように 手順 インストール インストールを確認 PostgreSQLのスイッチを入れます 開発環境用のユーザーを作成(ここからは必要な方のみ) 開発環境ユーザー名とUbuntuユーザー名を同じに設定 railsのGemをインストール WindowsのPCでRailsの開発ができるように www.michidemy.com www.michidemy.com www.michidemy.com www.michidemy.com 手順 Railsを利用する場合は、データベースをインストールします。 のちにherokuというサービスでの公開を考えている…
データベースの勉強をするときに書いたクエリを実際に試すことはとても重要ですよね。しかし、私はこれまで書いたクエリを試すための環境構築が面倒で下のサイトを利用して SQL を実行していました。 www.db-fiddle.comこのサイトはとても便利なのですが、毎回 CREATE TABLE から始めなければならなくてこれはこれで面倒なのと、やはりローカルに入れて勉強した方が深いところまで学ぶことができるのではないかと感じたので試してみることにしました。 動作環境 Docker image の取得 docker-compose.yaml の作成 構築した環境を使う 動作環境 動作確認は WSL …
こんにちは🐱 カスタマーサクセス部の山本です。 以前からある機能なものの、Aurora のアクティビティストリームについて初めて調べたので記事にします。 アクティビティストリームはデータベース操作の監査を行う機能です。 監査ログ機能は他にもあるので、使い分けについて主に調べて記述します。 2019 年の 5 月に Aurora Postgres 向けに出来た機能です。 Amazon Aurora (PostgreSQL 互換) でのデータベースアクティビティストリームのサポートによりリアルタイムのモニタリングが可能に 2020 年の 6 月に、Aurora MySQL にも対応しています。 デ…
PostgreSQLをターミナル上で動かす際にpsqlというものがあります。 このpsqlが使えなかったケースがあり、結論としてはPATHが通っていなかったという状態でした。 Mac Ventura 13.6とHomebrewは4.2.17 の環境で確認しました。 また、以下の参考記事と内容はほぼ同一です。プラスアルファでインストール先が分からなかったので調べた、という差分です。 ※結果としては記事と同じ場所に配置されていました。 【Mac/PostgreSQL】psqlコマンドが使えないときの対処法 状態の確認 まずは、インストール済みのPostgreSQLのバージョンを確認します。 tat…
前回の記事では、VPCを作成したりEC2インスタンスを立ち上げたり、Cloudflareでドメインを管理したり……などといった事前準備を行った。今回は、Web+appサーバーとDBサーバーのそれぞれでMisskeyを立ち上げるまでの作業を一気に紹介しようと思う。 全体の事前準備(クラウドネットワーク構築など)→前回の記事はこちら Web+appサーバーとして使用するEC2インスタンスでの作業※ DBサーバーとして使用するEC2インスタンスでの作業※ Misskeyのビルド+デプロイ+デーモン作成※ 定期バックアップ実行などの後処理 ※:今回の記事にする部分 以下「Web+appサーバーとして使…
install postgres 14.1 from source to cent 7.9 - end0tknr's kipple - web写経開発 上記entryまでは、virtual box上のcentosにinstallしていましたが、 今回は、wsl(Windows Subsystem for Linux)上の Oracle Linuxへ、インストール $ cat /etc/redhat-release Red Hat Enterprise Linux release 8.7 (Ootpa) $ cat /etc/os-release NAME="Oracle Linux Serve…
概要 OpenShift 4.14クラスタ環境に、VMware SQL with Postgres for Kubernetesを導入します。 参考資料 docs.vmware.com 前提 コンテナイメージの取得方法 インターネット上のリポジトリに直接アクセスするようにはしない。 OCP 内部イメージレジストリにイメージを push した上で、OCP 内部イメージレジストリからコンテナをデプロイする方法とする。 cert-manager インストール対象 OSS の cert-maneger ではなく cert-manager Operator for Red Hat OpenShift を…
はじめに クロスアカウントのRDSに接続する場合、簡単に接続を構築する手法としては下記の様なものがあります。 パブリック接続 VPCピアリング PrivateLinkとNLB RDSへのパブリック接続はセキュリティ上好ましくないため、VPCピアリング接続を検討するケースの方が多いと思いますが、通信を行いたいVPCのCIDR重複などネットワークの制約がある場合、ピアリング接続を作成することができません。 そのような場合に、次の接続方式として採用しやすいのが、RDS Proxyを使った接続です。 一方で、3つ目に挙げたPrivateLinkとNLBを使用した接続は、通信上のオーバヘッドが発生する上…
環境 $ cat /etc/system-release Amazon Linux release 2 (Karoo) $ uname -r 5.10.130-118.517.amzn2.x86_64 インストールする sudo yum -y install unixODBC curl -L -O https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86_64.rpm sudo yum -y --nogpgcheck localin…
Ⅰ. はじめに タイトルの通り「UbuntuにPostgreSQLをインストールする方法」です Ⅱ. 環境 Ubuntu 20.04 Ⅲ. 手順 1. pgdg.list を作成する sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 2. 公開鍵を登録する wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | …
データ集計など時間がかかわるデータの検索に時系列DBは必須。 使い方や関数は早めにキャッチアップが必要だと実感。 時系列DBとは 時間情報を持ったデータを格納し、最適化されたデータベース。 TimescaleDBはその中の1つであり、今回TimescaleDBをお試ししてみる。 詳細は参考の資料を参照。 https://www.sraoss.co.jp/wp-content/uploads/files/event_seminar/material/2021/timescaledb-intro-20210624.pdf コンテナの起動 本体をインストールしたくないので、コンテナで起動する。 パス…
時系列DBのことを知りたくて、TimescaleDBのコンテナを使ってサクッとセットアップ。 時系列DBとは 時間情報を持ったデータを格納し、最適化したデータベース。 TimescaleDBはその中の1つ。詳細は参考の資料を参照。 https://www.sraoss.co.jp/wp-content/uploads/files/event_seminar/material/2021/timescaledb-intro-20210624.pdf セットアップ インストール 本体をインストールしたくないので、コンテナで起動する。 パスワードを設定したい場合、POSTGRES_PASSWORD環境…
デフォルトのバックアップコマンド 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 もりはやです。 先日行った、GitLab-CE(以後は単にGitLabと表記)のバージョンアップ作業が意外と大変だったため、同じような境遇のどなたかに向けて気づいた点を共有します。 シーケンス図的なもので表すとGitLabのアップグレードのために以下を行いました。 前提 TL;DR 詳細 GitLabはEC2のみにインストールされたシンプルな構成 GitLabのアップグレードによって更新された構成 GitLabのアップグレードは段階的に行う必要があるため専用サイトで確認 Amazon Linux 2023はGitLab16系からしか対応しないため、中継のAmazon Lin…
録画の予定を確認 BSチャネルを2チャンネル起動していると画像が安定することを記述しました。 BSチャネルライブ視聴を開始したり停止したりするタイミングや、録画が停止したときにB-CASカードリーダをリセットしたりするタイミングを判定する必要があります。そのためには録画予定の情報を取り出す必要があります。 方法としては2個ありますね。 一つはFoltiaサーバーが運用しているpostgresqlを外部からSQLコマンドで情報を取り出す方法と、Foltiaのweb interfaceの録画予定情報のHTML情報から必要な情報を抜き出てデータ化する方法です。 前者は外部からpsqlアクセス出来る様…
これは、なにをしたくて書いたもの? Neonという、フルマネージドでサーバーレスなPostgreSQLというプロダクトがあります。 Neon — Serverless, Fault-Tolerant, Branchable Postgres これはマネージドサービスとしても使えるのですが、ローカルで動かすことができるようなので1度試してみようかなということで。 やってみた結果としては、ローカルで動かすことはもうやらないと思いますが(笑)。 Neon Neonは、フルマネージドでサーバーレスなPostgreSQL互換のプロダクトです。 Neon — Serverless, Fault-Toler…