OSM2PGSQL-REPLICATION(1) OSM2PGSQL-REPLICATION(1)

osm2pgsql-replication - به‌روزرسان پایگاه داده osm2pgsql

osm2pgsql-replication [-h] {init,update,status} ...

به‌روزرسانی پایگاه داده osm2pgsql با استفاده از تغییرات دریافتی از سرور همانندسازی (replication) نقشه آزاد شهری (OSM).

این ابزار فرآیند به‌روزرسانی را با بررسی فایل واردشده (import) یا جدیدترین شیء در پایگاه داده آغاز می‌کند. سپس وضعیت در جدولی در پایگاه داده ذخیره می‌شود. اجراهای بعدی، داده‌های جدید در دسترس را بارگیری کرده و آن‌ها را بر روی پایگاه داده اعمال می‌کنند.

برای اطلاعات بیشتر درباره نحوه استفاده از osm2pgsql-replication، به راهنمای دستورهای ’init’ و ’update’ مراجعه کنید.

?Bosm2pgsql-replication?R ?Iinit?R
راه‌اندازی اولیه فرآیند همانندسازی.
?Bosm2pgsql-replication?R ?Iupdate?R
بارگیری داده‌های جدید در دسترس و اعمال آن‌ها بر روی پایگاه داده.
?Bosm2pgsql-replication?R ?Istatus?R
چاپ اطلاعات درباره وضعیت فعلی همانندسازی، به صورت اختیاری در قالب JSON.

usage: osm2pgsql-replication init [-h] [-q] [-v] [-d DB] [-U NAME] [-H HOST]
[-P PORT] [-p PREFIX]
[--middle-schema SCHEMA] [--schema SCHEMA]
[--osm-file FILE | --server URL]
[--start-at TIME]

راه‌اندازی اولیه فرآیند همانندسازی.

این تابع سرویس همانندسازی مورد استفاده را تنظیم کرده و تعیین می‌کند که به‌روزرسانی‌ها از چه تاریخی باید اعمال شوند. شما باید حداقل یک بار این تابع را برای راه‌اندازی فرآیند همانندسازی فراخوانی کنید. این تابع را می‌توان بعداً با خیال راحت دوباره فراخوانی کرد تا سرورهای همانندسازی تغییر داده شوند یا فرآیند به‌روزرسانی به عقب بازگردانده شده (rollback) و به‌روزرسانی‌ها مجدداً اعمال شوند.

روش‌های گوناگونی برای راه‌اندازی اولیه در دسترس است. هنگامی که هیچ پارامتر اضافی ارائه نشود، داده‌ها از روی داده‌های موجود در پایگاه داده راه‌اندازی می‌شوند. اگر داده‌ها از یک فایل حاوی اطلاعات همانندسازی وارد شده باشند و جدول خصوصیات در دسترس باشد (برای osm2pgsql نسخه 1.9 و بالاتر)، از همانندسازی بر پایه فایل استفاده می‌شود. در غیر این صورت، سرویس به‌روزرسانی دقیقه‌ای از openstreetmap.org به عنوان سرویس همانندسازی پیش‌فرض مورد استفاده قرار می‌گیرد. تاریخ شروع یا از برچسب زمان (timestamp) پایگاه داده گرفته می‌شود (برای osm2pgsql نسخه 1.9 و بالاتر) یا از طریق جدیدترین راه (way) در پایگاه داده با پرس‌وجو از API پروژه OSM درباره تاریخ ایجاد آن تعیین می‌گردد.

سرویس همانندسازی را می‌توان با پارامتر ’--server’ تغییر داد. برای استفاده از یک تاریخ شروع متفاوت، پارامتر ’--start-at’ را به همراه یک برچسب زمان مطلق ISO (مانند 2007-08-20T12:21:53Z) اضافه کنید. هنگامی که برنامه تاریخ شروع را از برچسب زمان پایگاه داده یا تاریخ ساخت راه تعیین می‌کند، به طور پیش‌فرض ۳ ساعت دیگر از آن کم می‌کند تا اطمینان حاصل شود که تمام تغییرات جدید در دسترس هستند. برای تغییر این دوره بازگشت به عقب، از ’--start-at’ همراه با تعداد دقیقه‌ها برای بازگشت استفاده کنید. این حالت بازگشت می‌تواند همچنین برای اجبار به راه‌اندازی اولیه از تاریخ پایگاه داده و نادیده گرفتن تاریخ موجود در اطلاعات همانندسازی فایل به کار رود.

