"Pro, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบเบธเปˆเบก" เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบฝเบ™เปเบ—เบ™ DBMS เบ—เบตเปˆเบ™เปเบฒเป€เบ‚เบปเป‰เบฒ

"Pro, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบเบธเปˆเบก" เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบฝเบ™เปเบ—เบ™ DBMS เบ—เบตเปˆเบ™เปเบฒเป€เบ‚เบปเป‰เบฒ
(ts) Yandex.Images

เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™, เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบเบฒเบ™เบ„เป‰เบฒเป€เบ›เบฑเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡, เบ„เบงเบฒเบกเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปƒเบ”เป†เปเบกเปˆเบ™เปเบšเบšเบชเบธเปˆเบกเปเบฅเบฐเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ™เบตเป‰เปเบกเปˆเบ™ "เบ„เปเบฒเบ•เบฑเบ”เบชเบดเบ™เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเบซเบปเบงเบ‚เปเป‰เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบเบฐเบฅเบธเบ™เบฒเบขเปˆเบฒเบ—เปเบฒเบฅเบฒเบเบ›เบฐเบ•เบน ... ".

เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เป‚เบญเบ™เบฅเบฐเบšเบปเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ DBMS เบซเบ™เบถเปˆเบ‡เป„เบ›เบซเบฒเบญเบตเบ. เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡เบฅเบฑเบ”เบ–เบฐเบ”เปเบฒเบฅเบฑเบ”เบชเบฐเบšเบฑเบšเป€เบฅเบเบ—เบต 1236 เบ‚เบญเบ‡เป€เบ”เบทเบญเบ™เบžเบฐเบˆเบดเบ 16.11.2016, XNUMX, เบ™เบตเป‰เบกเบฑเบเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบญเบ™เบˆเบฒเบ Oracle เป„เบ› Postgresql. เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบšเบญเบเบ—เปˆเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบšเปเปˆเป€เบˆเบฑเบšเบ›เบงเบ”เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰;

Spoiler โ€“ เปเบกเปˆเบ™, cap, RAC เปเบฅเบฐ pg multimaster เปเบกเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบ.

เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เป‚เบญเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบ plsql เป„เบ› pgsql เปเบฅเป‰เบง. เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ–เบปเบ”เบ–เบญเบเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ”เบต, เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบเปเบฒเบฅเบฑเบ‡เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒ ... เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบชเบธเบเบซเบผเบฒเบ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบฅเบงเบกเบขเบนเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบชเปเบฒเบฅเบฑเบš DBMS เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบ. เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เปˆเบฒเบ™เบžเบปเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบˆเบฒเบเบœเบนเป‰เบ‚เบฒเบเบžเบฒเบเปƒเบ™เบ›เบฐเป€เบ—เบ” "Postgres Professional" เบ—เบตเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "multimaster", เป€เบŠเบดเปˆเบ‡เบกเบตเบขเบนเปˆเปƒเบ™เบชเบฐเบšเบฑเบš "เบชเบนเบ‡เบชเบธเบ”" เบ‚เบญเบ‡ "Postgres Pro Enterprise" เปเบฅเบฐเบญเบตเบ‡เบ•เบฒเบกเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบ - เบกเบฑเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆ. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบฅเบฐเบ”เป‰เบงเบเบเบฒเบ™เบชเบถเบเบชเบฒเปเบšเบšเบžเบดเป€เบชเบ”เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”, เบกเบฑเบ™เบˆเบฐเป€เบเบตเบ”เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เบซเบปเบงเบ‚เบญเบ‡เบ‚เป‰เบญเบ: "เป‚เบญเป‰! เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ RAC, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบกเบฑเบ™! เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบ—เปเปˆเบ—เบฒเบ‡เบงเบดเบŠเบฒเบเบฒเบ™เบขเบนเปˆเปƒเบ™เบšเป‰เบฒเบ™เป€เบเบตเบ”เป€เบกเบทเบญเบ‡เบ™เบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ!โ€

