แƒฏแƒ•แƒแƒ แƒ”แƒ“แƒ˜แƒœแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ PostgreSQL-แƒกแƒ แƒ“แƒ MySQL-แƒก แƒจแƒแƒ แƒ˜แƒก

แƒฏแƒ•แƒแƒ แƒ”แƒ“แƒ˜แƒœแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ PostgreSQL-แƒกแƒ แƒ“แƒ MySQL-แƒก แƒจแƒแƒ แƒ˜แƒก

แƒ›แƒ” แƒ’แƒแƒ›แƒแƒ•แƒงแƒแƒค PostgreSQL-แƒกแƒ แƒ“แƒ MySQL-แƒก แƒจแƒแƒ แƒ˜แƒก แƒฏแƒ•แƒแƒ แƒ”แƒ“แƒ˜แƒœแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก, แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒจแƒแƒ แƒ˜แƒก แƒฏแƒ•แƒแƒ แƒ”แƒ“แƒ˜แƒœแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒก. แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒฏแƒ•แƒแƒ แƒ”แƒ“แƒ˜แƒœแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒฃแƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒก แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ”แƒœ แƒฐแƒแƒ›แƒแƒ’แƒ”แƒœแƒฃแƒ แƒก แƒ“แƒ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ”แƒ แƒ—แƒ˜ RDBMS แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ›แƒ”แƒแƒ แƒ”แƒ–แƒ” แƒ’แƒแƒ“แƒแƒกแƒแƒกแƒ•แƒšแƒ”แƒšแƒแƒ“.

PostgreSQL แƒ“แƒ MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ’แƒ•แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ”แƒœ NoSQL แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒก. แƒแƒฅ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก PostgreSQL-แƒกแƒ แƒ“แƒ MySQL-แƒก แƒจแƒแƒ แƒ˜แƒก แƒ แƒ”แƒšแƒแƒชแƒ˜แƒฃแƒ แƒ˜ DBMS แƒžแƒ”แƒ แƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ.

แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒ— แƒ›แƒ—แƒšแƒ˜แƒแƒœ แƒจแƒ˜แƒ“แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒก, แƒ แƒแƒ—แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒ”แƒฅแƒœแƒ”แƒ‘แƒแƒ— แƒ˜แƒ“แƒ”แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก, แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก, แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒจแƒแƒ แƒ˜แƒก แƒฎแƒ“แƒ”แƒ‘แƒ แƒแƒ แƒแƒ‘แƒ˜แƒ— แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒแƒœ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒ—แƒแƒ•แƒแƒ แƒก (แƒ›แƒแƒกแƒขแƒ”แƒ แƒก (แƒแƒœแƒฃ แƒ’แƒแƒ›แƒแƒ›แƒชแƒ”แƒ›แƒ”แƒšแƒก, แƒ›แƒ—แƒแƒ•แƒแƒ แƒก แƒแƒœ แƒแƒฅแƒขแƒ˜แƒฃแƒ ) แƒ“แƒ แƒกแƒšแƒแƒ•แƒก (แƒแƒ‘แƒแƒœแƒ”แƒœแƒขแƒ˜, แƒšแƒแƒ“แƒ˜แƒœแƒ˜ แƒแƒœ แƒžแƒแƒกแƒ˜แƒฃแƒ แƒ˜) แƒจแƒแƒ แƒ˜แƒก. แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜ แƒแƒกแƒšแƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒœแƒฃแƒ  แƒ›แƒฎแƒแƒ แƒ”แƒก. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒกแƒแƒ›แƒแƒ’แƒ˜แƒกแƒขแƒ แƒแƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒ–แƒ”, แƒแƒœแƒฃ แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜แƒ“แƒแƒœ แƒžแƒแƒกแƒ˜แƒฃแƒ แƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒจแƒแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒ•แƒ” แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒก แƒกแƒšแƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ›แƒ—แƒแƒ•แƒแƒ แƒก แƒแƒฅแƒขแƒ˜แƒฃแƒ -แƒแƒฅแƒขแƒ˜แƒฃแƒ  แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜. แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒ™แƒแƒกแƒ™แƒแƒ“แƒฃแƒ แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒแƒ  แƒแƒœ แƒ›แƒ”แƒข แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒจแƒแƒ แƒ˜แƒก.แƒแƒฅแƒขแƒ˜แƒฃแƒ -แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒแƒœ แƒแƒฅแƒขแƒ˜แƒฃแƒ -แƒžแƒแƒกแƒ˜แƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒแƒ–แƒ”, แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ‘แƒแƒ–แƒ” แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒœ แƒ’แƒแƒ แƒ” แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ–แƒ” แƒ“แƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ™แƒแƒ›แƒžแƒ แƒแƒ›แƒ˜แƒกแƒ”แƒ‘แƒ–แƒ”.

แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก. แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒขแƒ˜แƒ แƒแƒŸแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ™แƒ•แƒšแƒแƒ• แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜ แƒกแƒœแƒ”แƒžแƒจแƒแƒขแƒ”แƒ‘แƒ˜. MySQL แƒ“แƒ PostgreSQL แƒ’แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ— แƒแƒ› แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒแƒก แƒจแƒ˜แƒ“แƒ แƒแƒœ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒ‘แƒ˜แƒœแƒแƒ แƒฃแƒšแƒ˜ แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜, แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒฉแƒแƒ™แƒ”แƒขแƒ•แƒ แƒ“แƒ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜.

MySQL-แƒกแƒ แƒ“แƒ PostgreSQL-แƒก แƒจแƒแƒ แƒ˜แƒก แƒฏแƒ•แƒแƒ แƒ”แƒ“แƒ˜แƒœแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ”แƒ แƒ—แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ›แƒ”แƒแƒ แƒ”แƒ–แƒ” แƒ”แƒ แƒ—แƒฏแƒ”แƒ แƒแƒ“แƒ˜ แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ”แƒ‘แƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒแƒ—แƒ˜ แƒฃแƒจแƒฃแƒแƒšแƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒชแƒ•แƒšแƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒงแƒแƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ’แƒแƒ แƒ” แƒฆแƒ˜แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ pg_chameleon.

แƒ แƒ แƒแƒ แƒ˜แƒก pg_chameleon

pg_chameleon แƒแƒ แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ MySQL-แƒ“แƒแƒœ PostgreSQL-แƒ›แƒ“แƒ” Python 3-แƒจแƒ˜. แƒ˜แƒก แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก mysql-แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒก, แƒแƒกแƒ”แƒ•แƒ” Python-แƒจแƒ˜. แƒ แƒ˜แƒ’แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒ˜ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ MySQL แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช JSONB แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜ PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒ’แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜แƒ pl/pgsql แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ— แƒ“แƒ แƒ›แƒ แƒแƒ•แƒšแƒ“แƒ”แƒ‘แƒ PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜.

pg_chameleon-แƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜

แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ MySQL แƒกแƒฅแƒ”แƒ›แƒ แƒ”แƒ แƒ—แƒ˜แƒ“แƒแƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ“แƒ”แƒก แƒ”แƒ แƒ— แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒ”แƒ แƒ—แƒ˜-แƒ“แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜.
แƒฌแƒงแƒแƒ แƒแƒกแƒ แƒ“แƒ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ˜แƒ’แƒ˜แƒ•แƒ”.
แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ™แƒแƒกแƒ™แƒแƒ“แƒฃแƒ แƒ˜ MySQL แƒแƒกแƒšแƒ˜แƒ“แƒแƒœ.
แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒแƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ แƒแƒœ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ, แƒ’แƒแƒ›แƒแƒ แƒ˜แƒชแƒฎแƒฃแƒšแƒ˜แƒ.
แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒ”แƒœ แƒ“แƒ”แƒ›แƒแƒœแƒ”แƒ‘แƒ˜.
แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜ YAML-แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜
vm1
vm2

OS แƒ•แƒ”แƒ แƒกแƒ˜แƒ
CentOS Linux 7.6 x86_64
CentOS Linux 7.5 x86_64

DB แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ
MySQL 5.7.26
10.5

DB แƒžแƒแƒ แƒขแƒ˜
3306
5433

IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜
192.168.56.102
192.168.56.106

แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“ แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜ pg_chameleon-แƒ˜แƒก แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“. แƒ”แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒก Python 3.6.8-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฅแƒ›แƒœแƒ˜แƒก แƒ“แƒ แƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ’แƒแƒ แƒ”แƒ›แƒแƒก.

$> wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
$> tar -xJf Python-3.6.8.tar.xz
$> cd Python-3.6.8
$> ./configure --enable-optimizations
$> make altinstall

Python3.6-แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒ“แƒแƒ แƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ“แƒ แƒ’แƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒ. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, pip แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฃแƒแƒฎแƒšแƒ”แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ pg_chameleon-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒ–แƒ แƒแƒฎ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— pg_chameleon 2.0.9, แƒ—แƒฃแƒ›แƒชแƒ แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒแƒ แƒ˜แƒก 2.0.10. แƒ”แƒก แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒกแƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“.

$> python3.6 -m venv venv
$> source venv/bin/activate
(venv) $> pip install pip --upgrade
(venv) $> pip install pg_chameleon==2.0.9

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ— pg_chameleon (แƒฅแƒแƒ›แƒ”แƒšแƒ”แƒแƒœแƒ˜ แƒแƒ แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ) set_configuration_files แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒฉแƒแƒ แƒ—แƒแƒ— pg_chameleon แƒ“แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜.

(venv) $> chameleon set_configuration_files
creating directory /root/.pg_chameleon
creating directory /root/.pg_chameleon/configuration/
creating directory /root/.pg_chameleon/logs/
creating directory /root/.pg_chameleon/pid/
copying configuration  example in /root/.pg_chameleon/configuration//config-example.yml

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— config-example.yml-แƒ˜แƒก แƒแƒกแƒšแƒก, แƒ แƒแƒ’แƒแƒ แƒช default.yml, แƒ แƒแƒ—แƒ แƒ˜แƒก แƒ’แƒแƒฎแƒ“แƒ”แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜. แƒแƒ› แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒœแƒ˜แƒ›แƒฃแƒจแƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—.

$> cat default.yml
---
#global settings
pid_dir: '~/.pg_chameleon/pid/'
log_dir: '~/.pg_chameleon/logs/'
log_dest: file
log_level: info
log_days_keep: 10
rollbar_key: ''
rollbar_env: ''

# type_override allows the user to override the default type conversion into a different one.
type_override:
  "tinyint(1)":
    override_to: boolean
    override_tables:
      - "*"

#postgres  destination connection
pg_conn:
  host: "192.168.56.106"
  port: "5433"
  user: "usr_replica"
  password: "pass123"
  database: "db_replica"
  charset: "utf8"

sources:
  mysql:
    db_conn:
      host: "192.168.56.102"
      port: "3306"
      user: "usr_replica"
      password: "pass123"
      charset: 'utf8'
      connect_timeout: 10
    schema_mappings:
      world_x: pgworld_x
    limit_tables:
#      - delphis_mediterranea.foo
    skip_tables:
#      - delphis_mediterranea.bar
    grant_select_to:
      - usr_readonly
    lock_timeout: "120s"
    my_server_id: 100
    replica_batch_size: 10000
    replay_max_rows: 10000
    batch_retention: '1 day'
    copy_max_memory: "300M"
    copy_mode: 'file'
    out_dir: /tmp
    sleep_loop: 1
    on_error_replay: continue
    on_error_read: continue
    auto_maintenance: "disabled"
    gtid_enable: No
    type: mysql
    skip_events:
      insert:
        - delphis_mediterranea.foo #skips inserts on the table delphis_mediterranea.foo
      delete:
        - delphis_mediterranea #skips deletes on schema delphis_mediterranea
      update:

แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒ› แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒแƒ แƒ˜แƒก pg_chameleon แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒœแƒ˜แƒ›แƒฃแƒจแƒ˜, แƒ›แƒชแƒ˜แƒ แƒ” แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒ›แƒแƒ”แƒ แƒ’แƒแƒก แƒฌแƒงแƒแƒ แƒแƒก แƒ“แƒ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ’แƒแƒ แƒ”แƒ›แƒแƒก, แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ.

default.yml แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒ แƒ—แƒแƒ— แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ•แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ, แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ, แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜ แƒ“แƒ แƒ.แƒจ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ“แƒ˜แƒก type override แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ, แƒกแƒแƒ“แƒแƒช แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒแƒก แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒแƒ แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒฃแƒ›แƒ—แƒแƒ•แƒ แƒ”แƒกแƒ˜ แƒฌแƒ”แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒก tinyint(1) แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ  แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒ“. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ‘แƒ— แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒก. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ”แƒก แƒแƒ แƒ˜แƒก PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ, แƒ“แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ pg_conn. แƒ‘แƒแƒšแƒ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ— แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก, แƒแƒœแƒฃ แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก, แƒ แƒฃแƒ™แƒ”แƒ‘แƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒแƒก แƒฌแƒงแƒแƒ แƒแƒกแƒ แƒ“แƒ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก, แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒแƒ—, แƒšแƒแƒ“แƒ˜แƒœแƒ˜แƒก แƒ“แƒ แƒ, แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ, แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ–แƒแƒ›แƒ. แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› "แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜" แƒแƒ แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒšแƒแƒ‘แƒ˜แƒ—แƒ˜, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ”แƒ แƒ— แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜, แƒ แƒแƒ—แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜-แƒ”แƒ แƒ—แƒ–แƒ” แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ.

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ world_x แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก 4 แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช MySQL แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ แƒ’แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒแƒ“. แƒ›แƒ˜แƒกแƒ˜ แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒฅ. แƒœแƒ˜แƒ›แƒฃแƒจแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ›แƒแƒ“แƒ˜แƒก แƒ แƒแƒ’แƒแƒ แƒช tar แƒ“แƒ แƒจแƒ”แƒ™แƒฃแƒ›แƒจแƒฃแƒšแƒ˜ แƒแƒ แƒฅแƒ˜แƒ•แƒ˜ แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒ แƒ“แƒ แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ—.

MySQL แƒ“แƒ PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒจแƒ˜ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— usr_replica. MySQL-แƒจแƒ˜ แƒ›แƒแƒก แƒ”แƒœแƒ˜แƒญแƒ”แƒ‘แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒฃแƒš แƒชแƒฎแƒ แƒ˜แƒšแƒ–แƒ”.

mysql> CREATE USER usr_replica ;
mysql> SET PASSWORD FOR usr_replica='pass123';
mysql> GRANT ALL ON world_x.* TO 'usr_replica';
mysql> GRANT RELOAD ON *.* to 'usr_replica';
mysql> GRANT REPLICATION CLIENT ON *.* to 'usr_replica';
mysql> GRANT REPLICATION SLAVE ON *.* to 'usr_replica';
mysql> FLUSH PRIVILEGES;

PostgreSQL-แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ”แƒก แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ db_replica แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒ“แƒแƒœ. แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ usr_replica PostgreSQL-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ แƒ˜ แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒ˜, pgworld_x แƒ“แƒ sch_chameleon, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒฃแƒš แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒก แƒ“แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒก. แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ create_replica_schema แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ  แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ›แƒแƒก แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒœแƒแƒฎแƒแƒ•แƒ—.

postgres=# CREATE USER usr_replica WITH PASSWORD 'pass123';
CREATE ROLE
postgres=# CREATE DATABASE db_replica WITH OWNER usr_replica;
CREATE DATABASE

MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒแƒก แƒ˜แƒ’แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—. แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒซแƒแƒšแƒแƒจแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ.

$> vi /etc/my.cnf
binlog_format= ROW
binlog_row_image=FULL
log-bin = mysql-bin
server-id = 1

แƒแƒฎแƒšแƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒแƒ แƒ˜แƒ•แƒ” แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ, แƒ แƒแƒ—แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒจแƒ”แƒ’แƒ”แƒฅแƒ›แƒœแƒแƒ— pg_chameleon แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก.

PostgreSQL แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”:

$> mysql -u usr_replica -Ap'admin123' -h 192.168.56.102 -D world_x

MySQL แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”:

$> psql -p 5433 -U usr_replica -h 192.168.56.106 db_replica

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒกแƒแƒ›แƒ˜ pg_chameleon (แƒฅแƒแƒ›แƒ”แƒšแƒ”แƒแƒœแƒ˜) แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒก, แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒ“แƒ แƒแƒฎแƒ“แƒ”แƒœแƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก. แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ create_replica_schema pg_chameleon-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฅแƒ›แƒœแƒ˜แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ• แƒกแƒฅแƒ”แƒ›แƒแƒก (sch_chameleon) แƒ“แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒแƒก (pgworld_x) PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ—. แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ add_source แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒ— (default.yml) แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก mysql แƒ“แƒ init_replica แƒแƒฎแƒ“แƒ”แƒœแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒงแƒ แƒ“แƒœแƒแƒ‘แƒ˜แƒ—.

$> chameleon create_replica_schema --debug
$> chameleon add_source --config default --source mysql --debug
$> chameleon init_replica --config default --source mysql --debug

แƒแƒ› แƒกแƒแƒ›แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒœแƒแƒ—แƒšแƒแƒ“ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ. แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒแƒ•แƒแƒ แƒ˜แƒ แƒแƒœ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒ˜แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•, แƒ›แƒ™แƒแƒคแƒ˜แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒจแƒ˜, แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒแƒแƒ’แƒ•แƒแƒ แƒแƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ.

แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก start_replica-แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก.

$> chameleon start_replica --config default --source mysql 
output: Starting the replica process for source mysql

แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒ›แƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ show_status แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒฎแƒแƒšแƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ show_errors แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜.

แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒ•แƒ—แƒฅแƒ•แƒ˜แƒ—, แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒ”แƒœ แƒ“แƒ”แƒ›แƒแƒœแƒ”แƒ‘แƒ˜. แƒ›แƒแƒ—แƒ˜ แƒกแƒแƒœแƒแƒฎแƒแƒ•แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒก Linux ps แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜.

แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒ˜แƒ—แƒ•แƒšแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒแƒ“, แƒกแƒแƒœแƒแƒ› แƒแƒ  แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ— แƒ›แƒแƒก แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒก, แƒฉแƒแƒ•แƒกแƒ•แƒ˜แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒ“แƒ แƒ›แƒแƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ— sync_tables แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒก pg_chameleon-แƒจแƒ˜ แƒ“แƒ”แƒ›แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜.

mysql> create table t1 (n1 int primary key, n2 varchar(10));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t1 values (1,'one');
Query OK, 1 row affected (0.00 sec)
mysql> insert into t1 values (2,'two');
Query OK, 1 row affected (0.00 sec)

$> chameleon sync_tables --tables world_x.t1 --config default --source mysql
Sync tables process for source mysql started.

แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒก PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒงแƒแƒ•แƒ˜แƒ— แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜.

$> psql -p 5433 -U usr_replica -d db_replica -c "select * from pgworld_x.t1";
 n1 |  n2
----+-------
  1 | one
  2 | two

แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒแƒก, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ pg_chameleon แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒแƒกแƒแƒกแƒ แƒฃแƒšแƒ˜. แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒก แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒ™แƒฃแƒ แƒแƒขแƒฃแƒšแƒแƒ“ แƒ›แƒ˜แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒแƒœ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” (sch_chameleon).

$> chameleon stop_replica --config default --source mysql 
$> chameleon detach_replica --config default --source mysql --debug

แƒ—แƒฃ แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒฌแƒแƒกแƒแƒจแƒšแƒ”แƒšแƒแƒ“.

$> chameleon drop_source --config default --source mysql --debug
$> chameleon drop_replica_schema --config default --source mysql --debug

pg_chameleon-แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜

แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ.
แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ›แƒแƒแƒ’แƒ•แƒแƒ แƒ”แƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒ›แƒแƒ˜แƒชแƒœแƒแƒ— แƒแƒœแƒแƒ›แƒแƒšแƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒ™แƒแƒคแƒ˜แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—.
แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ”แƒ›แƒแƒขแƒแƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.
แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ”แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ”แƒ แƒ—แƒ˜ แƒแƒœ แƒ›แƒ”แƒขแƒ˜ MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒ“แƒแƒœ แƒ”แƒ แƒ— PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜.
แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒแƒ แƒฉแƒ”แƒฃแƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ.

pg_chameleon-แƒ˜แƒก แƒœแƒแƒ™แƒšแƒแƒ•แƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜

แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ MySQL 5.5 แƒ“แƒ แƒ–แƒ”แƒ›แƒแƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒงแƒแƒ แƒ แƒ“แƒ PostgreSQL 9.5 แƒ“แƒ แƒ–แƒ”แƒ›แƒแƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ.
แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒฃแƒœแƒ“แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“แƒ˜ แƒแƒœ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒฎแƒ“แƒ”แƒ‘แƒ init_replica แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ“แƒ แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ  แƒฎแƒ“แƒ”แƒ‘แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ.
แƒชแƒแƒšแƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ - แƒ›แƒฎแƒแƒšแƒแƒ“ MySQL-แƒ“แƒแƒœ PostgreSQL-แƒ›แƒ“แƒ”. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ "แƒแƒฅแƒขแƒ˜แƒฃแƒ -แƒžแƒแƒกแƒ˜แƒฃแƒ แƒ˜" แƒกแƒฅแƒ”แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒ แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜.
แƒฌแƒงแƒแƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ, แƒฎแƒแƒšแƒ PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜แƒ— (แƒจแƒ”แƒ˜แƒขแƒงแƒ•แƒ”แƒ— แƒ›แƒ”แƒขแƒ˜ แƒแƒฅ)

แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜ pg_chameleon-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ pg_chameleon-แƒจแƒ˜ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก MySQL-แƒ“แƒแƒœ PostgreSQL-แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒ˜แƒœแƒฃแƒกแƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒชแƒแƒšแƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒžแƒ แƒแƒคแƒ”แƒกแƒ˜แƒแƒœแƒแƒšแƒ”แƒ‘แƒก แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ, แƒ แƒแƒ› แƒกแƒฃแƒ แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒœ แƒ˜แƒ’แƒ˜ แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒชแƒแƒšแƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ“แƒ”แƒก แƒกแƒฎแƒ•แƒ แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ—แƒ˜ - SymmetricDS.

แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒ›แƒ”แƒขแƒ˜ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒฅ. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒแƒฅ.

SymmetricDS-แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ

SymmetricDS แƒแƒ แƒ˜แƒก แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒกแƒฎแƒ•แƒ แƒกแƒแƒ”แƒ แƒ—แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒ–แƒ”: Oracle, MongoDB, PostgreSQL, MySQL, SQL Server, MariaDB, DB2, Sybase, Greenplum, Informix, H2, Firebird แƒ“แƒ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ–แƒ”, แƒ›แƒแƒ’., Redshift แƒ“แƒ Azure แƒ“แƒ แƒ.แƒจ. แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜: แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒกแƒ แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ›แƒแƒกแƒขแƒ”แƒ  แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ’แƒแƒคแƒ˜แƒšแƒขแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒขแƒ แƒแƒœแƒกแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ“แƒ แƒกแƒฎแƒ•แƒ. แƒ”แƒก แƒแƒ แƒ˜แƒก Java แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ“แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก JRE แƒแƒœ JDK-แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก (แƒ•แƒ”แƒ แƒกแƒ˜แƒ 8.0 แƒแƒœ แƒฃแƒคแƒ แƒ แƒ›แƒแƒฆแƒแƒšแƒ˜). แƒแƒฅ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒขแƒ แƒ˜แƒ’แƒ”แƒ แƒ”แƒ‘แƒ–แƒ” แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ˜แƒฌแƒ”แƒ แƒแƒก แƒ“แƒ แƒ’แƒแƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒแƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒžแƒแƒ แƒขแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—.

SymmetricDS แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜

แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒแƒ  แƒแƒœ แƒ›แƒ”แƒข แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒชแƒ•แƒšแƒ.
แƒ แƒ”แƒšแƒแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒฎแƒแƒšแƒ แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก.
แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ Push แƒ“แƒ Pull แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”.
แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ“แƒ แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ’แƒแƒ›แƒขแƒแƒ แƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—.
แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒšแƒ˜แƒฅแƒขแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.
แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒ—แƒแƒœ แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒ˜ แƒ“แƒ แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก API-แƒ”แƒ‘แƒ˜.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

SymmetricDS แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒแƒ แƒ˜แƒ“แƒแƒœ แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒจแƒ˜:
แƒกแƒแƒ›แƒแƒ’แƒ˜แƒกแƒขแƒ แƒ (แƒ›แƒจแƒแƒ‘แƒ”แƒšแƒ˜) แƒ™แƒ•แƒแƒœแƒซแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒแƒ“ แƒ™แƒแƒแƒ แƒ“แƒ˜แƒœแƒแƒชแƒ˜แƒแƒก แƒฃแƒฌแƒ”แƒ•แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒแƒ  แƒ›แƒแƒœแƒ (แƒจแƒ•แƒ˜แƒšแƒ˜) แƒ™แƒ•แƒแƒœแƒซแƒก แƒจแƒแƒ แƒ˜แƒก, แƒฎแƒแƒšแƒ แƒจแƒ•แƒ˜แƒšแƒแƒ‘แƒ˜แƒš แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—.
แƒแƒฅแƒขแƒ˜แƒฃแƒ  แƒ™แƒ•แƒแƒœแƒซแƒก (Node 1) แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒก แƒกแƒฎแƒ•แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒ  แƒ™แƒ•แƒแƒœแƒซแƒก (Node 2) แƒจแƒฃแƒแƒ›แƒแƒ•แƒšแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒแƒ แƒ˜แƒ•แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒจแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒชแƒ•แƒšแƒ แƒฎแƒ“แƒ”แƒ‘แƒ Push-แƒ˜แƒกแƒ แƒ“แƒ Pull-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒแƒ› แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒแƒฅแƒขแƒ˜แƒฃแƒ -แƒแƒฅแƒขแƒ˜แƒฃแƒ  แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก. แƒ›แƒ—แƒ”แƒšแƒ˜ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ™แƒ•แƒšแƒ”แƒ•แƒ. แƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒ‘แƒแƒ แƒแƒ› แƒจแƒ”แƒ˜แƒขแƒงแƒแƒ— แƒ›แƒ”แƒขแƒ˜ SymmetricDS แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

SymmetricDS-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ: แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— zip แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒแƒฅแƒ”แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒ“แƒ แƒฌแƒแƒ˜แƒฆแƒ”แƒ— แƒกแƒแƒ“แƒแƒช แƒ’แƒ˜แƒœแƒ“แƒแƒ—. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒแƒ› แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ SymmetricDS-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก, Linux-แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก, IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒ แƒ˜แƒ•แƒ” แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒžแƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜
vm1
vm2

OS แƒ•แƒ”แƒ แƒกแƒ˜แƒ
CentOS Linux 7.6 x86_64
CentOS Linux 7.6 x86_64

DB แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ
MySQL 5.7.26
10.5

DB แƒžแƒแƒ แƒขแƒ˜
3306
5832

IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜
192.168.1.107
192.168.1.112

SymmetricDS แƒ•แƒ”แƒ แƒกแƒ˜แƒ
SymmetricDS 3.9
SymmetricDS 3.9

SymmetricDS แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒ–แƒ
/usr/local/symmetric-server-3.9.20
/usr/local/symmetric-server-3.9.20

SymmetricDS แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜
แƒ™แƒแƒ แƒž-000
แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒ-001

แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ— SymmetricDS-แƒก /usr/local/symmetric-server-3.9.20-แƒจแƒ˜ แƒ“แƒ แƒ˜แƒฅ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก แƒœแƒ˜แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒซแƒ แƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜. แƒœแƒ˜แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒกแƒแƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒแƒกแƒ”แƒ•แƒ” SQL แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ—แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ—.

แƒœแƒ˜แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒกแƒแƒ› แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— - แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ‘แƒฃแƒœแƒ”แƒ‘แƒแƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒกแƒฅแƒ”แƒ›แƒแƒจแƒ˜.

corp-000.properties
store-001.properties
store-002.properties

SymmetricDS-แƒก แƒแƒฅแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ 3-แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒแƒœแƒ˜ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ 1) แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก 2-แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒแƒœแƒ˜ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ 2). แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒœแƒ˜แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒ“แƒแƒœ vm1 แƒฐแƒแƒกแƒขแƒ˜แƒก แƒซแƒ แƒแƒ•แƒ”แƒ‘แƒ–แƒ”. แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก แƒแƒกแƒ”:

$> cat engines/corp-000.properties
engine.name=corp-000
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.1.107:3306/replica_db?autoReconnect=true&useSSL=false
db.user=root
db.password=admin123
registration.url=
sync.url=http://192.168.1.107:31415/sync/corp-000
group.id=corp
external.id=000

แƒแƒ› แƒ™แƒ•แƒแƒœแƒซแƒก SymmetricDS-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ corp-000 แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒก แƒ›แƒแƒ แƒ—แƒแƒ•แƒก mysql jdbc แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒก แƒ“แƒ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒก. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ— replica_db แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒ“แƒ แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜. sync.url แƒ’แƒ•แƒ˜แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒกแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒก แƒ™แƒ•แƒแƒœแƒซแƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ™แƒ•แƒแƒœแƒซแƒ˜ 2 แƒฐแƒแƒกแƒข vm2-แƒ–แƒ” แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ แƒแƒ’แƒแƒ แƒช store-001 แƒ“แƒ แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ node.properties แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒฅแƒ•แƒ”แƒ›แƒแƒ—. Node store-001 แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒ“แƒ pgdb_replica แƒแƒ แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ. register.url แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒฐแƒแƒกแƒข vm2-แƒก แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒก แƒฐแƒแƒกแƒข vm1-แƒก แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜.