فرآیند راه‌اندازی اولیه همچنین می‌تواند اطلاعات همانندسازی را مستقیماً از یک فایل OSM دریافت کرده و تمام اطلاعات تاریخی دیگر را نادیده بگیرد. برای این کار از دستور ’osm2pgsql-replication --osm-file <filename>’ استفاده کنید.

?B-q?R, ?B--quiet?R
تنها پیام‌های خطا چاپ شوند
?B-v?R, ?B--verbose?R
افزایش جزئیات خروجی

آرگومان‌های زیر می‌توانند برای تنظیم پارامترهای اتصال به پایگاه داده osm2pgsql استفاده شوند. همچنین می‌توانید از متغیرهای محیطی libpq برای تنظیم پارامترهای اتصال استفاده کنید؛ پیوند https://www.postgresql.org/docs/current/libpq-envars.html را ببینید. اگر اتصال پایگاه داده شما نیاز به گذرواژه دارد، از یک فایل pgpass استفاده کنید؛ پیوند https://www.postgresql.org/docs/current/libpq-pgpass.html را ببینید.

?B-d?R ?IDB?R, ?B--database?R ?IDB?R
نام پایگاه داده PostgreSQL برای اتصال یا رشته conninfo
?B-U?R ?INAME?R, ?B--username?R ?INAME?R, ?B--user?R ?INAME?R
نام کاربری PostgreSQL
?B-H?R ?IHOST?R, ?B--host?R ?IHOST?R
نام میزبان سرور پایگاه داده یا مسیر سوکت
?B-P?R ?IPORT?R, ?B--port?R ?IPORT?R
پورت سرور پایگاه داده
?B-p?R ?IPREFIX?R, ?B--prefix?R ?IPREFIX?R
پیشوند نام جداول (پیش‌فرض 'planet_osm')
?B--middle-schema?R ?ISCHEMA?R
نام اسکیمای ذخیره‌سازی جدول مربوط به وضعیت همانندسازی
?B--schema?R ?ISCHEMA?R
نام اسکیما برای پایگاه داده

?B--osm-file?R ?IFILE?R
دریافت اطلاعات همانندسازی از فایل مشخص‌شده.
?B--server?R ?IURL?R
استفاده از سرور همانندسازی در نشانی URL داده‌شده
?B--start-at?R ?ITIME?R
زمان شروع همانندسازی. در صورت ارائه برچسب زمان مطلق (در قالب ISO)، از آن استفاده می‌شود. اگر یک عدد ارائه شود، همانندسازی به تعداد آن دقیقه‌ها پیش از تاریخ شناخته‌شده پایگاه داده آغاز خواهد شد.

usage: osm2pgsql-replication update update [options] [-- param [param ...]]

بارگیری داده‌های تازه در دسترس و اعمال آن‌ها بر روی پایگاه داده.

داده‌ها در تکه‌هایی به اندازه ’--max-diff-size’ مگابایت بارگیری می‌شوند. هر تکه در یک فایل موقت ذخیره شده و از آنجا با osm2pgsql وارد می‌شود. فایل موقت معمولاً پس از پایان کار حذف می‌شود، مگر اینکه مکان صریحی با ’--diff-file’ مشخص کرده باشید. به محض به‌روز شدن پایگاه داده با منبع همانندسازی، فرآیند به‌روزرسانی با کد 0 خارج می‌شود.

هر آرگومان اضافی برای osm2pgsql باید بعد از ’--’ آورده شود. پارامترهای پایگاه داده و پیشوند به osm2pgsql منتقل می‌شوند و نیازی به تکرار آن‌ها نیست. گزینه‌های ’--append’ و ’--slim’ نیز همیشه به صورت خودکار اضافه خواهند شد.