เปเบ•เปˆเบขเปˆเบฒเบŸเป‰เบฒเบงเบ—เบตเปˆเบˆเบฐเบ›เบดเบ•เบดเบเบดเบ™เบ”เบต, เปเบฅเบฐเบ•เปเปˆเป„เบ›เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰ nuances เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เป€เบžเบฒเบฐเบงเปˆเบฒ ... เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบ—เบตเปˆเบˆเบฐเบ„เบฒเบ”เบ„เบฐเป€เบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบญเปˆเบฒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”. เบ›เบฐเป€เบกเบตเบ™เบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบชเบฐเบšเบฑเบš DBMS เป€เบฅเบทเป‰เบญเบเป†เป‚เบ”เบเบเบปเบ‡เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบเบฒเบ™เบœเบฐเบฅเบดเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒ เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบธเบ”เบชเบฒเบซเบฐเบเปเบฒเปเบฅเบฐเบเบฒเบเบ—เบตเปˆเบˆเบฐเบเบงเบ”เบžเบปเบšเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš.
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบญเปˆเบฒเบ™เบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เปƒเบ™เบชเปˆเบงเบ™ "multimaster" - "เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”" เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ‚เบญเบ‡เบœเบนเป‰เบœเบฐเบฅเบดเบ”.

เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบžเบปเบšเปเบกเปˆเบ™ peculiarities เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เปƒเบ™เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ. เป‚เบซเบกเบ” "เบชเบญเบ‡เป€เบŸเบ”", เปเบฅเบฐเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบšเปเปˆเบกเบตเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚เบ™เบตเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ:

create table test1 (id integer, id1 integer);
insert into test1 values (1, 1),(1, 2);
 
ALTER TABLE test1 ADD CONSTRAINT test1_uk UNIQUE (id,id1) DEFERRABLE INITIALLY DEFERRED;
 
update test1
           set id1 =
               case id1
                 when 1
                 then 2
                 else id1 - sign(2 - 1)
               end
         where id1 between 1 and 2;

เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบถเป‰เบ™:

ะžะจะ˜ะ‘ะšะ:  [MTM] Transaction MTM-1-2435-10-605783555137701 (10654) is aborted on node 3. Check its log to see error details.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เปเปˆเบชเบนเป‰เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™เบเบฑเบš lock เบ•เบฒเบเปƒเบ™เบฎเบธเปˆเบ™ 10.5, 10.6, เปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบ”เบฝเบงเบ—เบตเปˆเบ‚เป‰เบฒเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบธเปˆเบกเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ "เบšเบฑเบ™เบซเบฒ" เบญเบญเบเบˆเบฒเบเบเบธเปˆเบก, i.e. เป€เบฎเบฑเบ” make_table_local, เปเบ•เปˆเบ™เบตเป‰เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบˆเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบฅเบฐเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ–เบทเบเบฅเบฐเบ‡เบฑเบšเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบซเป‰เบญเบเบฅเปเบ–เป‰เบฒเบชเปเบฒเบฅเบฑเบšเบ—เบธเบฅเบฐเบเปเบฒ commits. เบ”เบต, เบซเบผเบทเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เป€เบ›เบฑเบ™เป€เบงเบตเบŠเบฑเบ™ 11.2, เป€เบŠเบดเปˆเบ‡เบ„เบงเบ™เบŠเปˆเบงเบ, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเบšเปเปˆ, เบขเปˆเบฒเบฅเบทเบกเบเบงเบ”เป€เบšเบดเปˆเบ‡.

เปƒเบ™เบšเบฒเบ‡เบชเบฐเบšเบฑเบš, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบฅเบฑเบญเบเบ—เบตเปˆเบฅเบถเบเบฅเบฑเบšเบเบงเปˆเบฒ:

username= mtm ะธ backend_type = background worker

เปเบฅเบฐเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบชเบฐเบšเบฑเบš DBMS เป€เบ›เบฑเบ™ 11.2 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒเบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™, เบซเบผเบทเบšเบฒเบ‡เบ—เบตเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบŠเปˆเบงเบเป„เบ”เป‰.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบกเบตเบ”เบฑเบ”เบชเบฐเบ™เบตเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เป€เบŠเบดเปˆเบ‡เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš Bi-Directional เบ—เปˆเบฒเบ™เบˆเบฐเป€เบซเบฑเบ™ BDR เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบšเบฑเบ™เบ—เบถเบ MTM. เบกเบฑเบ™เปเบกเปˆเบ™ 2nd Quadrant เปเบ—เป‰เป†เบšเป? เบšเปเปˆ ... เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบŠเบทเป‰ multimaster, เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ„เบงเบฒเบกเบšเบฑเบ‡เป€เบญเบตเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบŠเบทเปˆเบ‚เบญเบ‡เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบต.

[MTM] bdr doesn't support index rechecks
[MTM] 12124: REMOTE begin abort transaction 4083
[MTM] 12124: send ABORT notification for transaction  (5467) local xid=4083 to coordinator 3
[MTM] Receive ABORT_PREPARED logical message for transaction MTM-3-25030-83-605694076627780 from node 3
[MTM] Abort prepared transaction MTM-3-25030-83-605694076627780 status InProgress from node 3 originId=3
[MTM] MtmLogAbortLogicalMessage node=3 transaction=MTM-3-25030-83-605694076627780 lsn=9fff448 

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบปเปˆเบงเบ„เบฒเบง, เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ: "เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ multimaster เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เปเบšเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ‚เบฝเบ™เบžเป‰เบญเบกเป†เบเบฑเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบปเปˆเบงเบ„เบฒเบงเปƒเบ™ node เปƒเบ”เปƒเบ™ cluster."

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบšเบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบปเปˆเบงเบ—เบธเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™, เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบปเปˆเบงเบ„เบฒเบง, เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ multimaster.remote_functions เบˆเบฐเบšเปเปˆเบŠเปˆเบงเบ, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ›เบฑเบšเบ›เบธเบ‡เบซเบผเบทเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเบญเบ‡โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบ multimaster เปเบฅเบฐ pg_pathman เบžเป‰เบญเบกโ€‹เบเบฑเบ™โ€‹เบžเบฒเบโ€‹เปƒเบ™โ€‹เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹เบ‚เบญเบ‡ "Postgres Pro Enterprise" v 10.5, เปƒเบซเป‰โ€‹เบเบงเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบงเปˆเบฒโ€‹เบ”เป‰เบงเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เบ™เบตเป‰โ€‹:

CREATE TABLE measurement (
    city_id         int not null,
    logdate         date not null,
    peaktemp        int,
    unitsales       int
) PARTITION BY RANGE (logdate);

CREATE TABLE measurement_y2019m06 PARTITION OF measurement FOR VALUES FROM ('2019-06-01') TO ('2019-07-01');
insert into measurement values (1, to_date('27.06.2019', 'dd.mm.yyyy'), 1, 1);
insert into measurement values (2, to_date('28.06.2019', 'dd.mm.yyyy'), 1, 1);
insert into measurement values (3, to_date('29.06.2019', 'dd.mm.yyyy'), 1, 1);
insert into measurement values (4, to_date('30.06.2019', 'dd.mm.yyyy'), 1, 1);

เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบฅเบตเปˆเบกเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบ™ DBMS nodes:

โ€ฆ
 PATHMAN_CONFIG doesn't contain relation 23245
