Emuārs

Piezīmes tieši no datubāzu ikdienas darba.

Praktiski raksti par migrācijām, monitoringu, arhitektūru un incidentiem, no kuriem esam mācījušies visvairāk — rakstīti inženieru, kas paši veic šo darbu, nevis mārketinga komandas.

🚨 Incidentu reaģēšana

ClickHouse rezerves kopijas un atjaunošana: BACKUP, inkrementālās kopijas un S3 praksē

Kā darbojas ClickHouse rezerves kopijas ar iebūvētajām BACKUP un RESTORE komandām: rezerves disks un S3, ASYNC un system.backups, inkrementālās kopijas ar base_backup, droša atjaunošana, ON CLUSTER, FREEZE un clickhouse-backup kā alternatīvas un kas mainās daudzterabaitu datiem.

· 11 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "Connection refused": vai serveris darbojas? Kā to noskaidrot

Ko nozīmē PostgreSQL "Connection refused" un "Is the server running on that host and accepting TCP/IP connections?", kā to pārbaudīt ar četrām komandām, listen_addresses un soketu ceļi, ugunsmūri un kāpēc liela datubāze pēc avārijas var ilgi atteikt vai noraidīt savienojumus.

· 12 min lasīšanai
📈 Monitorings

pg_stat_statements: kā atrast vaicājumus, kas patiešām noslogo PostgreSQL

Kā ieslēgt pg_stat_statements, vaicājumi, ar kuriem sarindot izteikumus pēc kopējā laika, I/O, pagaidu failiem un WAL, kā lasīt calls, vidējo laiku un rindas, kāpēc ieraksti pazūd, kā veidot momentuzņēmumus un kas mainās lielās, noslogotās PostgreSQL datubāzēs.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

Redis "READONLY You can't write against a read only replica": cēloņi un risinājumi

Ko Redis un Valkey nozīmē "READONLY You can't write against a read only replica", kāpēc tā parādās pēc failover, ar ElastiCache galapunktiem, Sentinel un Kubernetes servisiem, kā pārbaudīt mezglu ar ROLE, kāpēc replica-read-only no ir nepareizs risinājums un kas mainās ar lielām datu kopām.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

MySQL kļūda 1236: "Got Fatal Error from Source When Reading Binary Log"

Kā lasīt MySQL replikācijas kļūdu 1236: "Could not find first log file name", izdzēsti GTID (kļūda 1789), "binlog truncated in the middle of event" un "log event entry exceeded max_allowed_packet". Ko katra nozīmē, kā droši atjaunot un kā noteikt bināro žurnālu glabāšanas laiku lielos serveros.

· 13 min lasīšanai
📈 Monitorings

MySQL InnoDB History List Length: kāpēc tas aug un kā to samazināt

Ko nozīmē InnoDB history list length izvadē SHOW ENGINE INNODB STATUS, kāpēc ilgas transakcijas un intensīvs DML liek tam augt, kā atrast transakciju, kas aiztur purge, kā darbojas purge un undo saīsināšana un kas mainās lielos MySQL serveros.

· 12 min lasīšanai
🔄 Migrācijas

PostgreSQL 19 atjaunināšana: nesaderīgās izmaiņas un jaunie noklusējumi

Kas PostgreSQL 19 mainās DBA: nesaderības, kas bloķē pg_upgrade, noņemts RADIUS, MD5 brīdinājumi, JIT pēc noklusējuma izslēgts, divkāršots max_locks_per_transaction, lz4 TOAST saspiešana, kā arī REPACK CONCURRENTLY un WAIT FOR LSN ar pārbaudēm lielām datubāzēm.

· 13 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "canceling statement due to statement timeout": cēloņi un risinājumi

Ko PostgreSQL nozīmē "canceling statement due to statement timeout", kā tā atšķiras no lock timeout un lietotāja atcelšanas, kā atrast, kur iestatīts statement_timeout, kā novērst lēno vaicājumu vai bloķēšanu un kā droši iestatīt taimautus lielās datubāzēs.

· 14 min lasīšanai
🏗️ Arhitektūra

ClickHouse rindu dzēšana: vieglais DELETE, mutācijas vai DROP PARTITION

