2016-04-29 7 views
0

私は毎月のメンテナンスをpostgresデータベースに対して実行する必要があります。その後、システムに
Iパテ、データベースに移動し、40種類のテーブルの上に3つのコマンドを実行します。私は、次のいずれか(すなわちCLUSTERを実行する前に実行を完了するために、各コマンドを待つ必要が毎月のポストグルメンテナンスのスクリプトを作成できますか?

CLUSTER [table1] USING [primarykey]; 
ANALYZE [table1]; 
REINDEX TABLE [table1]; 

〜数分待って、〜を待つ〜、REINDEX〜待って〜)

これは非常に簡単ですが、私は約30-45分の時間をかけて、120行、1行時間...このプロセスを自動化する方法はありますか?
私はスクリプティングに関する経験はありません。私はpostgreSQLについてほとんど知っていません。

postgreSQLデータベースに何もインストールできないため、私の質問は多少ユニークです。私はこのスクリプトを自分のコンピュータにローカライズしておき、メンテナンスのときにそれを実行できるようにしたいと思っています。

+0

[PostgreSQLのイベントスケジューラ]の複製がありますか?(http://stackoverflow.com/questions/6839469/event-scheduler-in-postgresql) –

+1

cronを使用しない理由は何ですか? –

+0

@PeterEisentraut私はそれが何であるか分かりませんが、私はそれをGoogleにしようとしています!あなたのステートメントから、私はcron – z0nia

答えて

0
  1. クラスタリングはテーブルを自動的に再インデックスします。テーブルをクラスタ化した直後にテーブルを再インデックスする理由はありません。
  2. 実際にこの作業を行う必要がありますか?あなたのテーブルにクラスタリングが必要であるという証拠がありますか?それとも、あなたが最初に話していたことを知らなかった人が書いたPostgreSQLの10年前のバージョンを参照して、インターネットを読んで何かをしていると仮定しただけですか?あなたは本当にこれから恩恵を受ける可能性があります。それはあなたがしない可能性はさらに高く、それは時間の無駄です。
  3. スクリプトについて何も知らない場合は、スクリプトについて何かを学ぶ必要があります。あなたはおそらくあなたの投稿に、スクリプティングに関するものとして、使用するシェル/言語のいずれかにタグを付けるべきです。

コアで実行するには、コマンドラインから実行する一連のコマンドを書き、テキストファイルに移動するだけです。最も簡単な方法は、ローカルコンピュータにpsqlをまだインストールしていない場合はインストールすることです。

psql -c 'cluster foobar' -h thehost.example.com 
psql -c 'analyze foobar' -h thehost.example.com 

あなたが所定の位置に持っているものは何でも認証方法で、この接続作業をするためにいくつかの設定を行う必要があるが、私は以上のコメントはできませんされている認証方法を知らなくても可能性があります。

何らかの理由でクラスタに障害が発生した場合、それを分析しようとする理由はほとんどありません。 (しかしそうすることで害はほとんどありません)。このような状況を微調整したい場合は、スクリプトを作成するシェルとその実行方法に応じて、さまざまな方法があります。

+0

その最初のヒントのおかげで、これを行うことができると仮定、私はもはや再インデックス。あなたの2番目の点に関しては、これが100%必要かどうかは分かりませんが、システムのサポートチームが推薦します。このオートメーションはpuTTyで実行可能ですか? – z0nia

関連する問題