{"id":330864,"date":"2022-03-21T03:00:09","date_gmt":"2022-03-21T03:00:09","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=330864"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=330864","title":{"rendered":"<span>Postgresso #2 \u0437\u0430 2022 (39)<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ib\/ae\/93\/ibae93vomjdfdddlbpkr6th6kws.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ib\/ae\/93\/ibae93vomjdfdddlbpkr6th6kws.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <i>\u0412 \u044d\u0442\u0438 \u0431\u0435\u0437\u0440\u0430\u0434\u043e\u0441\u0442\u043d\u044b\u0435 \u0434\u043d\u0438 \u043c\u043d\u043e\u0433\u0438\u043c \u0442\u0440\u0443\u0434\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0441\u043e\u0447\u0438\u043d\u044f\u0442\u044c \u0438 \u0434\u0430\u0436\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438. \u041d\u043e \u0418\u0422-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u044d\u0442\u043e \u043a\u0430\u043a \u0432\u043e\u0434\u043e\u043f\u0440\u043e\u0432\u043e\u0434 \u2014 \u0431\u0435\u0437 \u043d\u0435\u0451 \u0436\u0438\u0437\u043d\u044c \u0443\u0436\u0435 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430. \u0418 \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0442\u044c Postgresso. \u041f\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0441\u0441\u044b\u043b\u043e\u043a, \u043c\u0435\u043d\u044c\u0448\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u0418 \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u2014 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f<\/i><\/p>\n<h2>\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f<\/h2>\n<p>  \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 Oracle \u043d\u0430 Postgres \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u043c\u0438 \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u043f\u0440\u043e\u0447\u0438\u043c\u0438 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u044d\u0442\u0438\u0445 \u0421\u0423\u0411\u0414. \u041e\u0431 \u044d\u0442\u043e\u043c \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u0432\u0438\u0434\u0435\u043e.<\/p>\n<p>  \u041d\u0430\u0447\u043d\u0451\u043c \u0441 <b><a href=\"https:\/\/wiki.postgresql.org\/wiki\/Oracle_to_Postgres_Conversion\">Oracle to Postgres Conversion<\/a><\/b><\/p>\n<p>  \u042d\u0442\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 <a href=\"http:\/\/postgresql.org\/\">\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 PostgreSQL<\/a>. \u0415\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  <b><a href=\"https:\/\/www.enterprisedb.com\/blog\/the-complete-oracle-to-postgresql-migration-guide-tutorial-move-convert-database-oracle-alternative\">The Complete Oracle to PostgreSQL Migration Guide: Move and convert Schema, Application &amp; Data<\/a><\/b><\/p>\n<p>  \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0442 EDB. \u0415\u0441\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<a name=\"habracut\"><\/a><\/p>\n<p>  <b><a href=\"https:\/\/www.youtube.com\/watch?v=w3ke0K21bYw\">Oracle to Postgres Migrations<\/a><\/b><\/p>\n<p>  \u041f\u043e\u043b\u0443\u0442\u043e\u0440\u0430\u0447\u0430\u0441\u043e\u0432\u0430\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 <i>\u041f\u0451\u0442\u0440 \u041f\u0435\u0442\u0440\u043e\u0432<\/i> (Postgres Professional) \u2014 \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c. \u042d\u0442\u043e \u0443\u043c\u0435\u043b\u044b\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a \u0438 \u0437\u043d\u0430\u0442\u043e\u043a \u043d\u044e\u0430\u043d\u0441\u043e\u0432 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438. \u041d\u043e \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c.<\/p>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/company\/rostelecom\/blog\/566624\/\">\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u044b \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u0441 Oracle \u043d\u0430 PostgreSQL, \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c<\/a><\/b><\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f 2021-\u0433\u043e \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/rostelecom\/blog\/\">\u0445\u0430\u0431\u0440\u043e\u0431\u043b\u043e\u0433\u0435 \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430<\/a>. \u0418\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u043d\u0430 RedOS 7.2 \u00ab\u041c\u0443\u0440\u043e\u043c\u00bb, \u0430 \u0421\u0423\u0411\u0414 \u0431\u0440\u0430\u043b\u0438 \u0441\u0430\u043c\u0443\u044e \u0441\u0432\u0435\u0436\u0443\u044e (\u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442) \u2014 Postgres Pro Standard 13. \u0420\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044e \u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f <a href=\"https:\/\/github.com\/laurenz\/oracle_fdw\">Oracle FDW<\/a>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <i>\u041b\u043e\u0440\u0435\u043d\u0446 \u0410\u043b\u044c\u0431\u0435<\/i> (Laurenz Albe).<\/p>\n<p>  \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043e \u043d\u0435\u043c\u0430\u043b\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u043c\u0438 Oracle \u0438 Postgres, \u043d\u043e \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044c ORDER BY \u2014 \u0432\u044b\u0434\u0435\u043b\u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b <b><i>\u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u043e\u0439\u0434\u0443\u0442\u0441\u044f:<\/i><\/b><br \/>  <i>\u00ab\u0412\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 order by \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u201e\u043a\u0430\u043a \u0440\u0435\u0448\u0438\u043b \u0441\u0435\u0440\u0432\u0435\u0440 \u0411\u0414\u201c, \u0442.\u0435. \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u201e\u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u201c. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u044d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0432\u0441\u0435, \u0433\u0434\u0435 \u043d\u0435\u0442 ORDER BY \u2014 \u0432\u044b\u0432\u043e\u0434 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u0444\u0440\u043e\u043d\u0442\u0435, \u0432\u044b\u0432\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0442\u0447\u0435\u0442\u0430\u0445. \u0414\u0430, \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u0431\u044b\u043b\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ORDER BY, \u043d\u043e \u043a\u0430\u043a \u0431\u044b\u0442\u044c \u0432 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0442\u0430\u043a \u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e? \u041e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u044d\u0442\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043a \u201e\u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430\u201c \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c.\u00bb<\/i><\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e\u0431 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/568662\/\">Postgresso #33<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/pgconf.ru\/202110\/308499\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Oracle PL\/SQL \u043d\u0430 Postgres pl\/pgSQL: \u0432\u0437\u0433\u043b\u044f\u0434 \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0441\u043f\u0443\u0441\u0442\u044f<\/a><\/b><\/p>\n<p>  \u0414\u043e\u043a\u043b\u0430\u0434 <i>\u0410\u043d\u0430\u0442\u043e\u043b\u0438\u044f \u0410\u043d\u0444\u0438\u043d\u043e\u0433\u0435\u043d\u043e\u0432\u0430<\/i> \u0438\u0437 \u0410\u041e \u00ab\u0412\u041d\u0418\u0418\u0416\u0422\u00bb (\u0414\u0417\u041e \u041e\u0410\u041e \u00ab\u0420\u0416\u0414\u00bb) \u043d\u0430 <a href=\"https:\/\/pgconf.ru\/202110\/talks-and-tutorials\">PGConf.Russia 2021<\/a>. \u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u2014 \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430\u0443\u0447\u043d\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a \u043e\u0442\u0434\u0435\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0410\u041e \u00ab\u0412\u041d\u0418\u0418\u0416\u0422\u00bb. \u0420\u0435\u0447\u044c \u043e \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0420\u0416\u0414. \u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 24\/7 \u043d\u0430 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0435 16 \u0436\u0435\u043b\u0435\u0437\u043d\u044b\u0445 \u0434\u043e\u0440\u043e\u0433 \u043e\u0442 \u041a\u0430\u043b\u0438\u043d\u0438\u043d\u0433\u0440\u0430\u0434\u0430 \u0434\u043e \u0425\u0430\u0431\u0430\u0440\u043e\u0432\u0441\u043a\u0430 \u043f\u043b\u044e\u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0411\u0414 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u2014 \u0420\u0416\u0414 \u0435\u0441\u0442\u044c \u0420\u0416\u0414. \u041f\u0435\u0440\u0435\u043d\u0435\u0441\u043b\u0438 \u0441 Oracle 11g SE \u043d\u0430 \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u044b\u0439 PostgreSQL 11.9. \u0412 \u0434\u043e\u043a\u043b\u0430\u0434\u0435: \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043b\u0438, \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0438 \u043f\u0440\u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438, \u0447\u0442\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0431\u044b \u0438\u043d\u0430\u0447\u0435.<\/p>\n<p>  \u0412\u0441\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0441\u043b\u0430\u0439\u0434\u044b, \u0430 \u0442\u0435\u043c, \u0443 \u043a\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0432\u0445\u043e\u0434 \u0432 \u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u0430\u0431\u0438\u043d\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438, \u0438 \u0432\u0438\u0434\u0435\u043e \u0442\u043e\u0436\u0435.<\/p>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/company\/yoomoney\/blog\/326998\/\">\u042d\u043a\u0441\u0442\u0440\u0435\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 PostgreSQL: \u0431\u0435\u0437 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043f\u043e\u0442\u0435\u0440\u044c \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a><\/b><\/p>\n<p>  \u0411\u043b\u043e\u0433 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u042eMoney (\u0440\u0430\u043d\u0435\u0435 \u2014 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0435\u043d\u044c\u0433\u0438, \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0421\u0431\u0435\u0440\u0430). \u0421\u0442\u0430\u0442\u044c\u044f 2017-\u0433\u043e. \u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0431\u0435\u0437 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c, \u0437\u0430\u043d\u044f\u043b\u0430 4 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u043c\u0435\u0441\u044f\u0446\u0430 \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438 4 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u041f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u043a\u043e\u043b\u043e 50 \u0442\u0430\u0431\u043b\u0438\u0446.<\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/www.symmetricds.org\/\">SymmetricDS<\/a>, \u043d\u043e \u0431\u0435\u0437 \u00ab\u0440\u0443\u0447\u043d\u044b\u0445\u00bb \u0443\u0441\u0438\u043b\u0438\u0439 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0438\u0437 \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 (\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u043f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b, \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435):<\/p>\n<ul>\n<li><a href=\"https:\/\/www.oracle.com\/integration\/goldengate\/\">Oracle GoldenGate<\/a> \u2014 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430 \u0441\u0430\u043c\u0430\u044f \u0441\u0435\u0440\u0435\u0431\u0440\u044f\u043d\u0430\u044f \u043f\u0443\u043b\u044f. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0441 \u0446\u0435\u043d\u043e\u0439.<\/li>\n<li><a href=\"https:\/\/www.symmetricds.org\/\">SymmetricDS<\/a> \u2014 \u0435\u0441\u0442\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441\u0445\u0435\u043c\u044b, \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043f\u0440\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0437\u043b\u0430 PostgreSQL \u0432 \u043c\u0430\u0441\u0442\u0435\u0440-\u0443\u0437\u043b\u0435 Oracle. \u0415\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f BASH, Java \u0438\u043b\u0438 SQL.<\/li>\n<li><a href=\"https:\/\/www.fullconvert.com\/\">Full Convert<\/a> \u2014 \u0443\u043c\u0435\u0435\u0442 \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u043e\u0432 (\u043a\u043e\u0434 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438).<\/li>\n<li><a href=\"https:\/\/github.com\/cybertec-postgresql\/ora_migrator\">Oracle to PostgreSQL Migration<\/a> \u2014 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0441\u0445\u0435\u043c\u0443, \u0434\u0430\u043d\u043d\u044b\u0435, \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0438, \u0438\u043d\u0434\u0435\u043a\u0441\u044b. \u041f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f, \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u0435\u0442, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0411\u0414.<\/li>\n<li><a href=\"https:\/\/www.dbsofts.com\/\">ESF Database Migration Toolkit<\/a> \u2014 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0432\u0441\u0435 \u0442\u043e \u0436\u0435, \u0447\u0442\u043e \u0438 Oracle to PostgreSQL Migration. \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442.<\/li>\n<li><a href=\"https:\/\/ora2pg.darold.net\/\">Ora2Pg<\/a> \u2014 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0441\u0445\u0435\u043c\u0443, \u0434\u0430\u043d\u043d\u044b\u0435, \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0438, \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432. \u0418\u0437 \u043c\u0438\u043d\u0443\u0441\u043e\u0432: \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441 \u0442\u0438\u043f\u0430\u043c\u0438 blob\/clob (\u043e\u043a\u043e\u043b\u043e 200 \u0437\u0430\u043f\u0438\u0441\u0435\u0439\/\u0441\u0435\u043a), \u043d\u0435\u0442 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0440\u0430.<\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/ru-ru\/sql\/ssdt\/download-sql-server-data-tools-ssdt?view=sql-server-ver15\">SQLData Tool<\/a> \u2014 \u043c\u0438\u0433\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0445\u0435\u043c\u0443, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438.<\/li>\n<\/ul>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/company\/pgdayrussia\/blog\/327418\/\">\u041e\u0442 Oracle \u043a PostgreSQL \u2014 \u043f\u0443\u0442\u044c \u0434\u043b\u0438\u043d\u043e\u044e \u0432 4 \u0433\u043e\u0434\u0430<\/a><\/b><\/p>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f \u043f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0433\u043e <a href=\"https:\/\/www.youtube.com\/watch?v=s7nebARziek&amp;list=PL6sRAkPwcKNn5AOiMp_bD-VljlX19mon7&amp;index=17\">\u0434\u043e\u043a\u043b\u0430\u0434\u0430<\/a> <i>\u0410\u043d\u0434\u0440\u0435\u044f \u0420\u044b\u043d\u043a\u0435\u0432\u0438\u0447\u0430<\/i> (Phorm) \u043d\u0430 PGDay 2017.<\/p>\n<p>  \u041d\u0435\u043c\u0430\u043b\u043e\u0432\u0430\u0436\u043d\u0430\u044f \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f: <i>\u00ab\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0440\u043e\u0441\u043b\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445 [\u0432 Oracle] \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u2014 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0430, \u0432 \u0438\u0434\u0435\u0430\u043b\u0435, \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e MPP \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443 Oracle \u0441\u0442\u043e\u0438\u0442 \u0431\u0435\u0437\u0443\u043c\u043d\u044b\u0445 \u0434\u0435\u043d\u0435\u0433: grid, RAC, Exadata.\u00bb<\/i><\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0432\u0437\u044f\u043b\u0438 PostgreSQL. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043e\u0434\u0438\u043d \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u044f\u0434\u043e\u043c \u0441 Oracle, \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043d\u0430 \u043d\u0435\u0433\u043e \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438. \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 MPP-\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0442 Greenplum, \u043d\u043e \u043d\u0435 \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c.<\/p>\n<p>  \u0412\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u043d\u044f\u043b\u0430 4 \u0433\u043e\u0434\u0430. \u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u043b\u0430\u0441\u044c \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u043c \u0440\u043e\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438 \u0442\u0435\u043c \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0434\u0443\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0411\u0414.<\/p>\n<p>  \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0431\u044b\u043b\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a:<\/p>\n<ul>\n<li>online \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f Oracle \u0432 PostgreSQL;<\/li>\n<li>\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0430\u0442\u0447\u0438\u043d\u0433\u0430 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439;<\/li>\n<li>\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/li>\n<li>\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0431\u044b\u043b\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 Oracle Enterprise Manager \u0434\u043b\u044f PostgreSQL;<\/li>\n<li>\u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 BI \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Pentaho \u043d\u0430 \u044d\u0442\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/li>\n<\/ul>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/post\/321756\/\">\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0443\u0441\u043f\u0435\u0445\u0430 \u00ab\u042f\u043d\u0434\u0435\u043a\u0441.\u041f\u043e\u0447\u0442\u044b\u00bb \u0441 PostgreSQL<\/a><\/b><\/p>\n<p>  \u0414\u043e\u043a\u043b\u0430\u0434 <i>\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u0430 \u0411\u043e\u0440\u043e\u0434\u0438\u043d\u0430<\/i> (\u0438\u0437 \u042f\u043d\u0434\u0435\u043a\u0441, \u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 \u0435\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u043e\u0439 <i>\u0410\u043d\u0434\u0440\u0435\u0435\u043c \u0411\u043e\u0440\u043e\u0434\u0438\u043d\u044b\u043c<\/i>) \u043d\u0430 <a href=\"https:\/\/www.highload.ru\/2016\/\">Highload++ 2016<\/a>. \u041e\u043d \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442 \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043a\u0440\u0443\u043f\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 Oracle Database \u043d\u0430 PostgreSQL. \u042d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 HighLoad++ 2016. \u041f\u043e\u043b\u0443\u0447\u0430\u0441\u043e\u0432\u043e\u0435 \u0432\u0438\u0434\u0435\u043e \u0435\u0441\u0442\u044c <a href=\"https:\/\/www.youtube.com\/watch?v=pe_dwL38_o8\">\u043d\u0430 youtube<\/a>.<\/p>\n<p>  \u042d\u0442\u043e \u043d\u0435\u0448\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f: \u0431\u043e\u043b\u044c\u0448\u0435 10 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0441\u0443\u0442\u043a\u0438, \u0431\u043e\u043b\u0435\u0435 200 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0432 \u043f\u0438\u043a\u0435, \u0431\u043e\u043b\u0435\u0435 150 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u0438\u0441\u0435\u043c \u0432 \u0441\u0443\u0442\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u0441\u043f\u0430\u043c \u0438 \u0432\u0438\u0440\u0443\u0441\u044b. \u0421\u0443\u043c\u043c\u0430\u0440\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c \u043f\u0438\u0441\u0435\u043c \u0437\u0430 \u0432\u0441\u0435 16 \u043b\u0435\u0442 \u2014 \u0431\u043e\u043b\u044c\u0448\u0435 20 \u043f\u0435\u0442\u0430\u0431\u0430\u0439\u0442.<\/p>\n<p>  \u041d\u043e \u0440\u0435\u0447\u044c \u043e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 Oracle \u0432 PostgreSQL. \u0418\u0445 \u0442\u043e\u0436\u0435 \u043d\u0435\u043c\u0430\u043b\u043e: \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u0445\u0441\u043e\u0442 \u0422\u0411. \u0411\u043e\u043b\u0435\u0435 250 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 OLTP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 (80%) \u0447\u0442\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c, \u043f\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. \u0415\u0441\u0442\u044c \u0442\u0430\u043c \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u0430\u043c\u0438\u043c \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c. \u041f\u043e \u044d\u0442\u0438\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438, \u0438 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043f\u043e\u043c\u043e\u0433\u043b\u043e. \u0415\u0441\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0442\u043e\u0433\u043e, \u0447\u0435\u0433\u043e \u0432 Postgres \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442.<\/p>\n<p>  <b><a href=\"https:\/\/www.youtube.com\/watch?v=vWQDO9QQzLc\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Oracle \u043d\u0430 PostgreSQL \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Ora2Pg<\/a><\/b><\/p>\n<p>  \u0412\u0438\u0434\u0435\u043e <a href=\"http:\/\/devclub.spb.ru\">\u041a\u043b\u0443\u0431\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0421\u041f\u0431<\/a>. <i>\u0412\u0430\u0434\u0438\u043c \u041a\u0440\u0430\u0443\u0437\u0435<\/i>, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0418\u0421 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 Oracle \u043d\u0430 PostgreSQL. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 Ora2Pg, \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445, \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0417\u0430\u043f\u0438\u0441\u044c \u0441 6-\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u00ab\u041f\u0440\u043e\u0435\u043a\u0442\u044b, \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438\u00bb \u041a\u043b\u0443\u0431\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0421\u041f\u0431 \u0418\u0410\u0426.<\/p>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/post\/340566\/\">\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043f\u0440\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 Oracle \u0432 PostgreSQL<\/a><\/b><\/p>\n<p>  <i>\u00ab\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0442\u0430\u0431\u043b\u0438\u0446 \u0447\u0435\u0440\u0435\u0437 ora2pg, \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u043e \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435, \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f blob \u0438 Boolean, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432 PostgreSQL \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (nvl, nvl2, regexp_substr), \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u2014 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, view \u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u2014 \u043d\u0430\u043a\u043e\u043f\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0437\u0430 \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 sql \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438.\u00bb<\/i><\/p>\n<p>  \u0417\u0430\u043e\u0434\u043d\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043e\u0431 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435 \u2014 <b><a href=\"https:\/\/github.com\/orafce\/orafce\">orafce<\/a><\/b><\/p>\n<p>  \u042d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 Oracle-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u043e\u0432\u0435\u0440\u0445 PostgreSQL. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a <i>\u041f\u0430\u0432\u0435\u043b \u0428\u0442\u0435\u0445\u0443\u043b\u0435<\/i> (Pavel Stehule).<\/p>\n<p>  <b><a href=\"https:\/\/www.cybertec-postgresql.com\/en\/products\/cybertec-migrator\/\">Cybertec Migrator<\/a><\/b><\/p>\n<p>  \u041e\u043d \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 Oracle \u043d\u0430 PostgreSQL. \u0418 \u0441 \u043c\u0430\u043b\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430.<\/p>\n<p>  <b><a href=\"https:\/\/www.youtube.com\/watch?v=PYDG_zetMSU\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Oracle \u0432 PostgreSQL. \u041a\u0430\u043a \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 Oracle \u0432 PostgreSQL?<\/a><\/b><\/p>\n<p>  \u0412\u0438\u0434\u0435\u043e \u043e\u0442 Ispirer Systems. \u0412 \u044d\u0442\u043e\u0439 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438: \u043a\u0430\u043a Ispirer MnMTK \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044e \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 Oracle \u0432 PostgreSQL.<\/p>\n<p>  \u0415\u0449\u0451 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e \u0442\u0435\u043c\u0435:<br \/>  <a href=\"http:\/\/www.ispirer.ru\/products\/oracle-to-postgresql-migration\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Oracle \u043d\u0430 PostgreSQL<\/a> \u2014 \u043a\u043e\u0440\u043e\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0440\u043e\u043b\u0438\u043a \u043e\u0431 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438;<br \/>  <a href=\"https:\/\/www.youtube.com\/watch?v=_lxw1s-x9BU\">Oracle to PostgreSQL Migration with ora2pg<\/a> \u2014 \u0434\u043e\u043a\u043b\u0430\u0434 \u043d\u0430 PostgresConf South Africa;<br \/>  <a href=\"https:\/\/www.youtube.com\/user\/IspirerSystems\">\u0414\u0435\u043c\u043e<\/a> \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  <b><a href=\"https:\/\/www.youtube.com\/watch?v=0tg2F_Txuew&amp;list=PL6sRAkPwcKNn5AOiMp_bD-VljlX19mon7\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 \u0421\u0423\u0411\u0414 PostgreSQL\/Postgres Pro<\/a><\/b><\/p>\n<p>  \u0415\u0441\u0442\u044c \u0435\u0449\u0451 PDF \u0438 \u0432\u0438\u0434\u0435\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430 <a href=\"https:\/\/pgconf.ru\/2019\/251292\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 \u0421\u0423\u0411\u0414 PostgreSQL\/Postgres Pro \u0441 \u043c\u043d\u043e\u0433\u043e\u044f\u0434\u0435\u0440\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 Bull. \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u044b\u0442<\/a> (\u0432\u0438\u0434\u0435\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u0430\u0431\u0438\u043d\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430) \u043d\u0430 <a href=\"https:\/\/pgconf.ru\/2019\/\">PGConf.Russia 2019<\/a> <i>\u0410\u0440\u0442\u0451\u043c\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u0430<\/i> \u0438 <i>\u0410\u043b\u0435\u043a\u0441\u0435\u044f \u0418\u0433\u043d\u0430\u0442\u043e\u0432\u0430<\/i><\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0442\u0435\u043c, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043a\u0430\u0441\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430: PostgreSQL \u0438 \u043c\u043d\u043e\u0433\u043e\u0443\u0437\u043b\u043e\u0432\u044b\u0435 NUMA-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 (\u0410\u0440\u0442\u0451\u043c \u0418\u0432\u0430\u043d\u043e\u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b Atos, \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0418\u0433\u043d\u0430\u0442\u043e\u0432 \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 Postgres Professional). \u041e\u043d\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0441\u0442\u0440\u0435\u0441\u0441\u043e\u0432\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL \u0438 Postgres Pro \u043d\u0430 BullSequana S \u0438 Bullion S. \u0412 Postgres Professional \u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (\u043f\u0430\u0442\u0447\u0438) \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 NUMA. \u0412\u043e\u043e\u0431\u0449\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c: <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/423685\/\">\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c \u0432 PostgreSQL: \u043d\u0435 \u0441\u0444\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u043d\u0435 \u043a\u043e\u043d\u044c, \u043d\u0435 \u0432 \u0432\u0430\u043a\u0443\u0443\u043c\u0435<\/a><\/b>.<\/p>\n<p>  <b><a href=\"https:\/\/www.youtube.com\/watch?v=c3qIjrZLZDE\">Oracle to PostgreSQL Migration Tutorial part 1<\/a><\/b> \u0438 <b><a href=\"https:\/\/pgconf.ru\/2019\/248906\">part 2<\/a><\/b><\/p>\n<p>  \u0412\u0438\u0434\u0435\u043e \u043c\u0430\u0441\u0442\u0435\u0440-\u043a\u043b\u0430\u0441\u0441\u0430 <i>\u0410\u043b\u044c\u0432\u0430\u0440\u043e \u042d\u0440\u043d\u0430\u043d\u0434\u0435\u0441\u0430<\/i> (\u00c1lvaro Hern\u00e1ndez Tortoza) \u043d\u0430 <a href=\"https:\/\/pgconf.ru\/2019\/248906\">PGConf.Russia 2019<\/a>. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 3-\u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434. \u0412\u0430\u0436\u043d\u043e, \u0447\u0442\u043e \u043e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435: \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0435 \u0441\u043e\u0444\u0442\u0430 \u043c\u0435\u0441\u0441\u0438\u043d\u0434\u0436\u0435\u0440\u0430 BlackBerry (<a href=\"https:\/\/en.wikipedia.org\/wiki\/BBM_(software)\">BBM<\/a>) \u0441 150 \u043c\u043b\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043d\u0430 Oracle \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 DC \u0441\u0430\u043c\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 BlackBerry. \u0410 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b \u043d\u0430 PostgreSQL \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. \u041d\u0430 youtube \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 1-\u044f \u0447\u0430\u0441\u0442\u044c. <a href=\"https:\/\/pgconf.ru\/2019\/248906\">\u041e\u0431\u0435 \u0447\u0430\u0441\u0442\u0438<\/a> \u0435\u0441\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438, \u043d\u043e \u0442\u0430\u043c \u0432\u0438\u0434\u0435\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u0430\u0431\u0438\u043d\u0435\u0442.<\/p>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/company\/infowatch\/blog\/494430\/\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0438\u0437 Oracle \u0432 Postgres<\/a><\/b><\/p>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f 2020-\u0433\u043e \u0433\u043e\u0434\u0430 \u043e\u0442 InfoWatch, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0445\u0435\u043c\u044b (15 \u0413\u0431\u0430\u0439\u0442) \u0441 Oracle 11.2.0.4 \u043d\u0430 Linux Redhat 6.8 \u0432 Postgres 9.4 \u043d\u0430 Windows \u2014 \u043d\u0435\u0447\u0430\u0441\u0442\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u043d\u0430 Postgres \u043f\u043e\u0434 Windows, \u0434\u0430 \u0435\u0449\u0451 \u0438 \u0441 Linux. <\/p>\n<h3>\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 MS SQL<\/h3>\n<p>  <b><a href=\"https:\/\/pgday.ru\/presentation\/114\/5964aa2acee17.pdf\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f OLTP \u0441 MSSQL \u043d\u0430 PostgreSQL<\/a><\/b><\/p>\n<p>  \u042d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 PDF-\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0435\u0441\u0442\u044c \u0438 40-\u043c\u0438\u043d\u0443\u0442\u043d\u043e\u0435 <a href=\"https:\/\/www.youtube.com\/watch?v=DW44aVTY1HQ\">\u0432\u0438\u0434\u0435\u043e<\/a>. <i>\u041a\u0440\u0438\u0441\u0442\u0438\u043d\u0430 \u041a\u0443\u0447\u0435\u0440\u043e\u0432\u0430<\/i> \u0438\u0437 Distillery \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u0434\u043e, \u043d\u043e \u0438 \u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 (\u0432 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0434\u0435\u043b <b><i>\u0413\u0440\u0430\u0431\u043b\u0438<\/i><\/b>). <\/p>\n<h3>\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 DB2<\/h3>\n<p>  <b><a href=\"https:\/\/www.youtube.com\/watch?v=MGo5djFvXK4\">\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0411\u0414 \u0431\u043e\u043b\u044c\u0448\u0435 10\u0422\u0431 \u0441 DB2 \u043d\u0430 PostgreSQL \u0431\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u0411\u0414<\/a><\/b><\/p>\n<p>  \u0420\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 <i>\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041f\u043e\u0433\u0438\u0431\u0435\u043d\u043a\u043e<\/i> (\u041d\u0418\u0418 \u0412\u043e\u0441\u0445\u043e\u0434). \u042d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e, \u0430 \u0437\u0434\u0435\u0441\u044c <a href=\"https:\/\/webscaleconf.ru\/2017\/abstracts\/2833.html\">\u0442\u0435\u0437\u0438\u0441\u044b<\/a>.<\/p>\n<p>  \u0414\u0430, \u0441\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0435\u0449\u0451 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0441 DB2. \u0421\u0440\u0435\u0434\u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0432\u0438\u0434\u0435\u043e, \u0431\u044b\u043b\u0438: \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437-\u0437\u0430 \u043e\u0442\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 DB2 \u0438 PG \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c BLOB&#8217;\u043e\u0432 \u0432 Ceph. \u0420\u0435\u0448\u0430\u043b\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432;<\/li>\n<li>\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0433\u043e <a href=\"https:\/\/schemaspy.org\/\">SchemaSpy<\/a>;<\/li>\n<li>\u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/spring.io\/projects\/spring-batch\">Spring Batch<\/a>;<\/li>\n<li>\u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u0438 (\u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430: 1. \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 id \u043c\u0435\u0436\u0434\u0443 min \u0438 max \u043d\u0430 \u0440\u0430\u0432\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0438 2. \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b \u0441 \u0440\u0430\u0432\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0441\u0442\u0440\u043e\u043a).<\/li>\n<\/ul>\n<h3>\u0415\u0449\u0451<\/h3>\n<p>  <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/351008\/\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043d\u044b\u0435 \u0438 \u043e\u043a\u043e\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 PostgreSQL \u0438 Oracle<\/a><\/b><\/p>\n<p>  \u041d\u0435 \u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438, \u043d\u043e \u043f\u0440\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u044c\u0441\u044f. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 <i>\u0415\u0433\u043e\u0440\u0430 \u0420\u043e\u0433\u043e\u0432\u0430<\/i> \u0432 \u0434\u0432\u0443\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043d\u044b\u0435 \u0438 \u043e\u043a\u043e\u043d\u043d\u044b\u0435 (\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Oracle \u2014 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435) \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u0438 \u0432 \u0446\u0435\u043b\u043e\u043c \u0432 \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u043a \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u0438, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436. \u041d\u043e \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f.<\/p>\n<p>  \u041d\u043e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0415\u0433\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u0435\u0439\u0448\u0435\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0438 Oracle \u043e\u0442 Postgres: <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/275755\/\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 Oracle \u0438 PostgreSQL: \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/a><\/b><\/p>\n<p>  Oracle \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u044d\u0448 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0430 Postgres \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e. \u0418\u0437 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043d\u0430\u044f \u0438\u0434\u0435\u043e\u043b\u043e\u0433\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0432 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0421\u0423\u0411\u0414.<\/p>\n<p>  <b><a href=\"https:\/\/fabianlindfors.se\/blog\/schema-migrations-in-postgres-using-reshape\/\">Zero-downtime schema migrations in Postgres using Reshape<\/a><\/b><\/p>\n<p>  \u041e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438, \u0445\u043e\u0442\u044f \u0438 \u043d\u0435 \u0441 Oracle: \u0441\u0442\u0430\u0442\u044c\u044f \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 <i>\u0424\u0430\u0431\u0438\u0430\u043d\u0430 \u041b\u0438\u043d\u0434\u0444\u043e\u0440\u0441\u0430<\/i> (Fabian Lindfors), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0441\u043e\u0437\u0434\u0430\u043b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/github.com\/fabianlindfors\/reshape\">reshape<\/a>. \u0423 \u043d\u0435\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e, \u0434\u043b\u044f \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043e, \u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435. \u0424\u0430\u0431\u0438\u0430\u043d \u0434\u0435\u043b\u0430\u043b Reshape \u0434\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 (PG -> PG) \u0431\u0435\u0437 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430. Reshape \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0438 \u0441\u0442\u0430\u0440\u0430\u044f, \u0438 \u043d\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u0430. \u042d\u0442\u043e \u0434\u0430\u0451\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e. \u0412\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0435\u043b\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0445 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 PostgreSQL 12.<\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f <b><a href=\"https:\/\/github.com\/fabianlindfors\/reshape\/releases\/\">reshape 0.5.1<\/a><\/b><\/p>\n<p>  \u0412 \u043d\u0435\u0439 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0433\u043e\u0432. \u0410 \u0432\u043e\u0442 \u0432 \u0442\u043e\u0436\u0435 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0439 <a href=\"https:\/\/github.com\/fabianlindfors\/reshape\/releases\/tag\/v0.5.0\">0.5.0<\/a> \u043d\u0435\u043c\u0430\u043b\u043e \u043d\u043e\u0432\u043e\u0433\u043e:<\/p>\n<ul>\n<li>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c <code>remove_foreign_key<\/code>;<\/li>\n<li>\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0438\u0437 <code>.env<\/code>-\u0444\u0430\u0439\u043b\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d \u0435\u0441\u0442\u044c;<\/li>\n<li>Reshape \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u0434\u043b\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445;<\/li>\n<li>\u0432\u0432\u0435\u0434\u0451\u043d \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443; \u043f\u0435\u0440\u0435\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u043e\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u043e\u0439\u0442\u0438 \u0441\u0435\u043a\u0443\u043d\u0434\u0430;<\/li>\n<li>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439);<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u043f\u0446\u0438\u0439 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f; \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f POSTGRES_URL \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0430 \u0432 DB_URL;<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0444\u043b\u0430\u0433 <code>--version<\/code> \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f.<\/li>\n<\/ul>\n<p>  <b><a href=\"https:\/\/databaseci.com\/docs\/migra\">migra<\/a><\/b><\/p>\n<p>  migra \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441\u0445\u0435\u043c \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 CLI \u0438 Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443. \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u2014 DatabaseCI, \u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f. \u041f\u043e \u043e\u0442\u0437\u044b\u0432\u0430\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0442\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442.<\/p>\n<h2>ARM \u0438 Postgres<\/h2>\n<p>  \u0422\u0435\u043c\u0430 \u043e\u0447\u0435\u043d\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0431\u0443\u044e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Baikal-M\">\u0411\u0430\u0439\u043a\u0430\u043b-\u041c<\/a>, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 ARM. \u041d\u043e \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u043a\u0430\u0441\u0430\u0435\u043c\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 <a href=\"https:\/\/habr.com\/ru\/post\/584868\/\">\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b<\/a> \u0411\u0430\u0439\u043a\u0430\u043b\u043e\u0432. \u0422\u043e\u043b\u044c\u043a\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 PostgreSQL.<\/p>\n<p>  \u0422\u0435\u043c\u0430 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0434\u0430\u0432\u043d\u043e. \u0412\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u0430\u0442\u044c\u044f 2017-\u0433\u043e \u0433\u043e\u0434\u0430:<\/p>\n<p>  <b><a href=\"https:\/\/www.cybertec-postgresql.com\/en\/running-production-postgresql-systems-on-arm-architecture\/\">Running Production PostgreSQL Systems On ARM Architecture<\/a><\/b><\/p>\n<p>  \u042d\u0442\u043e \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u043d\u044b\u0439 \u0415\u0432\u0440\u043e\u0441\u043e\u044e\u0437\u043e\u043c: <a href=\"https:\/\/www.m2dc.eu\/en\/\">Modular Microserver Data Centre<\/a>. \u0416\u0435\u043b\u0435\u0437\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 4-\u044f\u0434\u0435\u0440\u043d\u044b\u0445 2.2GHz <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tegra\">Tegra<\/a> (\u0442\u043e \u0435\u0441\u0442\u044c ARM+GPU) \u043e\u0442 Nvidia. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/heterodb.github.io\/pg-strom\/\">PG-Strom<\/a>. \u0410\u0432\u0442\u043e\u0440 \u2014 <i>\u041a\u0430\u0430\u0440\u0435\u043b \u041c\u043e\u043f\u043f\u0435\u043b<\/i> (Kaarel Moppel, \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 Cybertec) \u2014 \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u0438 <a href=\"https:\/\/www.cybertec-postgresql.com\/wp-content\/uploads\/2020\/10\/PostgreSQLonARM_2020.pdf\">PDF<\/a>.<\/p>\n<p>  <b><a href=\"https:\/\/huawei.ru\/insights\/opyt-testirovaniya-postgresql-13-na-arm-serverakh-huawei-taishan-200\/\">\u041e\u043f\u044b\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL 13 \u043d\u0430 ARM-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 HUAWEI TaiShan 200<\/a><\/b><\/p>\n<p>  \u0421\u0432\u0435\u0436\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442 \u0441\u0430\u043c\u043e\u0439 Huawai, \u0430\u0432\u0442\u043e\u0440 \u2014 \u043f\u0440\u0435-\u0441\u0435\u0439\u043b\u0437 <i>\u0412\u0430\u0434\u0438\u043c \u0421\u0443\u0444\u0438\u044f\u0440\u043e\u0432<\/i>. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f, pgbench, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 x-86.<\/p>\n<p>  \u0412\u044b\u0432\u043e\u0434\u044b: <i>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f. \u041d\u0430 \u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043e\u0431\u0449\u0438\u0439 \u0434\u0438\u0437\u0430\u0439\u043d \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432 PostgreSQL \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0432\u044b\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u043d\u0438\u0436\u0435, \u0447\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b x86. \u0412 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 ARM \u0432\u044b\u0448\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 x86 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 10-15%.<\/i><\/p>\n<p>  <b><a href=\"https:\/\/blog.dbi-services.com\/postgresql-on-arm-oci\/\">PostgreSQL on Oracle free tier ARM<\/a><\/b><\/p>\n<p>  \u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0435\u0446 <i>\u0424\u0440\u0430\u043d\u043a \u041f\u0430\u0448\u043e<\/i> (Franck Pachot), \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 Oracle Team. PostgreSQL \u043d\u0430 Oracle \u2014 \u0437\u0432\u0443\u0447\u0438\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0432\u0430\u0442\u043e, \u043d\u043e \u0440\u0435\u0447\u044c \u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043e PostgreSQL 14 beta \u043d\u0430 Oracle Linux 7.9. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b \u2014 ARM v8.2 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 LSE (\u043f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0424\u0440\u0430\u043d\u043a\u0430 \u044d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u2014 \u0441\u043c. \u0441\u0442\u0430\u0442\u044c\u044e <i>\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0432\u0430<\/i>, \u043d\u044b\u043d\u0435 <a href=\"https:\/\/github.com\/orioledb\">OrioleDB<\/a> <b><a href=\"https:\/\/akorotkov.github.io\/blog\/2021\/04\/30\/arm\/\">Dramatical Effect of LSE Instructions for PostgreSQL on Graviton2 Instances<\/a><\/b>).<\/p>\n<p>  \u0415\u0449\u0451 \u043e\u0442 \u041f\u0430\u0448\u043e:<\/p>\n<p>  <b><a href=\"https:\/\/dev.to\/yugabyte\/sqlcl-to-transfer-data-from-oracle-to-postgresql-or-yugabytedb-lha\">SQLcl to transfer data from Oracle to PostgreSQL or YugabyteDB<\/a><\/b> \u2014 Oracle \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u0430\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0434\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0418\u0417 Oracle. \u0412 PostgreSQL \u0438 \u0432 YugabyteDB. \u0418\u043c\u0435\u0435\u0442\u0441\u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 CSV-\u0444\u0430\u0439\u043b: <b><a href=\"https:\/\/database.guide\/how-to-export-query-results-to-a-csv-file-in-sqlcl-oracle\/\">How to Export Query Results to a CSV File in SQLcl (Oracle)<\/a><\/b>.<\/p>\n<h2>\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>  \u0423\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0436\u0435 \u043f\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0440\u0443\u043a\u0430\u0445 \u043d\u043e\u0432\u044b\u0435 \u043a\u043d\u0438\u0433\u0438:<\/p>\n<p>  <b><a href=\"https:\/\/postgrespro.ru\/education\/books\/internals\">PostgreSQL \u0438\u0437\u043d\u0443\u0442\u0440\u0438<\/a><\/b> \u2014 660 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, 29 \u0433\u043b\u0430\u0432, \u043e\u0434\u043d\u043e \u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 11 \u0441\u0442\u0440\u0430\u043d\u0438\u0446.<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vo\/1u\/0r\/vo1u0roh1jip7shvhvzucbmzlly.jpeg\" height=\"315\" width=\"420\" data-src=\"https:\/\/habrastorage.org\/webt\/vo\/1u\/0r\/vo1u0roh1jip7shvhvzucbmzlly.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u043e\u0434\u0443 8-\u0433\u043e \u0444\u0435\u0432\u0440\u0430\u043b\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043d\u0430 <a href=\"https:\/\/www.youtube.com\/channel\/UC0SBGSNmBLrTZIkbN-lJHnw\">\u041f\u043e\u0441\u0442\u0433\u0440\u0435\u0441-\u0432\u0442\u043e\u0440\u043d\u0438\u043a\u0435<\/a> \u0443 <i>\u041d\u0438\u043a\u043e\u043b\u0430\u044f \u0421\u0430\u043c\u043e\u0445\u0432\u0430\u043b\u043e\u0432\u0430<\/i> \u0438 <i>\u0418\u043b\u044c\u0438 \u041a\u043e\u0441\u043c\u043e\u0434\u0435\u043c\u044c\u044f\u043d\u0441\u043a\u043e\u0433\u043e<\/i>: <b><a href=\"https:\/\/www.youtube.com\/watch?v=tTOQj7x0YcQ\">\u041f\u043e\u0441\u0442\u0433\u0440\u0435\u0441-\u0432\u0442\u043e\u0440\u043d\u0438\u043a \u0441 <i>\u0415\u0433\u043e\u0440\u043e\u043c \u0420\u043e\u0433\u043e\u0432\u044b\u043c<\/i>. \u0412\u043d\u0443\u0442\u0440\u0438 PostgreSQL<\/a><\/b><\/p>\n<p>  <b><a href=\"https:\/\/postgrespro.ru\/education\/books\/introbook\">Postgres: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e<\/a><\/b> \u2014 \u043d\u043e\u0432\u0430\u044f <i>\u00ab\u043c\u0430\u043b\u044e\u0442\u043a\u0430\u00bb<\/i> \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 14-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Postgres.<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ui\/fz\/b4\/uifzb4r9kthubun_zmmjr72agd4.jpeg\" height=\"280\" width=\"210\" data-src=\"https:\/\/habrastorage.org\/webt\/ui\/fz\/b4\/uifzb4r9kthubun_zmmjr72agd4.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <b><a href=\"https:\/\/dhamaniasad.github.io\/awesome-postgres\/\">awesome-postgres<\/a><\/b><\/p>\n<p>  \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u0444\u0442\u0430, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u0434\u0440\u0430\u0436\u0430\u043d\u0438\u044f \u0431\u0440\u0430\u043b\u0438 <a href=\"https:\/\/awesomeopensource.com\/project\/shlomi-noach\/awesome-mysql\">awesome-mysql<\/a>.<\/p>\n<h2>\u041f\u0435\u0440\u0441\u043e\u043d\u0430<\/h2>\n<p>  <b><a href=\"https:\/\/postgresql.life\/post\/henrietta_dombrovskaya\/\">Henrietta Dombrovskaya<\/a><\/b><\/p>\n<p>  \u0412 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0444\u0435\u0432\u0440\u0430\u043b\u044f <i>\u0413\u0435\u043d\u0440\u0438\u044d\u0442\u0442\u0430 &#8216;\u0425\u0435\u0442\u0442\u0438&#8217; \u0414\u043e\u043c\u0431\u0440\u043e\u0432\u0441\u043a\u0430\u044f<\/i> \u0441\u0442\u0430\u043b\u0430 <a href=\"https:\/\/postgresql.life\/\">\u043f\u0435\u0440\u0441\u043e\u043d\u043e\u0439 \u043d\u0435\u0434\u0435\u043b\u0438<\/a>. \u041c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u044e\u0442 \u0435\u0451 \u043f\u043e \u043a\u043d\u0438\u0433\u0435 <a href=\"https:\/\/dmkpress.com\/catalog\/computer\/databases\/978-5-97060-963-7\/\">\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 PostgreSQL<\/a> \u0432 \u0441\u043e\u0430\u0432\u0442\u043e\u0440\u0441\u0442\u0432\u0435 \u0441 <i>\u0411\u043e\u0440\u0438\u0441\u043e\u043c \u041d\u043e\u0432\u0438\u043a\u043e\u0432\u044b\u043c<\/i> \u0438 \u0410\u043d\u043d\u043e\u0439 \u0411\u0435\u0439\u043b\u0438\u043a\u043e\u0432\u043e\u0439.<\/p>\n<h2>\u041e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0445<\/h2>\n<p>  <i>\u0414\u0436\u043e\u044d\u043b \u0414\u0436\u0435\u0439\u043a\u043e\u0431\u0441\u043e\u043d<\/i> (Joel Jacobson) \u0441\u043e\u0431\u0440\u0430\u043b \u0432\u0441\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0435\u043c\u0443 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0432 <a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#procedural-languages\">\u0441\u043f\u0438\u0441\u043e\u043a<\/a>. \u0418\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u044b\u0441\u044f\u0447\u0438, \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f (\u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f: \u043d\u0430 <a href=\"https:\/\/pgxn.org\/\">PGXN<\/a> \u0438\u0445 \u0441\u0435\u0439\u0447\u0430\u0441 \u00ab\u0432\u0441\u0435\u0433\u043e\u00bb 338). \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u043e\u0441\u044c, \u043d\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0440\u0430\u0442\u043a\u0438\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u0438 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u2014 \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u0435\u0441\u0442\u044c \u043e \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b:<\/p>\n<ul>\n<li><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#uncategorized\">Uncategorized<\/a>;<\/li>\n<li><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#access-methods\">Access Methods<\/a>;<\/li>\n<li><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#aggregate-functions\">Aggregate Functions<\/a>;<\/li>\n<li><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#data-types\">Data Types<\/a>;<\/li>\n<li><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#dictionaries\">Dictionaries<\/a>;<\/li>\n<li><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#foreign-data-wrappers\">Foreign Data Wrappers<\/a>;<\/li>\n<li><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#procedural-languages\">Procedural Languages<\/a>;<\/li>\n<li><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#spatial-and-geographic-objects\">Spatial and Geographic Objects<\/a>.<\/li>\n<\/ul>\n<p>  \u0414\u0435\u0440\u0435\u0432\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u043d\u0435 \u0441\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043d\u0438\u043a\u0430\u043a: \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 FDW \u043c\u043d\u043e\u0433\u043e-\u043c\u043d\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u043e\u0432, \u0430 \u0432 Access Method \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435: <a href=\"https:\/\/github.com\/postgrespro\/rum\">RUM<\/a> access method \u2014 inverted index with additional information in posting lists \u2014 \u0442\u043e \u0435\u0441\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/13\/rum\">\u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432<\/a>. <\/p>\n<p>  <b><a href=\"https:\/\/www.postgresql.eu\/events\/pgconfeu2019\/sessions\/session\/2641\/slides\/265\/Implementing%20your%20first%20PostgreSQL%20extension.pdf\">Implementing your first PostgreSQL extension: From Coding to Distribution<\/a><\/b><\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c PDF <i>Burak Y\u00fccesoy \u0438 \u00d6nder Kalac\u0131<\/i> \u0438\u0437 Citus (\u0442\u043e \u0435\u0441\u0442\u044c Microsoft) \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439. <\/p>\n<p>  <\/p>\n<h2>\u0420\u0430\u0437\u043d\u043e\u0435<\/h2>\n<p>  <b><a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-142-136-1210-1115-and-1020-released-2402\/\">PostgreSQL 14.2, 13.6, 12.10, 11.15 \u0438 10.20<\/a><\/b><\/p>\n<p>  \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e 55 \u0431\u0430\u0433\u043e\u0432.<\/p>\n<p>  <b><a href=\"https:\/\/ardentperf.com\/2022\/02\/10\/a-hairy-postgresql-incident\/\">A Hairy PostgreSQL Incident<\/a><\/b><\/p>\n<p>  \u041b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f <i>\u0414\u0436\u0435\u0440\u0435\u043c\u0438 \u0428\u043d\u0430\u0439\u0434\u0435\u0440\u0430<\/i> (Jeremy Schneider, Ardent Performance Computing). \u041e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 \u0431\u0430\u0437\u0430 \u0440\u0443\u0445\u043d\u0443\u043b\u0430, \u043d\u0435 \u0441\u0430\u043c\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u2014 \u043e\u0431\u044b\u0447\u043d\u043e \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u043f\u043e \u043a\u043e\u0440\u043a\u0430\u043c \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c. \u0421\u0430\u043c\u044b\u043c\u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u043c \u0434\u043b\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f (\u043d\u0435\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0435) <a href=\"https:\/\/en.wikipedia.org\/wiki\/Brownout_(electricity)\">brownouts<\/a> (\u043d\u0435 \u0437\u043d\u0430\u043b \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f) \u2014 \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444\u0430 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430, \u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e \u043d\u0435 \u0442\u0430\u043a. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043d \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a <a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/14\/pgstatstatements\">pg_stat_statements<\/a> \u0438 <a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/14\/monitoring-stats#MONITORING-PG-STAT-ACTIVITY-VIEW\">pg_stat_activity<\/a>, \u043d\u043e \u0438 \u043e\u043d\u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043f\u0430\u0441\u0430\u044e\u0442. \u041d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0414\u0436\u0435\u0440\u0435\u043c\u0438 \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u0435\u0442 <a href=\"https:\/\/github.com\/brendangregg\/FlameGraph\">\u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444\u044b<\/a>. \u0418\u0445 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u0436 4. \u0412 \u043d\u0435\u0439 \u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/github.com\/cybertec-postgresql\/pg_show_plans\">pg_show_plans<\/a>.<\/p>\n<p>  \u0423 \u043d\u0430\u0441 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0433\u043e\u0434\u0443 \u0431\u044b\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0441 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u043e\u0439 \u0442\u043e\u0436\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0431\u0440\u0430\u0443\u043d\u0430\u0443\u0442\u043e\u0432: <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/588180\/\">\u0411\u0438\u0442\u0432\u044b \u043d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 ZFS<\/a><\/b>, \u0442\u043e\u0436\u0435 \u043d\u0435 \u0431\u0435\u0437 \u0444\u043b\u0435\u0439\u043c\u0433\u0440\u0430\u0444\u0430, \u043a\u0441\u0442\u0430\u0442\u0438. \u0422\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/14\/pgpro-pwr\">pgpro_pwr\/pg_profile<\/a>. \u0415\u0449\u0451 \u0432 \u044d\u0442\u043e\u043c \u0436\u0430\u043d\u0440\u0435 \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u044f <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/423685\/\">\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c \u0432 PostgreSQL: \u043d\u0435 \u0441\u0444\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u043d\u0435 \u043a\u043e\u043d\u044c, \u043d\u0435 \u0432 \u0432\u0430\u043a\u0443\u0443\u043c\u0435<\/a><\/b>.<\/p>\n<p>  <b><a href=\"https:\/\/sqlnotebook.com\/\">SQL Notebook<\/a><\/b><\/p>\n<p>  \u041e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 SQL \u0432 Python. \u0414\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 CSV-\u0444\u0430\u0439\u043b\u043e\u0432, Excel, Microsoft SQL Server, PostgreSQL \u0438 MySQL, \u0430 \u043f\u043e\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 Jupyter-notebook. \u041c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b. \u0421\u043e\u0437\u0434\u0430\u043d\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 SQLite, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u043b\u044f SQL Notebook \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>  <b><a href=\"https:\/\/dev.to\/yugabyte\/mirage-of-memory-part-4-why-am-i-swapping-3121\">Mirage of memory, part 4: why am I swapping?<\/a><\/b><\/p>\n<p>  \u042d\u0442\u043e 4-\u044f \u0447\u0430\u0441\u0442\u044c \u0446\u0438\u043a\u043b\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 <b>\u041f\u0430\u043c\u044f\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u0440\u0430\u0436<\/b> <i>\u0424\u0440\u0438\u0446\u0430 \u0425\u0443\u0433\u043b\u0430\u043d\u0434\u0430<\/i> (Frits Hoogland). \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043d\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f. \u0412\u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435:<\/p>\n<p>  <b><a href=\"https:\/\/dev.to\/yugabyte\/mirage-of-memory-part-3-overcommit-5g84\">part 3: overcommit<\/a><\/b><\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: OOM killer \u043c\u043e\u0436\u0435\u0442 \u0443\u0431\u0438\u0442\u044c \u043d\u0435 (\u0442\u043e\u043b\u044c\u043a\u043e) \u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 PostgreSQL, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0431\u0438\u0442\u044c.<\/p>\n<p>  <b><a href=\"https:\/\/dev.to\/yugabyte\/mirage-of-memory-part-2-pss-1n8o\">part 2. PSS<\/a><\/b><\/p>\n<p>  <b><a href=\"https:\/\/dev.to\/yugabyte\/the-mirage-of-memory-3366\">part 1. <\/a><\/b><\/p>\n<p>  <i>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a #2 \u0437\u0430 2022, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043c.<\/i><\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/652375\/\"> https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/652375\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ib\/ae\/93\/ibae93vomjdfdddlbpkr6th6kws.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ib\/ae\/93\/ibae93vomjdfdddlbpkr6th6kws.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <i>\u0412 \u044d\u0442\u0438 \u0431\u0435\u0437\u0440\u0430\u0434\u043e\u0441\u0442\u043d\u044b\u0435 \u0434\u043d\u0438 \u043c\u043d\u043e\u0433\u0438\u043c \u0442\u0440\u0443\u0434\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0441\u043e\u0447\u0438\u043d\u044f\u0442\u044c \u0438 \u0434\u0430\u0436\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438. \u041d\u043e \u0418\u0422-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u044d\u0442\u043e \u043a\u0430\u043a \u0432\u043e\u0434\u043e\u043f\u0440\u043e\u0432\u043e\u0434 \u2014 \u0431\u0435\u0437 \u043d\u0435\u0451 \u0436\u0438\u0437\u043d\u044c \u0443\u0436\u0435 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430. \u0418 \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0442\u044c Postgresso. \u041f\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0441\u0441\u044b\u043b\u043e\u043a, \u043c\u0435\u043d\u044c\u0448\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u0418 \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u2014 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f<\/i><\/p>\n<h2>\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f<\/h2>\n<p>  \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 Oracle \u043d\u0430 Postgres \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u043c\u0438 \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u043f\u0440\u043e\u0447\u0438\u043c\u0438 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u044d\u0442\u0438\u0445 \u0421\u0423\u0411\u0414. \u041e\u0431 \u044d\u0442\u043e\u043c \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u0432\u0438\u0434\u0435\u043e.<\/p>\n<p>  \u041d\u0430\u0447\u043d\u0451\u043c \u0441 <b><a href=\"https:\/\/wiki.postgresql.org\/wiki\/Oracle_to_Postgres_Conversion\">Oracle to Postgres Conversion<\/a><\/b><\/p>\n<p>  \u042d\u0442\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 <a href=\"http:\/\/postgresql.org\/\">\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 PostgreSQL<\/a>. \u0415\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  <b><a href=\"https:\/\/www.enterprisedb.com\/blog\/the-complete-oracle-to-postgresql-migration-guide-tutorial-move-convert-database-oracle-alternative\">The Complete Oracle to PostgreSQL Migration Guide: Move and convert Schema, Application &amp; Data<\/a><\/b><\/p>\n<p>  \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0442 EDB. \u0415\u0441\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-330864","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/330864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=330864"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/330864\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=330864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=330864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=330864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}