Більше

ArcSDE 10 та PostgreSQL 8.3 проти 8.4


Нещодавно ми оновили наш екземпляр ArcSDE 9.3 до ArcSDE 10. Я сподівався одночасно оновити postgresql 8.3 до 8.4. Хоча ArcSDE 10 підтримує 8.4, виявляється, що майстри ArcSDE цього не роблять. Все потрібно робити через командний рядок. Я закликав дотримуватися 8.3, щоб було легше. Я пропускаю? Хтось має досвід роботи з 8.3 проти 8.4 в ArcSDE, якщо так, то що ви думаєте?


Ви з геометрією postGIS чи ESRI?


Хоча я не можу допомогти вам у порівнянні функцій, я бачу, що є деякі сценарії, які полегшують процес оновлення.

http://wiki.debian.org/DebianGis/UpdatingPostGIS


Оновлення Postgre 8.4 до 9.1 на Ubuntu (Linux під ключ)

Я намагаюся змусити Postgre 9.1 працювати, тому що мені потрібні функції, доступні у версії 2.0 PostGIS. Linux під ключ пропонує пристрій Postgre 8.4, який чудово працює і навіть має вбудований PostGIS. Але це лише версія 1.2.

Я слідував цьому посібнику, який в основному показував, як я можу встановити 9.1 через apt-get, який, здається, спрацював: http://netadminlinux.blogspot.com/2011/11/installing-postgresql-91-on-ubuntu-1104.html

Моя проблема зараз у тому, що хоча встановлено 8.4 та 9.1, я, здається, можу отримати доступ лише до 8.4. Я встановив pgadmin3, але не знаю, як до нього отримати доступ, оскільки за замовчуванням прилад під ключ налаштований для розміщення pgadmin2.

у /etc/init.d/ є два записи, postgres-8.4. і постгреси. Я вважаю, що другий - це екземпляр 9.1, і я навіть можу запустити його за допомогою /etc/init.d/postgres start. Я спробував вимкнути екземпляр 8.4, а потім запустити 9.1. але коли я намагаюся використовувати psql командного рядка для доступу до сервера, я отримую таке повідомлення:

psql: не вдалося підключитися до сервера: такого файлу чи каталогу немає

Що мені потрібно зробити для мого нового екземпляра 9.1, щоб він працював? Які етапи після інсталяції я, здається, пропустив?


Postgres95

У 1994 році Ендрю Ю та Джолі Чен додали перекладач мови SQL до POSTGRES. Пізніше під новою назвою Postgres95 був опублікований у мережі, щоб знайти свій власний шлях у світі як нащадок відкритого коду оригінального коду POSTGRES Берклі.

Код Postgres95 був повністю ANSI C і обрізаний за розміром на 25%. Багато внутрішніх змін покращили продуктивність та ремонтопридатність. Випуск Postgres95 1.0.x працював приблизно на 30-50% швидше за тестом штату Вісконсін порівняно з POSTGRES, версія 4.2. Окрім виправлення помилок, основними удосконаленнями були наступні:

Для інтерактивних запитів SQL була надана нова програма (psql), яка використовувала GNU Readline. Це значною мірою замінило стару програму монітора.

Інтерфейс великих об’єктів був відремонтований. Інверсія великих об’єктів була єдиним механізмом зберігання великих об’єктів. (Файлову систему інверсії видалено.)

Система правил на рівні екземпляра була видалена. Правила все ще були доступні як правила переписування.


Відновлення дампа Postgres 8.3 у 8.4

Мені потрібно перемістити базу даних PostgreSql з 8.3 Windows на 8.4, що працює під управлінням Linux (Ubuntu Server 12.04).

Очевидно, відновлення нормальне, але коли я намагаюся показати дані у своїй програмі, я отримую повідомлення про помилку, що деякі символи не підтримуються у кодуванні WIN1252.

Початкова база даних має такі властивості:

Кодування: WIN1252 LC_CTYPE: English_United States.1252 LC_COLLATE: English_United States.1252

Я можу відновити базу даних за допомогою LC_CTYPE = "C" та LC_COLLATE = "C", таким чином я отримую непідтримувані символи у моїй програмі.

Якщо я спробую створити базу даних за допомогою цієї команди:

Перш за все, як я можу дозволити своєму О.С. включити цю регіональну конфігурацію ?.


Наш Блог

Metasploit використовував повідомлення про помилки, надані сервером PostgreSQL, щоб з'ясувати версію без фактичного входу та видачі команди "SELECT version ()". Оригінальна стаття знаходиться за адресою http://blog.metasploit.com/2010/02/postgres-fingerprinting.html і її варто прочитати. Я зачекаю.

Основна ідея полягає в тому, що оскільки версія 3 протоколу Postgres надає вам файл і номер рядка, в якому генерується помилка, ви можете використовувати цю інформацію, щоб з'ясувати, яка версія Postgres запущена, оскільки номери рядків змінюються від версії до версії. По суті, кожна версія Postgres виявляє у своєму повідомленні про помилку достатньо даних, щоб відбитки пальців. Це був акуратний маленький трюк, і я хотів більше дослідити його сам. Першим кроком було написання швидкого сценарію Perl для підключення та виведення рядка помилки. Оригінальний скрипт Metasploit зосереджений на невдалих спробах входу, але після деяких експериментів я знайшов більш простий спосіб - надіслати недійсний номер протоколу (Postgres очікує "2.0" або "3.0"). Надсилання стартового пакета з недійсним протоколом “3.1” повернуло мені такий рядок:

Важливою частиною рядка були частини, що вказують на файл і номер рядка:

У цьому випадку ми чітко бачимо, що рядок 1507 postmaster.c видавав помилку. Після запуску ще кількох версій Postgres та запису номерів рядків я виявив, що всі версії з 7.3 потрапляють на той самий шматок коду з postmaster.c:

Номери рядків, безумовно, були різними в основних версіях Postgres (наприклад, 8,2 проти 8,3), і навіть іноді були різними в усіх версіях. Замість того, щоб запускати всі можливі версії Postgres і запускати свою програму проти нього, я просто скористався тегами cvs (він же символічними назвами) і зробив це:

Це показало мені, що рядок трапився у рядку 1497 postmaster.c. Я створив екземпляр Postgres і переконався, що номер рядка однаковий. На той момент було дуже просто створити скрипт bash, щоб він захопив усі випуски з 7.3 і склав вичерпний список того, коли цей рядок змінювався з версії на версію.

Як тільки це було зроблено, я перетворив усе це на новий сценарій Perl під назвою “detect_postgres_version.pl”. Ось сценарій, розбитий на частини для пояснення. Посилання на весь сценарій знаходиться внизу допису.

По -перше, ми робимо деякі стандартні сценарії Perl і читаємо їх у ДАНІ розділ у нижній частині скрипта, у якому вказано, у якій версії повідомлення змінилося:

Далі, ми надаємо сценарію кілька опцій: порт і хост. Ми будемо використовувати за замовчуванням сокет Unix, якщо хост не встановлено, а за замовчуванням - порт 5432, якщо жодного не вказано:

Ми готові до підключення, використовуючи дуже стандартний модуль IO :: Socket. Якщо хост починається з косою рискою, ми припускаємо, що це каталог unix_socket_directory і замінюємо розташування за замовчуванням "/tmp":

Тепер ми готові фактично надіслати щось через нашу нову розетку. Postgres очікує, що стартовий пакет буде у певному форматі. Ми будемо дотримуватися цього формату, але надішлемо йому недійсний номер протоколу, 3.1. Інша інформація насправді не має значення, але ми також скажемо, що ми підключаємося як користувач "pg". Нарешті, ми читаємо повідомлення назад, витягуємо файл і номер рядка і розсилаємо їх користувачеві:

Нарешті, ми намагаємось зіставити отриманий файл і номер рядка з версією PostgreSQL, з якої він прийшов. Якщо файл не розпізнається або номер рядка невідомий, ми допомагаємо завчасно:

Якщо для цього рядка та номера файлу є лише один результат, ми можемо вказати, що це таке, і вийти.

Однак у більшості випадків ми не знаємо точної версії аж до перегляду після другої крапки, тому ми зазначимо, що таке основна версія, та всі можливі зміни:

Залишається лише розділ ДАНІ, який я покажу тут, щоб бути повним:

(Оскільки версія 9.0 ще не випущена, її номер рядка все ще може змінитися.)

