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

PostgreSQLバージョン9.1


5
ユーザーのすべてのテーブルへのアクセスを許可する
私はPostgresが初めてで、MySQLデータベースを移行しようとしています。MySQLでは私が付与できSELECT、UPDATE、INSERT、およびDELETE低特権ユーザの権限を、指定したデータベース内のすべてのテーブルに適用するには、これらの助成金を有効にします。Postgresで何かを見逃しているに違いありません。各テーブルにこれらの特権を一度に1つずつ付与する必要があるように見えるからです。多くのデータベースと、データベースごとに数百のテーブルがあるため、地面から降りるのは大変な作業のようです。さらに、データベースが動作し始めると、テーブルの追加が頻繁に発生するため、絶対に必要な場合を除き、毎回アクセス許可を付与する必要はありません。 これはどのように達成されますか?

4
さまざまなタイムスタンプ(2列)でのクエリの最適化
Ubuntu 12.04でPostgreSQL 9.1を使用しています。 時間範囲内のレコードを選択する必要があります。テーブルにtime_limitsは2つのtimestampフィールドと1つのintegerプロパティがあります。実際のテーブルには、このクエリに関係しない追加の列があります。 create table ( start_date_time timestamp, end_date_time timestamp, id_phi integer, primary key(start_date_time, end_date_time,id_phi); このテーブルには、およそ2Mのレコードが含まれています。 次のようなクエリには膨大な時間がかかりました。 select * from time_limits as t where t.id_phi=0 and t.start_date_time <= timestamp'2010-08-08 00:00:00' and t.end_date_time >= timestamp'2010-08-08 00:05:00'; そこで、別のインデックスを追加してみました-PKの逆です: create index idx_inversed on time_limits(id_phi, start_date_time, end_date_time); パフォーマンスが向上したという印象を受けました。テーブルの中央にあるレコードにアクセスする時間は、より合理的であるようです。40〜90秒の間です。 ただし、時間範囲の中央の値の場合はまだ数十秒です。そして、テーブルの終わりをターゲットにすると(時系列的に)、さらに2倍になります。 私explain analyzeは初めてこのクエリプランを取得しようとしました。 Bitmap Heap ...

3
外部キーを含む行を挿入するにはどうすればよいですか?
PostgreSQL v9.1を使用します。次の表があります。 CREATE TABLE foo ( id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY, type VARCHAR(60) NOT NULL UNIQUE ); CREATE TABLE bar ( id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY, description VARCHAR(40) NOT NULL UNIQUE, foo_id BIGINT NOT NULL REFERENCES foo ON DELETE RESTRICT ); 最初のテーブルfooが次のように設定されているとします: INSERT INTO foo (type) ...

3
ユーザーpostgresのパスワード要件を削除
インストール時に、PostgreSQLにはdb rootユーザー(postgres)のパスワードがないことがわかります。 postgres=# select usename, passwd is null from pg_shadow; usename | ?column? ----------+---------- postgres | t (1 row) ...そして、次のように設定することをお勧めします。 alter role postgres password '<<very-secret>>'; (そして、それにpg_hba.conf応じてファイルを更新します) 私の質問は:パスワードがユーザーのために必要としなかったとき、前の状況に戻すために使用するSQLは何ですかpostgres。 一般に、どのロールのパスワード要件を削除するにはどうすればよいですか?パスワードの変更方法ではなく、パスワード要件(passwd表のヌル列pg_shadow)を削除する方法を尋ねています。

5
PostgreSQLのSQLのすべてのビューをリストする方法は?
PostgreSQLでSQLコマンドを使用してデータベースのすべてのビューを一覧表示するにはどうすればよいですか? psql \dvコマンドの出力に似たものが欲しいのですが、ビュー名のリストだけが望ましいです。例えば、 SELECT ...; my_view_1 my_view_2 my_view_3 Ubuntu LinuxでPostgreSQL v9.1.4を実行しています。

2
読み取りパフォーマンスのためのPostgreSQLの構成
私たちのシステムは大量のデータを書き込みます(ビッグデータシステムの一種)。書き込みパフォーマンスはニーズには十分ですが、読み取りパフォーマンスは本当に遅すぎます。 主キー(制約)構造は、すべてのテーブルで類似しています: timestamp(Timestamp) ; index(smallint) ; key(integer). テーブルには数百万行、さらには数十億行あり、通常、読み取り要求は特定の期間(タイムスタンプ/インデックス)とタグに対して行われます。通常、約20万行を返すクエリがあります。現在、1秒あたり約15,000行を読み取ることができますが、10倍高速にする必要があります。これは可能ですか?もし可能なら、どのように? 注: PostgreSQLはソフトウェアにパッケージ化されているため、ハードウェアはクライアントごとに異なります。 これは、テストに使用されるVMです。VMのホストは、24.0 GBのRAMを備えたWindows Server 2008 R2 x64です。 サーバー仕様(仮想マシンVMWare) Server 2008 R2 x64 2.00 GB of memory Intel Xeon W3520 @ 2.67GHz (2 cores) postgresql.conf 最適化 shared_buffers = 512MB (default: 32MB) effective_cache_size = 1024MB (default: 128MB) checkpoint_segment = 32 (default: 3) checkpoint_completion_target ...


3
忘れたPostgreSQL Windowsパスワード
今朝、Windows 7 ProfessionalデスクトップでPostgreSQLデータベースに接続しようとしています。 デフォルト値は「postgres」ですが、最初にインストールしたときに使用したパスワードを忘れてしまいました。 私はグーグルで検索し、パスワードのリセットに関連する投稿を見つけました。手順に従いましたが、最終結果は投稿で言及されたものとは少し異なります。私は使用しました— net user postgres postgres データベースのパスワードをリセットしますが、成功メッセージの代わりに私は得ています: 「システムエラー5が発生しました。アクセスが拒否されました。」 システムエラー。このエラーを回避してパスワードをリセットするにはどうすればよいですか?

3
Ubuntuサーバーでpostgres 9.1から9.3にアップグレードする
本番サーバー(ubuntu 13.10)をpostgresql 9.1で実行しています。 9.3のいくつかの機能を使用したいので、アップグレードしたい。 ダウンタイムが30分以内になるように、誰かが9.1から9.3にアップグレードするのを手伝ってもらえますか。とか、ぐらい? 主な関心事は、データの損失やファイルの冗長性の防止です。

3
Postgresqlで現在のユーザーが所有するすべてのスキーマのすべてのテーブルをリストするにはどうすればよいですか?
私はすべてのスキーマのすべてのテーブルをリストすることができます > \dt *.* しかし、それはまた、私が気にする私のテーブルよりもはるかに多いシステムテーブルをリストしています。パブリックスキーマおよび定義したスキーマで作成したすべてのテーブル(および場合によってはビュー)が欲しいです。 ここで説明するように、スキーマを作成するときに検索パスに明示的にスキーマを追加することなく、これを行う方法を見つけたいと思っています。 /programming//a/12902069 編集: 受け入れられた答えに基づいて、次のビューを作成しました。 create view my_tables as select table_catalog, table_schema, table_name, table_type from information_schema.tables where table_schema not in ('pg_catalog', 'information_schema'); そして今、次のコマンドは私が欲しいものを与えてくれます: select * from my_tables;

5
PostgreSQL:データベースから1つのスキーマのみをバックアップし、別のサーバーに復元する方法
2つのスキーマ「B」と「C」を持つ「A」という名前のデータベースがあります。別のサーバーでスキーマ「B」をバックアップおよび復元したいですか?私はPostgresが初めてなので、これを行う方法がわかりません。「A」という名前の新しいサーバーに新しいDBを作成し、その上にスキーマ「B」を復元する必要がありますか。plsはコマンドを支援します。 --- ピーターの答えに対するコメントからの情報: スキーマ「B」+データをバックアップおよび復元したい。第二に、Ubuntu 12.04で実行されているPostgresql 9.1について言及するのを忘れました

3
Postgresqlデータを別のドライブに移動する
クラウド環境としてAWSを使用しています。ルートインスタンスボリュームと同じドライブにPostgreSQLをインストールしました。インスタンスに2番目のドライブを接続してマウントしました。次に、すべてのPostgreSQLデータを別のドライブに移動します。私はまだ開発モードにいるので、この時点で転送が容易になる場合は古いデータを削除できます。これを行う最良の方法は何ですか? PostgreSQLのテーブルスペースは私が見るべきものですか?

2
ダンプの復元中にすべての制約とテーブルチェックを無効にします
私は私のPostgreSQLデータベースのダンプを取得しました: pg_dump -U user-name -d db-name -f dumpfile 次に、次のコマンドを使用して別のデータベースに復元します。 psql X -U postgres -d db-name-b -f dumpfile 私の問題は、データベースに参照制約、チェック、トリガーが含まれていることと、これらのチェック(特にチェック)の一部が復元中に失敗することです。たとえば、テーブルへの行の挿入は、他の無関係なテーブルで条件が成立するかどうかをチェックCHECKするplpgsql関数を呼び出すに関連付けられます。後者のテーブルがpsql前者の前に読み込まれない場合、エラーが発生します。 以下は、一度ダンプするpg_dumpと復元できないデータベースを生成するSSCCEです。 CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE TABLE IF NOT EXISTS a ( i INTEGER NOT NULL ); ...

1
データベースアーカイブソリューション
私が投稿した質問に続いて、大量のアクセス頻度の高いテーブルを別のデータベースに移動することをお勧めしますか?、PostgreSQLでのデータベースアーカイブに利用できるさまざまなテクニック/ソリューションを探しています。 私が考えることができるいくつかのソリューションは次のとおりです。 テーブルのパーティション分割 別のテーブルスペースおよび/またはスキーマ アーカイブされたレコード/テーブルを別のハードディスクに移動する 他の提案/ポインター/ソリューションは本当に歓迎され、高く評価されています。 注: CentOS5.2でPostgreSQL v9.1.3を実行しています

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