Kā droši dzēst rindas ClickHouse: vieglais DELETE un _row_exists maska, ALTER TABLE DELETE mutācijas, kas pārraksta daļas, DROP PARTITION un TTL veciem datiem, iestrēgušu mutāciju uzraudzība un atcelšana, un kas mainās lielām tabulām.

· 13 min lasīšanai
📈 Monitorings

PostgreSQL "Checkpoints Are Occurring Too Frequently": ko tas nozīmē un kā to novērst

Ko nozīmē PostgreSQL brīdinājums "checkpoints are occurring too frequently", kā to apstiprināt ar pg_stat_checkpointer un log_checkpoints, kā izvēlēties max_wal_size pēc reālā WAL apjoma un kas mainās lielās, rakstīšanas noslogotās datubāzēs.

· 11 min lasīšanai
📈 Monitorings

Redis latentuma lēcieni: kā atrast cēloni ar SLOWLOG, LATENCY un redis-cli

Kā izmeklēt Redis latentuma lēcienus: SLOWLOG lasīšana, latentuma monitora ieslēgšana, iekšējā latentuma mērīšana, fork un transparent huge pages, AOF fsync, masveida derīguma beigas, lielu atslēgu dzēšana un kas mainās ar lielām datu kopām.

· 12 min lasīšanai
📈 Monitorings

Redis mem_fragmentation_ratio pārāk augsts? Kā to saprast un novērst

Ko patiesībā nozīmē augsts Redis mem_fragmentation_ratio, kāpēc tas nav tīrs fragmentācijas rādītājs, kā atšķirt īstu fragmentāciju no pagātnes maksimuma vai swap, kā darbojas aktīvā defragmentācija Redis un Valkey, un kas jādara lielām instancēm.

· 13 min lasīšanai
🔄 Migrācijas

MySQL ALTER TABLE bez dīkstāves: INSTANT, INPLACE, gh-ost vai pt-osc

Kā palaist MySQL ALTER TABLE bez dīkstāves lielām tabulām: kuras operācijas ir INSTANT, ko INPLACE patiesībā bloķē, metadatu bloķēšanas rinda, kas iesaldē produkciju, diska vieta un repliku nobīde lielām tabulām, un kad pāriet uz gh-ost vai pt-online-schema-change.

· 17 min lasīšanai
🚨 Incidentu reaģēšana

MySQL "Got a packet bigger than max_allowed_packet": kā to novērst

Ko nozīmē MySQL kļūda 1153 "Got a packet bigger than max_allowed_packet bytes", kāpēc klienta un servera limiti atšķiras, kā droši palielināt max_allowed_packet ar SET PERSIST vai my.cnf un ko darīt dampu atjaunošanai un replikācijai.

· 11 min lasīšanai
🔄 Migrācijas

pg_dump lielai datubāzei: ātra izmete un atjaunošana, nekaitējot produkcijai

Kā lietot pg_dump lielai datubāzei: direktorijas formāts un paralēli procesi, kompresija, ko ilga izmete nodara slēdzenēm un vacuum, izmete no rezerves servera, ātrs paralēls pg_restore, statistika pēc atjaunošanas un kad pg_dump ir nepareizais rīks.

· 16 min lasīšanai
🔄 Migrācijas

PostgreSQL 14 uz 18: kas salūzt un kā atjaunināt droši

Praktisks ceļvedis PostgreSQL 14 uz 18 atjaunināšanai: kontrolsummu neatbilstība, kas aptur pg_upgrade, dzēsti iestatījumi, kas neļauj serverim startēt, pārdēvētas rezerves kopiju funkcijas, pārvietotas monitoringa kolonnas, drošā search_path izmaiņa, kas salauž ANALYZE, MD5 novecošana, jaunā statistikas apstrāde un kas mainās lielās datubāzēs.

· 23 min lasīšanai
🔄 Migrācijas

PostgreSQL "permission denied for schema public": kāpēc tā notiek un kā to novērst

Kāpēc PostgreSQL 15 un jaunākas versijas atgriež "permission denied for schema public" pie CREATE TABLE, kāpēc atjauninātas datubāzes uzvedas citādi nekā jaunas, un trīs tīri risinājumi: datubāzes īpašumtiesības, atsevišķa shēma vai mērķēts GRANT CREATE.