$> cat engines/store-001.properties
engine.name=store-001
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://192.168.1.112:5832/pgdb_replica
db.user=postgres
db.password=admin123
registration.url=http://192.168.1.107:31415/sync/corp-000
group.id=store
external.id=001

แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ SymmetricDS แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒจแƒแƒ แƒ˜แƒก (แƒแƒ แƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜). แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฐแƒแƒกแƒข vm1-แƒ–แƒ” (corp-000), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒแƒก 4 แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ—. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒฅแƒ›แƒœแƒ-sym-tables-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ symadmin แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒฅแƒ›แƒœแƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒก, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ. แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“, แƒœแƒ˜แƒ›แƒฃแƒจแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜.

vm1$> cd /usr/local/symmetric-server-3.9.20/bin
vm1$> ./dbimport --engine corp-000 --format XML create_sample.xml
vm1$> ./symadmin --engine corp-000 create-sym-tables
vm1$> ./dbimport --engine corp-000 insert_sample.sql

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜, แƒกแƒแƒฅแƒแƒœแƒšแƒ˜แƒกแƒ แƒ“แƒ แƒœแƒ˜แƒ•แƒ—แƒ˜แƒก_แƒ’แƒแƒงแƒ˜แƒ“แƒ•แƒ˜แƒก_แƒคแƒแƒกแƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ“แƒ”แƒก corp-000-แƒ“แƒแƒœ store-001-แƒ›แƒ“แƒ”, แƒฎแƒแƒšแƒ แƒ’แƒแƒงแƒ˜แƒ“แƒ•แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜ (sale_transaction แƒ“แƒ sale_return_line_item) แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ“แƒ”แƒก store-001-แƒ“แƒแƒœ corp-000-แƒ›แƒ“แƒ”. แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒกแƒฅแƒ”แƒ›แƒแƒก PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒš vm2-แƒ–แƒ” (store-001), แƒ แƒแƒ—แƒ แƒ›แƒแƒ•แƒแƒ›แƒ–แƒแƒ“แƒแƒ— แƒ˜แƒ’แƒ˜ corp-000-แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“.