> find_in_dynamic_libpath: trying "/opt/โ€ฆ/ent-10/lib/pg_pathman"
> find_in_dynamic_libpath: trying "/opt//โ€ฆ/ent-10/lib/pg_pathman.so"
> ะžะขะ›ะะ”ะšะ:  find_in_dynamic_libpath: trying "/opt/โ€ฆ/ent-10/lib/pg_pathman"
> find_in_dynamic_libpath: trying "/opt/โ€ฆ/ent-10/lib/pg_pathman.so"
> PrepareTransaction(1) name: unnamed; blockState: PREPARE; state: INPROGR, xid/subid/cid: 6919/1/40
> StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0
> switched to timeline 1 valid until 0/0
โ€ฆ
Transaction MTM-1-13604-7-612438856339841 (6919) is aborted on node 2. Check its log to see error details.
...
[MTM] 28295: REMOTE begin abort transaction 7017
โ€ฆ
[MTM] 28295: send ABORT notification for transaction  (6919) local xid=7017 to coordinator 1

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™, เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ›เบฐเป‚เบเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบŠเบทเป‰เบกเบฑเบ™.

เบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”? เบชเบดเบ”! เบญเบฑเบšเป€เบเบฃเบ”เป€เบ›เบฑเบ™ "Postgres Pro Enterprise" v 11.2

เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เบงเปˆเบฒเบฅเปเบฒเบ”เบฑเบšเบ™เบฑเป‰เบ™, เป€เบ›เบฑเบ™เบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบเบฑเบ™, เบšเปเปˆเบกเบตเบ„เปˆเบฒ end-to-end เปƒเบ™เบ—เบปเปˆเบง cluster, เปเบ•เปˆเบฅเบฐเบฅเปเบฒเบ”เบฑเบšเปเบกเปˆเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ node เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเปเบฅเบฐเบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบ—เบปเปˆเบฒเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™ node เปƒเบ™ cluster, เป€เบžเบฒเบฐเบงเปˆเบฒ เปƒเบ™เบซเบผเบฒเบ nodes เปƒเบ™ cluster เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, sequence เปเบฅเบฐ int เบˆเบฐเป€เบ•เบตเบšเป‚เบ•เป„เบงเบเบงเปˆเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบฒเบ”เป„เบงเป‰. เป€เบžเบทเปˆเบญเบ‡เปˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบฅเปเบฒเบ”เบฑเบšเปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบŠเบญเบเบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ alter_sequences, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบฅเปเบฒเบ”เบฑเบšเปƒเบ™เบ—เบธเบ nodes, เปเบ•เปˆเบเบฝเบกเบžเป‰เบญเบกเบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ—เบธเบเบฎเบธเปˆเบ™. เปเบ™เปˆเบ™เบญเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบˆเบฒเบ github เป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบซเบผเบทเปเบเป‰เป„เบ‚เบกเบฑเบ™เป€เบญเบ‡เป‚เบ”เบเบเบปเบ‡เปƒเบ™ DBMS. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ—เบปเปˆเบ‡เบ™เบฒเบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ” serialbigserial เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เปเบ•เปˆเป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™, เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบšเบฒเบ‡เบ—เบตเบšเบฒเบ‡เบ„เบปเบ™เบˆเบฐเบŠเบญเบเบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ monotonic_sequences เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.

เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเบฐเบšเบฑเบš 11.2 เบ‚เบญเบ‡ Postgres Pro Enterprise, เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบกเบตเบฅเบฐเบซเบฑเบ”เบซเบผเบฑเบเบ—เบตเปˆเบšเปเปˆเบŠเป‰เปเบฒเบเบฑเบ™, เปƒเบซเป‰เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบžเบฑเบ”เบ—เบฐเบ™เบฒ.

เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบเปˆเบฒเบงเป€เบ–เบดเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™ npgsql เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบเบธเปˆเบก;
เปƒเบ™โ€‹เบšเบฒเบ‡โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบžเบปเบšโ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹:

