タグ付けされた質問 「postgresql」

PostgreSQLのすべてのバージョン。そのコンテキストが重要な場合は、postgresql-11などのバージョン固有のタグを追加します。

1
接続数の制限は何ですか?
https://devcenter.heroku.com/articles/heroku-postgres-legacy-plans接続制限が500であります あたりとしてhttps://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server「一般的に、良いハードウェア上のPostgreSQLは数百の接続をサポートすることができます」 この制限の決定要因は何ですか?#CPUコア?羊?OS?

1
bashのreverse-search-historyに相当するpsqlはありますか?
bashの逆検索履歴(Cr)(コマンドライン機能)が非常に好きです。 現在の行から後方に検索し、必要に応じて履歴を「上」に移動します。これはインクリメンタル検索です。 をヒットcontrol-rするbashと、次の結果が得られます。 (reverse-i-search)`': また、以前に実行したコマンドの文字を入力して、探しているものに絞ることができます。間違えた場合は、入力control-hして文字を消去できます(と同等backspace)。 このコマンドライン機能により、以前に実行したコマンドを非常に簡単に参照できます。そのような能力が存在するかどうか疑問ですpsql。私はそれが非常に非効率的なだけに頼ることを見つけるcontrol-pとcontrol-n。 それが価値があるもののために、私は使用しPostgreSQL 9.3.1 on x86_64-apple-darwin13.0.0, compiled by Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn), 64-bitています-Postgres.appから取得しました。

1
Amazon RDSからpostgresスナップショットを取得する
Amazon RDS postgresインスタンスの夜間バックアップのコピーを取得する簡単な方法が見つからないため、ローカルマシンで復元して再生できます。 現在、コピーが必要なときにpg_dumpを実行していますが、これらのスナップショットをダウンロードできる方が良いでしょう(おそらく高速です)。これは不可能ですか?

1
ネストされていない配列の要素の元の順序を保持する方法は?
与えられた文字列: 「PostgreSQLは気の利いたものだと思う」 その文字列内で見つかった個々の単語を操作したいと思います。基本的に、私は単語の詳細を取得できるものとは別に、この辞書のその文字列のネストされていない配列に参加したいと思っています。 これまでのところ: select word, meaning, partofspeech from unnest(string_to_array('I think that PostgreSQL is nifty',' ')) as word from table t join dictionary d on t.word = d.wordname; これは、私が望んでいたことの基本を達成しますが、元の単語の順序を保持しません。 関連質問: PostgreSQLの要素番号を持つunnest()

2
PostgreSQL Turtleがあるのはなぜですか?
PostgreSQLのプロパガンダページをチェックしていたところ、この小さな芸術作品が見つかりました。 それは「タートル・スタイル」のPostgreSQLのロゴ。これは何歳で、PostgreSQLは公式に象の代わりに亀を使用しましたか?ここの話は何ですか?
17 postgresql 

1
PostgreSQLはWAL対応バックアップの途中でチェックポイントをどのように処理しますか?
PostgreSQL v9.0では、WALアーカイブシステムが動作しています。したがって、WALは定期的にアーカイブされます(3つのWALが作成されたとき、またはWALが15分より古い場合)。 次に、PG_DATAディレクトリのバイナリパックアップ(pg_xlogサブディレクトリを除く)を追加します。そのためにpg_start_backup(),、バイナリコピーとを実行しpg_stop_backup()ます。 私はpg_start_backupとpg_stop_backupが何をしているかをよく理解していると思います。最初のものはチェックポイントを作成し、最後のものは最後のWALファイルがアーカイブされていることを確認します。 公式ドキュメントから、バイナリデータコピーについて次のことが必要であることがわかります。 tarやcpio(pg_dumpやpg_dumpallではない)などの便利なファイルシステムバックアップツールを使用して、バックアップを実行します。これを行っている間は、データベースの通常の操作を停止する必要も望ましくもありません。 だから私はとても困惑しています。これは、コピーの作成中にチェックポイントを実行できることを意味します。コピーコマンドはコピーの実行中にデータの変更を許可する必要があることを示す多くのドキュメントを見ましたが、適切なツールを見つけるだけで大​​丈夫です。しかし、私の質問は、一貫性のないファイル(チェックポイントの前のファイル、後のファイル)を含むpg_dataコンテンツを使用してpostgreSQLがどのようにリカバリを処理するかです。 トランザクションログを再生することにより、Postgresqlはこれらすべてのファイルを正しい状態にできますか?バックアップの実行中にテーブルの作成とドロップ操作が危険であることがわかりました。バキュームコマンドなどの危険な操作はありませんか?pg_backupはバキューム操作を一時停止しますか?バイナリコピープロセスの開始の最後にglobal / pg_controlファイルのコピーを作成する必要がありますか?スナップショット対応のファイルシステム(xfs-freezeなど)を使用して、復元プロセスを高速化する必要がありますか? バックアップスクリプトのクラッシュはpg_stop_backupを自動的に起動しないので、バックアップ状態が長時間続く可能性があります(私のnagiosが誰かを呼び出してpg_stop_backup()を修正するまで)。したがって、PostgreSQLでこれら2つのコマンドの間に何か違いがある場合、それがどのような影響を与えるかを理解するために、それを知りたいと思います。 教えてください。

3
postgresの他のセッションの一時テーブルにアクセスする方法はありますか?
(ローカル)postgresデータベースを使用し、一時テーブルにいくつかの情報を保存するWindowsアプリケーションを使用しています。一時テーブルをご覧になりたいのですが、pgadminとdbVisは次のように言っています:ERROR: cannot access temporary tables of other sessionsデータを照会するとき。スキーマとテーブルの権限を変更しようとしましたが、プログラム自体と同じユーザー(少なくともdbVisで)でデータベースにアクセスしているにもかかわらず、これは役に立たないようです。データベース内のすべてのセッションへの「ルート」アクセスを許可するデータベースで変更できる設定はありますか?

4
ソースデータベースがUTF8でエンコードされている場合、復元時にUTF8の無効なバイトシーケンスコピーエラーを解決する方法
PostgreSQL 8.2.xデータベースを別のサーバーに移行するタスクが与えられました。これを行うには、pgAdmin 1.12.2(ちなみにUbuntu 11.04)を使用し、カスタム/圧縮形式(.backup)とUTF8エンコードを使用したバックアップと復元を使用しています。 元のデータベースは、次のようにUTF8です。 -- Database: favela -- DROP DATABASE favela; CREATE DATABASE favela WITH OWNER = favela ENCODING = 'UTF8' TABLESPACE = favela CONNECTION LIMIT = -1; 移行先サーバーで、このようなデータベースを作成しています。しかし、復元オプションを使用して.backupファイルからデータベースを復元すると、次のエラーのいくつかが表示されます。 pg_restore: restoring data for table "arena" pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry …


2
REINDEXは危険ですか?
COUNT(*)主キーを持つ150,000行のテーブルを試しました。約5分間のツールなので、これはインデックス作成の問題であることがわかりました。 PostgreSQLマニュアルの引用: REINDEXは、インデックスの内容を最初から再構築するという点で、インデックスのドロップと再作成に似ています。ただし、ロックに関する考慮事項はかなり異なります。REINDEXは、インデックスの親テーブルの書き込みをロックしますが、読み取りはロックしません。また、処理中の特定のインデックスの排他ロックを取得し、そのインデックスを使用しようとする読み取りをブロックします(...)後続のCREATE INDEXは書き込みをロックしますが、読み取りはロックしません。インデックスが存在しないため、読み取りはインデックスを使用しようとしません。つまり、ブロッキングは発生しませんが、読み取りは高価な順次スキャンに追い込まれる可能性があります。 あなた自身の経験から、あなたは言うことができます: あるREINDEXING危険な?データの一貫性を損なうことはありますか? 時間がかかりますか? それは私のシナリオのおそらく解決策ですか? 更新: 私たちのために働いた解決策は、別の名前で同じインデックスを再作成し、古いインデックスを削除することでした。 インデックスの作成は非常に高速であり、インデックスサイズを650 MBから8 MBに削減しました。COUNT(*)withの使用にはbetween3秒しかかかりません。
17 postgresql 

1
Postgres:SET NOT NULLはCHECK制約よりも「効率的」です
では制約のためのPostgreSQLのドキュメント、それは言います 非ヌル制約は、機能的にチェック制約の作成と同等ですCHECK (column_name IS NOT NULL)が、PostgreSQLでは明示的な非ヌル制約の作成がより効率的です。 不思議なんだけど 「より効率的」とはどういう意味ですか? のCHECK (column_name IS NOT NULL)代わりに使用することの欠点は何SET NOT NULLですか? NOT VALID CHECK制約を追加して個別に検証できるようにしたい(したがって、制約の追加のAccessExclusiveLockために短時間だけ保持され、その後ShareUpdateExclusiveLock、より長い検証手順のために保持される): ALTER TABLE table_name ADD CONSTRAINT column_constraint CHECK (column_name IS NOT NULL) NOT VALID; ALTER TABLE table_name VALIDATE CONSTRAINT column_constraint; の代わりに: ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;

4
結果のテーブル定義が不明なピボットCROSS JOINを生成するにはどうすればよいですか?
名前と値を持つ未定義の行数を持つ2つのテーブルがある場合、CROSS JOINそれらの値に対して関数のピボットをどのように表示しますか。 CREATE TEMP TABLE foo AS SELECT x::text AS name, x::int FROM generate_series(1,10) AS t(x); CREATE TEMP TABLE bar AS SELECT x::text AS name, x::int FROM generate_series(1,5) AS t(x); たとえば、その関数が乗算である場合、以下のような(乗算)テーブルをどのように生成しますか? これらの(arg1,arg2,result)行はすべて、次を使用して生成できます。 SELECT foo.name AS arg1, bar.name AS arg2, foo.x*bar.x AS result FROM foo CROSS JOIN bar; したがって、これは表示の問題にすぎません。これは、カスタム名(CASTテキストへの単なる引数ではなくテーブルに設定された名前) CREATE TEMP …

3
HAProxyおよびPGBouncerを使用したPostgreSQLの高可用性/スケーラビリティ
Webアプリケーション用に複数のPostgreSQLサーバーがあります。通常、1つのマスターとホットスタンバイモードの複数のスレーブ(非同期ストリーミングレプリケーション)。 接続プーリングにPGBouncerを使用します:ローカルホスト上のデータベースに接続する各PGサーバー(ポート6432)にインストールされた1つのインスタンス。トランザクションプールモードを使用します。 スレーブ上の読み取り専用接続の負荷を分散するために、HAProxy(v1.5)を次のような設定で使用します: listen pgsql_pool 0.0.0.0:10001 mode tcp option pgsql-check user ha balance roundrobin server master 10.0.0.1:6432 check backup server slave1 10.0.0.2:6432 check server slave2 10.0.0.3:6432 check server slave3 10.0.0.4:6432 check したがって、私のWebアプリケーションはhaproxy(ポート10001)に接続します。これは、各PGスレーブ上に構成された複数のpgbouncerで接続を負荷分散します。 ここに私の現在のアーキテクチャの表現グラフがあります: これは次のように非常にうまく機能しますが、いくつかの実装がまったく異なることを認識しています。Webアプリケーションは、複数のPGサーバーで負荷分散するHAproxyに接続する単一のPGBouncerインスタンスに接続します。 最善のアプローチは何ですか?最初のもの(私の現在のもの)または2番目のものですか?あるソリューションが他のソリューションより優れている点はありますか? ありがとう

1
タイムゾーンを使用せずにUnix時間をPostgreSQLのティムスタンプに変換する方法は?
タイムゾーンがインドのタイムゾーン(UTC +5:30)に設定されているサーバーでPostgreSQLデータベースを実行しています このように作成されたテーブルにいくつかのデータがあります: CREATE TABLE "CLOUDDATA" ( "CD_Tm_Obs" timestamp without time zone, "CD_Avg_Cloud" double precision ) データをクエリし、特定の時間の値を取得したい。入力はUnixタイムスタンプ(1970年1月1日からの秒数)になります UNIXの時刻をタイムスタンプに変換する唯一の方法は、次のとおり select to_timestamp(TRUNC(CAST(1395036000 AS bigint)))です。しかし、これはタイムゾーンでタイムスタンプを作成します。データはにtimestamp without time zoneあるため、結果は得られません。 タイムゾーンなしでUnix時間をPostgreSQLのティムスタンプに変換する方法は?

3
psqlでのみヘッダーをオフにする方法(postgresql)
PostgreSQL 9.1.Xを使用しています 私はpsql、ヘッダーなしでフッターを含む結果を印刷するスクリプトを作成しようとしています。 http://www.postgresql.org/docs/9.1/static/app-psql.html 上記の文書から \pset tuples_only ヘッダーとフッターの両方をオフにします。そして \pset footer off フッターのみをオフにします。 psqlヘッダーをオフにしてフッターをオンのままにする方法はありますか? シェル/ perl /好きなテキストツールを使用してこの問題を回避する方法はたくさんありますが、ヘッダーの設定ではなくフッターの設定があるのはなぜですか? id <--this line I don't want ---- <-- this line I don't want either 1 <-- this line, yes (1 row) <-- yes, I want it!
17 postgresql  psql 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.