Я виявив, що ця конкретна помилка протоколу є хорошою, оскільки немає перекриття номерів рядків у основних версіях. Із приблизно 125 різних версій, випущених з 7.3.0, лише 6 є досить унікальними, щоб ідентифікувати їх за точної версії. Це нормально для цієї ітерації сценарію. Якщо ви хочете знати точну версію, ви можете спробувати інші помилки, такі як недійсний логін, як це робить код metasploit.

Повний код можна прочитати тут: detect_postgres_version.pl

Я виступлю пізніше цього тижня на PgCon 2010, тож привіт, якщо побачиш мене там. Напевно, я також виступлю блискавично.


2 відповіді 2

Проста відповідь: вам потрібно pg_dump, встановити свіжу версію 8.4, а потім завантажити.

Немає такої простої відповіді - ви можете скористатися pg_migrator для оновлення бінарних файлів замість цього, але я його ще не перевірив.

Я пробував pg_migrator і:

Остання версія (8.4.11) не підходить для мого міграційного тесту - вона дозволяє міграцію до 8.5, але мені потрібна міграція до 8.4.2.

Виконання перевірок узгодженості Перевірка старого каталогу даних (c: програмні файли postgresql 8.3 дані) ок Перевірка нового каталогу даних (c: програмні файли postgresql 8.4 дані) ок

Цей двійковий файл був побудований з використанням 8.5 джерел PostgreSQL, він повинен бути побудований з використанням джерел 8.4 PostgreSQL, щоб відповідати новому кластеру.

але. на домашній сторінці pg_migrator немає інформації, яка версія мігратора для якої цільової версії Postgres. Я завантажив і встановив v8.4.4, і це здається правильною версією, але ось що я кажу:

зіставлений код помилки win32 з 2 по 2 старі та нові типи зберігання дати/часу pg_controldata не збігаються.

Вам потрібно буде відновити новий сервер за допомогою configure --disable-integer-datetimes або отримати двійкові файли сервера, створені з цими параметрами.

Отже, це не так автоматично для мене. Я думаю, що старий класичний pg_dump / restore буде краще.


Загальний огляд MySQL та PostgreSQL

Інтегруйте свої дані вже сьогодні!

Спробуйте Xplenty безкоштовно протягом 14 днів. Кредитна картка не потрібна.

MySQL: Загальний огляд

Як найпопулярніша у світі СУБД-у 2019 році її використовують 39% розробників-MySQL-це швидка, надійна, універсальна система управління реляційними базами даних. Хоча він не має широких можливостей PostgreSQL, він чудово підходить для широкого спектра додатків - особливо для веб -додатків.

Фактично, MySQL-це найкращий вибір для масштабованих веб-додатків-частково тому, що він стандартний у стеку LAMP (набір веб-програм з відкритим кодом, що складається з Linux, HTTP-сервера Apache, MySQL та PHP). Крім того, популярні системи управління контентом, такі як Drupal, Joomla та WordPress, покладаються на MySQL, тому ви знайдете MySQL практично скрізь у мережі.

Ось деякі додаткові характеристики MySQL :

  • Відкрите джерело: MySQL - це безкоштовна система управління реляційними базами даних з відкритим вихідним кодом (RDBMS).
  • Довга історія: MySQL вперше став доступний з 1995 року.
  • Ведеться Oracle: Oracle володіє та обслуговує MySQL, а також пропонує преміальні (платні) версії MySQL з додатковими сервісами, фірмовими плагінами, розширеннями та підтримкою користувачів.
  • Спільнота підтримки: Віддана спільнота добровольців готова допомогти з усуненням несправностей, коли це необхідно.
  • Стабільний і надійний:Користувачі сходяться на думці, що MySQL - це дуже стабільна СУБД, до тих пір, поки ви зберігаєте свої бази в «охайності» та виконуєте регулярне обслуговування.
  • Особливості MVCC: Тепер MySQL пропонує багатоверсійні функції контролю паралельності (MVCC). Функція, за якою PostgreSQL більш відомий (про це ми поговоримо нижче).
  • Часті оновлення: MySQL отримує переваги від частих оновлень з новими функціями та покращеннями безпеки. Останнє оновлення - версія 8.0.16 25 квітня 2019 року.
  • Рейтинг 4,3 зірки: MySQL має рейтинг 4,3 зірки (із 5 зірок) на основі 1261 відгуків на G2Crowd.

MySQL - це безкоштовна, стабільна система управління базами даних з відкритим вихідним кодом, яку можна використовувати у виробничих програмах. Це легка база даних, яку розробники можуть встановлювати та використовувати на серверах виробничих додатків з великими багаторівневими програмами, а також на робочому столі. Його можна встановити на всі платформи, такі як Windows, Linux та Mac. Він безпечний і не вразливий до будь -яких вразливостей безпеки.

MySQL може похвалитися деякими відомими користувачами:

  • Facebook
  • Google
  • Flickr
  • GitHub
  • НАСА
  • Netflix
  • Spotify
  • Тесла
  • Twitter
  • Uber
  • ВМС США
  • WeChat
  • Вікіпедія
  • YouTube
  • Zappos
  • Zendesk

Для отримання додаткової інформації про власний роз'єм MySQL Xplenty відвідайте нашу сторінку інтеграції.

Інтегруйте свої дані вже сьогодні!

Спробуйте Xplenty безкоштовно протягом 14 днів. Кредитна картка не потрібна.

PostgreSQL: загальні характеристики

PostgreSQL сприймається як вихідне рішення для виконання складних операцій над даними. Це тому, що PostgreSQL краще справляється з надзвичайними ситуаціями з базами даних (про це ми поговоримо пізніше).

PostgreSQL «має більше можливостей», ніж інші системи управління базами даних (це підтверджують користувачі). Крім того, PostgreSQL розширюється, "оскільки його робота керується каталогом". Іншими словами, він не просто зберігає інформацію про таблиці та стовпці, він дозволяє визначати типи даних, типи індексів та функціональні мови.

Додатковими моментами, що відрізняють PostgreSQL, є той факт, що він об’єктно-реляційний, сумісний з ACID, дуже одночасний і пропонує підтримку NoSQL (чесно кажучи, MySQL також пропонує підтримку NoSQL з Версії 8.0).

Нарешті, хоча PostgreSQL і не є найпопулярнішою системою баз даних у світі, проте останні два роки вона виграла премію «База даних року» як найшвидше зростаюча СУБД.

Ось деякі додаткові характеристики PostgreSQL :

  • Відкрите джерело: PostgreSQL-це безкоштовна система управління об'єктно-реляційними базами даних (ORDBMS) з відкритим вихідним кодом. Будучи ORDBMS, а не RDBMS, PostgreSQL дозволяє функціонувати як об'єктно-орієнтовану, так і реляційну базу даних.
  • Налаштовується: Ви можете налаштувати PostgreSQL, розробивши плагіни, щоб СУБД відповідала вашим вимогам. PostgreSQL також дозволяє включати власні функції, створені з іншими мовами програмування, такими як C/C ++, Java тощо.
  • Довга історія: PostgreSQL доступний з 1988 року.
  • Часті оновлення: Останнє оновлення PostgreSQL було Версія 11.3 9 травня 2019 року.
  • Ліберальна ліцензія з відкритим кодом: PostgreSQL має щедру ліцензію з відкритим кодом, яка дозволяє використовувати, змінювати та розповсюджувати СУБД так, як вам заманеться.
  • Особливості MVCC: PostgreSQL була першою СКБД, яка реалізувала функції багатоверсійного контролю паралельності (MVCC).
  • Спільнота підтримки: Віддана спільнота розробників та волонтерів готова допомогти, коли це буде потрібно. Також доступні приватні послуги сторонньої підтримки. Ця ж спільнота підтримує PostgreSQL та оновлює платформу через Групу глобального розвитку PostgreSQL.
  • 4,4-зірковий рейтинг: Має 4,4-зірковий відгук (із 5 зірок) із 415 відгуків на G2Crowd.

Ось чудовий підсумок PostgreSQL від користувача G2Crowd:

PostgreSQL-один з найцікавіших варіантів у реляційних базах даних з відкритим вихідним кодом. Він безкоштовний ... крім того, сьогодні він пропонує багато розширених опцій. Фактично, він вважається найдосконалішим механізмом баз даних на сьогодні. У Postgres немає необхідності використовувати блокування читання під час здійснення транзакції, що дає нам більшу масштабованість. Крім того, цим інструментом не керує особа чи компанія, а спільнота розробників, що допомагає нам полегшити та пришвидшити нашу роботу.

  • Apple
  • БіоФарм
  • Cisco
  • Debian
  • Etsy
  • Facebook
  • Fujitsu
  • IMDB
  • Instagram
  • Macworld
  • червоний капелюх
  • Skype
  • Spotify
  • Мікросистема Сонця
  • Yahoo

Для отримання додаткової інформації про рідний роз'єм PostgreSQL Xplenty відвідайте нашу сторінку інтеграції.

Інтегруйте свої дані вже сьогодні!

Спробуйте Xplenty безкоштовно протягом 14 днів. Кредитна картка не потрібна.


9.1. Вступ до серверів баз даних

Сервер баз даних - це служба, яка надає можливості системи управління базами даних (СУБД). СУБД надає утиліти для адміністрування баз даних та взаємодіє з кінцевими користувачами, програмами та базами даних.

Red Hat Enterprise Linux 8 пропонує такі системи управління базами даних:

  • MariaDB 10.3
  • MariaDB 10.5 - доступно з RHEL 8.4
  • MySQL 8.0
  • PostgreSQL 10
  • PostgreSQL 9.6
  • PostgreSQL 12 - доступний з RHEL 8.1.1
  • PostgreSQL 13 - доступний з RHEL 8.4

ArcSDE 10 та PostgreSQL 8.3 проти 8.4 - Геоінформаційні системи

Мова підтримка - це програма, що поважає культурні уподобання щодо алфавіту, сортування, форматування чисел тощо. PostgreSQL використовує стандартні можливості локалі ISO C та POSIX, які надає операційна система сервера. Для отримання додаткової інформації зверніться до документації вашої системи.

23.1.1. Огляд

Підтримка локалі автоматично ініціалізується, коли кластер бази даних створюється за допомогою initdb. initdb ініціалізує кластер бази даних із налаштуваннями локалі середовища його виконання за замовчуванням, тому, якщо ваша система вже налаштована на використання потрібної вам локалі у вашому кластері бази даних, вам нічого не потрібно робити. Якщо ви хочете використовувати іншу локаль (або ви не впевнені, для якої локалі встановлено вашу систему), ви можете вказати initdb, яку саме локаль використовувати, вказавши параметр --locale. Наприклад:

У цьому прикладі для систем Unix встановлено локаль на шведську (sv), як це сказано у Швеції (SE). Інші можливості можуть включати en_US (американська англійська) та fr_CA (французька канадська). Якщо для локалі можна використовувати кілька наборів символів, то специфікації можуть мати вигляд language_territory.codeset . Наприклад, fr_BE.UTF-8 представляє французьку мову (fr), якою розмовляють у Бельгії (BE), з кодуванням набору символів UTF-8.

Які локалі доступні у вашій системі під якими іменами, залежить від того, що надав постачальник операційної системи та що було встановлено. У більшості систем Unix команда locale -a надасть список доступних мов. Windows використовує більш детальні назви локалей, наприклад German_Germany або Swedish_Sweden.1252, але принципи ті ж.

Іноді корисно змішати правила з кількох мов, наприклад, використовувати правила порівняння англійською мовою, але повідомлення іспанською мовою. На підтвердження цього існує набір підкатегорій мовних стандартів, які контролюють лише певні аспекти правил локалізації:

LC_COLLATE Порядок сортування рядків
LC_CTYPE Класифікація символів (Що таке буква? Її еквівалент у верхньому регістрі?)
LC_MESSAGES Мова повідомлень
LC_MONETARY Форматування валютних сум
LC_NUMERIC Форматування чисел
LC_TIME Форматування дати та часу

Назви категорій перетворюються на назви параметрів initdb, щоб замінити вибір локалі для певної категорії. Наприклад, щоб встановити локаль на французько-канадську, але використовувати правила США для форматування валюти, використовуйте initdb --locale = fr_CA --lc-monetar = en_US.

Якщо ви хочете, щоб система поводилася так, ніби вона не підтримує локалі, використовуйте спеціальну назву локалі C або еквівалентно POSIX.