· 11 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "canceling statement due to conflict with recovery": cēloņi un risinājumi

Kāpēc PostgreSQL uz hot standby atceļ vaicājumus ar "canceling statement due to conflict with recovery", kā atšķirt snapshot, slēdzeņu un bufera piespraudes konfliktus un kad izmantot max_standby_streaming_delay, hot_standby_feedback, replikācijas slotu vai atsevišķu atskaišu repliku.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "invalid page in block": kā rīkoties datu bojājuma gadījumā

Ko nozīmē PostgreSQL kļūda "invalid page in block ... of relation", kā faila ceļu piesaistīt tabulai vai indeksam, kāpēc pirms jebkādām darbībām kopēt datu direktoriju, kā pārbaudīt bojājumu ar amcheck, pg_amcheck un pg_checksums un kad pareizais risinājums ir REINDEX, atjaunošana vai zero_damaged_pages.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "sorry, too many clients already": ko darīt tagad un pēc tam

Ko nozīmē PostgreSQL kļūdas "sorry, too many clients already" un "remaining connection slots are reserved", kā redzēt, kas tur savienojumus, kā droši atbrīvot slotus tūlīt un kāpēc pūlers, lomu limiti un taimauti ir labāki par max_connections palielināšanu.

· 10 min lasīšanai
🚨 Incidentu reaģēšana

Redis "LOADING Redis is loading the dataset in memory": ko darīt

Ko nozīmē Redis kļūda "LOADING Redis is loading the dataset in memory", kuras komandas ielādes laikā joprojām strādā (INFO jā, PING nē), kā sekot progresam ar INFO persistence, kāpēc Kubernetes pārbaudes var izraisīt restartu ciklus un kā swapdb un persistences izvēle saīsina pārtraukumu.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

ClickHouse "Too many partitions for single INSERT block": cēloņi un risinājumi

Ko nozīmē ClickHouse kļūda "Too many partitions for single INSERT block (more than 100)", kā max_partitions_per_insert_block skaita partīcijas katrā blokā, kā ielādēt vēsturi pa daļām, kad palielināt limitu un kā pārbūvēt tabulu ar saprātīgāku PARTITION BY.

· 14 min lasīšanai
🚨 Incidentu reaģēšana

MySQL "Can't connect to local MySQL server through socket" (kļūda 2002): risinājumi

Ko nozīmē MySQL kļūda 2002 "Can't connect to local MySQL server through socket", kāpēc localhost izmanto Unix socket, kā lasīt kodus (2), (13) un (111), kā atrast īsto socket ceļu un kā salabot serveri, klientus un PHP lietotnes, kas par to nav vienisprātis.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

MySQL ERROR 1045 (28000): Access Denied for User - kā to labot

Ko īsti pārbauda MySQL ERROR 1045 (28000) "Access denied for user", kā darbojas user@host salīdzināšana un kārtošana, localhost pret 127.0.0.1, "using password: NO", CURRENT_USER(), opciju faili, auth_socket un kļūda 1698, kā arī droša root paroles atiestatīšana.

· 16 min lasīšanai
🚨 Incidentu reaģēšana

Redis "ERR max number of clients reached": cēloņi un risinājumi

Kāpēc Redis un Valkey noraida savienojumus ar "ERR max number of clients reached", kā maxclients saistīts ar ulimit -n un 32 rezervētajiem failu deskriptoriem, kā ar CLIENT LIST atrast klientu, kas noplūdina savienojumus, un kad izmantot timeout, CLIENT KILL vai augstāku limitu.

· 14 min lasīšanai
🚨 Incidentu reaģēšana

ClickHouse "Too many simultaneous queries" (kļūda 202): cēloņi un risinājumi

Ko nozīmē ClickHouse kļūda 202 TOO_MANY_SIMULTANEOUS_QUERIES, seši limiti, kas to izraisa (max_concurrent_queries un tā select, insert, lietotāja, visu lietotāju un gaidīšanas varianti), kā skatīt system.processes un query_log pat tad, kad serveris ir pilns, un kā konfigurēt limitus un rezervi.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

MySQL ERROR 1114 "The table is full": cēloņi un risinājumi

