ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с Microsoft SQL Server Π½Π° PostgreSQL Π² соврСмСнной инфраструктурС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ становится Π½ΠΎΡ€ΠΌΠΎΠΉ для ΠΌΠ½ΠΎΠ³ΠΈΡ… прСдприятий, стрСмящихся ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ расходы Π½Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Однако простая установка Π‘Π£Π‘Π” Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. БистСма PostgreSQL ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ настроСна Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ использованиС ΠΈ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ спСцифику Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ 1Π‘, Π³Π΄Π΅ критичСски Π²Π°ΠΆΠ½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи ΠΈ транзакционная Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ.

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ вСрсия 8.3 ΠΈ Π²Ρ‹ΡˆΠ΅ с этой Π‘Π£Π‘Π” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ряд спСцифичСских дСйствий: ΠΎΡ‚ настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² обслуТивания Π΄ΠΎ измСнСния ΠΏΡ€Π°Π² доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этих этапов ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ питания. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ этапы ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ сСрвСра Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ 1Π‘.

БистСмныС трСбования ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° окруТСния

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ настройки ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ сСрвСр соотвСтствуСт ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ трСбованиям для ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ (Π΄ΠΎ 10 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ) достаточно 4-8 Π“Π‘ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Π½ΠΎ для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π±Π°Π· (Π±ΠΎΠ»Π΅Π΅ 50 ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ) рСкомСндуСтся Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 16-32 Π“Π‘ RAM. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ; использованиС ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… вСрсий Linux (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CentOS 6) ΠΈΠ»ΠΈ Windows Server 2012 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Для хранСния Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ext4 ΠΈΠ»ΠΈ XFS Π² Linux, Π»ΠΈΠ±ΠΎ NTFS Π² Windows. ИспользованиС старых Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° скорости ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Π’Π°ΠΊΠΆΠ΅ рСкомСндуСтся Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΆΡƒΡ€Π½Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ (WAL) Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ физичСском дискС ΠΈΠ»ΠΈ быстром SSD-Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ записи.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (virtio) ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Π΄ΠΎ послСднСй вСрсии, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ стандартныС эмуляторы дисков ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠ·ΠΊΠΎΠ΅ мСсто ΠΏΡ€ΠΈ интСнсивной записи Π»ΠΎΠ³ΠΎΠ² 1Π‘.

πŸ’‘

Для максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ антивирусноС сканированиС ΠΏΠ°ΠΏΠΎΠΊ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ PostgreSQL ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π»ΠΎΠ³ΠΎΠ², Π΄ΠΎΠ±Π°Π²ΠΈΠ² процСссы postgres.exe ΠΈ pg_wal Π² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Настройка Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ postgresql.conf

Основная Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ происходит Π² Ρ„Π°ΠΉΠ»Π΅ postgresql.conf. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ здСсь установлСны минимально, Ρ‡Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для рСсурсоСмких ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ этот Ρ„Π°ΠΉΠ» (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² /var/lib/pgsql/data/ ΠΈΠ»ΠΈ /etc/postgresql/) ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, соблюдая синтаксис.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ настройтС объСм выдСляСмой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ shared_buffers ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° кэш Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Для сСрвСра 1Π‘ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ считаСтся 25% ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ объСма RAM, Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 8 Π“Π‘, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½ΡƒΠΆΠ½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ work_mem, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт объСм памяти для сортировок ΠΈ Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ† Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса. Π—Π°Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ этого значСния ΠΏΡ€ΠΈ большом количСствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π½ΠΈΡŽ памяти (OOM Killer).

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ автоочистки (autovacuum). ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ MVCC Π² PostgreSQL оставляСт "ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Π΅" вСрсии строк послС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘. Если автоочистка Π½Π΅ успСваСт ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΡ…, Ρ‚Π°Π±Π»ΠΈΡ†Π° раздуваСтся, ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΏΠ°Π΄Π°Π΅Ρ‚. РСкомСндуСтся ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ shared_buffers большС 8 Π“Π‘?