Під час створення бази даних для деяких категорій мов потрібно виправити свої значення. Ви можете використовувати різні налаштування для різних баз даних, але після створення бази даних ви більше не зможете змінити їх для цієї бази даних. LC_COLLATE та LC_CTYPE - це ці категорії. Вони впливають на порядок сортування індексів, тому їх потрібно тримати фіксованими, інакше індекси в текстових стовпцях стануть пошкодженими. (Але ви можете послабити це обмеження за допомогою зіставлення, як обговорюється в Розділі 23.2.) Значення за замовчуванням для цих категорій визначаються під час запуску initdb, і ці значення використовуються при створенні нових баз даних, якщо інше не вказано в команді CREATE DATABASE.

Інші категорії локалі можна змінювати, коли завгодно, встановлюючи параметри конфігурації сервера, які мають таку ж назву, що і категорії локалей (докладніше див. Розділ 19.11.2). Значення, які обирає initdb, насправді записуються лише у файл конфігурації postgresql.conf, щоб служити за замовчуванням при запуску сервера. Якщо видалити ці призначення з postgresql.conf, то сервер успадкує налаштування з середовища виконання.

Зауважте, що поведінка локалі сервера визначається змінами середовища, які бачить сервер, а не середовищем будь -якого клієнта. Тому перед запуском сервера будьте обережні, щоб налаштувати правильні параметри локалі. Наслідком цього є те, що якщо клієнт і сервер налаштовані в різних мовах, повідомлення можуть з'являтися різними мовами залежно від того, звідки вони походять.

Коли ми говоримо про успадкування локалі від середовища виконання, це означає наступне у більшості операційних систем: Для певної категорії локалі, скажімо зіставлення, такі змінні середовища звертаються в такому порядку, поки не буде встановлено, що одна встановлена: LC_ALL, LC_COLLATE (або змінна, що відповідає відповідній категорії), LANG. Якщо жодна з цих змінних середовища не встановлена, то за замовчуванням для локалі - C.

Деякі бібліотеки локалізації повідомлень також розглядають змінну середовища LANGUAGE, яка замінює усі інші параметри локалі з метою встановлення мови повідомлень. Якщо є сумніви, зверніться до документації вашої операційної системи, зокрема до документації про gettext.


1 Відповідь 1

У коментарях стверджувалося, що модератори в GIS SE відіграли велику роль у закритті запитань, ніж у спільноти, тоді як на інших сайтах Stack Exchange (Stack Overflow SE, Mathematics SE та Administrator Database SE) все навпаки:

Я не вірю, що ми можемо порівняти ГІС із переповненням стека та математикою, оскільки вони є набагато більшими спільнотами, ніж ГІС. У таких спільнотах питома вага модератора набагато більша:

Cross Validated (CV) SE був доданий до аналізу, який є сайтом, у якому я брав участь, і має більш -менш розмір ГІС.

Тепер давайте подивимось на вплив кожного актора на завершення, з показниками, стандартизованими за кількістю запитань у 2018 році:

Дані не є остаточними. Модератори з GIS SE закривають набагато більше питань, ніж моди в DBA, і значно менше, ніж моди в CV. Те саме стосовно спільноти, але з зворотним порядком (найбільше закривається спільнота DBA, потім ГІС та резюме). Усі 3 веб -сайти закривають більше 20% та менше 30% питань стосовно запитань, поставлених у 2018 році.