Exception Details: Npgsql.PostgresException: 25001: ะบะพะผะฐะฝะดะฐ SET TRANSACTION ISOLATION LEVEL 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰? เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบšเปเปˆเปƒเบŠเป‰เบšเบฒเบ‡เบชเบฐเบšเบฑเบš. เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เบˆเบฑเบเบžเบงเบเป€เบ‚เบปเบฒ, เป€เบžเบฒเบฐเบงเปˆเบฒ ... เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบชเบฐเบšเบฑเบš, เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบžเบปเบšเบกเบฑเบ™เบ•เปเปˆเบกเบฒ. เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เปเบฅเบฐเบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบเบงเบกเป€เบญเบปเบฒเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡ DBMS เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบœเบนเป‰เบœเบฐเบฅเบดเบ”เบ”เป‰เบงเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ–เบปเบ”เบ–เบญเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบชเบฐเบ™เบฑเป‰เบ™เป€เบงเบปเป‰เบฒ, เป€เบŠเบทเปˆเบญ, เปเบ•เปˆเบขเบทเบ™เบขเบฑเบ™.

เบ–เป‰เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบŠเป‰ npgsql เปเบฅเบฐเบชเบฐเบซเบผเบฑเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes เบ„เบดเบ”เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ„เบทเบเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”:

EXCEPTION:Npgsql.PostgresException (0x80004005): XX000: cache lookup failed for type ...

เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ™เบตเป‰เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเปเบฒเบฅเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆ

(NpgsqlConnection.GlobalTypeMapper.MapComposite<SomeType>("some_composite_type");) 

เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ•เบปเบงเบฅเบฐเบšเบธเบˆเบฒเบเป‚เบซเบ™เบ”เบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเปƒเบ™ node เบญเบทเปˆเบ™, เบกเบฑเบ™เบšเปเปˆเบเบปเบ‡เบเบฑเบ™, เป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, i.e. เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เป‚เบ›เปˆเบ‡เปƒเบชเบเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ™เบเบธเปˆเบกเบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ (เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™).

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ—เบธเบเบ„เบปเบ™เบฎเบนเป‰, เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบชเบฐเบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡เบเบธเปˆเบกเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเปเบฅเบฐเบกเบฒเบ”เบ•เบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™, เปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™, เปเบ•เปˆเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบกเบปเบ”เบˆเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆ. เบ—เปˆเบฒเบ™เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบœเบนเป‰เบœเบฐเบฅเบดเบ”เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบ‚เบปเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบ„เบฒเบ”เบซเบงเบฑเบ‡.

เบ•เบปเบงเบขเปˆเบฒเบ‡:

select mtm.collect_cluster_info();
ะฝะฐ ะบะฐะถะดะพะน ะฝะพะดะต ะฒั‹ะดะฐะตั‚ ะพะดะธะฝะฐะบะพะฒั‹ะน ั€ะตะทัƒะปัŒั‚ะฐั‚:
(1,Online,0,0,0,2,3,0,0,0,1,0,0,1,1,3,7,0,0,0,"2018-10-31 05:33:06")
(2,Online,0,0,0,2,3,0,0,0,1,0,0,1,1,3,7,0,0,0,"2018-10-31 05:33:06")
(3,Online,0,0,0,2,3,0,0,0,1,0,0,1,1,3,7,0,0,0,"2018-10-31 05:33:09")

เปเบ•เปˆเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก LiveNodes เบ›เบฐเบเบญเบšเบกเบตเบ•เบปเบงเป€เบฅเบ 2 เบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบญเบตเบ‡เบ•เบฒเบกเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡ multimaster เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบเบปเบ‡เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™ AllNodes=3? เบ„เปเบฒเบ•เบญเบš: เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบชเบฐเบšเบฑเบš DBMS.

เปเบฅเบฐเบเบฝเบกเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เป„เบกเป‰เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒ ... เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ—เปˆเบฒเบ™เบˆเบฐเป€เบซเบฑเบ™ "เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡ node เบญเบทเปˆเบ™." เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบˆเบฐเบเบญเบกเบฎเบฑเบšเบ—เบธเบเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบ™เบปเบ”เปเบฅเบฐเปเบˆเป‰เบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เบฎเบนเป‰เบงเปˆเบฒเบชเบฐเบšเบฑเบšเบ•เปเปˆเป„เบ›เปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบก, เป€เบŠเบดเปˆเบ‡เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบˆเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบขเบธเบ”เป€เบŠเบปเบฒ, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™ (เบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ DBMS เบ‚เบญเบ‡เบ—เปˆเบฒเบ™). เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบซเบงเบฑเบ‡เบงเปˆเบฒเบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบฐเบฅเบปเบšเบเบงเบ™เบœเบนเป‰เบ‚เบฒเบเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เปเบฅเบฐเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบ‚เบญเบ‡เบœเบนเป‰เบ•เบฒเบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฒเบ, เบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฒเบ, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเปƒเบ™ เบชเบดเป‰เบ™เบชเบธเบ”เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ”เป‰เบงเบเบเบธเปˆเบก disassembled เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™.

เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง, เปƒเบ™เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบเบฒเบ™เบ„เป‰เบฒ, เบœเบนเป‰เบœเบฐเบฅเบดเบ”เป€เบ•เบทเบญเบ™เบขเปˆเบฒเบ‡เบŠเบทเปˆเบชเบฑเบ”: "เบŠเบญเบšเปเบงเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™" เปเบฅเบฐเบšเปเบฅเบดเบชเบฑเบ”เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบˆเปเบฒเบเบฑเบ” Postgres Professional เบšเปเปˆเบกเบตเบžเบฑเบ™เบ—เบฐเบ—เบตเปˆเบˆเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒ, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡, เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡."

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบ„เบฒเบ”เป€เบ”เบปเบฒเบงเปˆเบฒเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปƒเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบงเบปเป‰เบฒเป€เบ–เบดเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres Pro Enterprise เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบ™เบถเปˆเบ‡เบ›เบต. เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบชเบฐเบซเบผเบธเบšเป€เบญเบ‡เป„เบ”เป‰, เบกเบฑเบ™เบ›เบฝเบเบŠเบธเปˆเบกเบˆเบปเบ™เป€เบซเบฑเบ”เป€เบ•เบตเบšเปƒเบซเบเปˆ.

เปเบ•เปˆเบ™เบตเป‰เบˆเบฐเบšเปเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบซเบผเบฒเบเบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบ—เบฑเบ™เป€เบงเบฅเบฒเปเบฅเบฐเบฅเบปเบšเบฅเป‰เบฒเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เป‚เบ”เบเบ—เบฑเบ™เบ—เบต.

เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เปเบ™เปˆเบ™เบญเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบ›เบฒเบเบปเบ”เบ‚เบทเป‰เบ™เบงเปˆเบฒเบœเบนเป‰เบœเบฐเบฅเบดเบ”เบšเปเปˆเบกเบตเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบเปเบฒเบˆเบฑเบ”เปเบกเบ‡เป„เบกเป‰เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบ”เป‰เบ—เบฑเบ™เบ—เบต.

เบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เปƒเบŠเป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบชเปเบฒเบซเบผเบงเบ”. เป€เบ‚เบปเป‰เบฒโ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบปเบšเบเบฐเบฅเบธเบ™เบฒ.

เบ—เปˆเบฒเบ™เบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เปƒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เบˆเบฒเบ DBMS เบ•เปˆเบฒเบ‡เบ›เบฐเป€เบ—เบ” / เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ” / เบžเบฒเบเปƒเบ™เบšเป?

  • 21,3%เปเบกเปˆเบ™เปเบฅเป‰เบง, เบšเบงเบ10

  • 10,6%เปเบกเปˆเบ™เปเบฅเป‰เบง, เบฅเบปเบš 5

  • 21,3%เบšเปเปˆ, DBMS เบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡10

  • 4,3%DBMS เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เปเบ•เปˆเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ›เปˆเบฝเบ™เปเบ›เบ‡2

  • 42,6%เป€เบšเบดเปˆเบ‡โ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบš 20

47 เบœเบนเป‰เปƒเบŠเป‰เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡. 12 เบœเบนเป‰เปƒเบŠเป‰เบ‡เบปเบ”.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster