Daha çox

Pg_dump osm2pgsql ilə doldurulmuş verilənlər bazası

Pg_dump osm2pgsql ilə doldurulmuş verilənlər bazası


Osm2pgsql ilə yaradılmış bir postgres verilənlər bazasını və pg_dump ilə bir .osm.pbf faylını atıb uzaq bir postgres verilənlər bazasına idxal etmək mümkündürmü?

Osm2pgsql işlədikdən sonra verilənlər bazası 135 Gb -dir. Postgresdən zibil yaratdığımda 80Gb faylım var.

Boşaltma faylını bzipləşdirdiyim zaman 17 Gb sıxılmış bir faylla qarşılaşıram.

Ümid edirəm ki, bu, uzaq serverdə osm2pgsql işlətməkdən daha az qaynaqlı olacaq. Uzaq server maksimum 4 gigabayt RAM -a malikdir və resurs limitlərinə asanlıqla çatılır.

İdxal prosesi, 2.5 ghz -lik MacBook Pro -da 16 gigram qoç ilə 7 saata yaxın davam etdi. Mən son iki gündə osm2pgsql ilə işləyirdim --slim və -C 3500.

İkinci dəfədir ki, uzaq serverə osm2pgsql ilə idxal etməyə çalışıram. Düşünürəm ki, işləyən verilənlər bazasından bir tullantı idxalı daha səmərəli ola bilər.


İstifadəpg_dumppg_restoregüclü bir inkişaf maşınına, daha az güclü bir istehsal serverinə və aralarında kifayət qədər bant genişliyinə sahib olduğunuzda tövsiyə olunan bir üsuldur. Daha az güclü maşınlarda üslub cədvəlinin inkişafı üçün sadələşdirilmiş verilənlər bazası dampı yaratmaq üçün bu metodun dəyişdirilmiş versiyasından istifadə etdim.

Bu üsul bir neçə üstünlük gətirir

  1. Daha güclü olmayan bir istehsal maşınına daxil olmaq adi haldır.

  2. Yalnız bir çox istehsal maşınını və ya birdən çox verilənlər bazasını idarə etməyi asanlaşdıra bilərpg_restorelazımdır.

  3. Bəzi bulud təminatçılarının təklifləri məhduddur və osm2pgsql serverləri üçün yaxşı seçimlər yoxdur, ancaq verilənlər bazası serverləri üçün yaxşı seçimlər var.

  4. Yenilənmiş bir şey etmək olduqca asandırpg_dump/pg_restore.

  5. Yerli verilənlər bazası incə cədvəllərlə (yeniləmə qabiliyyətli) və yalnız istehsal serverində yüklənmiş göstərmə masaları ilə saxlanıla bilər.

Bunun da mənfi cəhətləri var

  1. Dəqiq yeniləmələrə icazə vermir.

  2. İnkişaf maşınından kifayət qədər yükləmə bant genişliyi tələb olunur. Bu, yaşayış məntəqələrinin internet əlaqələrində problem ola bilər.

  3. İki maşın tələb olunur

  4. Hələ də ehtiyaclarınız üçün kifayət qədər güclü bir verilənlər bazası serverinə ehtiyacınız var və əgər göstərilirsə, eyni zamanda göstərmə serverinə də ehtiyacınız var

Məlumat yüklənir

Diffs əvəzinə yenidən yükləyərək yeniləməyi planlaşdırdığınızı düşünsəniz, kimi bir əmr ilə idxal edə bilərsinizosm2pgsql --create --sayı-proseslər --gizli yer -d gis --slim-planeti buraxın-latest.osm.pbf, haradahardware mövzularının sayıdır (adətən 4 və ya 8) vəRAM -ın təxminən 80% -i, maksimum 28000 -ə qədərdir.

Zibillik yaratmaq

Sonra bir zibillik yaratmaq üçün pg_dump istifadə etmək istəyirsiniz. "Xüsusi" format, tək bir sıxılmış fayl yaratmağı dəstəklədiyi üçün istifadə etmək üçün ən yaxşısıdır.

pg_dump -F custom -t planet_osm_point -t planet_osm_line -t planet_osm_polygon -t planet_osm_yolları -Z 9 -d gis> gis.dump. Bu, başqa bir sistemdə bərpa edilə bilən sıxılmış bir fayl yaradacaq.

Zibilliyin bərpası

Zibili bərpa etmək üçün PostGIS ilə bir verilənlər bazasına ehtiyac var. PostGIS -i osm2pgsql cədvəlləri ilə birlikdə atmaq mümkündür, lakin fərqli PostGIS versiyaları və ya fərqli quraşdırma yolları istifadə edildikdə bu uğursuz ola bilər.

Digər serverdə olduğunuzu fərz etsəniz, verilənlər bazası ilə birlikdə yarada bilərsinizcreatedb -T template0 gis && psql -d gis2 -c 'CREATE EXTENSION postgis;'. Verilənlər bazası ilə bərpa edilə bilərpg_restore -d gis -j 4 -O gis.dump, paralel olaraq dörd göstərmə masasını bərpa edəcək.

Qeydlər

  • Diff ilə yeniləmələr etmək niyyətindəsinizsə (məsələn, hər həftə yeniləmək istəyirsinizsə), onu yaratmamaq üçün daha mürəkkəb bir pg_restore əmrinə ehtiyacınız olacaq.osm_idgöstərmə cədvəllərindəki indekslər.

  • Gündəlik yeniləmələrdən daha tez -tez bir şey üçün bu praktik deyil

  • Bunu göstərmə serverini bağlaya bilməyəcəyiniz bir istehsal mühitində etmək üçün ikinci bir verilənlər bazasına yüklənmə və sonra ona keçid tələb olunacaq.

  • Kobud bir təxmin olaraq, çöplük giriş PBF ölçüsünün təxminən 3-4 qatını və ya bütün planet üçün təxminən 95 GB olacaq.

  • Yeniləmələr üçün tam cədvəlləri uzaq maşına yükləsəniz, uzaq verilənlər bazası serverində böyük GIN indeksi yaratmaq üçün kifayət qədər RAM olmalıdır.planet_osm_ways (qovşaqlar).


Videoya baxın: How to backup and restore a database in postgresql using pgdump in cmd