Ko nozīmē MySQL ERROR 1114 (HY000) "The table is full" un kā atrast īsto cēloni: pilns disks, sistēmas tablespace ar maksimālo izmēru, InnoDB pagaidu tablespace, MEMORY tabula pie max_heap_table_size vai MyISAM izmēra limits. Ar vaicājumiem un konfigurāciju MySQL 8.4.

· 15 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "could not resize shared memory segment": No Space Left on Device

Kāpēc PostgreSQL beidzas ar "could not resize shared memory segment ... No space left on device", kā paralēlie vaicājumi izmanto dinamisko koplietojamo atmiņu /dev/shm, kāpēc Docker konteineri to sasniedz pie 64 MB un kā to novērst ar --shm-size, shm_size vai atmiņā balstītu emptyDir Kubernetes vidē.

· 13 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "no pg_hba.conf entry for host": kā to labot

Ko īsti nozīmē PostgreSQL kļūda "no pg_hba.conf entry for host", kā nolasīt ziņojumā IP, lietotāju, datubāzi un šifrēšanas stāvokli, kā pārbaudīt noteikumus ar pg_hba_file_rules, droši pārlādēt konfigurāciju un atšķirt to no "password authentication failed".

· 18 min lasīšanai
🚨 Incidentu reaģēšana

ClickHouse "Table is in readonly mode": cēloņi un kā to salabot

Ko nozīmē ClickHouse kļūda "Table is in readonly mode" (kods 242, TABLE_IS_READ_ONLY), kā to diagnosticēt ar system.replicas un system.zookeeper_connection, kā pārbaudīt ClickHouse Keeper un kad lietot SYSTEM RESTART REPLICA, bet kad SYSTEM RESTORE REPLICA.

· 13 min lasīšanai
🚨 Incidentu reaģēšana

Kā droši izdzēst MySQL bināros žurnālus, kad tie piepilda disku

Kāpēc MySQL binārie žurnāli aug, kā izdzēst MySQL bināros žurnālus ar PURGE BINARY LOGS, nesabojājot replikas, kāpēc rm binlog failiem nāk par ļaunu un kā iestatīt binlog_expire_logs_seconds, saspiešanu un glabāšanu mākonī, lai disks vairs nepiepildītos.

· 15 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "out of shared memory": kā salabot max_locks_per_transaction

Ko nozīmē PostgreSQL kļūda "out of shared memory" ar max_locks_per_transaction mājienu, kā pg_locks atrast sesiju ar tūkstošiem slēdzeņu, kāpēc to izraisa particionētas tabulas, pg_dump un lielas migrāciju transakcijas un kā droši palielināt limitu primārajā serverī ar replikām.

· 14 min lasīšanai
🚨 Incidentu reaģēšana

Redis MISCONF kļūda: "Unable to Persist to Disk" un kā to novērst

Ko nozīmē Redis MISCONF kļūda "unable to persist to disk", kāpēc stop-writes-on-bgsave-error bloķē rakstīšanu un pat PING, kā atrast neizdevušās BGSAVE cēloni INFO persistence un žurnālā (pilns disks, tiesības, fork kļūme, OOM kill) un kā droši atjaunoties. Attiecas arī uz Valkey.

· 16 min lasīšanai
🚨 Incidentu reaģēšana

MySQL "Deadlock found when trying to get lock" (kļūda 1213): kā lasīt žurnālu un novērst atkārtošanos

Ko patiesībā nozīmē MySQL kļūda 1213, kāpēc InnoDB atritina visu transakciju, kā lasīt LATEST DETECTED DEADLOCK, kā reģistrēt un skaitīt visus deadlock gadījumus, biežākie cēloņi (slēdzeņu secība, trūkstoši indeksi, dublētu atslēgu INSERT) un kā uzrakstīt atkārtošanu, kas nepasliktina situāciju.

· 17 min lasīšanai
🚨 Incidentu reaģēšana

"MySQL server has gone away" (kļūda 2006): cēloņi un labojumi, kas tiešām strādā

