質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

2回答

4626閲覧

PostgreSQLを別サーバでデータを分散させる方法

mukkun

総合スコア882

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2016/11/01 01:52

先日、
レプリケーションについて質問をさせて頂きましたが、
質問がずれていた為、再度質問させていただきます。

Cloud上でVM内にPostgreSQLを立てており、使用しています。
ですが、最大容量が1TBとなっておりカツカツの状態となっています。
※データに関しては精査済とCloudの変更はできません。

そこでCloud上にもう1つVM、PostgreSQLを立ち上げ、
HDDでいうRAID0的なことがしたく思っています。

技術的に可能なのでしょうか。
また、速度は確実に落ちるとは思うのですがどの程度落ちるのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

PostgreSQL が提供する機能のは負荷分散やレプリケーション(複製)なので、あくまでも可用性や性能の向上です。
RAID 0 のように複数台のディスクを1台にみたてるような、物理的なディスク容量のスケールアップ管理はできなかったと思います。

技術的には、単にソフトウェアRAIDを使ってできるのではないでしょうか。
(私はやったことないですごめんなさい。見知っている程度です。ネットワークドライブもマウントできるんじゃないかな~)

速度はわかりませんが、おっしゃる通り早くなることはないでしょう。

どのようなシステムの運用かわかりませんが、稼働率は問題ないでしょうか。
そのような構成は障害点が増えるため稼働率が下がります。

信頼性を含めた対策としては「より徹底したデータの見直し」「定期的なVACUMEまたはVACUME ALLの実施」「ディスク容量のスケールアップ」、それができなければ「VMサービス契約の見直しや他サービスへの移行の検討」になると思います。


テーブル空間、パーティショニングについて
パーティショニング : 用途と利点
PostgreSQL 9.5.4文書 21.6. テーブル空間

投稿2016/11/01 03:45

編集2016/11/01 06:21
takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mukkun

2016/11/01 04:32

回答ありがとうございます。 やはり無理そうですよね。。 右肩上がりにデータが増えていく仕様で、改善が見込めない状態となっており、 いずれは1TBを超えてしまうので提示頂いた対策案は難しいです。。 使用しているCloudがあり得ないのは承知なのですがどうしても変えられなく。。 現状ベストアンサーなのですが、 15時までに結論を出さないといけない為、もう少し放置させてください。 よろしくお願いします。
takito

2016/11/01 05:04

思い付きでざっと書きます データのライフサイクルが妥当かも見直されているでしょうか。 保存されているデータは、当初設計時点から運用の実態に見合った内容でしょうか。 例えば、「今後更新されないけれど一定期間保持しなければならないデータ」についてはオフラインデータとして新VMにDBを移動し、オンライン側VMからその分を削除して容量を確保する、ということも検討に入るでしょうか。 当初設計で容量計算をしているはず?なのに不足になった要因は、設計があまかった(安全率が低すぎた)のか、運用中に取扱いデータが増加(更新頻度のアップやデータ追加)したのか、その点もはっきりしていなければ、次に容量をどれくらいにすればよいかの根拠も出せないと思いますが大丈夫でしょうか。
mukkun

2016/11/01 05:13

既存データに関しては、残さないといけない作りになっています。  ※過去データの参照をする為。 容量の増加する傾向もわかっており大体1日1GBで月単位でパーティショニングしているTBLの分だけIndexを張る為、n x 1GB程かかります。 思案頂きとてもありがたいのですが、 データに関してはかなり精査してきたので、 これ以上どうしようもないと考えています。  ※考え付かないアイデアもあるかもしれませんが。。
takito

2016/11/01 05:41

ふと思いついたのですが ・テーブル空間 ・パーティショニング これで、ある大きなテーブルを分割して別ディスクに分散させたり、使用頻度の少ないテーブルだけ別ディスクに置いたりする構成ができるかも?
mukkun

2016/11/01 06:01

テーブル空間というのをはじめて知りました。。 例えばなのですが、 この機能を使った場合、 新VMを立ち上げ現VMにネットワークドライブ等で接続し、 パーティショニングするタイミングで新VMにテーブルを保存させるということでしょうか。
mukkun

2016/11/01 06:14

期限を明日まで伸ばしてもらいました。。 もしいい案があればどしどし頂ければうれしいです。。
takito

2016/11/01 06:18

テーブル空間は、テーブルオブジェクトの置き場所を指定しています その場所を新VMのドライブとしたテーブル空間を作っておき、パーティショニングで子テーブルを作るときにそのテーブル空間を指定することで新VMに保存させることができるかも ただ、これについても私はやったことがないので・・・詳しい人の解説やアドバイスが欲しいですね
takito

2016/11/01 06:19

参考になりそうなサイトを元回答に追記しておきます
mukkun

2016/11/01 06:28

すみません。ありがとうございます。 参考にさせて頂きます。
guest

0

PostgreSqlの開発に携わったSRAの長田氏が分散処理についてのPDFをアップされていたので、参考まで。
PostgreSQLで動的にスケールアウト
可能な負荷分散DBクラスタを作ろう!

技術的には可能ですね。

投稿2016/11/01 03:16

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mukkun

2016/11/01 04:29

回答ありがとうございます。 説明が悪かったのです。 例ですが、 現在、PostgreSQLを使用してデータが100%になっています。 HDDを増設や容量のスケールアップができないですが、 サーバ(VM)を1台追加することは可能です。 1台増やし、50%と50%の状態にできないかという相談でした。
prius

2017/02/05 13:03

VMにDisk(仮想)を割り当てないとできないと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問