ИсслСдования ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ значСниях Π²Ρ‹ΡˆΠ΅ 8 Π“Π‘ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ кэша PostgreSQL растСт Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ страниц Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя опСрационная систСма (OS Cache). ИзлишнСС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΏΠΎΠ΄ shared_buffers лишь ΠΎΡ‚Π½ΠΈΠΌΠ°Π΅Ρ‚ рСсурсы Ρƒ ОБ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ОписаниС
shared_buffers 25% RAM (max 8GB) Π Π°Π·ΠΌΠ΅Ρ€ раздСляСмого Π±ΡƒΡ„Π΅Ρ€Π° памяти
work_mem 4MB - 16MB ΠŸΠ°ΠΌΡΡ‚ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ сортировки
maintenance_work_mem 512MB - 1GB ΠŸΠ°ΠΌΡΡ‚ΡŒ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ VACUUM ΠΈ CREATE INDEX
effective_cache_size 75% RAM ΠžΡ†Π΅Π½ΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° кэша ОБ для ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°
πŸ’‘

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ effective_cache_size Π½Π΅ выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ, Π° лишь подсказываСт ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ запросов, сколько Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² кэш, Ρ‡Ρ‚ΠΎ влияСт Π½Π° Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ»Π°Π½Π° выполнСния запроса.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ клиСнтской Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (pg_hba.conf)

Π€Π°ΠΉΠ» pg_hba.conf (Host-Based Authentication) ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΊΡ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ вашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ‚ΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ часто настроСн доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сокСт, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ сСтСвыС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ строку, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ TCP/IP. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ scram-sha-256 ΠΈΠ»ΠΈ md5, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° trust Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π²Ρ…ΠΎΠ΄ Π±Π΅Π· пароля Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ IP-адрСсом, Ρ‡Ρ‚ΠΎ создаСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Π±Ρ€Π΅ΡˆΡŒ Π² бСзопасности.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

host all all 192.168.1.0/24 scram-sha-256

ПослС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ сСрвСра ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ SELECT pg_reload_conf(); ΠΈΠ»ΠΈ пСрСзапуститС слуТбу. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ listen_addresses Π² основном ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Π½Π° '*', ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ брандмауэр ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы пропускаСт Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° ΠΏΠΎΡ€Ρ‚ 5432.

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² PostgreSQL для 1Π‘?
md5
scram-sha-256
trust
cert

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² прСдзаписи (WAL)

Π–ΡƒΡ€Π½Π°Π» прСдзаписи (Write-Ahead Log) являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ΠΎΠΌ надСТности PostgreSQL. Π’ срСдС 1Π‘, Π³Π΄Π΅ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ записи Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ высока, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ настройка WAL критичСски Π²Π°ΠΆΠ½Π° для прСдотвращСния ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ обСспСчСния скорости ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ wal_level Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ replica ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, Π΄Π°ΠΆΠ΅ Ссли рСпликация ΠΏΠΎΠΊΠ° Π½Π΅ планируСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это обСспСчиваСт достаточный ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΎΠ³ΠΎΠ².

Для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ синхронизации Π½Π° диск. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ synchronous_commit ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π΅Π½ on, Ρ‡Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ замСдляСт запись. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, рСгистры накоплСния с большим объСмом Π΄Π°Π½Π½Ρ‹Ρ…) допустимо Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ local ΠΈΠ»ΠΈ off, ΠΎΠ΄Π½Π°ΠΊΠΎ это ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ риск ΠΏΠΎΡ‚Π΅Ρ€ΠΈ послСдних Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ сбоС питания. Π Π΅ΡˆΠ°ΠΉΡ‚Π΅ этот вопрос, исходя ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ бизнСса ΠΊ цСлостности Π΄Π°Π½Π½Ρ‹Ρ….

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИзмСнСниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° synchronous_commit Π½Π° off ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ рассинхронизации Π΄Π°Π½Π½Ρ‹Ρ… Π² рСгистрах 1Π‘ ΠΏΡ€ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвСра. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту настройку Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС тСстирования Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹.

Π’Π°ΠΊΠΆΠ΅ стоит Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ сСгмСнтов WAL ΠΈ частоту ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ wal_buffers рСкомСндуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ shared_buffers / 32, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 16 ΠœΠ‘. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ эффСктивнСС Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ записью Π½Π° диск.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° настроСк WAL

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа ΠΈ созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ спСцифичСских ΠΏΡ€Π°Π² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. НС рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ postgres для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ кластСра 1Π‘. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ повысит Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ упростит Π°ΡƒΠ΄ΠΈΡ‚ дСйствий.