Щодо DBA SE, Я почав брати участь там нещодавно як глядач. Я знаю, що хлопці люблять підтримувати високий коефіцієнт сигнал / шум у вмісті, вони іноді рекламують кампанії з видалення вмісту з великою участю громадськості (див. Тут і тут, наприклад). Це допомагає пояснити, чому там «спільнота» закривається набагато більше стосовно модераторів. Вони також мають найнижчий коефіцієнт "закриття черги голосів від спільноти" (голоси, подані у черзі огляду) на "закриті запитання від спільноти" (4.2), що означає, що вони більш ретельно подають "закриті" голоси (а не "залишають відкритими" 'голосів), ніж у ГІС та резюме.

Про CV SE Колись я там був активним. Найвищий коефіцієнт серед "закритої черги голосів" (спільнота) на "закриті запитання" (спільнота) узгоджується з моїм відчуттям, що багато користувачів вважали пріоритетом вітати новачків, а не тримати високий рівень шуму у вмісті. У мене є гіпотеза, що така поведінка мала побічний ефект, який перевантажив модераторів, відповідальних за закриття більшості своїх питань у 2018 році (23,2% проти 5,9% від громади). Крім того, для тих, хто цікавиться, CV має третій найгірший рівень відповідей (частка відповідей на запитання) у всій мережі Stack Exchange (близько 62%, вони визнають, що це для них така проблема, як ГІС та DBA мають 80%).

Я визнав, що дані, використані для цієї дискусії, є непереконливими, але моя особиста думка така модератори в GIS SE роблять хорошу роботу щодо «закриття» і що спільнота може зробити більше.

Іноді мод закриває питання в односторонньому порядку як незрозумілий, і якщо я розумію його і хочу опублікувати відповідь (враховуючи те, що питання Q відповідає темі), я зазвичай отримую позитивний відгук про повторне відкриття. Коментарі на користь повторного відкриття з поясненням, чому його взагалі не слід було закривати, також можуть спрацювати.

Ще одна річ, яку ми могли б зробити краще, на мою думку, - це зв’язати дублюючі запитання частіше у популярних тегах є багато незакритих кодів, наприклад, r (лише 2,5%закритих кодів), postgresql (2,3%) / постгіс (2,6%), геосервер (3%) тощо. Порівняйте з тегами (які Я вважаю еталонами) qgis (5,5%), arcgis-desktop (4,7%), lidar (10,4%). І ще одна цікава річ щодо qgis (наш головний тег): у нього є 8 користувачів із значками золотого тега (жоден інший тег не має такої кількості «золотих користувачів»), які можуть односторонньо закривати запитання як дублікати, але жоден з них не займає перше місце черга перегляду (тобто це не допомагає пояснити 5,5%).

Шаблон голосування серед користувачів буде відрізнятися, що очікується (люди розходяться/не погоджуються, тому існує пороговий показник підрахунку голосів до прийняття рішення про закриття чи залишення відкритого питання). Але у мене є підозра, що є принаймні один випадок робо перегляд в ГІС SE, яка впливає/перекошує наші дані з цього приводу. Невеликі сайти не мають аудиторських перевірок, таких як у Stack Overflow, і було б добре, якби вони у нас були.

Кліше в Stack Exchange - це те, що ми всі добровольці (правда), кожен робить все можливе, і ми йдемо далі.


Установка postgresql: каталог даних initdb не порожній?

Initdb слід запускати лише один раз. Він створить каталог, де ви будете зберігати файли конфігурації та (зазвичай) фактичну базу даних. Ви, очевидно, вже зробили це вже інакше, не було б для вас редагування pg_hba.conf.

Отже, просто не запускайте postgresql initdb знову, якщо ви не виконуєте повну перевстановлення.

Якщо ви повністю витираєте та підсилюєте перевстановлення бази даних Postgres, під час запуску initdb, наприклад:

служба postgresql -9.2 initdb -E 'UTF8' --pgdata = "/foo/bar/"

Ви можете зіткнутися з такою помилкою служби:

Каталог даних не порожній! [НЕВИНАЖЕНО]

Щоб це виправити (а це ядерний варіант - усі дані db стираються!)

На Amazon Linux (2014-x):

На CentOS (6.x)

Тепер спробуйте команду initdb ще раз, і цього разу вона повинна запрацювати:

служба postgresql-9.2 initdb

На системних системах, таких як RHEL/CentOS 7 і Fedora, процедура запуску initdb дещо відрізняється. Це більше не робиться скриптами init (яких більше не існує), а нова процедура набагато ближче до інструкцій вищого рівня.

Ви повинні спочатку su користувача postgres, а потім запустити initdb або pg_ctl initdb. Не потрібно надавати каталог даних, якщо ви використовуєте збірку Red Hat, оскільки за замовчуванням вона автоматично вибирає каталог даних за умовчанням/var/lib/pgsql.

Звичайно, ви робите це лише один раз при першій установці, щоб налаштувати каталог початкових даних. Ви не зробили б цього знову, поки не створите абсолютно нову установку або не відновитесь після катастрофи.


Подивіться відео: Секционирование таблиц PostgreSQL. Бесплатный урок OTUS (Вересень 2021).