Ko nozīmē MySQL kļūdas 2006, 2013 un 4031, kā atšķirt dīkstāves taimautu no pārāk liela paketes izmēra, pārtraukta vaicājuma, servera restarta vai tīkla pārrāvuma, kurus mainīgos pārbaudīt (wait_timeout, max_allowed_packet, net_read_timeout) un kāpēc akla atkārtota pieslēgšanās var nemanāmi zaudēt transakcijas stāvokli.

· 15 min lasīšanai
📈 Monitorings

PostgreSQL REINDEX CONCURRENTLY: uzpūstu indeksu pārbūve bez dīkstāves

Kā atrast uzpūstus PostgreSQL indeksus ar pgstatindex, kāpēc parasts REINDEX bloķē gandrīz visus vaicājumus, kā darbojas REINDEX CONCURRENTLY un ko tas nevar, kā sekot progresam, kā satīrīt _ccnew un _ccold atlikumus un kad deduplikācija un bottom-up dzēšana padara pārbūvi lieku.

· 13 min lasīšanai
📈 Monitorings

VACUUM FULL vai pg_repack: kā samazināt uzpūstu PostgreSQL tabulu bez dīkstāves

Kad uzpūstai PostgreSQL tabulai tiešām vajag pārrakstīšanu, kā izmērīt bloat ar pgstattuple_approx, kāpēc VACUUM FULL bloķē visus vaicājumus tabulai, kā strādā pg_repack un kas tam vajadzīgs, ko maina PostgreSQL 19 REPACK (CONCURRENTLY) un kā izvēlēties starp tiem.

· 15 min lasīšanai
🚨 Incidentu reaģēšana

ClickHouse "Memory limit exceeded" (Code 241): kas sasniedza limitu un kā to novērst

Praktisks ceļvedis par ClickHouse "Memory limit exceeded" (Code 241, MEMORY_LIMIT_EXCEEDED): vaicājuma, lietotāja un kopējais limits, max_memory_usage un max_server_memory_usage_to_ram_ratio, vaininieka meklēšana system.query_log un system.processes, GROUP BY, ORDER BY un join izlikšana uz disku un atmiņas overcommit.

· 14 min lasīšanai
📈 Monitorings

MySQL innodb_buffer_pool_size: kā izvēlēties izmēru, mainīt to un saprast, ka tas ir par mazu

Praktisks ceļvedis par MySQL innodb_buffer_pool_size: 128MB noklusējums, ko dokumentācija iesaka veltītiem serveriem, innodb_dedicated_server, gabali (chunks) un instances, izmēra maiņa tiešsaistē ar statusa uzraudzību, uzsildīšana pēc restarta un statusa skaitītāji, kas liecina par pārāk mazu pūlu.

· 14 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "idle in transaction": kā atrast, apturēt un novērst iestrēgušas sesijas

Ko patiesībā nozīmē stāvoklis "idle in transaction" skatā pg_stat_activity, kāpēc tas bloķē slēdzenes un VACUUM, kā atrast bloķētāju ar pg_blocking_pids, kad lietot pg_terminate_backend un kā to novērš idle_in_transaction_session_timeout, transaction_timeout un PgBouncer ierobežojumi.

· 14 min lasīšanai
🏗️ Arhitektūra

Redis noturība: RDB pret AOF un kas jums patiesībā vajadzīgs

Praktisks ceļvedis par Redis noturību: RDB momentuzņēmumi un saglabāšanas punkti, AOF un appendfsync, daudzdaļīgs AOF kopš Redis 7.0, fork izmaksas, droša pāreja no RDB uz AOF strādājošā serverī, rezerves kopijas un monitorings.

· 13 min lasīšanai
🚨 Incidentu reaģēšana

MySQL replikācijas kļūda 1062 un 1032: kā droši salabot apstājušos repliku

Praktisks plāns MySQL replikācijas kļūdām 1062 (dublēts ieraksts) un 1032 (ieraksts nav atrasts): kļūdainā GTID atrašana, transakcijas labošana vai izlaišana, kāpēc replica_skip_errors ir slazds un kā pēc tam pārbaudīt konsekvenci.

· 11 min lasīšanai
📈 Monitorings

MySQL lēno vaicājumu žurnāls: kā ieslēgt, lasīt un atrast būtisko