ΠŸΡ€ΠΈ создании Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· консоль ΠΈΠ»ΠΈ pgAdmin ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° установлСна Π² UTF8, Π° порядок сортировки (collation) ΠΈ класс символов (ctype) ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΠΎΠΊΠ°Π»ΠΈ вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ru_RU.UTF-8). НСсоотвСтствиС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ символов ΠΈΠ»ΠΈ ошибкам ΠΏΡ€ΠΈ сравнСнии строк Π² запросах 1Π‘.

CREATE USER user1c WITH PASSWORD 'strong_password';

CREATE DATABASE db1c OWNER user1c ENCODING 'UTF8' LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8' TEMPLATE template0;

ПослС создания Π±Π°Π·Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. Π₯отя Π²Π»Π°Π΄Π΅Π»Π΅Ρ† Π±Π°Π·Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π°, для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, использованиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ схСм) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ явноС прСдоставлСниС ΠΏΡ€Π°Π² Π½Π° схСму public ΠΈΠ»ΠΈ установку Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ pgcrypto, Ссли ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли 1Π‘ ΠΏΠΈΡˆΠ΅Ρ‚ "Ошибка ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…"?

Π§Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ„Π°ΠΉΠ»Π΅ pg_hba.conf (Π½Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° IP) ΠΈΠ»ΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π² CREATE Π½Π° Π±Π°Π·Ρƒ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π»ΠΎΠ³ΠΈ PostgreSQL Π² ΠΏΠ°ΠΏΠΊΠ΅ log для Ρ‚ΠΎΡ‡Π½ΠΎΠΉ диагностики.

РСгулярноС обслуТиваниС ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³

Настройка PostgreSQL для 1Π‘ β€” это Π½Π΅ Ρ€Π°Π·ΠΎΠ²ΠΎΠ΅ дСйствиС, Π° Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ процСсс. Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рСгулярного обслуТивания для поддСрТания ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ VACUUM Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ бСспСрСбойно, очищая Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΎΡ‚ ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ… ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ. Π’ тяТСлых случаях, ΠΊΠΎΠ³Π΄Π° автоочистка Π½Π΅ справляСтся, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€ΡƒΡ‡Π½ΠΎΠΉ запуск VACUUM FULL, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° врСмя выполнСния.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС срСдства ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π²Ρ€ΠΎΠ΄Π΅ pg_stat_statements для отслСТивания ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов. Анализ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ мСста Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ ΠΈΠ»ΠΈ отсутствиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… индСксов. РСгулярно провСряйтС Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² WAL ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ свободного мСста Π½Π° дискС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ диска ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ остановкС Π‘Π£Π‘Π”.

  • πŸ“Š НастройтС сбор ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ CPU ΠΈ RAM для процСсса postgres.
  • πŸ’Ύ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅ pg_wal.
  • πŸ” АнализируйтС Π»ΠΎΠ³ΠΈ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (deadlocks).

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ названия ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… дистрибутивах Linux ΠΈ вСрсиях PostgreSQL. ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ вашСй вСрсии Π‘Π£Π‘Π” ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PostgreSQL с 1Π‘ 7.7?

НСт, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ вСрсии 7.7 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с PostgreSQL Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ. Она ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° собствСнныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ MS SQL Server. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с PostgreSQL Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° миграция Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ 8.3 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ 1Π‘ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ послС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π° PostgreSQL?

Π§Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π² отсутствии статистики ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… настройках shared_buffers ΠΈ work_mem. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π°Π½Π°Π»ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ† ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ANALYZE, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ выполнСния запросов.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π±Π°Π·Ρ‹ 1Π‘ Π½Π° PostgreSQL?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ pg_dump для логичСского бэкапа ΠΈΠ»ΠΈ инструмСнты Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… снимков (LVM snapshots) для физичСского копирования. Для 1Π‘ Ρ‚Π°ΠΊΠΆΠ΅ доступСн ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Ρ‡Π΅Ρ€Π΅Π· консоль администрирования кластСра сСрвСров.

НуТно Π»ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для 1Π‘?

Бтандартная установка PostgreSQL ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстима с 1Π‘. Однако для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ диагностики рСкомСндуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ pg_stat_statements, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ статистику выполнСния SQL-запросов.