{"id":174,"date":"2024-05-28T11:16:33","date_gmt":"2024-05-28T11:16:33","guid":{"rendered":"https:\/\/stradata.com.tr\/?page_id=174"},"modified":"2024-11-28T08:03:24","modified_gmt":"2024-11-28T08:03:24","slug":"blog-yazilari","status":"publish","type":"page","link":"https:\/\/stradata.com.tr\/?page_id=174","title":{"rendered":"BLOG YAZILARI"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/stradata.com.tr\/?p=338\">PG_STAT_IO \u0130LE VER\u0130 TABANI K\u00dcM\u00dcLAT\u0130F I\/O \u0130STAT\u0130ST\u0130KLER\u0130N\u0130N \u0130NCELENMES\u0130<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PostgreSQL 16 versiyonu ile birlikte gelen&nbsp;<strong>pg_stat_io,&nbsp;<\/strong>veri tabanlar\u0131ndaki I\/O ili\u015fkili i\u015flemlere ait istatistikleri&nbsp;<strong>k\u00fcm\u00fclatif olarak ve t\u00fcm cluster i\u00e7in&nbsp;<\/strong>g\u00f6steren, do\u011fru kullan\u0131ld\u0131\u011f\u0131nda ve yorumland\u0131\u011f\u0131nda olduk\u00e7a faydal\u0131 olabilecek bir view. View i\u00e7erisinde I\/O i\u015flemleri backend process t\u00fcrlerine g\u00f6re gruplanm\u0131\u015f olarak g\u00f6steriliyor, \u00f6rne\u011fin veri taban\u0131na ba\u011flant\u0131 kuran kullan\u0131c\u0131lar\u0131n i\u015flemlerine ili\u015fkin istatistikler&nbsp;<strong>\u201cbackend_type\u201d=\u201dclient backend\u201d<\/strong>&nbsp;\u015feklinde bir arada g\u00f6steriliyor. Di\u011fer bir kolon&nbsp;<strong>\u201ccontext\u201d<\/strong>&nbsp;ise I\/O i\u015fleminin i\u00e7eri\u011fini, bir di\u011fer anlamda \u00e7e\u015fidini belirtiyor ve<strong>&nbsp;\u201cnormal\u201d, \u201cvacuum\u201d, \u201cbulkread\u201d, \u201cbulkwrite\u201d&nbsp;<\/strong>de\u011ferlerini alabiliyor. View kolonlar\u0131 ile ilgili detayl\u0131 bilgiyi&nbsp;<a href=\"https:\/\/www.postgresql.org\/docs\/current\/monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW\" target=\"_blank\" rel=\"noreferrer noopener\">buradan&nbsp;<\/a>inceleyebilirsiniz. Yaz\u0131m\u0131zda pg_stat_io view\u2019\u0131n\u0131n sundu\u011fu i\u00e7eri\u011fi daha iyi anlayabilmek ad\u0131na, basit i\u015flemler sonucu ortaya \u00e7\u0131kan istatistikleri inceleyece\u011fiz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/stradata.com.tr\/?p=338\">&#8230;<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/stradata.com.tr\/?p=388\">POSTGRESQL 17\u2019DE PG_STAT_BGWRITER VE PG_STAT_CHECKPOINTER ANAL\u0130Z\u0130<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">pg_stat_bgwriter ve pg_stat_checkpointer view\u2019lar\u0131n\u0131n \u00f6zelliklerini ve process\u2019lerin davran\u0131\u015flar\u0131n\u0131 inceleyece\u011fimiz bu yaz\u0131m\u0131za \u00f6ncelikle konunun ge\u00e7mi\u015finden bahsederek ba\u015flayal\u0131m. Daha \u00f6ncesinde \u201c<strong>Background Writer\u201d (bgwriter)\u00a0<\/strong>process\u2019inin g\u00f6revi olan\u00a0<strong>\u201cbackground write\u201d\u00a0<\/strong>ve<strong>\u00a0\u201ccheckpoint\u201d\u00a0<\/strong>i\u015flemleri PostgreSQL 9.2 versiyonunda iki ayr\u0131 process\u2019e b\u00f6l\u00fcnd\u00fc ve \u201cbackground write\u201d i\u015flemini bgwriter, checkpoint i\u015flemini de\u00a0<strong>checkpointer\u00a0<\/strong>process\u2019i yapacak \u015fekilde g\u00fcncellendi. (9.2 versiyonundan \u00f6nce checkpointer process\u2019i yoktu). Bu de\u011fi\u015fikli\u011fin en \u00f6nemli nedenlerinden biri \u015fu\u00a0<a href=\"https:\/\/www.postgresql.org\/message-id\/CA%2BU5nMLv2ah-HNHaQ%3D2rxhp_hDJ9jcf-LL2kW3sE4msfnUw9gA%40mail.gmail.com\">linkte\u00a0<\/a>de g\u00f6rebilece\u011finiz gibi checkpoint\u2019in son fsync i\u015flemini yapabilmek i\u00e7in \u201cbackground write\u201d i\u015flemini durdurma zorunlulu\u011fuydu ve bunun gibi fakt\u00f6rler negatif performans etkisi yarat\u0131yor idi. 9.2 versiyonunda bahsetti\u011fimiz de\u011fi\u015fiklik yap\u0131ld\u0131 ve checkpointer process\u2019i devreye al\u0131nd\u0131, ancak background process\u2019lerde yap\u0131lan bu de\u011fi\u015fiklik, istatistik view\u2019lar\u0131na yans\u0131mad\u0131 ve her iki process\u2019e ait bilgiler\u00a0<strong>pg_stat_bgwriter\u00a0<\/strong>view\u2019\u0131nda tutulmaya devam etti. PostgreSQL 17 versiyonunda ise bu istatistikler de art\u0131k farkl\u0131 view\u2019larda tutulmaya ba\u015fland\u0131.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/stradata.com.tr\/?p=388\">&#8230;<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/stradata.com.tr\/?p=320\">POSTGRESQL\u2019DE CRASH RECOVERY MEKAN\u0130ZMASINI ETK\u0130LEYEN FAKT\u00d6RLER<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">OLTP veri tabanlar\u0131ndan beklentimiz sistemin ani\/beklenmedik kapanmas\u0131ndan sonra tekrar veri kay\u0131ps\u0131z ve tutarl\u0131 bir \u015fekilde, yani commit edilmi\u015f i\u015flemlerin tamamland\u0131\u011f\u0131, commit edilmemi\u015f i\u015flemlerin geri al\u0131nd\u0131\u011f\u0131 bir \u015fekilde tekrar a\u00e7\u0131lmas\u0131d\u0131r. Bu i\u015fleme&nbsp;<strong>crash recovery&nbsp;<\/strong>ismini veriyoruz ve PostgreSQL\u2019de crash recovery mekanizmas\u0131n\u0131n merkezinde&nbsp;<strong>WAL (Write Ahead Log)&nbsp;<\/strong>var. PostgreSQL, bahsetti\u011fimiz beklentiyi kar\u015f\u0131lamak i\u00e7in gerekli t\u00fcm yetene\u011fe WAL sistemi sayesinde sahip, ancak bir PostgreSQL veri taban\u0131nda bu i\u015flemin sorunsuz tamamlanaca\u011f\u0131n\u0131, veri taban\u0131n\u0131n her kapan\u0131\u015fta tutarl\u0131 ve veri kay\u0131ps\u0131z a\u00e7\u0131laca\u011f\u0131n\u0131 s\u00f6yleyebilmek i\u00e7in baz\u0131 konfig\u00fcrasyonlar\u0131 incelemek gerekli. Bu yaz\u0131da crash recovery mekanizmas\u0131n\u0131 etkileyecek parametreler, varl\u0131k sebepleri ve konfig\u00fcrasyon opsiyonlar\u0131n\u0131 inceleyece\u011fiz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/stradata.com.tr\/?p=320\">&#8230;<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/stradata.com.tr\/?p=352\">POSTGRESQL MAJ\u00d6R UPGRADE Y\u00d6NTEMLER\u0130<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PostgreSQL veri tabanlar\u0131n\u0131zda maj\u00f6r versiyon y\u00fckseltmesi yapman\u0131z i\u00e7in 3 farkl\u0131 y\u00f6ntem mevcut. Bunlar :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>pg_dumpall&nbsp;<\/strong>ile t\u00fcm verinin hedef versiyonda yarat\u0131lm\u0131\u015f bir veritaban\u0131 cluster\u2019\u0131na ta\u015f\u0131nmas\u0131<\/li>\n\n\n\n<li><strong>pg_upgrade&nbsp;<\/strong>ile system tablolar\u0131n\u0131n yenilenmesi ve kullan\u0131c\u0131 verilerinin oldu\u011fu gibi kullan\u0131lmas\u0131<\/li>\n\n\n\n<li><strong>Logical replication<\/strong>&nbsp;ile t\u00fcm verinin standby ortamda yeni versiyona ta\u015f\u0131nmas\u0131 ve switch-over ile rol de\u011fi\u015fimi yap\u0131lmas\u0131.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Bu y\u00f6ntemlerin avantaj\/dezavantajlar\u0131 anlam\u0131nda h\u0131zl\u0131ca \u00fczerlerinden ge\u00e7elim.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/stradata.com.tr\/?p=352\">&#8230;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PG_STAT_IO \u0130LE VER\u0130 TABANI K\u00dcM\u00dcLAT\u0130F I\/O \u0130STAT\u0130ST\u0130KLER\u0130N\u0130N \u0130NCELENMES\u0130 PostgreSQL 16 versiyonu ile birlikte gelen&nbsp;pg_stat_io,&nbsp;veri tabanlar\u0131ndaki I\/O ili\u015fkili i\u015flemlere ait istatistikleri&nbsp;k\u00fcm\u00fclatif olarak ve t\u00fcm cluster i\u00e7in&nbsp;g\u00f6steren, do\u011fru kullan\u0131ld\u0131\u011f\u0131nda ve yorumland\u0131\u011f\u0131nda olduk\u00e7a faydal\u0131 olabilecek bir view. View i\u00e7erisinde I\/O i\u015flemleri backend process t\u00fcrlerine g\u00f6re gruplanm\u0131\u015f olarak g\u00f6steriliyor, \u00f6rne\u011fin veri taban\u0131na ba\u011flant\u0131 kuran kullan\u0131c\u0131lar\u0131n i\u015flemlerine ili\u015fkin istatistikler&nbsp;\u201cbackend_type\u201d=\u201dclient backend\u201d&nbsp;\u015feklinde [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-174","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/stradata.com.tr\/index.php?rest_route=\/wp\/v2\/pages\/174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stradata.com.tr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stradata.com.tr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stradata.com.tr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stradata.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=174"}],"version-history":[{"count":8,"href":"https:\/\/stradata.com.tr\/index.php?rest_route=\/wp\/v2\/pages\/174\/revisions"}],"predecessor-version":[{"id":396,"href":"https:\/\/stradata.com.tr\/index.php?rest_route=\/wp\/v2\/pages\/174\/revisions\/396"}],"wp:attachment":[{"href":"https:\/\/stradata.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}