ΠΠ»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΡΠ»ΡΠΆΠ± Ρ Π½Π°Ρ Π΄Π°Π²Π½ΠΎ, ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ Nagios ΠΈ Munin. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ° ΡΠ²ΡΠ·ΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΡΠ΅ΠΌ
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ MySQL ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Zabbix
ΠΠΎΠΊΠ° ΠΠ Π±ΡΠ»Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Ρ ΡΠ°Π½ΠΈΠΌΡΡ Π² Π½Π΅ΠΉ ΠΌΠ΅ΡΡΠΈΠΊ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ, Π²ΡΡ Π±ΡΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ. Π¨ΡΠ°ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ housekeeper, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ°ΠΌ Zabbix Server ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΄Π°Π»ΡΠ» ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΠΠ, Π½Π΅ Π΄Π°Π²Π°Ρ Π΅ΠΉ ΡΠ°ΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΠΌΠ΅ΡΡΠΈΠΊ Π²ΡΡΠΎΡΠ»ΠΎ ΠΈ ΠΎΠ±ΡΡΠΌ ΠΠ Π΄ΠΎΡΡΠΈΠ³ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π²ΡΡ ΡΡΠ°Π»ΠΎ Ρ ΡΠΆΠ΅. Houserkeeper ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΡΡΠΏΠ΅Π²Π°ΡΡ ΡΠ΄Π°Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π·Π° ΠΎΡΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ Π΅ΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π² ΠΠ ΡΡΠ°Π»ΠΈ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΡΡΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ housekeeper Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»Π° ΠΏΠΎΠ²ΡΡΠ΅Π½Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° Zabbix Server, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠ³Π»Π° Π΄Π΅ΡΠΆΠ°ΡΡΡΡ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. Π‘ΡΠ°Π»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π°Π΄ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ΅ΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠΈΠ²ΡΡΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ.
ΠΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ, ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π» Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΡΠΌΠ°ΠΌΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π½Π° Zabbix, ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅. Π Π΅ΡΠ΅Π½ΠΈΠΉ ΡΠΎΠΆΠ΅ Π±ΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΌΠ΅Π½Π° MySQL Π½Π° PostgreSQL ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Elasticsearch, Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΠΈ Π°ΠΏΡΠΎΠ±ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ» ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ, Ρ ΡΠ°Π½ΡΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊ Π² ΠΠ MySQL. ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠΉΡΠΈ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΡΠΈΠΌ ΠΏΡΡΡΠΌ.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ MySQL ΠΊ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ
Zabbix Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΡΠ°Π±Π»ΠΈΡΡ, Π³Π΄Π΅ ΠΎΠ½ Ρ
ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ. ΠΡΠΎ ΡΠ°Π±Π»ΠΈΡΡ: history
, Π³Π΄Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ float Π·Π½Π°ΡΠ΅Π½ΠΈΡ, history_str
, Π³Π΄Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, history_text
, Π³Π΄Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ history_uint
, Π³Π΄Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΡΡ Π΅ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° trends
, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ
ΡΠ°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΎ Π΅Ρ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π½Π΅ ΡΡΠΎΠ³Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅Π²Π΅Π»ΠΈΠΊ ΠΈ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ ΠΊ Π½Π΅ΠΉ Π²Π΅ΡΠ½ΡΠΌΡΡ.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ. ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ Π½Π΅Π΄Π΅Π»Ρ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΡΠ΅Π» ΠΌΠ΅ΡΡΡΠ°, Ρ.Π΅. ΠΏΠΎ ΡΠ΅ΡΡΡΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ Π½Π° ΠΌΠ΅ΡΡΡ: Ρ 1-Π³ΠΎ ΠΏΠΎ 7-Π΅, Ρ 8-Π³ΠΎ ΠΏΠΎ 14-Π΅, Ρ 15 ΠΏΠΎ 21-Π΅ ΠΈ Ρ 22-Π³ΠΎ ΠΏΠΎ 1-Π΅ (ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΡΠ°). Π’ΡΡΠ΄Π½ΠΎΡΡΡ Π±ΡΠ»Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π² ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Β«Π½Π° Π»Π΅ΡΡΒ», Π½Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Ρ ΡΠ°Π±ΠΎΡΡ Zabbix Server ΠΈ ΡΠ±ΠΎΡ ΠΌΠ΅ΡΡΠΈΠΊ.
ΠΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, Π½Π° ΠΏΠΎΠΌΠΎΡΡ Π² ΡΡΠΎΠΌ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»Π° ΡΠ°ΠΌΠ° ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΠ° history
ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ:
`itemid` bigint(20) unsigned NOT NULL,
`clock` int(11) NOT NULL DEFAULT '0',
`value` double(16,4) NOT NULL DEFAULT '0.0000',
`ns` int(11) NOT NULL DEFAULT '0',
ΠΏΡΠΈ ΡΡΠΎΠΌ
KEY `history_1` (`itemid`,`clock`)
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ° Π² ΠΈΡΠΎΠ³Π΅ Π·Π°Π½ΠΎΡΠΈΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ Π΄Π»Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΠΌΠΈ itemid ΠΈ clock. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ history_tmp
, Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ Π½Π΅Ρ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π»ΠΈΡΡ ΡΡΠ΄Π° Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ history
, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ history
Π² history_old
, Π° ΡΠ°Π±Π»ΠΈΡΡ history_tmp
Π² history
, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π΄ΠΎΠ·Π°Π»ΠΈΡΡ ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π°Ρ Π½Π΅Π΄ΠΎΠ·Π°Π»ΠΈΡΡ ΠΈΠ· history_old
Π² history
ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ history_old
. ΠΠ΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ΅ΠΌ, Π²Π΅Π΄Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΠΎΠ»Ρ itemid ΠΈ clock ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° Π½Π΅ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΠΎΠΌΡ Π½ΠΎΠΌΠ΅ΡΡ.
Π‘Π°ΠΌΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΡΠ΅Π½Ρ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ»Π½ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡ Π²ΡΠ΅ ΠΆΠΈΠ²ΡΠ΅ Π»ΡΠ΄ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² Π½Π°Π±ΠΎΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠ°. ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ Π»ΡΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΡΡ, ΡΠ΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ.
ΠΡΠ°ΠΊ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΈ Π½Π΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ. ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ MySQL-ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π±ΡΠ»ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅, Ρ.Π΅. ΡΡΠΎΠ±Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Π²ΡΡΠ΅ ΡΠ°Π±Π»ΠΈΡ history
, history_text
, history_str
, history_uint
, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Ρ
Π²Π°ΡΠΈΠ»ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ Β«_tmpΒ», ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡΡΠΌΠ° ΠΊΠ°ΠΊ ΠΈ ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ°.
ΠΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ
β ΡΠ°Π±Π»ΠΈΡΡ history
.
ΠΡΠ°ΠΊ, ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΏΡΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ history_tmp
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ history
.
CREATE TABLE `history_tmp` LIKE `history`;
Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΌ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ Π½Π° ΠΌΠ΅ΡΡΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΡΡΠΈΡΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»Ρ clock, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ Ρ ΠΎΡΠΌΠ΅ΡΠΊΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ:
ALTER TABLE `history_tmp` PARTITION BY RANGE( clock ) (
PARTITION p20190201 VALUES LESS THAN (UNIX_TIMESTAMP("2019-02-01 00:00:00")),
PARTITION p20190207 VALUES LESS THAN (UNIX_TIMESTAMP("2019-02-07 00:00:00")),
PARTITION p20190214 VALUES LESS THAN (UNIX_TIMESTAMP("2019-02-14 00:00:00")),
PARTITION p20190221 VALUES LESS THAN (UNIX_TIMESTAMP("2019-02-21 00:00:00")),
PARTITION p20190301 VALUES LESS THAN (UNIX_TIMESTAMP("2019-03-01 00:00:00"))
);
ΠΠ°Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Π½Π°ΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΡ history_tmp
. Π£ΡΠΎΡΠ½ΠΈΠΌ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, Ρ ΠΊΠΎΡΠΎΡΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ clock ΠΌΠ΅Π½ΡΡΠ΅ Β«2019-02-01 00:00:00Β» ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΏΠ°ΡΡΠΈΡΠΈΡ p20190201, Π·Π°ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΊΠΎΡΠΎΡΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ clock Π±ΠΎΠ»ΡΡΠ΅ Β«2019-02-01 00:00:00Β» Π½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Β«2019-02-07 00:00:00Β» ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΏΠ°ΡΡΠΈΡΠΈΡ p20190207 ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π² ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠΎΡΠ²ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ clock Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ Β«2019-03-01 00:00:00Β»? ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ, ΠΎΠ½ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡΡ ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ. ΠΠΎΡΡΠΎΠΌΡ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΡ ΠΏΠΎΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ (ΠΎ ΡΡΠΌ Π½ΠΈΠΆΠ΅).
ΠΡΠ°ΠΊ, Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π°. ΠΠ°Π»ΠΈΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½ΠΎ ΠΊ ΡΡΠ°ΡΡΡΡ ΠΎΠ½ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π°Π΄ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π·Π°ΠΏΠ°ΡΡΠΈΡΡ ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ΠΌ:
INSERT IGNORE INTO `history_tmp` SELECT * FROM history;
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ IGNORE ΠΏΡΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π»ΠΈΠ²ΠΊΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, Π²Π΅Π΄Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π΅Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ·Π°Π»ΠΈΠ²ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ Π²Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΡΠ΅ΡΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ Π½Π°ΡΠ°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ.
ΠΡΠ°ΠΊ, ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ²), ΠΏΠ΅ΡΠ²Π°Ρ Π·Π°Π»ΠΈΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΎΡΠ»Π°. ΠΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° history_tmp
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ history
, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π² Π½Π΅ΠΉ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°. Π’ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΡΠ±ΠΎΡ: Π»ΠΈΠ±ΠΎ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡ
ΠΎΠ΄ (Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π΄Π»ΠΈΠ»ΡΡ Π΄ΠΎΠ»Π³ΠΎ), Π»ΠΈΠ±ΠΎ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΏΠ΅ΡΠ²Π° ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠ΄Π΅. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² history_tmp
:
SELECT max(clock) FROM history_tmp;
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ: 1551045645. Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡ ΠΎΠ΄Π΅ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ :
INSERT IGNORE INTO `history_tmp` SELECT * FROM history WHERE clock>=1551045645;
ΠΡΠΎΡ ΠΏΡΠΎΡ ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΡΠ°ΡΡ, Π° Π²ΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΡΠΎΠΆΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ ΡΡΠ΅ΡΠΈΠΉ ΠΏΡΠΎΡ ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π²ΡΠΎΡΠΎΠΌΡ.
Π ΠΊΠΎΠ½ΡΠ΅ ΠΌΡ ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² history_tmp
, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ²:
SELECT max(clock) FROM history_tmp;
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ 1551085645. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΠΎΠ½ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ Π΄ΠΎΠ·Π°Π»ΠΈΠ²ΠΊΠΈ.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π·Π°Π»ΠΈΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ
Π² history_tmp
Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ, ΠΏΡΠΈΡΡΡΠΏΠ°Π΅ΠΌ ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ:
BEGIN;
RENAME TABLE history TO history_old;
RENAME TABLE history_tmp TO history;
COMMIT;
ΠΡ ΠΎΡΠΎΡΠΌΠΈΠ»ΠΈ ΡΡΠΎΡ Π±Π»ΠΎΠΊ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π² Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π²Π΅Π΄Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ RENAME Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ RENAME, ΡΠ°Π±Π»ΠΈΡΠ° history
ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ RENAME Π² ΡΠ°Π±Π»ΠΈΡΡ history
ΠΏΡΠΈΠ΄ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π°Π½Π½ΡΠ΅, Π° ΡΠ°ΠΌΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π΅ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ (ΠΈΠ·-Π·Π° ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ), ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΡΡΠ°Π²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅ΡΡ (Ρ Π½Π°Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, Π° Π½Π΅ Π±Π°Π½ΠΊ).
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° history
Ρ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½ΠΎ Π² Π½Π΅ΠΉ Π½Π΅ Ρ
Π²Π°ΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄Π° Π²ΡΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π² ΡΠ°Π±Π»ΠΈΡΡ history_tmp
. ΠΠΎ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Ρ Π½Π°Ρ Π΅ΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ history_old
ΠΈ ΠΌΡ ΠΈΡ
ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΡΡΠ΄Π° Π΄ΠΎΠ»ΡΡΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ°Π½Π΅Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1551085645. ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»ΠΈ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΡΠΆΠ΅ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ history
? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΆΠ΅ Π² Π½Π΅Ρ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ°ΠΊ, Π΄ΠΎΠ·Π°Π»ΠΈΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅:
INSERT IGNORE INTO `history` SELECT * FROM history_old WHERE clock>=1551045645;
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Ρ Π½Π°Ρ Π² Π½ΠΎΠ²ΠΎΠΉ, ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ history
Π΅ΡΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π² ΡΡΠ°ΡΠΎΠΉ, ΠΏΠ»ΡΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΏΡΠΈΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ. Π’Π°Π±Π»ΠΈΡΠ° history_old
Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Π°. ΠΠΎΠΆΠ½ΠΎ Π΅Ρ ΡΡΠ°Π·Ρ ΡΠ΄Π°Π»ΠΈΡΡ, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Ρ Π½Π΅Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ (Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠ°ΡΠ°Π½ΠΎΠΉΡ).
ΠΠ΅ΡΡ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡ history_str
, history_text
ΠΈ history_uint
.
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Zabbix Server
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π² ΡΠ°ΡΡΠΈ ΠΈΡΡΠΎΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
Π»ΠΎΠΆΠΈΡΡΡΡ Π½Π° Π½Π°ΡΠΈ ΠΏΠ»Π΅ΡΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Zabbix Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΄Π°Π»ΡΡΡ ΡΡΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ β ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΡΠΈΠΌ ΡΠ°ΠΌΠΈ. Π§ΡΠΎΠ±Ρ Zabbix Server Π½Π΅ ΠΏΡΡΠ°Π»ΡΡ ΡΠΈΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΌ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡΠΈ Π² web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Zabbix, Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΌΠ΅Π½Ρ Β«ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β», Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ Β«ΠΠ±ΡΠΈΠ΅Β», Π·Π°ΡΠ΅ΠΌ Π² Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΡΠΏΡΠ°Π²Π° Π²ΡΠ±ΡΠ°ΡΡ Β«ΠΡΠΈΡΡΠΊΠ° ΠΈΡΡΠΎΡΠΈΠΈΒ». ΠΠ° ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΉΡΡ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ½ΡΡΡ Π²ΡΠ΅ Π³Π°Π»ΠΎΡΠΊΠΈ Π΄Π»Ρ Π³ΡΡΠΏΠΏΡ Β«ΠΡΡΠΎΡΠΈΡΒ» ΠΈ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ±Π½ΠΎΠ²ΠΈΡΡΒ». ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ Π½Π°ΠΌ ΠΎΡΠΈΡΡΠΊΡ ΡΠ°Π±Π»ΠΈΡ history*
ΡΠ΅ΡΠ΅Π· housekeeper.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° Π³ΡΡΠΏΠΏΡ Β«ΠΠΈΠ½Π°ΠΌΠΈΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉΒ». ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠ°Π±Π»ΠΈΡΠ° trends
, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΎΠ±Π΅ΡΠ°Π»ΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ. ΠΡΠ»ΠΈ ΠΎΠ½Π° Ρ Π²Π°Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π»Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΠ±Π΅ΡΠΈΡΠ΅ Π³Π°Π»ΠΎΡΠΊΠΈ ΠΈ Π² ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π»ΠΎΡΡ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡ history*
.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°Π½Π΅Π΅, Π΄Π»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΠ²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ. ΠΠ΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
ALTER TABLE `history` ADD PARTITION (PARTITION p20190307 VALUES LESS THAN (UNIX_TIMESTAMP("2019-03-07 00:00:00")));
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΠ°ΡΡΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ Π·Π°ΠΏΡΠ΅ΡΠΈΠ»ΠΈ Zabbix ServerβΡ ΠΈΡ ΡΠΈΡΡΠΈΡΡ, ΡΠΎ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ° Π·Π°Π±ΠΎΡΠ°. Π ΡΡΠ°ΡΡΡΡ, Π·Π΄Π΅ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΉ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ, Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΠΌ ΡΡΠ°Π»ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ALTER TABLE history DROP PARTITION p20190201;
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² DELETE FROM Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Π°Ρ, DROP PARTITION Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° ΠΏΠ°ΡΡ ΡΠ΅ΠΊΡΠ½Π΄, ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ Π½Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΡΡΠΎΠ»Ρ ΠΆΠ΅ Π±Π΅ΡΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² MySQL ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. ΠΠ±ΡΡΠΌ Π΄Π°Π½Π½ΡΡ
ΡΠ°ΡΡΡΡ, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΎΡΡΡΠΈΠΌΠΎΠ³ΠΎ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π΅ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com