vm2$> cd /usr/local/symmetric-server-3.9.20/bin
vm2$> ./dbimport --engine store-001 --format XML create_sample.xml

แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ—, แƒ แƒแƒ› MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก vm1-แƒ–แƒ” แƒแƒฅแƒ•แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜ แƒ“แƒ SymmetricDS แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜. แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› SymmetricDS แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜ (แƒžแƒ แƒ”แƒคแƒ˜แƒฅแƒกแƒ˜แƒ— sym_) แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ node corp-000-แƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒฅ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ create-sym-tables แƒ“แƒ แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ— แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒ–แƒ”. แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ node store-001 แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ 4 แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒงแƒ•แƒ”แƒšแƒ. แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ›แƒ–แƒแƒ“แƒแƒ แƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒกแƒ˜แƒ› แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ’แƒแƒฃแƒจแƒ•แƒแƒก แƒแƒ แƒ˜แƒ•แƒ” แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—.

vm1$> cd /usr/local/symmetric-server-3.9.20/bin
vm1$> sym 2>&1 &

แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ แƒคแƒแƒœแƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜ (symmetric.log) แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜ แƒ˜แƒ› แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜, แƒกแƒแƒ“แƒแƒช แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ SymmetricDS, แƒแƒกแƒ”แƒ•แƒ” แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜. Sym แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒฎแƒšแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ node store-001-แƒ–แƒ”.