از پارامتر ’--post-processing’ برای اجرای یک اسکریپت پس از اجرای موفقیت‌آمیز osm2pgsql استفاده کنید. اگر به‌روزرسانی‌ها به دلیل رسیدن به سقف حداکثر حجم داده‌های دانلودشده شامل چندین دور اجرا باشند، اسکریپت پس از هر بار اجرای osm2pgsql اجرا می‌شود. اگر پردازش پسین (post-processing) شکست بخورد، کل عملیات به‌روزرسانی به عنوان شکست در نظر گرفته شده و اطلاعات همانندسازی به‌روز نمی‌شود. این بدان معناست که در اجرای بعدی 'update'، دانلود مجدد تفاوت‌ها (diffs) و اعمال دوباره آن‌ها روی پایگاه داده از سر گرفته خواهد شد. این کار معمولاً بی‌خطر است. این اسکریپت دو پارامتر دریافت می‌کند: شناسه توالی (sequence ID) و برچسب زمان آخرین اجرای موفق. در موارد نادری که سرویس همانندسازی پس از دانلود به‌روزرسانی‌ها پاسخ ندهد، ممکن است برچسب زمان وجود نداشته باشد.

?Bparam?R
پارامترهای اضافی برای ارسال به osm2pgsql.

?B--diff-file?R ?IFILE?R
فایلی برای ذخیره تغییرات پیش از اعمال آن‌ها روی osm2pgsql.
?B--max-diff-size?R ?IMAX_DIFF_SIZE?R
حداکثر حجم داده برای بارگیری بر حسب مگابایت (پیش‌فرض: 500MB)
?B--osm2pgsql-cmd?R ?IOSM2PGSQL_CMD?R
مسیر دستور osm2pgsql
?B--once?R
اجرای به‌روزرسانی‌ها تنها یک بار، حتی اگر داده‌های بیشتری در دسترس باشد.
?B--post-processing?R ?ISCRIPT?R
اسکریپت پس‌پردازش برای اجرا پس از هر بار اجرای osm2pgsql.

?B-q?R, ?B--quiet?R
تنها پیام‌های خطا چاپ شوند
?B-v?R, ?B--verbose?R
افزایش جزئیات خروجی

آرگومان‌های زیر می‌توانند برای تنظیم پارامترهای اتصال به پایگاه داده osm2pgsql استفاده شوند. همچنین می‌توانید از متغیرهای محیطی libpq برای تنظیم پارامترهای اتصال استفاده کنید؛ پیوند https://www.postgresql.org/docs/current/libpq-envars.html را ببینید. اگر اتصال پایگاه داده شما نیاز به گذرواژه دارد، از یک فایل pgpass استفاده کنید؛ پیوند https://www.postgresql.org/docs/current/libpq-pgpass.html را ببینید.

?B-d?R ?IDB?R, ?B--database?R ?IDB?R
نام پایگاه داده PostgreSQL برای اتصال یا رشته conninfo
?B-U?R ?INAME?R, ?B--username?R ?INAME?R, ?B--user?R ?INAME?R
نام کاربری PostgreSQL
?B-H?R ?IHOST?R, ?B--host?R ?IHOST?R
نام میزبان سرور پایگاه داده یا مسیر سوکت
?B-P?R ?IPORT?R, ?B--port?R ?IPORT?R
پورت سرور پایگاه داده
?B-p?R ?IPREFIX?R, ?B--prefix?R ?IPREFIX?R
پیشوند نام جداول (پیش‌فرض 'planet_osm')
?B--middle-schema?R ?ISCHEMA?R
نام اسکیمای ذخیره‌سازی جدول مربوط به وضعیت همانندسازی
?B--schema?R ?ISCHEMA?R
نام اسکیما برای پایگاه داده

