2012-06-27 8 views
11

Potrzebuję twojej pomocy, aby rozwiązać problem, ponieważ jestem całkiem nowy w Postgresie i czytanie podręczników nie pomogło.Postgres dystrybucja danych na wielu dyskach

Mamy serwer z 4 wewnętrznymi dyskami twardymi. Stworzyliśmy bazę danych Postgres z kilkoma tabelami. Chcemy móc rozpowszechniać nasze dane na tych 4 dyskach.

Chcemy określić gdzieś (np. Etap tworzenia przestrzeni tabel), że dane załadowane do zestawu tabel powinny być rozmieszczone na 4 dyskach.

Czy możesz podać nam składnię lub wskazać nam właściwy kierunek?

+2

Naprawdę, dlaczego nie używasz RAID? – leonbloy

Odpowiedz

20
  1. Tworzenie czterech tabel każdy na innym dysku (patrz: http://www.postgresql.org/docs/current/static/sql-createtablespace.html)
  2. Przenoszenie zawartości tabel dla tabel, dzięki czemu dane są rozmieszczone jak zamierzasz go używać ALTER TABLE foobar SET tablespace = foospace, zobacz tutaj: http://www.postgresql.org/docs/current/static/sql-altertable.html
  3. Przenieś zawartość indeksów tabel dla tabel z wykorzystaniem alter index idx_foo set tablespace = spacefoo, zobacz tutaj: http://www.postgresql.org/docs/current/static/sql-alterindex.html
+0

, więc zrobiłem to dla jednego stołu (78 GB na dysku). nowa ścieżka pokazuje teraz 78G, ale użycie dysku na oryginalnej partycji pozostało niezmienione. jak mogę odzyskać oryginalną przestrzeń? – keredson

+0

Okazuje się, że "próżnia" to zrobiła. odkurzanie tylko jednego stołu samo w sobie nie było jednak bardzo dziwne. – keredson

7

najlepszym sposobem jest stworzenie macierzy RAID-0 lub RAID-10 i niech OS tym poradzić dla Ciebie. RAID-0 nie ma redundancji, więc każda pojedyncza awaria dysku jest katastrofalna. RAID-10 pozwala na awarię dowolnego dysku i działa poprawnie z dobrą wydajnością. Unikaj RAID-5 lub RAID-6 ze względu na bardzo niską wydajność zapisu.

+0

Raid może być dobrym rozwiązaniem problemu, ale nie odpowiada na pytanie. Może on chce mieć określone dane na konkretnym dysku, na przykład umieścić mocno używaną tabelę na szybkim dysku i nic więcej, więc dysk jest używany tylko przez odczyt i zapis do tej tabeli. – Janning

+2

Przepraszam, ale jesteś w błędzie. OP stwierdził: Chcemy określić gdzie (np. Etap tworzenia przestrzeni tabel), że dane załadowane do zestawu tabel powinny być rozmieszczone na 4 dyskach. Należy zauważyć, że klauzula subjunkcyjna w nawiasach jest traktowana jako rodzaj domysłów, jak to zrobić. Chociaż jest to całkiem możliwe dzięki obszarom tabel i bez nadmiarowości, lepszym sposobem dla 99% wszystkich użytkowników jest po prostu umieszczenie wszystkiego na dużej macierzy RAID, ponieważ wtedy wszystkie tabele mogą korzystać z połączonej prędkości i nadmiarowości. Nit picking tak naprawdę nie pomaga. –

+0

Masz rację, Scott. Głosowałem za twoją odpowiedzią. – Janning

Powiązane problemy