vm2$> cd /usr/local/symmetric-server-3.9.20/bin
vm2$> sym 2>&1 &

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— sym แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก vm2 แƒฐแƒแƒกแƒขแƒ–แƒ”, แƒ˜แƒก แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก SymmetricDS แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒก PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— sym แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒแƒ แƒ˜แƒ•แƒ” แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ™แƒแƒแƒ แƒ“แƒ˜แƒœแƒแƒชแƒ˜แƒแƒก แƒฃแƒฌแƒ”แƒ•แƒ”แƒœ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒก, แƒ แƒแƒ—แƒ แƒ’แƒแƒ˜แƒ›แƒ”แƒแƒ แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ corp-000-แƒ“แƒแƒœ store-001-แƒ›แƒ“แƒ”. แƒ—แƒฃ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒ— แƒแƒ—แƒฎแƒ˜แƒ•แƒ” แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒแƒ แƒ˜แƒ•แƒ” แƒ›แƒฎแƒ แƒ˜แƒ“แƒแƒœ, แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ—, แƒ แƒแƒ› แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ. แƒแƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒ— bootstrap node store-4-แƒจแƒ˜ corp-001-แƒ“แƒแƒœ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—.

vm1$> ./symadmin --engine corp-000 reload-node 001

แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ”, แƒแƒฎแƒแƒšแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜แƒ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ node corp-000-แƒ–แƒ” (แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜: vm1) แƒ“แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ node store-001-แƒ–แƒ” (แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜: vm2). แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— Pull แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒขแƒแƒœแƒแƒ“ corp-000-แƒ“แƒแƒœ store-001-แƒจแƒ˜.

mysql> insert into item values ('22000002','Jelly Bean');
Query OK, 1 row affected (0.00 sec)

vm2$> psql -p 5832 -U postgres pgdb_replica -c "select * from item"
 item_id  |   name
----------+-----------
 11000001 | Yummy Gum
 22000002 | Jelly Bean
(2 rows)

Push แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก store-001-แƒ“แƒแƒœ corp-000-แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒกแƒแƒขแƒแƒœแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒฉแƒแƒ•แƒกแƒ•แƒแƒ›แƒ— แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก sale_transaction แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ แƒ“แƒ แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒš แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก MySQL แƒ“แƒ PostgreSQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก. แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ›แƒ˜แƒฐแƒงแƒ”แƒ•แƒ˜แƒ— แƒแƒ› แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒก: แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒก t1 แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ แƒ“แƒ แƒ•แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒœแƒแƒ˜แƒ แƒแƒ“. แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก corp-000-แƒ“แƒแƒœ store-001-แƒ›แƒ“แƒ”.

mysql> create table  t1 (no integer);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into sym_channel (channel_id,create_time,last_update_time) 
values ('t1',current_timestamp,current_timestamp);
Query OK, 1 row affected (0.01 sec)

mysql> insert into sym_trigger (trigger_id, source_table_name,channel_id,
last_update_time, create_time) values ('t1', 't1', 't1', current_timestamp,
current_timestamp);
Query OK, 1 row affected (0.01 sec)

mysql> insert into sym_trigger_router (trigger_id, router_id,
Initial_load_order, create_time,last_update_time) values ('t1',
'corp-2-store-1', 1, current_timestamp,current_timestamp);
Query OK, 1 row affected (0.01 sec)

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก แƒ”แƒชแƒœแƒแƒ‘แƒ”แƒ‘แƒ แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒแƒœแƒฃ แƒแƒฎแƒแƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ, symadmin แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— sync-triggers แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒฅแƒ›แƒœแƒ˜แƒก แƒขแƒ แƒ˜แƒ’แƒ”แƒ แƒ”แƒ‘แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—. send-schema แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒ“ node store-001-แƒจแƒ˜ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก t1 แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ.

vm1$> ./symadmin -e corp-000 --node=001 sync-triggers    
vm1$> ./symadmin send-schema -e corp-000 --node=001 t1

SymmetricDS-แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜

แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ, แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ–แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ—แƒ•แƒšแƒ˜แƒ— แƒกแƒแƒ›แƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒแƒœ แƒแƒ แƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“.
แƒ›แƒ แƒแƒ•แƒแƒšแƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜, แƒšแƒ”แƒžแƒขแƒแƒžแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜.
แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ— แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, WAN-แƒ–แƒ” แƒแƒœ แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒจแƒ˜.
แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒกแƒ—แƒแƒœ แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒ—แƒแƒกแƒ—แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
แƒคแƒแƒกแƒ˜แƒแƒœแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ GUI แƒ“แƒ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ—.

SymmetricDS-แƒ˜แƒก แƒœแƒแƒ™แƒšแƒแƒ•แƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜

แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒกแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ–แƒ” แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ SQL แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ แƒแƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒ˜แƒงแƒแƒก.
แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ“แƒแƒ›แƒฆแƒšแƒ”แƒšแƒ˜, แƒ—แƒฃ แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒก SQL แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒ”แƒœ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒแƒก.
แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒจแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ“แƒ แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒแƒ  แƒ“แƒแƒ˜แƒ™แƒแƒ•แƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜ SymmetricDS-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

SymmetricDS แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ , แƒกแƒแƒ› แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒ—แƒแƒก แƒ™แƒ•แƒแƒœแƒซแƒก แƒจแƒแƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒšแƒแƒ“ แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒ‘แƒ”แƒ•แƒ  แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ” แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒ˜ แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ“แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒชแƒ•แƒšแƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก HTTPS-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ™แƒแƒœแƒคแƒšแƒ˜แƒฅแƒขแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ›แƒแƒ แƒ—แƒ•แƒ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ“แƒ แƒ.แƒจ. SymmetricDS แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก. แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒจแƒแƒ แƒ˜แƒก, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ˜แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ, แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ, แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ, แƒคแƒ˜แƒšแƒขแƒ แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒขแƒ แƒแƒœแƒกแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ”แƒ‘แƒ–แƒ”.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ”แƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒžแƒ˜แƒ แƒก แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ SymmetricDS-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ . IN แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒฆแƒฌแƒ”แƒ แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒชแƒœแƒ”แƒ‘แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ SymmetricDS-แƒ˜แƒ— แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒจแƒ˜.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