usage: osm2pgsql-replication status [-h] [-q] [-v] [-d DB] [-U NAME] [-H HOST]
[-P PORT] [-p PREFIX]
[--middle-schema SCHEMA] [--schema SCHEMA]
[--json]

چاپ اطلاعات وضعیت فعلی همانندسازی، به صورت اختیاری در قالب JSON.

نمونه خروجی:


2021-08-17 15:20:28 [INFO]: Using replication service 'https://planet.openstreetmap.org/replication/minute', which is at sequence 4675115 ( 2021-08-17T13:19:43Z )
2021-08-17 15:20:28 [INFO]: Replication server's most recent data is <1 minute old
2021-08-17 15:20:28 [INFO]: Local database is 8288 sequences behind the server, i.e. 5 day(s) 20 hour(s) 58 minute(s)
2021-08-17 15:20:28 [INFO]: Local database's most recent data is 5 day(s) 20 hour(s) 59 minute(s) old

با استفاده از گزینه ’--json’، وضعیت به صورت یک شیء JSON چاپ می‌شود:


{
"server": {
"base_url": "https://planet.openstreetmap.org/replication/minute",
"sequence": 4675116,
"timestamp": "2021-08-17T13:20:43Z",
"age_sec": 27
},
"local": {
"sequence": 4666827,
"timestamp": "2021-08-11T16:21:09Z",
"age_sec": 507601
},
"status": 0
}

اگر مشکلی در دریافت وضعیت وجود نداشته باشد، مقدار ’status’ برابر با 0 است؛ مقادیر 1 و 2 نشانه همانندسازی نادرست پیکربندی‌شده است و 3 برای مشکلات شبکه است. اگر وضعیت بزرگتر از 0 باشد، کلید ’error’ یک پیام خطا (به صورت رشته) خواهد بود. ’status’ به عنوان کد خروج استفاده می‌شود.

مقدار ’server’ وضعیت فعلی سرور همانندسازی است؛ ’sequence’ شماره توالی آن است، ’timestamp’ زمان آن، و 'age_sec' قدمت داده‌ها بر حسب ثانیه است.

مقدار ’local’ وضعیت سرور محلی شماست.

?B--json?R
خروجی دادن وضعیت در قالب JSON.

?B-q?R, ?B--quiet?R
تنها پیام‌های خطا چاپ شوند
?B-v?R, ?B--verbose?R
افزایش جزئیات خروجی

آرگومان‌های زیر می‌توانند برای تنظیم پارامترهای اتصال به پایگاه داده osm2pgsql استفاده شوند. همچنین می‌توانید از متغیرهای محیطی libpq برای تنظیم پارامترهای اتصال استفاده کنید؛ پیوند https://www.postgresql.org/docs/current/libpq-envars.html را ببینید. اگر اتصال پایگاه داده شما نیاز به گذرواژه دارد، از یک فایل pgpass استفاده کنید؛ پیوند https://www.postgresql.org/docs/current/libpq-pgpass.html را ببینید.

?B-d?R ?IDB?R, ?B--database?R ?IDB?R
نام پایگاه داده PostgreSQL برای اتصال یا رشته conninfo
?B-U?R ?INAME?R, ?B--username?R ?INAME?R, ?B--user?R ?INAME?R
نام کاربری PostgreSQL
?B-H?R ?IHOST?R, ?B--host?R ?IHOST?R
نام میزبان سرور پایگاه داده یا مسیر سوکت
?B-P?R ?IPORT?R, ?B--port?R ?IPORT?R
پورت سرور پایگاه داده
?B-p?R ?IPREFIX?R, ?B--prefix?R ?IPREFIX?R
پیشوند نام جداول (پیش‌فرض 'planet_osm')
?B--middle-schema?R ?ISCHEMA?R
نام اسکیمای ذخیره‌سازی جدول مربوط به وضعیت همانندسازی
?B--schema?R ?ISCHEMA?R
نام اسکیما برای پایگاه داده

* وبگاه osm2pgsql (https://osm2pgsql.org) * راهنمای کاربردی osm2pgsql (https://osm2pgsql.org/doc/manual.html)

2.3.1