Praktisks ceļvedis par MySQL lēno vaicājumu žurnālu: ieslēgšana darbības laikā, long_query_time izvēle, ko rāda Rows_examined, kopsavilkums ar pt-query-digest un Performance Schema, ja nav piekļuves failam.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL atjaunošana uz laika punktu: kā soli pa solim atsaukt kļūdainu DELETE

Praktisks ceļvedis par PostgreSQL atjaunošanu uz laika punktu: WAL arhivēšana un bāzes rezerves kopijas, pg_stat_archiver pārbaude, restore_command, recovery.signal, recovery_target_time un pauze, laika līnijas un kāpēc atjaunot uz atsevišķa servera.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL transakciju ID wraparound: kā to pamanīt laikus un atgūties

Praktisks ceļvedis par PostgreSQL transakciju ID wraparound: XID vecums, brīdinājumi pirms apstāšanās, kas aiztur iesaldēšanu (vecas transakcijas, sagatavotās transakcijas, replikācijas sloti), oficiālie atgūšanas soļi un monitorings.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

ClickHouse "Too many parts": kāpēc datu ievietošana neizdodas un kā to novērst

Praktisks ceļvedis par ClickHouse kļūdu "Too many parts": kā darbojas daļas un apvienošana, kā atrast nodalījumu, kas sasniedza limitu, mazas ievietošanas, slikta nodalījumu atslēga, asinhronā ievietošana un kāpēc parts_to_throw_insert palielināšana tikai nopērk laiku.

· 11 min lasīšanai
🔄 Migrācijas

MySQL 8.0 atjaunināšana uz 8.4: kas salūzt un kā to izdarīt droši

Praktisks ceļvedis MySQL 8.0 atjaunināšanai uz 8.4: atbalstītie atjaunināšanas ceļi, mysql_native_password, noņemtās SLAVE/MASTER komandas un opcijas, mainītie InnoDB noklusējumi, atjaunināšanas pārbaudītājs, pakāpeniska atjaunināšana un kāpēc atgriešanās jāplāno.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

MySQL "Lock wait timeout exceeded" (kļūda 1205): atrodiet bloķētāju un novērsiet to

Praktisks ceļvedis par MySQL "Lock wait timeout exceeded; try restarting transaction": bloķētāja atrašana ar sys.innodb_lock_waits, neaktīvas atvērtas transakcijas, trūkstoši indeksi, pareizi atkārtojumi un kāpēc taimauta palielināšana reti palīdz.

· 12 min lasīšanai
📈 Monitorings

PostgreSQL replikācijas nobīde: kā to izmērīt, atrast cēloni un novērst

Praktisks ceļvedis par PostgreSQL straumēšanas replikācijas nobīdi: pg_stat_replication un tā nobīdes kolonnas, nobīde baitos un laikā, kāpēc kluss primārais serveris maldina brīdinājumus, atjaunošanas šaurās vietas, hot_standby_feedback un atjaunošanas konflikti.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

MySQL "Too many connections" (kļūda 1040): kā tikt iekšā un novērst problēmu

Praktisks rīcības plāns MySQL "Too many connections" gadījumā: rezervētā administratora vieta, gaidošo un bloķēto sesiju atrašana, droša sesiju pārtraukšana un kad max_connections palielināšana palīdz vai kaitē.

· 13 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL "deadlock detected": ko tas nozīmē un kā to novērst

Ko patiesībā nozīmē PostgreSQL kļūda "deadlock detected", kā lasīt žurnālu, biežākie cēloņi (slēgšanas secība, ārējās atslēgas, pakešuzdevumi) un praktiski risinājumi, ieskaitot atkārtojumus un monitoringu.

· 12 min lasīšanai
🚨 Incidentu reaģēšana

PostgreSQL pilns disks: kāpēc pg_wal aug un kā to droši novērst

PostgreSQL disks pilns un pg_wal aug? Biežākie cēloņi (replikācijas sloti, neveiksmīga arhivēšana, pagaidu faili, žurnāli), ko ārkārtas situācijā drīkst dzēst un iestatījumi, kas novērš atkārtošanos.

· 11 min lasīšanai
🚨 Incidentu reaģēšana

Redis OOM "command not allowed": maxmemory un izlikšanas politikas

Kāpēc Redis atgriež "OOM command not allowed when used memory > maxmemory", kā darbojas maxmemory un izlikšanas politikas, kuru izvēlēties un kā plānot atmiņu replikācijai, saglabāšanai un fork.

· 11 min lasīšanai
🚨 Incidentu reaģēšana

Steidzami vajag DBA? Izlasiet šo, pirms kaut ko aiztiekat

Datubāze nedarbojas, bet komandā nav DBA? Tiešs ceļvedis pirmajām 30 minūtēm: ko neaiztikt, ko savākt un kā nodot situāciju ārkārtas DBA atbalstam, nezaudējot stundas.

· 12 min lasīšanai
📈 Monitorings

MySQL replikācijas nobīde: kāpēc replika atpaliek un kā to novērst

Praktisks ceļvedis par MySQL replikācijas nobīdi: saņēmēja un izpildītāja nobīde, kāpēc Seconds_Behind_Source maldina, lielas transakcijas, tabulas bez primārās atslēgas, paralēlā replikācija un monitorings.

· 11 min lasīšanai
📈 Monitorings

PostgreSQL autovacuum pielāgošana: kā apturēt tabulu uzpūšanos

PostgreSQL autovacuum pielāgošana praksē: kā darbojas palaišanas sliekšņi, iestatījumi lielām tabulām, cost limiti, kas bloķē vacuum, wraparound un PostgreSQL 18 jaunumi.

· 13 min lasīšanai
🏗️ Arhitektūra

Attālinātā DBA pakalpojumi: ko jūs patiesībā saņemat un kad tie ir vajadzīgi

Ko patiesībā ietver attālinātā DBA pakalpojumi, kam tie vajadzīgi, kā darbojas sadarbības un cenu modeļi, kā droši organizēt piekļuvi un kādām brīdinājuma zīmēm sekot, izvēloties partneri.

· 10 min lasīšanai
🏗️ Arhitektūra

Kad izslēdzas vesela mākoņa zona: datubāzu mācības no Google Cloud 2026. gada oktobra avārijas

Elektroapgādes kļūme uz sešām stundām atslēdza Google Cloud zonu Londonā. Ko incidents māca par datubāzu pārslēgšanos, jaudu un starpzonu atkarībām.

· 7 min lasīšanai
🔄 Migrācijas

MySQL 26.10 un kalendārā versiju numerācija: kuru MySQL izmantot ražošanā?

MySQL tagad izmanto versijas numurus pēc gada un mēneša: 26.7, 26.10 un nākamā LTS 2028. gadā. Kas mainījies un kā izvēlēties MySQL versiju ražošanai.

· 5 min lasīšanai
🏗️ Arhitektūra

PostgreSQL savienojumu pūls ar PgBouncer: praktisks ceļvedis

Kā darbojas PostgreSQL savienojumu pūls ar PgBouncer: pūla režīmi, transakciju režīma ierobežojumi, sagatavotie vaicājumi, pūla izmērs un uzraugāmie rādītāji.

· 10 min lasīšanai
🔄 Migrācijas

PostgreSQL 14 atbalsts beidzas 2026. gada 12. novembrī: ko darīt tagad

PostgreSQL 14 pēdējo atjauninājumu saņems 2026. gada 12. novembrī — nedēļu pirms PostgreSQL 19 iznākšanas. Kā izvēlēties mērķa versiju un plānot jaunināšanu.

· 7 min lasīšanai
🏗️ Arhitektūra

PostgreSQL drošības stiprināšana: praktisks kontrolsaraksts ražošanai

Lielākā daļa PostgreSQL drošības incidentu rodas no pamata nepilnībām, nevis viltīgiem uzbrukumiem. Praktisks kontrolsaraksts: tīkls, autentifikācija, lomas, šifrēšana, audits.

· 8 min lasīšanai
🔄 Migrācijas

Pāreja no Redis uz Valkey: ko maina jaunais Valkey-proxy

Percona paziņoja par Valkey-proxy — atvērtā koda starpniekserveri Valkey klasteriem. Ko tas maina komandām, kas plāno pāreju no Redis, un kā plānot migrāciju.

· 6 min lasīšanai
🚨 Incidentu reaģēšana

Ja neesat to atjaunojuši, tā nav rezerves kopija

Rezerves kopijas sabojājas klusi, bet atklājas skaļi. Kā veidot datubāzu rezerves kopijas atbilstoši atjaunošanas mērķiem — un pierādīt, ka tās var atjaunot.

· 7 min lasīšanai
🏗️ Arhitektūra

PostgreSQL augsta pieejamība ar Patroni: kas patiešām vajadzīgs produkcijā

Replika nav augsta pieejamība. Kas produkcijas PostgreSQL HA risinājumam ar Patroni vajadzīgs papildus straumēšanas replikācijai — un kā pierādīt, ka tas strādā.

· 6 min lasīšanai
🔄 Migrācijas

PostgreSQL galvenās versijas atjaunināšana: pg_upgrade vai loģiskā replikācija?

PostgreSQL 14 atbalsts beidzas 2026. gada novembrī. pg_upgrade pret loģisko replikāciju: ko katrs maksā dīkstāvē, riskā un darbā.

· 8 min lasīšanai
📈 Monitorings

Lēni PostgreSQL vaicājumi: praktisks optimizācijas kontrolsaraksts

Lielākā daļa lēno PostgreSQL datubāzu ir lēnas to pašu dažu iemeslu dēļ. Kontrolsaraksts, ko izejam, pirms kāds sāk runāt par jaudīgāku aparatūru.

· 8 min lasīšanai
🏗️ Arhitektūra

Kur patiesībā aiziet jūsu RDS rēķins — un kā to samazināt

Mākoņa datubāzu rēķini aug klusi. No kurienes patiesībā rodas Amazon RDS un Aurora izmaksas, kur skatīties vispirms — un ko nevajadzētu samazināt.

· 6 min lasīšanai
🔄 Migrācijas

Nulles dīkstāves PostgreSQL migrācijas: praktisks ceļvedis

"Vienkārši ņemiet tehniskās apkopes logu" vairs nav pieņemama atbilde. Šis ir loģiskās replikācijas modelis, ko izmantojam, lai pārslēgtu produkcijas PostgreSQL klasterus, klientiem to nemanot.

· 8 min lasīšanai
📈 Monitorings

Metrikas, kas patiešām paredz datubāzes incidentu

CPU un atmiņas grafiki parāda, ka ar datubāzi kaut kas nav kārtībā, tikai pēc fakta. Šie pieci rādītāji — sekoti kā tendences, nevis momentuzņēmumi — brīdina, pirms to pamana jūsu lietotāji.

· 7 min lasīšanai
🔄 Migrācijas

MySQL uz PostgreSQL: kad migrācija ir vērta un kad nav

"Pārejiet uz Postgres" ir populārs padoms, nevis universāls padoms. Praktisks ietvars, kā izlemt, vai pāreja jūsu slodzei tiešām ir riska vērta.

· 7 min lasīšanai
🏗️ Arhitektūra

ClickHouse datu noliktavas izveide no gadiem uzkrātiem vēsturiskiem datiem

Lielākajai daļai uzņēmumu ir gadiem uzkrāta transakciju vēsture, kas praktiski nav izmantojama vaicājumiem. Stāstām, kā veidojam shēmu un datu ielādes stratēģiju, lai to atkal padarītu noderīgu.

· 8 min lasīšanai
🚨 Incidentu reaģēšana

Kā patiesībā izskatās 15 minūšu reaģēšana uz datubāzes incidentu

Reaģēšanas laika SLA izklausās pēc mārketinga frāzes, kamēr neizanalizē, kam jānotiek šajās 15 minūtēs — un cik daudz no tā tika izlemts jau ilgi pirms trauksmes signāla.

· 6 min lasīšanai

Šajā kategorijā vēl nav rakstu — ieskatieties vēlreiz drīzumā, vai sazinieties ar mums, ja jums ir jautājums, uz kuru varam atbildēt tieši.

Sadarbība ar mums

Vai jums ir datubāzes problēma, par kuru vērts uzrakstīt?

Vai jūs plānojat migrāciju, risināt veiktspējas problēmu, vai vēlaties pieredzējušu DBA uz abonementa pamata — mēs sākam ar bezmaksas 30 minūšu iepazīšanās zvanu.

Sazināties Skatīt mūsu klientu stāstus