<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Data Science Lab</title>
    <link>https://sqlmvp.tistory.com/</link>
    <description>글로벌 클라우드 업체에서 Solutions Architect로 활동하고 있으며 프로그램 및 데이터베이스를 연구하고 있습니다. 문의사항은 이메일로 연락 주세요. leo.sungwook.kang@gmail.com
http://sungwookkang.com
</description>
    <language>ko</language>
    <pubDate>Sun, 12 Apr 2026 12:54:18 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>SungWookKang</managingEditor>
    <image>
      <title>Data Science Lab</title>
      <url>https://tistory1.daumcdn.net/tistory/1901667/attach/e53d1dff2e6a4bb0b769cf508645d659</url>
      <link>https://sqlmvp.tistory.com</link>
    </image>
    <item>
      <title>[MCU] ESP32 WIFI 사용시 아날로그 GPIO 오류</title>
      <link>https://sqlmvp.tistory.com/entry/MCU-ESP32-WIFI-%EC%82%AC%EC%9A%A9%EC%8B%9C-%EC%95%84%EB%82%A0%EB%A1%9C%EA%B7%B8-GPIO-%EC%98%A4%EB%A5%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MCU] ESP32 WIFI &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;사용시&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;아날로그&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; GPIO &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;오류&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Board : ESP32-WROOM-DevKit&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ESP 32 &lt;/span&gt;&lt;span&gt;보드에서&lt;/span&gt; &lt;span&gt;TDS &lt;/span&gt;&lt;span&gt;센서를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;전기&lt;/span&gt; &lt;span&gt;전도도&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;측정을&lt;/span&gt; &lt;span&gt;해야하는&lt;/span&gt; &lt;span&gt;작업이&lt;/span&gt; &lt;span&gt;있었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;샘플&lt;/span&gt; &lt;span&gt;코드로&lt;/span&gt; &lt;span&gt;작동하면&lt;/span&gt; &lt;span&gt;정상으로&lt;/span&gt; &lt;span&gt;작동하는데&lt;/span&gt;&lt;span&gt;, WiFi&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;활성화하면&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;센서의&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;읽어오지&lt;/span&gt; &lt;span&gt;못하는&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;발생하였다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;정확히는&lt;/span&gt;&lt;span&gt; 4095&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt; &lt;span&gt;고정되어&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;테스트&lt;/span&gt; &lt;span&gt;TDS &lt;/span&gt;&lt;span&gt;샘플&lt;/span&gt; &lt;span&gt;코드&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://randomnerdtutorials.com/esp32-tds-water-quality-sensor/&quot;&gt;https://randomnerdtutorials.com/esp32-tds-water-quality-sensor/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;현상과&lt;/span&gt; &lt;span&gt;관련하여&lt;/span&gt; &lt;span&gt;검색해&lt;/span&gt; &lt;span&gt;보니&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt;&lt;span&gt; ESP32&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; WiFi&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;활성화할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;일부&lt;/span&gt; &lt;span&gt;아날로그&lt;/span&gt;&lt;span&gt; GPIO&lt;/span&gt;&lt;span&gt;핀이&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;동작하지&lt;/span&gt; &lt;span&gt;않는다고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;해결하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;동작가능한&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;아날로그&lt;/span&gt; &lt;span&gt;GPIO &lt;/span&gt;&lt;span&gt;핀을&lt;/span&gt; &lt;span&gt;찾아서&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래는&lt;/span&gt; &lt;span&gt;WiFi &lt;/span&gt;&lt;span&gt;활성화시&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;핀번호이다&lt;/span&gt;&lt;span&gt;. MCU &lt;/span&gt;&lt;span&gt;모델마다&lt;/span&gt; &lt;span&gt;다를&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으므로&lt;/span&gt; &lt;span&gt;참고&lt;/span&gt; &lt;span&gt;정도로만&lt;/span&gt; &lt;span&gt;생각하자&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용&lt;/span&gt; &lt;span&gt;불가&lt;/span&gt; &lt;span&gt;Pin : 00, 02, 04, 12, 13, 14, 15, 25, 26&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용&lt;/span&gt; &lt;span&gt;가능&lt;/span&gt;&lt;span&gt; Pin : 32, 33, 34, 35, 36, 39 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제&lt;/span&gt; &lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;알았을&lt;/span&gt; &lt;span&gt;때에는&lt;/span&gt; &lt;span&gt;해결방법이&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;간단하였지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;처음에는&lt;/span&gt; &lt;span&gt;소스코드의&lt;/span&gt; &lt;span&gt;오류인지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;센서&lt;/span&gt; &lt;span&gt;기계&lt;/span&gt; &lt;span&gt;자체의&lt;/span&gt; &lt;span&gt;오류인지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;아니면&lt;/span&gt; &lt;span&gt;출력하는&lt;/span&gt; &lt;span&gt;데에서&lt;/span&gt; &lt;span&gt;표시&lt;/span&gt; &lt;span&gt;오류인지&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;증상에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;파악하지&lt;/span&gt; &lt;span&gt;못해서&lt;/span&gt; &lt;span&gt;한참&lt;/span&gt; &lt;span&gt;동안&lt;/span&gt; &lt;span&gt;헤맸었다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;중국산&lt;/span&gt; &lt;span&gt;센서들의&lt;/span&gt; &lt;span&gt;불량이&lt;/span&gt; &lt;span&gt;많았던&lt;/span&gt; &lt;span&gt;터라&lt;/span&gt;&lt;span&gt;.) &lt;/span&gt;&lt;span&gt;아두이노를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;제품을&lt;/span&gt; &lt;span&gt;구성할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;소프트웨어&lt;/span&gt; &lt;span&gt;오류인지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;하드웨어&lt;/span&gt; &lt;span&gt;오류인지부터&lt;/span&gt; &lt;span&gt;확인이&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ESP32 with TDS Sensor (Water Quality Sensor) : &lt;a href=&quot;https://randomnerdtutorials.com/esp32-tds-water-quality-sensor/&quot;&gt;https://randomnerdtutorials.com/esp32-tds-water-quality-sensor/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ESP32 WiFi initialization disrupting GPIO analog reading : &lt;a href=&quot;https://stackoverflow.com/questions/69782306/esp32-wifi-initialization-disrupting-gpio-analog-reading&quot;&gt;https://stackoverflow.com/questions/69782306/esp32-wifi-initialization-disrupting-gpio-analog-reading&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2025-03-06 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아두이노&lt;/span&gt;&lt;span&gt;, ESP32, Arduino, MCU, ESP32 GPIO, ESP32 Pin Map, &lt;/span&gt;&lt;span&gt;핀맵&lt;/span&gt;&lt;span&gt;, Pinout Diagram, TDS, &lt;/span&gt;&lt;span&gt;전기전도&lt;/span&gt;&lt;/p&gt;</description>
      <category>Embedded</category>
      <category>arduino</category>
      <category>esp32</category>
      <category>esp32 gpio</category>
      <category>esp32 pin map</category>
      <category>mcu</category>
      <category>pinout diagram</category>
      <category>tds</category>
      <category>아두이노</category>
      <category>전기전도</category>
      <category>핀맵</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1580</guid>
      <comments>https://sqlmvp.tistory.com/entry/MCU-ESP32-WIFI-%EC%82%AC%EC%9A%A9%EC%8B%9C-%EC%95%84%EB%82%A0%EB%A1%9C%EA%B7%B8-GPIO-%EC%98%A4%EB%A5%98#entry1580comment</comments>
      <pubDate>Thu, 6 Mar 2025 23:19:53 +0900</pubDate>
    </item>
    <item>
      <title>[MCU] ESP32 핀맵 (Pinout Diagram) 정리</title>
      <link>https://sqlmvp.tistory.com/entry/MCU-ESP32-%ED%95%80%EB%A7%B5-Pinout-Diagram-%EC%A0%95%EB%A6%AC</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MCU] ESP32 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;핀맵&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;(Pinout Diagram) &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;정리&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MCU(Micro Controller Unit)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;마이크로컨트롤러&lt;/span&gt; &lt;span&gt;유닛을&lt;/span&gt; &lt;span&gt;뜻하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;전자기기의&lt;/span&gt; &lt;span&gt;조작이나&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;시스템을&lt;/span&gt; &lt;span&gt;제어하는&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;집적회로&lt;/span&gt;&lt;span&gt;(IC)&lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;보드&lt;/span&gt;&lt;span&gt;&amp;rdquo;&lt;/span&gt;&lt;span&gt;라고&lt;/span&gt; &lt;span&gt;불리기도&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아두이노&lt;/span&gt; &lt;span&gt;보드의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;호환&lt;/span&gt; &lt;span&gt;보드가&lt;/span&gt; &lt;span&gt;많고&lt;/span&gt; &lt;span&gt;보드에&lt;/span&gt; &lt;span&gt;붙어있는&lt;/span&gt; &lt;span&gt;확장&lt;/span&gt; &lt;span&gt;디바이스&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;기능이&lt;/span&gt; &lt;span&gt;추가되기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;비슷하게&lt;/span&gt; &lt;span&gt;생겼어도&lt;/span&gt; &lt;span&gt;일부&lt;/span&gt; &lt;span&gt;기능들이&lt;/span&gt; &lt;span&gt;조금씩&lt;/span&gt; &lt;span&gt;다르다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를들어&lt;/span&gt;&lt;span&gt; ESP32 &lt;/span&gt;&lt;span&gt;모델만&lt;/span&gt; &lt;span&gt;하더라도&lt;/span&gt; &lt;span&gt;뒤에&lt;/span&gt; &lt;span&gt;붙는&lt;/span&gt; &lt;span&gt;숫자에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt;&lt;span&gt; WIFI&lt;/span&gt;&lt;span&gt;만&lt;/span&gt; &lt;span&gt;되느냐&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;블루투스도&lt;/span&gt; &lt;span&gt;되느냐&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;싱글코어이냐&lt;/span&gt; &lt;span&gt;듀얼코어이냐&lt;/span&gt; &lt;span&gt;등이&lt;/span&gt; &lt;span&gt;나뉜다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; MCU&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;선택할&lt;/span&gt; &lt;span&gt;때에는&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;기능들이&lt;/span&gt; &lt;span&gt;지원되는지&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;물론&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;기능이&lt;/span&gt; &lt;span&gt;없으면&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt; &lt;span&gt;디바이스&lt;/span&gt; &lt;span&gt;연결로&lt;/span&gt; &lt;span&gt;가능하나&lt;/span&gt; &lt;span&gt;이왕이면&lt;/span&gt;&lt;span&gt; SOC(System On Chip)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;디바이스에&lt;/span&gt; &lt;span&gt;포함된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;구매하면&lt;/span&gt; &lt;span&gt;여러모로&lt;/span&gt; &lt;span&gt;편리하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;보드&lt;/span&gt;&lt;span&gt;(MCU)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;구매하고&lt;/span&gt; &lt;span&gt;나면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;보드마다&lt;/span&gt; &lt;span&gt;핀맵&lt;/span&gt;&lt;span&gt;(GPIO)&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;경우가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt;&lt;span&gt; ESP32&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;핀맵을&lt;/span&gt; &lt;span&gt;정리하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ESP32 &lt;/span&gt;&lt;span&gt;보드는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;그림과&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;모습이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;물론&lt;/span&gt; &lt;span&gt;모델&lt;/span&gt; &lt;span&gt;번호에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;보드의&lt;/span&gt; &lt;span&gt;칩&lt;/span&gt; &lt;span&gt;배열&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;생김새는&lt;/span&gt; &lt;span&gt;조금씩&lt;/span&gt; &lt;span&gt;다르게&lt;/span&gt; &lt;span&gt;생겼지만&lt;/span&gt;&lt;span&gt; ES32 &lt;/span&gt;&lt;span&gt;계열의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;거의&lt;/span&gt; &lt;span&gt;비슷한&lt;/span&gt; &lt;span&gt;모습을&lt;/span&gt; &lt;span&gt;가지고&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt; &lt;span&gt;핀&lt;/span&gt; &lt;span&gt;개수&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;기능이&lt;/span&gt; &lt;span&gt;거의&lt;/span&gt; &lt;span&gt;동일하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1001&quot; data-origin-height=&quot;583&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEVA33/btsLCrSTAYR/4Ye7IJsW1mpGbKqBRrgsH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEVA33/btsLCrSTAYR/4Ye7IJsW1mpGbKqBRrgsH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEVA33/btsLCrSTAYR/4Ye7IJsW1mpGbKqBRrgsH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEVA33%2FbtsLCrSTAYR%2F4Ye7IJsW1mpGbKqBRrgsH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1001&quot; height=&quot;583&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1001&quot; data-origin-height=&quot;583&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;개발&lt;/span&gt; &lt;span&gt;보드에&lt;/span&gt; &lt;span&gt;포함되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;핀의&lt;/span&gt; &lt;span&gt;목록은&lt;/span&gt; &lt;span&gt;다음과&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;18&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;아날로그&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;디지털&lt;/span&gt; &lt;span&gt;변환기&lt;/span&gt;&lt;span&gt;(ADC) &lt;/span&gt;&lt;span&gt;채널&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; SPI &lt;/span&gt;&lt;span&gt;통신&lt;/span&gt; &lt;span&gt;인터페이스&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; UART &lt;/span&gt;&lt;span&gt;통신&lt;/span&gt; &lt;span&gt;인터페이스&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; I2C &lt;/span&gt;&lt;span&gt;통신&lt;/span&gt; &lt;span&gt;인터페이스&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;16&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; PWM &lt;/span&gt;&lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;디지털&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;아날로그&lt;/span&gt; &lt;span&gt;컨버터&lt;/span&gt;&lt;span&gt;(DAC)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; I2S &lt;/span&gt;&lt;span&gt;인터페이스&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;정전&lt;/span&gt; &lt;span&gt;용량&lt;/span&gt; &lt;span&gt;감지&lt;/span&gt;&lt;span&gt; GPIO&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;872&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2j7iX/btsLC3quiDv/WzRxSruVMqbFUvigPGrD30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2j7iX/btsLC3quiDv/WzRxSruVMqbFUvigPGrD30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2j7iX/btsLC3quiDv/WzRxSruVMqbFUvigPGrD30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2j7iX%2FbtsLC3quiDv%2FWzRxSruVMqbFUvigPGrD30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;872&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;872&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래는&lt;/span&gt; &lt;span&gt;핀맵이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt; &lt;span&gt;핀의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;이미&lt;/span&gt; &lt;span&gt;시스템에서&lt;/span&gt; &lt;span&gt;사용하고&lt;/span&gt; &lt;span&gt;있거나&lt;/span&gt; &lt;span&gt;디바이스에&lt;/span&gt; &lt;span&gt;포함된&lt;/span&gt; &lt;span&gt;기능들이&lt;/span&gt; &lt;span&gt;사용하고&lt;/span&gt; &lt;span&gt;있어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;사용중이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;핀을&lt;/span&gt; &lt;span&gt;선별해서&lt;/span&gt; &lt;span&gt;사용해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;1610&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GudQQ/btsLEXoO89I/8CC354xa2pZDFEksdyZDDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GudQQ/btsLEXoO89I/8CC354xa2pZDFEksdyZDDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GudQQ/btsLEXoO89I/8CC354xa2pZDFEksdyZDDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGudQQ%2FbtsLEXoO89I%2F8CC354xa2pZDFEksdyZDDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;805&quot; height=&quot;1610&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;1610&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;A Comprehensive to ESP32 Pinout Diagram : &lt;a href=&quot;https://www.xecor.com/blog/esp32-pinout-diagram&quot;&gt;https://www.xecor.com/blog/esp32-pinout-diagram&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2025-01-03 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아두이노&lt;/span&gt;&lt;span&gt;, ESP32, Arduino, MCU, ESP32 GPIO, ESP32 Pin Map, &lt;/span&gt;&lt;span&gt;핀맵&lt;/span&gt;&lt;span&gt;, Pinout Diagram&lt;/span&gt;&lt;/p&gt;</description>
      <category>Embedded</category>
      <category>arduino</category>
      <category>esp32</category>
      <category>esp32 gpio</category>
      <category>esp32 pin map</category>
      <category>mcu</category>
      <category>pinout diagram</category>
      <category>아두이노</category>
      <category>핀맵</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1579</guid>
      <comments>https://sqlmvp.tistory.com/entry/MCU-ESP32-%ED%95%80%EB%A7%B5-Pinout-Diagram-%EC%A0%95%EB%A6%AC#entry1579comment</comments>
      <pubDate>Fri, 3 Jan 2025 22:47:08 +0900</pubDate>
    </item>
    <item>
      <title>SQL Server Four Part Name 정의 및 PARSERNAME을 활용하여 IP 대역 구하기</title>
      <link>https://sqlmvp.tistory.com/entry/SQL-Server-Four-Part-Name-%EC%A0%95%EC%9D%98-%EB%B0%8F-PARSERNAME%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-IP-%EB%8C%80%EC%97%AD-%EA%B5%AC%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a&gt;&lt;b&gt;&lt;span&gt;SQL Server Four Part Name &lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;정의&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt; PARSERNAME&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;을&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;활용하여&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;IP &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;대역&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;구하기&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : SQL Server 2008 later&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SQL Server&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;운영하다&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt; Four Part Name &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; Three Part Name&lt;/span&gt;&lt;span&gt;이라는&lt;/span&gt; &lt;span&gt;용어를&lt;/span&gt; &lt;span&gt;접하게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;용어는&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;시스템에서&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;간에&lt;/span&gt; &lt;span&gt;개체&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;뷰&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;참조하는데&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;명명&lt;/span&gt; &lt;span&gt;규칙을&lt;/span&gt; &lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Three-Part Name : &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;개체&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;포함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;uuml;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;예&lt;/span&gt;&lt;span&gt;: DatabaseName.dbo.Employee)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Four-Part Name : &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;포함하여&lt;/span&gt; &lt;span&gt;Three-Part Name&lt;/span&gt;&lt;span&gt;부분을&lt;/span&gt; &lt;span&gt;확장&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;uuml;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;예&lt;/span&gt;&lt;span&gt;: ServerName.DatabaseName.dbo.Employee)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;Three-Part &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;Four-Part&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;서버내의&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그렇다면&lt;/span&gt; &lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt;&lt;span&gt; Four-Part Name&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt;&lt;span&gt; Part&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;정보만&lt;/span&gt; &lt;span&gt;추출하려면&lt;/span&gt; &lt;span&gt;어떻게&lt;/span&gt; &lt;span&gt;해야&lt;/span&gt; &lt;span&gt;할까&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;이럴&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;함수가&lt;/span&gt; &lt;span&gt;PARSENAME&lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PARSENAME&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;Four-Part Name &lt;/span&gt;&lt;span&gt;이름에서&lt;/span&gt; &lt;span&gt;지정된&lt;/span&gt; &lt;span&gt;부분을&lt;/span&gt; &lt;span&gt;반환한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;검색&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;개체의&lt;/span&gt; &lt;span&gt;부분은&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt; &lt;span&gt;이름이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;함수에&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;매개변수는&lt;/span&gt; &lt;span&gt;선택적으로&lt;/span&gt; &lt;span&gt;정규화된&lt;/span&gt; &lt;span&gt;개체&lt;/span&gt; &lt;span&gt;이름이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Value&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Object Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Schema Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Database Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Server Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;참고로&lt;/span&gt;&lt;span&gt; Four-Part Name&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;문자열은&lt;/span&gt; &lt;span&gt;총&lt;/span&gt; &lt;span&gt;길이&lt;/span&gt;&lt;span&gt; 256 &lt;/span&gt;&lt;span&gt;바이트를&lt;/span&gt; &lt;span&gt;넘을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없으며&lt;/span&gt;&lt;span&gt; 256 &lt;/span&gt;&lt;span&gt;바이트를&lt;/span&gt; &lt;span&gt;초과한&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;유효한&lt;/span&gt;&lt;span&gt; sysname&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;아니므로&lt;/span&gt; &lt;span&gt;NULL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;반환된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그러면&lt;/span&gt; &lt;span&gt;이제&lt;/span&gt;&lt;span&gt; PARSENAME&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;어떻게&lt;/span&gt; &lt;span&gt;사용하는지&lt;/span&gt; &lt;span&gt;살펴보자&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;Four-Part Name&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;있을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;매개변수에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;파트의&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt; &lt;span&gt;반환된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;DBServer.AdventureWorks2022.Person.Person&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;-- Uses AdventureWorks&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('DBServer.AdventureWorks2022.Person.Person', 1) AS 'Object Name';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('DBServer.AdventureWorks2022.Person.Person', 2) AS 'Schema Name';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('DBServer.AdventureWorks2022.Person.Person', 3) AS 'Database Name';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('DBServer.AdventureWorks2022.Person.Person', 4) AS 'Server Name';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;409&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/onvVV/btsLDdF0GFB/u6jBz2QPL6JmVaAUMhFHq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/onvVV/btsLDdF0GFB/u6jBz2QPL6JmVaAUMhFHq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/onvVV/btsLDdF0GFB/u6jBz2QPL6JmVaAUMhFHq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FonvVV%2FbtsLDdF0GFB%2Fu6jBz2QPL6JmVaAUMhFHq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;658&quot; height=&quot;409&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그렇다면&lt;/span&gt;&lt;span&gt; Three-Part Name&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;경우는&lt;/span&gt; &lt;span&gt;어떻게&lt;/span&gt; &lt;span&gt;결과&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt; &lt;span&gt;반환될까&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;제외하고&lt;/span&gt; &lt;span&gt;함수를&lt;/span&gt; &lt;span&gt;실행해&lt;/span&gt; &lt;span&gt;본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;-- Uses AdventureWorks&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('AdventureWorks2022.Person.Person', 1) AS 'Object Name';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('AdventureWorks2022.Person.Person', 2) AS 'Schema Name';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('AdventureWorks2022.Person.Person', 3) AS 'Database Name';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('AdventureWorks2022.Person.Person', 4) AS 'Server Name';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;409&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FuN5b/btsLEjedaMt/QEKhGgHLRxpDDjY44k4FXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FuN5b/btsLEjedaMt/QEKhGgHLRxpDDjY44k4FXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FuN5b/btsLEjedaMt/QEKhGgHLRxpDDjY44k4FXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFuN5b%2FbtsLEjedaMt%2FQEKhGgHLRxpDDjY44k4FXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;658&quot; height=&quot;409&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;마지막&lt;/span&gt; &lt;span&gt;서버이름의&lt;/span&gt; &lt;span&gt;반환&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt;&lt;span&gt; NULL&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. PARSENAME&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;뒤에서부터&lt;/span&gt; &lt;span&gt;하나씩&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;중간에&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;삭제하더라도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;순차적으로&lt;/span&gt; &lt;span&gt;읽어&lt;/span&gt; &lt;span&gt;파싱하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;자릿수가&lt;/span&gt; &lt;span&gt;부족할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;자리는&lt;/span&gt;&lt;span&gt;NULL &lt;/span&gt;&lt;span&gt;값으로&lt;/span&gt; &lt;span&gt;대체한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;무조건&lt;/span&gt; &lt;span&gt;서버이름이&lt;/span&gt;&lt;span&gt; NULL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;반환한다고&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수는&lt;/span&gt; &lt;span&gt;없지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;정규화된&lt;/span&gt; &lt;span&gt;이름의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;항상&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;규칙이&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;준수해서&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;엉뚱한&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;얻을&lt;/span&gt; &lt;span&gt;일은&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;그럼&lt;/span&gt; &lt;span&gt;이제&lt;/span&gt;&lt;span&gt; PARSENAME&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;활용해서&lt;/span&gt;&lt;span&gt; IP&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;대역을&lt;/span&gt; &lt;span&gt;파싱&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;진행해보자&lt;/span&gt;&lt;span&gt;. IP&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;경우에도&lt;/span&gt; &lt;span&gt;Four -Part Name&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이루어져&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;파트는&lt;/span&gt; &lt;span&gt;점&lt;/span&gt;&lt;span&gt;(.)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;구분한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; IP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;파싱하는&lt;/span&gt; &lt;span&gt;용도는&lt;/span&gt; &lt;span&gt;아니지만&lt;/span&gt; &lt;span&gt;유사한&lt;/span&gt; &lt;span&gt;구조를&lt;/span&gt; &lt;span&gt;활용하여&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt; &lt;span&gt;파싱해서&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('192.168.0.1', 1) AS 'D Class';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('192.168.0.1', 2) AS 'C Class';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('192.168.0.1', 3) AS 'B Class';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME('192.168.0.1', 4) AS 'A Class';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kFM6Z/btsLCHgwc3d/oNqsWEDKJFyaNKisWt2GjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kFM6Z/btsLCHgwc3d/oNqsWEDKJFyaNKisWt2GjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kFM6Z/btsLCHgwc3d/oNqsWEDKJFyaNKisWt2GjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkFM6Z%2FbtsLCHgwc3d%2FoNqsWEDKJFyaNKisWt2GjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;428&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PARSENAME&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;활용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;부분은&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;외에도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;파싱&lt;/span&gt; &lt;span&gt;규칙이&lt;/span&gt; &lt;span&gt;점&lt;/span&gt;&lt;span&gt;(.)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;구분하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; Four-Part&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;표현된&lt;/span&gt; &lt;span&gt;데이터라면&lt;/span&gt; &lt;span&gt;구분자를&lt;/span&gt; &lt;span&gt;점&lt;/span&gt;&lt;span&gt;(.)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;치환한다음&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME(REPLACE('A-B-C-D', '-', '.'), 1) AS 'D Class';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME(REPLACE('A-B-C-D', '-', '.'), 2) AS 'C Class';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME(REPLACE('A-B-C-D', '-', '.'), 3) AS 'B Class';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT PARSENAME(REPLACE('A-B-C-D', '-', '.'), 4) AS 'A Class';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LySvt/btsLEgofzzh/vC0akgZxjkHZMj73qJgedk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LySvt/btsLEgofzzh/vC0akgZxjkHZMj73qJgedk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LySvt/btsLEgofzzh/vC0akgZxjkHZMj73qJgedk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLySvt%2FbtsLEgofzzh%2FvC0akgZxjkHZMj73qJgedk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;544&quot; height=&quot;365&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;포맷의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;파싱&lt;/span&gt; &lt;span&gt;하려면&lt;/span&gt; &lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;CHARINDEX &lt;/span&gt;&lt;span&gt;등을&lt;/span&gt; &lt;span&gt;활용하여&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;문자열까지&lt;/span&gt; &lt;span&gt;자르고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이후&lt;/span&gt; &lt;span&gt;자릿수를&lt;/span&gt; &lt;span&gt;계산해서&lt;/span&gt; &lt;span&gt;구하는&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;함수를&lt;/span&gt; &lt;span&gt;조합하여&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt;&lt;span&gt;, Four-Part &lt;/span&gt;&lt;span&gt;형식의&lt;/span&gt; &lt;span&gt;데이터라면&lt;/span&gt;&lt;span&gt; PARSENAME&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;활용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;포맷의&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt; &lt;span&gt;파싱&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://sungwookkang.com/entry/%EB%8B%A4%EC%96%91%ED%95%9C-%ED%8F%AC%EB%A7%B7%EC%9D%98-%EC%9D%B4%EB%A6%84-%ED%8C%8C%EC%8B%B1-%ED%95%98%EA%B8%B0&quot;&gt;https://sungwookkang.com/entry/%EB%8B%A4%EC%96%91%ED%95%9C-%ED%8F%AC%EB%A7%B7%EC%9D%98-%EC%9D%B4%EB%A6%84-%ED%8C%8C%EC%8B%B1-%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Transact-SQL syntax conventions : &lt;a href=&quot;https://learn.microsoft.com/en-us/sql/t-sql/language-elements/transact-sql-syntax-conventions-transact-sql&quot;&gt;https://learn.microsoft.com/en-us/sql/t-sql/language-elements/transact-sql-syntax-conventions-transact-sql&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;PARSENAME : &lt;a href=&quot;https://learn.microsoft.com/en-us/sql/t-sql/functions/parsename-transact-sql&quot;&gt;https://learn.microsoft.com/en-us/sql/t-sql/functions/parsename-transact-sql&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2025-01-02/ Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SQL Server, MS SQL, Four-Part Name, Three-Part Name, PARSENAME, FQDN, &lt;/span&gt;&lt;span&gt;포파트네임&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쓰리파트&lt;/span&gt; &lt;span&gt;네임&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;파스네임&lt;/span&gt;&lt;span&gt;, IP&lt;/span&gt;&lt;span&gt;대역&lt;/span&gt; &lt;span&gt;구하기&lt;/span&gt;&lt;/p&gt;</description>
      <category>SQL Server/SQL Server Tip</category>
      <category>four-part name</category>
      <category>fqdn</category>
      <category>ip대역 구하기</category>
      <category>ms sql</category>
      <category>parsename</category>
      <category>SQL Server</category>
      <category>three-part name</category>
      <category>쓰리파트 네임</category>
      <category>파스네임</category>
      <category>포파트네임</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1578</guid>
      <comments>https://sqlmvp.tistory.com/entry/SQL-Server-Four-Part-Name-%EC%A0%95%EC%9D%98-%EB%B0%8F-PARSERNAME%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-IP-%EB%8C%80%EC%97%AD-%EA%B5%AC%ED%95%98%EA%B8%B0#entry1578comment</comments>
      <pubDate>Thu, 2 Jan 2025 22:30:01 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] ksqlDB를 사용하여, SQL 구문으로 쉽고 빠르게 카프카 데이터 조회하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-ksqlDB%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-SQL-%EA%B5%AC%EB%AC%B8%EC%9C%BC%EB%A1%9C-%EC%89%BD%EA%B3%A0-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%B9%B4%ED%94%84%EC%B9%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] ksqlDB&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;를&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;, SQL &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;구문으로&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;쉽고&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;빠르게&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;카프카&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;조회하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka 3.6.2, KsqlDB&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka(&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;&amp;rdquo;) &lt;/span&gt;&lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;저장되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;사용하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;컨슈머라는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;필요하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨슈머에는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;비즈니스에&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;로직을&lt;/span&gt; &lt;span&gt;포함하여&lt;/span&gt; &lt;span&gt;원하는&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;시스템을&lt;/span&gt; &lt;span&gt;구성해&lt;/span&gt; &lt;span&gt;놓으면&lt;/span&gt; &lt;span&gt;빠르고&lt;/span&gt; &lt;span&gt;편리하게&lt;/span&gt; &lt;span&gt;메시징&lt;/span&gt; &lt;span&gt;처리를&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그런데&lt;/span&gt; &lt;span&gt;실시간으로&lt;/span&gt; &lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;조회&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;집계&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;조인&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;하거나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;내부의&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;조합해서&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;생성이&lt;/span&gt; &lt;span&gt;필요할&lt;/span&gt; &lt;span&gt;때가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;매번&lt;/span&gt; &lt;span&gt;컨슈머를&lt;/span&gt; &lt;span&gt;개발하거나&lt;/span&gt;&lt;span&gt; CLI&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;구축하는&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;번거롭고&lt;/span&gt; &lt;span&gt;익숙하지&lt;/span&gt; &lt;span&gt;않은&lt;/span&gt; &lt;span&gt;사용자에게는&lt;/span&gt; &lt;span&gt;어려운&lt;/span&gt; &lt;span&gt;작업일&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;ksqlDB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;유사&lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt;문을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;조회하거나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스트림을&lt;/span&gt; &lt;span&gt;생성하거나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;실시간으로&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;ksqlDB&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;무엇인지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;설치와&lt;/span&gt; &lt;span&gt;간단히&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;조회하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[ksqlDB &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;기능&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ksqlDB&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;대표적인&lt;/span&gt; &lt;span&gt;기능은&lt;/span&gt; &lt;span&gt;다음과&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;저장된&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;계속&lt;/span&gt; &lt;span&gt;움직이는&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;처리하여&lt;/span&gt; &lt;span&gt;실시간&lt;/span&gt; &lt;span&gt;값&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;비즈니스&lt;/span&gt; &lt;span&gt;전반에&lt;/span&gt; &lt;span&gt;걸쳐&lt;/span&gt; &lt;span&gt;생성된&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;스트림을&lt;/span&gt; &lt;span&gt;지속적으로&lt;/span&gt; &lt;span&gt;처리하여&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;즉시&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;가능하도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;스트림&lt;/span&gt; &lt;span&gt;처리&lt;/span&gt; &lt;span&gt;아키텍처&lt;/span&gt; &lt;span&gt;단순화&lt;/span&gt;&lt;span&gt; : ksqlDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;스트림을&lt;/span&gt; &lt;span&gt;수집하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;강화하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;새롭게&lt;/span&gt; &lt;span&gt;파생된&lt;/span&gt; &lt;span&gt;스트림과&lt;/span&gt; &lt;span&gt;테이블에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;제공하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;솔루션을&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;간단한&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;구문으로&lt;/span&gt; &lt;span&gt;실시간&lt;/span&gt; &lt;span&gt;애플리케이션&lt;/span&gt; &lt;span&gt;구축&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;친숙하고&lt;/span&gt; &lt;span&gt;가벼운&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;구문을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;관계형&lt;/span&gt; &lt;span&gt;데이터베이스에서&lt;/span&gt; &lt;span&gt;기존&lt;/span&gt; &lt;span&gt;애플리케이션을&lt;/span&gt; &lt;span&gt;구축하는&lt;/span&gt; &lt;span&gt;것과&lt;/span&gt; &lt;span&gt;마찬가지로&lt;/span&gt; &lt;span&gt;쉽고&lt;/span&gt; &lt;span&gt;친숙한&lt;/span&gt; &lt;span&gt;방식으로&lt;/span&gt; &lt;span&gt;실시간&lt;/span&gt; &lt;span&gt;애플리케이션을&lt;/span&gt; &lt;span&gt;구축할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ksqlDB&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ksqlDB : &lt;a href=&quot;https://ksqldb.io/&quot;&gt;https://ksqldb.io/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[ksqlDB &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;구성요소&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1750&quot; data-origin-height=&quot;992&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oo4bV/btsF3UyL7Ka/hUFxDxIfTWDScKJvqo3lE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oo4bV/btsF3UyL7Ka/hUFxDxIfTWDScKJvqo3lE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oo4bV/btsF3UyL7Ka/hUFxDxIfTWDScKJvqo3lE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foo4bV%2FbtsF3UyL7Ka%2FhUFxDxIfTWDScKJvqo3lE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1750&quot; height=&quot;992&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1750&quot; data-origin-height=&quot;992&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KsqlDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;다음과&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;요소로&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ksqlDB &lt;/span&gt;&lt;span&gt;엔진&lt;/span&gt;&lt;span&gt;: ksqlDB &lt;/span&gt;&lt;span&gt;엔진은&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;문과&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;. SQL &lt;/span&gt;&lt;span&gt;문을&lt;/span&gt; &lt;span&gt;작성하여&lt;/span&gt; &lt;span&gt;애플리케이션&lt;/span&gt; &lt;span&gt;논리를&lt;/span&gt; &lt;span&gt;정의하면&lt;/span&gt; &lt;span&gt;엔진이&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt;&lt;span&gt; ksqlDB &lt;/span&gt;&lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;애플리케이션을&lt;/span&gt; &lt;span&gt;빌드하고&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;내부적으로&lt;/span&gt; &lt;span&gt;엔진은&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;문을&lt;/span&gt; &lt;span&gt;구문&lt;/span&gt; &lt;span&gt;분석하고&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt;&lt;span&gt; Kafka Streams &lt;/span&gt;&lt;span&gt;토폴로지를&lt;/span&gt; &lt;span&gt;구축한다&lt;/span&gt;&lt;span&gt;. ksqlDB &lt;/span&gt;&lt;span&gt;엔진은&lt;/span&gt;&lt;span&gt; KsqlEngine.java &lt;/span&gt;&lt;span&gt;클래스에서&lt;/span&gt; &lt;span&gt;구현된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ksqlDB CLI: ksqlDB CLI&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; ksqlDB &lt;/span&gt;&lt;span&gt;엔진용&lt;/span&gt; &lt;span&gt;명령줄&lt;/span&gt; &lt;span&gt;인터페이스가&lt;/span&gt; &lt;span&gt;포함된&lt;/span&gt; &lt;span&gt;콘솔을&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;. ksqlDB CLI&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; ksqlDB &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;인스턴스와&lt;/span&gt; &lt;span&gt;상호&lt;/span&gt; &lt;span&gt;작용하고&lt;/span&gt; &lt;span&gt;스트리밍&lt;/span&gt; &lt;span&gt;애플리케이션을&lt;/span&gt; &lt;span&gt;개발한&lt;/span&gt;&lt;span&gt;. ksqlDB CLI&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; MySQL, Postgres &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;유사한&lt;/span&gt; &lt;span&gt;애플리케이션&lt;/span&gt; &lt;span&gt;사용자에게&lt;/span&gt; &lt;span&gt;친숙하도록&lt;/span&gt; &lt;span&gt;설계되었다&lt;/span&gt;&lt;span&gt;. ksqlDB CLI&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; io.confluent.ksql.cli &lt;/span&gt;&lt;span&gt;패키지에서&lt;/span&gt; &lt;span&gt;구현된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;REST &lt;/span&gt;&lt;span&gt;인터페이스&lt;/span&gt;&lt;span&gt;: REST &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;인터페이스를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; CLI, Confluent Control Center &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;기타&lt;/span&gt;&lt;span&gt; REST &lt;/span&gt;&lt;span&gt;클라이언트에서&lt;/span&gt;&lt;span&gt; ksqlDB &lt;/span&gt;&lt;span&gt;엔진과&lt;/span&gt; &lt;span&gt;통신할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. ksqlDB REST &lt;/span&gt;&lt;span&gt;서버는&lt;/span&gt;&lt;span&gt; KsqlRestApplication.java &lt;/span&gt;&lt;span&gt;클래스에서&lt;/span&gt; &lt;span&gt;구현된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Ksql&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;아키텍처&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;알고&lt;/span&gt; &lt;span&gt;싶다면&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ksqlDB How it works : &lt;a href=&quot;https://docs.ksqldb.io/en/latest/operate-and-deploy/how-it-works/&quot;&gt;https://docs.ksqldb.io/en/latest/operate-and-deploy/how-it-works/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[ksqlDB &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ksqlDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;카프카에서&lt;/span&gt; &lt;span&gt;실행되므로&lt;/span&gt; &lt;span&gt;반드시&lt;/span&gt; &lt;span&gt;카프카가&lt;/span&gt; &lt;span&gt;실행되어&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;ksqlDB&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;독립실행형&lt;/span&gt; &lt;span&gt;컨테이너로&lt;/span&gt; &lt;span&gt;설치한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;컴포즈&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;docker-compose.yml&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;version: '3.8'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;services:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;ksqldb-server:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;image: confluentinc/ksqldb-server&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;hostname: ksqldb-server&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;container_name: ksqldb-server&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ports:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;- &quot;8088:8088&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;environment:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;KSQL_LISTENERS: http://0.0.0.0:8088&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;KSQL_BOOTSTRAP_SERVERS: 172.18.43.151:9092&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;KSQL_KSQL_LOGGING_PROCESSING_STREAM_AUTO_CREATE: &quot;true&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;KSQL_KSQL_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: &quot;true&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;ksqldb-cli:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;image: confluentinc/ksqldb-cli&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;container_name: ksqldb-cli&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;entrypoint: /bin/sh&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tty: true&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[ksqlDB&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;로&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;조회&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨테이너가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;실행되었으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령어로&lt;/span&gt;&lt;span&gt; ksqlDB&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;접속한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;포스트에서&lt;/span&gt; &lt;span&gt;실습&lt;/span&gt; &lt;span&gt;환경은&lt;/span&gt; &lt;span&gt;카프카와&lt;/span&gt;&lt;span&gt; ksqlDB&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;운영중이다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;docker exec -it ksqldb-cli ksql http://ksqldb-server:8088&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1524&quot; data-origin-height=&quot;806&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n78Xu/btsF63BcQpy/PROO7L3J6Oe7UuZWGbsx6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n78Xu/btsF63BcQpy/PROO7L3J6Oe7UuZWGbsx6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n78Xu/btsF63BcQpy/PROO7L3J6Oe7UuZWGbsx6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn78Xu%2FbtsF63BcQpy%2FPROO7L3J6Oe7UuZWGbsx6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1524&quot; height=&quot;806&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1524&quot; data-origin-height=&quot;806&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ksqlDB&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;조회한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;show topics;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;스트림을&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;create stream swkang (&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;payload STRUCT&amp;lt;before STRUCT&amp;lt;num int, name varchar, email varchar&amp;gt;, &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;after STRUCT&amp;lt;num int, name varchar, email varchar&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;WITH (kafka_topic = 'server1.swkang_test.dbo.tbl_a', value_format='json');&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;생성된&lt;/span&gt; &lt;span&gt;스트림&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;show streams;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X9uZ7/btsF2RP0URX/vWmA4WyVz0mD14CiohtItk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X9uZ7/btsF2RP0URX/vWmA4WyVz0mD14CiohtItk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X9uZ7/btsF2RP0URX/vWmA4WyVz0mD14CiohtItk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX9uZ7%2FbtsF2RP0URX%2FvWmA4WyVz0mD14CiohtItk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1532&quot; height=&quot;344&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;344&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;스트림의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;조회해&lt;/span&gt; &lt;span&gt;보자&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;조회&lt;/span&gt; &lt;span&gt;명령은&lt;/span&gt;&lt;span&gt; SQL&lt;/span&gt;&lt;span&gt;문과&lt;/span&gt; &lt;span&gt;동일하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;select * from swkang;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1520&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvEtlm/btsF6HE3Szi/IEkkCSO0gR1lF4yu8HTVtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvEtlm/btsF6HE3Szi/IEkkCSO0gR1lF4yu8HTVtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvEtlm/btsF6HE3Szi/IEkkCSO0gR1lF4yu8HTVtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvEtlm%2FbtsF6HE3Szi%2FIEkkCSO0gR1lF4yu8HTVtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1520&quot; height=&quot;488&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1520&quot; data-origin-height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그런데&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;살펴보니&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;컬럼별로&lt;/span&gt; &lt;span&gt;나누어져&lt;/span&gt; &lt;span&gt;있지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt;&lt;span&gt;, JSON &lt;/span&gt;&lt;span&gt;형태로&lt;/span&gt; &lt;span&gt;조회된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; JSON &lt;/span&gt;&lt;span&gt;형태의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;컬럼&lt;/span&gt; &lt;span&gt;포맷으로&lt;/span&gt; &lt;span&gt;분리하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;스트럭처를&lt;/span&gt; &lt;span&gt;제공해주어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;우선&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;스트럭처가&lt;/span&gt; &lt;span&gt;어떻게&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있는지&lt;/span&gt; &lt;span&gt;확인해&lt;/span&gt; &lt;span&gt;보자&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;describe swkang;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1522&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQfEJH/btsF15gYxmT/IM6OA0TXWbc6H2UmcM95Dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQfEJH/btsF15gYxmT/IM6OA0TXWbc6H2UmcM95Dk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQfEJH/btsF15gYxmT/IM6OA0TXWbc6H2UmcM95Dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQfEJH%2FbtsF15gYxmT%2FIM6OA0TXWbc6H2UmcM95Dk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1522&quot; height=&quot;260&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1522&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이제&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;조회할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스트럭처&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;제공하여&lt;/span&gt; &lt;span&gt;조회한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;PAYLOAD-&amp;gt;&quot;BEFORE&quot;-&amp;gt;&quot;NUM&quot; as before_num,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;PAYLOAD-&amp;gt;&quot;BEFORE&quot;-&amp;gt;&quot;NAME&quot; as before_name,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;PAYLOAD-&amp;gt;&quot;BEFORE&quot;-&amp;gt;&quot;EMAIL&quot; as before_email,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;PAYLOAD-&amp;gt;&quot;AFTER&quot;-&amp;gt;&quot;NUM&quot; as after_num,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;PAYLOAD-&amp;gt;&quot;AFTER&quot;-&amp;gt;&quot;NAME&quot; as after_name,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;PAYLOAD-&amp;gt;&quot;AFTER&quot;-&amp;gt;&quot;EMAIL&quot; as after_email&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;swkang;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1518&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/znJFf/btsF3F9w1PL/9F9iourXtGKoPks6rH65jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/znJFf/btsF3F9w1PL/9F9iourXtGKoPks6rH65jK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/znJFf/btsF3F9w1PL/9F9iourXtGKoPks6rH65jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FznJFf%2FbtsF3F9w1PL%2F9F9iourXtGKoPks6rH65jK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1518&quot; height=&quot;600&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1518&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금까지&lt;/span&gt;&lt;span&gt; ksqlDB &lt;/span&gt;&lt;span&gt;기능&lt;/span&gt; &lt;span&gt;및&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt; &lt;span&gt;방법과&lt;/span&gt; &lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;조회하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아보았다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이처럼&lt;/span&gt; &lt;span&gt;ksqlDB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;편리하게&lt;/span&gt; &lt;span&gt;SQL&lt;/span&gt;&lt;span&gt;문을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;조회&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;스트림&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스트림&lt;/span&gt; &lt;span&gt;테이블&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;작업들을&lt;/span&gt; &lt;span&gt;진행할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. ksqlDB&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;쿼리문이&lt;/span&gt; &lt;span&gt;다양하므로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;공식&lt;/span&gt; &lt;span&gt;문서를&lt;/span&gt; &lt;span&gt;참고할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ksqlDB : &lt;a href=&quot;https://ksqldb.io/&quot;&gt;https://ksqldb.io/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ksqlDB How it works : &lt;a href=&quot;https://docs.ksqldb.io/en/latest/operate-and-deploy/how-it-works/&quot;&gt;https://docs.ksqldb.io/en/latest/operate-and-deploy/how-it-works/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-03-26 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, Apache Kafka, ksqlDB, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;조회&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;조회&lt;/span&gt;&lt;span&gt;, &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;스트림즈&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;실시간&lt;/span&gt; &lt;span&gt;조회&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;엔지니어&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>Kafka</category>
      <category>ksqlDB</category>
      <category>데이터 실시간 조회</category>
      <category>데이터 엔지니어</category>
      <category>아파치 카프카</category>
      <category>카프카 스트림즈</category>
      <category>카프카 조회</category>
      <category>토픽 조회</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1577</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-ksqlDB%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-SQL-%EA%B5%AC%EB%AC%B8%EC%9C%BC%EB%A1%9C-%EC%89%BD%EA%B3%A0-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EC%B9%B4%ED%94%84%EC%B9%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0#entry1577comment</comments>
      <pubDate>Tue, 26 Mar 2024 10:42:03 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] Kafka와 Debezium을 활용하여 SQL Server의 데이터를 실시간으로 PostgreSQL로 복제하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-Kafka%EC%99%80-Debezium%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-SQL-Server%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%8B%A4%EC%8B%9C%EA%B0%84%EC%9C%BC%EB%A1%9C-PostgreSQL%EB%A1%9C-%EB%B3%B5%EC%A0%9C%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] Kafka&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;와&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;Debezium&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;을&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;활용하여&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;SQL Server&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;의&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;데이터를&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;실시간으로&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;PostgreSQL&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;로&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;복제하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka 3.6.2, Debezium 2.5, SQL Server 2019, PostgreSQL 12&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka(&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;커넥터인&lt;/span&gt; &lt;span&gt;Debezium&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;활용하여&lt;/span&gt; &lt;span&gt;SQL Server&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;실시간&lt;/span&gt; &lt;span&gt;DML&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;캡처하여&lt;/span&gt; &lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;복제하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;실시간&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;정도로만&lt;/span&gt; &lt;span&gt;다루고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;단계에서의&lt;/span&gt; &lt;span&gt;상세한&lt;/span&gt; &lt;span&gt;기술&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;추후&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;포스팅에서&lt;/span&gt; &lt;span&gt;다룰&lt;/span&gt; &lt;span&gt;예정이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Architecture]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번에&lt;/span&gt; &lt;span&gt;구축하려는&lt;/span&gt; &lt;span&gt;시스템의&lt;/span&gt; &lt;span&gt;아키텍처는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;어플리케이션에서&lt;/span&gt; &lt;span&gt;MS SQL Server&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;변경하면&lt;/span&gt; &lt;span&gt;SQL Server&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;CDC &lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항을&lt;/span&gt; &lt;span&gt;캡처한다&lt;/span&gt;&lt;span&gt;. Debezium&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항을&lt;/span&gt; &lt;span&gt;확인하여&lt;/span&gt; &lt;span&gt;Kafka&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;카프카에서&lt;/span&gt; &lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;실시간&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;복제한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;997&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LuW6G/btsFgKDVNN2/jIGkPPGlsExSNPT4jgWAnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LuW6G/btsFgKDVNN2/jIGkPPGlsExSNPT4jgWAnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LuW6G/btsFgKDVNN2/jIGkPPGlsExSNPT4jgWAnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLuW6G%2FbtsFgKDVNN2%2FjIGkPPGlsExSNPT4jgWAnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1512&quot; height=&quot;997&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;997&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;302&quot;&gt;&lt;span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;버전&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;302&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;3.6.2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;302&quot;&gt;&lt;span&gt;&lt;span&gt;Debezium&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;2.5.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;302&quot;&gt;&lt;span&gt;&lt;span&gt;SQL Server&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;2019&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;302&quot;&gt;&lt;span&gt;&lt;span&gt;PostgreSQL&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;12&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;설치는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;[Kafka] Kafka &lt;/span&gt;&lt;span&gt;클러스터&lt;/span&gt;&lt;span&gt; 4&lt;/span&gt;&lt;span&gt;노드&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt;&lt;span&gt; - Controller, Broker &lt;/span&gt;&lt;span&gt;혼합해서&lt;/span&gt; &lt;span&gt;구성하기&lt;/span&gt; &lt;span&gt;: &lt;a href=&quot;https://sungwookkang.com/entry/Kafka-Kafka-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-4%EB%85%B8%EB%93%9C-%EA%B5%AC%EC%84%B1-Controller-Broker-%ED%98%BC%ED%95%A9%ED%95%B4%EC%84%9C-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0&quot;&gt;https://sungwookkang.com/entry/Kafka-Kafka-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-4%EB%85%B8%EB%93%9C-%EA%B5%AC%EC%84%B1-Controller-Broker-%ED%98%BC%ED%95%A9%ED%95%B4%EC%84%9C-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Debezium &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;커넥터&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카에서&lt;/span&gt; &lt;span&gt;MS SQL Server&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;연결하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;Debezium &lt;/span&gt;&lt;span&gt;커넥터를&lt;/span&gt; &lt;span&gt;다운로드하여&lt;/span&gt; &lt;span&gt;설치한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Debezium : &lt;a href=&quot;https://debezium.io/releases/2.5/#installation&quot;&gt;https://debezium.io/releases/2.5/#installation&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1812&quot; data-origin-height=&quot;1060&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q4sIY/btsFkJwPdsb/RDktrm7zHT7WjKREw172AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q4sIY/btsFkJwPdsb/RDktrm7zHT7WjKREw172AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q4sIY/btsFkJwPdsb/RDktrm7zHT7WjKREw172AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq4sIY%2FbtsFkJwPdsb%2FRDktrm7zHT7WjKREw172AK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1812&quot; height=&quot;1060&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1812&quot; data-origin-height=&quot;1060&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다운로드&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;압축을&lt;/span&gt; &lt;span&gt;해제한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;필자의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;디렉터리에&lt;/span&gt; &lt;span&gt;plugins&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;디렉토리를&lt;/span&gt; &lt;span&gt;생성하여&lt;/span&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;위치하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사용자에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;위치를&lt;/span&gt; &lt;span&gt;다르게&lt;/span&gt; &lt;span&gt;가능하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이후&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;커넥터&lt;/span&gt; &lt;span&gt;설정에서&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;위치의&lt;/span&gt; &lt;span&gt;경로를&lt;/span&gt; &lt;span&gt;지정하여&lt;/span&gt; &lt;span&gt;사용하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;경로가&lt;/span&gt; &lt;span&gt;달라도&lt;/span&gt; &lt;span&gt;상관없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;#SQL Server Connector&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;tar xvf debezium-connector-sqlserver-2.5.0.Final-plugin.tar.gz -C /usr/local/kafka/plugins/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#PostgreSQL Connector&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;tar -xvzf debezium-connector-jdbc-2.2.1.Final-plugin.tar.gz -C /usr/local/kafka/plugins/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;카프카에서&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;커넥터&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;설정&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카에서&lt;/span&gt; &lt;span&gt;커넥터를&lt;/span&gt; &lt;span&gt;사용하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;커넥터의&lt;/span&gt; &lt;span&gt;경로를&lt;/span&gt; &lt;span&gt;설정하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;디렉토리에서&lt;/span&gt; &lt;span&gt;connect-distributed.properties&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;항목을&lt;/span&gt; &lt;span&gt;수정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;vi ./config/connect-distributed.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;#Broker Node IP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;bootstrap.servers=XXX.XXXX.XXX.XXX:9092&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#Debezium path&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;plugin.path=/usr/local/kafka/plugins&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;커넥터&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/connect-distributed.sh -daemon ./config/connect-distributed.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;커넥터가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;실행되면&lt;/span&gt; &lt;span&gt;8083&lt;/span&gt;&lt;span&gt;포트를&lt;/span&gt; &lt;span&gt;통해서&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;curl localhost:8083/connector-plugins | jq&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1522&quot; data-origin-height=&quot;1301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o3Ym3/btsFfTVumkT/5lYRd3B15VxAKN8dJiL9XK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o3Ym3/btsFfTVumkT/5lYRd3B15VxAKN8dJiL9XK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o3Ym3/btsFfTVumkT/5lYRd3B15VxAKN8dJiL9XK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo3Ym3%2FbtsFfTVumkT%2F5lYRd3B15VxAKN8dJiL9XK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1522&quot; height=&quot;1301&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1522&quot; data-origin-height=&quot;1301&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[SQL Server CDC &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;활성화&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SQL Server&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;데이터의&lt;/span&gt; &lt;span&gt;변경을&lt;/span&gt; &lt;span&gt;실시간으로&lt;/span&gt; &lt;span&gt;캡처하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;CDC &lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt; &lt;span&gt;활성화한다&lt;/span&gt;&lt;span&gt;. SQL Server CDC&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Enable and disable change data capture : &lt;a href=&quot;https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/enable-and-disable-change-data-capture-sql-server?view=sql-server-ver16&quot;&gt;https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/enable-and-disable-change-data-capture-sql-server?view=sql-server-ver16&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실습을&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;테이블을&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;테이블에는&lt;/span&gt; &lt;span&gt;반드시&lt;/span&gt; &lt;span&gt;Primary key &lt;/span&gt;&lt;span&gt;컬럼이&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;CREATE DATABASE swkang_test&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;USE swkang_test&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;CREATE TABLE tbl_a(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;num int primary key,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;name nvarchar(50),&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;reg_date datetime&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;CDC &lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt; &lt;span&gt;활성화한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;USE swkang_test&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-- CDC Enable Database&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;EXEC sys.sp_cdc_enable_db &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/*&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;EXEC sys.sp_cdc_disable_db &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-- CDC Enable Table&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;EXEC sys.sp_cdc_enable_table &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;@source_schema = N'dbo', &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;@source_name = N'tbl_a', &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;@role_name = '', &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;@supports_net_changes = 1 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/*&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;EXEC sys.sp_cdc_disable_table&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;@source_schema = N'dbo',&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;@source_name&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;= N'tbl_a',&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;@capture_instance = N'dbo_tbl_a'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;데이터베이스가&lt;/span&gt; &lt;span&gt;CDC &lt;/span&gt;&lt;span&gt;활성화가&lt;/span&gt; &lt;span&gt;되었는지&lt;/span&gt; &lt;span&gt;확인하는&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;select name, is_cdc_enabled from sys.databases where is_cdc_enabled = 1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KVt4p/btsFiqEv6Jx/O8FbMSZMlZDRHRn8iwvM11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KVt4p/btsFiqEv6Jx/O8FbMSZMlZDRHRn8iwvM11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KVt4p/btsFiqEv6Jx/O8FbMSZMlZDRHRn8iwvM11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKVt4p%2FbtsFiqEv6Jx%2FO8FbMSZMlZDRHRn8iwvM11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;178&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;CDC &lt;/span&gt;&lt;span&gt;대상&lt;/span&gt; &lt;span&gt;테이블을&lt;/span&gt; &lt;span&gt;확인하는&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;Select name, is_tracked_by_cdc from sys.tables;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7PksL/btsFgqS47e8/ajHWuIsfJH6hg3PkvhEqMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7PksL/btsFgqS47e8/ajHWuIsfJH6hg3PkvhEqMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7PksL/btsFgqS47e8/ajHWuIsfJH6hg3PkvhEqMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7PksL%2FbtsFgqS47e8%2FajHWuIsfJH6hg3PkvhEqMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;704&quot; height=&quot;612&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Source Connector &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;정보&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;등록&lt;/span&gt; &lt;span&gt;(SQL Server)]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Debezium API&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;소스&lt;/span&gt; &lt;span&gt;커넥터&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;필자는&lt;/span&gt; &lt;span&gt;postman &lt;/span&gt;&lt;span&gt;툴을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;API&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;호출하였다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;속성에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;설명은&lt;/span&gt; &lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;다루지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;http://kafka-ip:8083/connectors&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;name&quot;: &quot;inventory-connector&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;config&quot;: {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;connector.class&quot; : &quot;io.debezium.connector.sqlserver.SqlServerConnector&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;tasks.max&quot;: &quot;1&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;topic.prefix&quot;: &quot;server1&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;database.hostname&quot; : &quot;SQL Server IP&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;database.server.name&quot;: &quot;DB Name (Friendly name)&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;database.port&quot; : &quot;1433&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;database.user&quot; : &quot;swkang_cdc&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;database.password&quot; : &quot;******&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;database.names&quot; : &quot;swkang_test&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;include.schema.changes&quot;: &quot;true&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;include.schema.comments&quot; : &quot;true&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;tombstones.on.delete&quot;:&quot;true&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;schema.history.internal.kafka.bootstrap.servers&quot; : &quot;localhost:9092&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;schema.history.internal.kafka.topic&quot;: &quot;schema-changes.inventory1&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;database.encrypt&quot;: &quot;false&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Target Connector &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;정보&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;등록&lt;/span&gt; &lt;span&gt;(PostgreSQL)]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;소스의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;타겟으로&lt;/span&gt; &lt;span&gt;복제하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;타겟&lt;/span&gt; &lt;span&gt;데이터베이스인&lt;/span&gt; &lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;연결&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;등록한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;속성에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;설명은&lt;/span&gt; &lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;다루지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;name&quot;: &quot;postgresql_target_sink&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;config&quot;: {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;connector.class&quot;: &quot;io.debezium.connector.jdbc.JdbcSinkConnector&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;tasks.max&quot;: &quot;1&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;connection.url&quot;: &quot;jdbc:postgresql://localhost/swkang_test&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;connection.username&quot;: &quot;cdc_user&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;connection.password&quot;: &quot;******&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;insert.mode&quot;: &quot;upsert&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;delete.enabled&quot;: &quot;true&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;primary.key.mode&quot;: &quot;record_key&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;schema.evolution&quot;: &quot;basic&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;database.time_zone&quot;: &quot;UTC&quot;,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;topics&quot;: &quot;server1.swkang_test.dbo.tbl_a&quot; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1528&quot; data-origin-height=&quot;696&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QwXkp/btsFkUSBDVj/9AkE1cHNXckDPyqPCpY7b1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QwXkp/btsFkUSBDVj/9AkE1cHNXckDPyqPCpY7b1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QwXkp/btsFkUSBDVj/9AkE1cHNXckDPyqPCpY7b1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQwXkp%2FbtsFkUSBDVj%2F9AkE1cHNXckDPyqPCpY7b1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1528&quot; height=&quot;696&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1528&quot; data-origin-height=&quot;696&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;실시간&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;복제&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;실습&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SQL Server&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;입력한&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;테이블을&lt;/span&gt; &lt;span&gt;생성하지&lt;/span&gt; &lt;span&gt;않아도&lt;/span&gt; &lt;span&gt;SQL Server&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;스키마&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;읽고&lt;/span&gt; &lt;span&gt;테이블을&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;복제한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SQL Server&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;insert into tbl_a values (1, 'a_skang1', 'skang1@nowcom.com')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;insert into tbl_a values (2, 'a_skang2', 'skang2@nowcom.com')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;insert into tbl_a values (3, 'a_skang3', 'skang2@nowcom.com')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;insert into tbl_a values (4, 'a_skang4', 'skang4@nowcom.com')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;insert into tbl_a values (5, 'a_skang5', 'skang5@nowcom.com')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;insert into tbl_a values (6, 'a_skang6', 'skang6@nowcom.com')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;insert into tbl_a values (7, 'a_skang6', 'skang6@nowcom.com')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;insert into tbl_a values (8, 'a_skang8', 'skang8@nowcom.com')&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실시간으로&lt;/span&gt; &lt;span&gt;MS SQL Server&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;복제된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;1358&quot; data-origin-height=&quot;614&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1uuoZ/btsFfWLsiXr/fL0XDNo25B4ERVr93jUi7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1uuoZ/btsFfWLsiXr/fL0XDNo25B4ERVr93jUi7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1uuoZ/btsFfWLsiXr/fL0XDNo25B4ERVr93jUi7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1uuoZ%2FbtsFfWLsiXr%2FfL0XDNo25B4ERVr93jUi7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1358&quot; height=&quot;614&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;1358&quot; data-origin-height=&quot;614&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;Debezium&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;활용하여&lt;/span&gt; &lt;span&gt;SQL Server&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;PostgreSQL&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;진행하였다&lt;/span&gt;&lt;span&gt;. Debezium &lt;/span&gt;&lt;span&gt;커넥터에서&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;커넥터를&lt;/span&gt; &lt;span&gt;활용하면&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;소스&lt;/span&gt; &lt;span&gt;데이터베이스에서&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;타겟&lt;/span&gt; &lt;span&gt;데이터베이스로&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;실시간으로&lt;/span&gt; &lt;span&gt;복제할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Kafka Connect Elasticsearch Connector in Actio : &lt;a href=&quot;https://www.confluent.io/blog/kafka-elasticsearch-connector-tutorial/&quot;&gt;https://www.confluent.io/blog/kafka-elasticsearch-connector-tutorial/&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;How to Use Kafka Connect - Get Started : &lt;a href=&quot;https://docs.confluent.io/platform/current/connect/userguide.html#connect-installing-plugins&quot;&gt;https://docs.confluent.io/platform/current/connect/userguide.html#connect-installing-plugins&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Debezium Release Series 2.5 : &lt;a href=&quot;https://debezium.io/releases/2.5/&quot;&gt;https://debezium.io/releases/2.5/&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Enable and disable change data capture : &lt;a href=&quot;https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/enable-and-disable-change-data-capture-sql-server?view=sql-server-ver16&quot;&gt;https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/enable-and-disable-change-data-capture-sql-server?view=sql-server-ver16&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-02-26 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, Apache Kafka, &lt;/span&gt;&lt;span&gt;데비지움&lt;/span&gt;&lt;span&gt;, Debezium, &lt;/span&gt;&lt;span&gt;데이터복제&lt;/span&gt;&lt;span&gt;, Kafka CDC, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;스트림즈&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;실시간&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;엔지니어&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>Debezium</category>
      <category>Kafka</category>
      <category>Kafka CDC</category>
      <category>데비지움</category>
      <category>데이터 실시간 복제</category>
      <category>데이터 엔지니어</category>
      <category>데이터복제</category>
      <category>아파치 카프카</category>
      <category>카프카 스트림즈</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1576</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-Kafka%EC%99%80-Debezium%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-SQL-Server%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%8B%A4%EC%8B%9C%EA%B0%84%EC%9C%BC%EB%A1%9C-PostgreSQL%EB%A1%9C-%EB%B3%B5%EC%A0%9C%ED%95%98%EA%B8%B0#entry1576comment</comments>
      <pubDate>Mon, 26 Feb 2024 10:57:25 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] Kafka 컨슈머(Consumer) 이해하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%EC%BB%A8%EC%8A%88%EB%A8%B8Consumer-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] Kafka &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;컨슈머&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;(Consumer) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이해하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카는&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;생산&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;발송하는&lt;/span&gt; &lt;span&gt;프로듀서&lt;/span&gt;&lt;span&gt;(producer)&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;수신&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;소비하는&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt;&lt;span&gt;(consumer)&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로듀서와&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;사이에서&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;중개하는&lt;/span&gt; &lt;span&gt;브로커&lt;/span&gt;&lt;span&gt;(broker)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;구성된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트는&lt;/span&gt; &lt;span&gt;컨슈머에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;토픽으로&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보내면&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져와&lt;/span&gt; &lt;span&gt;소비하는&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;애플리케이션&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;등을&lt;/span&gt; &lt;span&gt;지칭해서&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt;&lt;span&gt;(Consumer)&lt;/span&gt;&lt;span&gt;라고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;컨슈머의&lt;/span&gt; &lt;span&gt;주요&lt;/span&gt; &lt;span&gt;기능은&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;리더에게&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져오기를&lt;/span&gt; &lt;span&gt;요청하는&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;요청은&lt;/span&gt; &lt;span&gt;로그의&lt;/span&gt; &lt;span&gt;오프셋을&lt;/span&gt; &lt;span&gt;명시하고&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;위치로부터&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;수신한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;컨슈머는&lt;/span&gt; &lt;span&gt;수신할&lt;/span&gt; &lt;span&gt;메시지의&lt;/span&gt; &lt;span&gt;위치를&lt;/span&gt; &lt;span&gt;조정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt; &lt;span&gt;수신한&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;수신할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1480&quot; data-origin-height=&quot;740&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kPH50/btsDNINPdmy/zdm66clrpeYm83DAy3LOR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kPH50/btsDNINPdmy/zdm66clrpeYm83DAy3LOR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kPH50/btsDNINPdmy/zdm66clrpeYm83DAy3LOR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkPH50%2FbtsDNINPdmy%2Fzdm66clrpeYm83DAy3LOR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1480&quot; height=&quot;740&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1480&quot; data-origin-height=&quot;740&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;컨슈머의&lt;/span&gt; &lt;span&gt;또&lt;/span&gt; &lt;span&gt;하나&lt;/span&gt; &lt;span&gt;특징은&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;서로&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;애플리케이션이&lt;/span&gt; &lt;span&gt;동시에&lt;/span&gt; &lt;span&gt;구독할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다는&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;그림을&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;동시에&lt;/span&gt; &lt;span&gt;구독하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;단일&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;멀티&lt;/span&gt; &lt;span&gt;컨슈밍이&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;이유는&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;읽어도&lt;/span&gt; &lt;span&gt;브로커에서&lt;/span&gt; &lt;span&gt;메시지가&lt;/span&gt; &lt;span&gt;유지되기&lt;/span&gt; &lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;대신에&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;컨슈머는&lt;/span&gt; &lt;span&gt;파티션의&lt;/span&gt; &lt;span&gt;어느&lt;/span&gt; &lt;span&gt;오프셋까지&lt;/span&gt; &lt;span&gt;읽었는지를&lt;/span&gt; &lt;span&gt;구분하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;오프셋&lt;/span&gt;&lt;span&gt;(_consumer_offset) &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;저장한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;컨슈머는&lt;/span&gt; &lt;span&gt;오프셋에&lt;/span&gt; &lt;span&gt;저장된&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;안정적으로&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;읽어올&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;그룹&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨슈머를&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;때는&lt;/span&gt; &lt;span&gt;항상&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹이라는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;컨슈머를&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;옵션으로&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;설정하지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;자동적으로&lt;/span&gt; &lt;span&gt;console-consumer-xxxxx(&lt;/span&gt;&lt;span&gt;숫자형태&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;형식의&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹이&lt;/span&gt; &lt;span&gt;생성된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹은&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹이&lt;/span&gt; &lt;span&gt;동시에&lt;/span&gt; &lt;span&gt;접속해&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져올&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;998&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5lyU9/btsDQ1F5WeF/petvOEMruLeVLDpFIABl8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5lyU9/btsDQ1F5WeF/petvOEMruLeVLDpFIABl8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5lyU9/btsDQ1F5WeF/petvOEMruLeVLDpFIABl8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5lyU9%2FbtsDQ1F5WeF%2FpetvOEMruLeVLDpFIABl8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1413&quot; height=&quot;998&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;998&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그륩은&lt;/span&gt; &lt;span&gt;확장도&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;보내는&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;속도가&lt;/span&gt; &lt;span&gt;증가하여&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져가는&lt;/span&gt; &lt;span&gt;속도보다&lt;/span&gt; &lt;span&gt;빨라지면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;처리하지&lt;/span&gt; &lt;span&gt;못한&lt;/span&gt; &lt;span&gt;메시지들이&lt;/span&gt; &lt;span&gt;점점&lt;/span&gt; &lt;span&gt;많아지기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;컨슈머를&lt;/span&gt; &lt;span&gt;확장하여&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;해결해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;단순히&lt;/span&gt; &lt;span&gt;컨슈머만&lt;/span&gt; &lt;span&gt;확장한다면&lt;/span&gt; &lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;컨슈머어&lt;/span&gt; &lt;span&gt;오프셋&lt;/span&gt; &lt;span&gt;정보와&lt;/span&gt; &lt;span&gt;새로&lt;/span&gt; &lt;span&gt;추가된&lt;/span&gt; &lt;span&gt;컨슈머의&lt;/span&gt; &lt;span&gt;오프셋&lt;/span&gt; &lt;span&gt;정보가&lt;/span&gt; &lt;span&gt;뒤섞이면서&lt;/span&gt; &lt;span&gt;수신되는&lt;/span&gt; &lt;span&gt;메시지들이&lt;/span&gt; &lt;span&gt;엉망이&lt;/span&gt; &lt;span&gt;될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;카프카에서는&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져갈&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹이라는&lt;/span&gt; &lt;span&gt;기능을&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;872&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1qGd0/btsDQaJ7e7U/At3HC0Ez6oxfWv9UR3Ie7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1qGd0/btsDQaJ7e7U/At3HC0Ez6oxfWv9UR3Ie7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1qGd0/btsDQaJ7e7U/At3HC0Ez6oxfWv9UR3Ie7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1qGd0%2FbtsDQaJ7e7U%2FAt3HC0Ez6oxfWv9UR3Ie7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1289&quot; height=&quot;872&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;872&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹안에서는&lt;/span&gt; &lt;span&gt;컨슈머들은&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져오고&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;소유권을&lt;/span&gt; &lt;span&gt;공유한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;그림을&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt;, Consumer2&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;추가함으로써&lt;/span&gt; &lt;span&gt;Partition1&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;소유권이&lt;/span&gt; &lt;span&gt;Consumer2&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;이동하는데&lt;/span&gt; &lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;소유권을&lt;/span&gt; &lt;span&gt;이동하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;리밸런스&lt;/span&gt;&lt;span&gt;(rebalance)&lt;/span&gt;&lt;span&gt;라고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;리밸런스를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹에서는&lt;/span&gt; &lt;span&gt;컨슈머를&lt;/span&gt; &lt;span&gt;쉽고&lt;/span&gt; &lt;span&gt;안전하게&lt;/span&gt; &lt;span&gt;추가할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt; &lt;span&gt;리밸런스를&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;동안&lt;/span&gt; &lt;span&gt;일시적으로&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;전체는&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져올&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다는것에&lt;/span&gt; &lt;span&gt;주의하자&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그&lt;/span&gt; &lt;span&gt;이유는&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;내에서&lt;/span&gt; &lt;span&gt;리밸런스가&lt;/span&gt; &lt;span&gt;일어나면&lt;/span&gt; &lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;파티션마다&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;연결되기&lt;/span&gt; &lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그렇다면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;수가&lt;/span&gt; &lt;span&gt;많아&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;메시지가&lt;/span&gt; &lt;span&gt;점점&lt;/span&gt; &lt;span&gt;쌓이는&lt;/span&gt; &lt;span&gt;상황일&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;단순히&lt;/span&gt; &lt;span&gt;컨슈머만&lt;/span&gt; &lt;span&gt;추가하면&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;적체&lt;/span&gt; &lt;span&gt;현상이&lt;/span&gt; &lt;span&gt;해소될까&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;정답은&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;아니오&lt;/span&gt;&lt;span&gt;&amp;rdquo; &lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;위에서&lt;/span&gt; &lt;span&gt;설명할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨슈머는&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;매핑&lt;/span&gt; &lt;span&gt;된다고&lt;/span&gt; &lt;span&gt;했다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;파티션개수보다&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;많을&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;일부&lt;/span&gt; &lt;span&gt;컨슈머는&lt;/span&gt; &lt;span&gt;아무일도&lt;/span&gt; &lt;span&gt;하지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt; &lt;span&gt;대기하게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;개수와&lt;/span&gt; &lt;span&gt;컨슈머의&lt;/span&gt; &lt;span&gt;개수를&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;늘려줘야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;컨슈머의&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt;&lt;span&gt;ID&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;중복되지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;주의한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨슈머는&lt;/span&gt; &lt;span&gt;일정한&lt;/span&gt; &lt;span&gt;주기로&lt;/span&gt; &lt;span&gt;하트비트를&lt;/span&gt; &lt;span&gt;보내는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt; &lt;span&gt;통해서&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;처리하고&lt;/span&gt; &lt;span&gt;있다는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;판단한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;하트비트&lt;/span&gt; &lt;span&gt;방식은&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;poll&lt;/span&gt;&lt;span&gt;할&lt;/span&gt; &lt;span&gt;때와&lt;/span&gt; &lt;span&gt;가져간&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;커밋할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;보낸다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;오랫동안&lt;/span&gt; &lt;span&gt;하트비트를&lt;/span&gt; &lt;span&gt;보내지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;세션은&lt;/span&gt; &lt;span&gt;타임아웃되고&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;있다고&lt;/span&gt; &lt;span&gt;판단하여&lt;/span&gt; &lt;span&gt;리밸런스를&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;상황을&lt;/span&gt; &lt;span&gt;지속되면&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;늦게&lt;/span&gt; &lt;span&gt;가져오는&lt;/span&gt; &lt;span&gt;현상이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;모니터링을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;컨슈머의&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;상황을&lt;/span&gt; &lt;span&gt;인지하고&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;컨슈머를&lt;/span&gt; &lt;span&gt;추가하여&lt;/span&gt; &lt;span&gt;정상적인&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;유지할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;해야한다&lt;/span&gt;&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;하트비트&lt;/span&gt; &lt;span&gt;방식&lt;/span&gt; &lt;span&gt;(KIP-62)&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;백그라운드&lt;/span&gt; &lt;span&gt;스레드가&lt;/span&gt; &lt;span&gt;도입되어&lt;/span&gt; &lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;poll()&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;호출하기를&lt;/span&gt; &lt;span&gt;기다리는&lt;/span&gt; &lt;span&gt;대신&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;스레드는&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;우리가&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;작동하고&lt;/span&gt; &lt;span&gt;있음을&lt;/span&gt; &lt;span&gt;알리는&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;프로세스가&lt;/span&gt; &lt;span&gt;하트비트&lt;/span&gt; &lt;span&gt;스레드와&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;종료되면&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;이를&lt;/span&gt; &lt;span&gt;신속하게&lt;/span&gt; &lt;span&gt;발견하고&lt;/span&gt; &lt;span&gt;하트비트가&lt;/span&gt; &lt;span&gt;비동기식으로&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;자주&lt;/span&gt; &lt;span&gt;전송되기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;처리에&lt;/span&gt; &lt;span&gt;소요되는&lt;/span&gt; &lt;span&gt;시간에&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;이상&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;받지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;979&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhLxaf/btsDQ2EYz8d/3zG40waftaOUHXFdDviYI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhLxaf/btsDQ2EYz8d/3zG40waftaOUHXFdDviYI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhLxaf/btsDQ2EYz8d/3zG40waftaOUHXFdDviYI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhLxaf%2FbtsDQ2EYz8d%2F3zG40waftaOUHXFdDviYI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;734&quot; height=&quot;979&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;979&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;커밋과&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;오프셋&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹의&lt;/span&gt; &lt;span&gt;컨슈머들은&lt;/span&gt; &lt;span&gt;각각의&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;자신이&lt;/span&gt; &lt;span&gt;가져가&lt;/span&gt; &lt;span&gt;메시지의&lt;/span&gt; &lt;span&gt;위치&lt;/span&gt; &lt;span&gt;정보&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;오프셋&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;기록한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;현재의&lt;/span&gt; &lt;span&gt;위치를&lt;/span&gt; &lt;span&gt;업데이트&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;동작을&lt;/span&gt; &lt;span&gt;커밋&lt;/span&gt;&lt;span&gt;(commit) &lt;/span&gt;&lt;span&gt;이라고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;컨슈머에&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하거나&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;추가되었을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;리밸런싱이&lt;/span&gt; &lt;span&gt;발생하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨슈머는&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;최근&lt;/span&gt; &lt;span&gt;커밋된&lt;/span&gt; &lt;span&gt;오프셋을&lt;/span&gt; &lt;span&gt;읽고&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;이후부터&lt;/span&gt; &lt;span&gt;메시지들을&lt;/span&gt; &lt;span&gt;가져온다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;커밋된&lt;/span&gt; &lt;span&gt;오프셋이&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;마지막으로&lt;/span&gt; &lt;span&gt;처리한&lt;/span&gt; &lt;span&gt;오프셋보다&lt;/span&gt; &lt;span&gt;작으면&lt;/span&gt; &lt;span&gt;메시지는&lt;/span&gt; &lt;span&gt;중복으로&lt;/span&gt; &lt;span&gt;처리되고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;커밋된&lt;/span&gt; &lt;span&gt;오프셋이&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;마지막으로&lt;/span&gt; &lt;span&gt;처리한&lt;/span&gt; &lt;span&gt;오프셋&lt;/span&gt; &lt;span&gt;보다&lt;/span&gt; &lt;span&gt;크다면&lt;/span&gt; &lt;span&gt;마지막으로&lt;/span&gt; &lt;span&gt;처리된&lt;/span&gt; &lt;span&gt;오프셋과&lt;/span&gt; &lt;span&gt;커밋된&lt;/span&gt; &lt;span&gt;오프셋&lt;/span&gt; &lt;span&gt;사이의&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;메시지는&lt;/span&gt; &lt;span&gt;누락된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;동작방식&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;커밋은&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;997&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ri3Q7/btsDQRpZemR/kEYWtGJCzVbR494kwkK7q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ri3Q7/btsDQRpZemR/kEYWtGJCzVbR494kwkK7q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ri3Q7/btsDQRpZemR/kEYWtGJCzVbR494kwkK7q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRi3Q7%2FbtsDQRpZemR%2FkEYWtGJCzVbR494kwkK7q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;993&quot; height=&quot;997&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;997&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;자동&lt;/span&gt; &lt;span&gt;커밋&lt;/span&gt; &lt;span&gt;: &lt;/span&gt;&lt;span&gt;기본값&lt;/span&gt; &lt;span&gt;5&lt;/span&gt;&lt;span&gt;초마다&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;poll()&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;호출할&lt;/span&gt; &lt;span&gt;때마다&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;마지막&lt;/span&gt; &lt;span&gt;오프셋&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;커밋한다&lt;/span&gt;&lt;span&gt;. Enable.atuo.commit=true&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;가능하며&lt;/span&gt;&lt;span&gt;, auto.commit.interval.ms &lt;/span&gt;&lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;조정이&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;오프셋을&lt;/span&gt; &lt;span&gt;커밋하는&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;편리하지만&lt;/span&gt; &lt;span&gt;리밸런싱으로&lt;/span&gt; &lt;span&gt;인한&lt;/span&gt; &lt;span&gt;중복이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;동작에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;이해하고&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;수동&lt;/span&gt; &lt;span&gt;커밋&lt;/span&gt; &lt;span&gt;: &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;경우는&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;처리가&lt;/span&gt; &lt;span&gt;완료&lt;/span&gt; &lt;span&gt;될&lt;/span&gt; &lt;span&gt;때까지&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져온&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;간주되어서는&lt;/span&gt; &lt;span&gt;안되는&lt;/span&gt; &lt;span&gt;경우에&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;객체의&lt;/span&gt; &lt;span&gt;commitAsync()&lt;/span&gt;&lt;span&gt;혹은&lt;/span&gt; &lt;span&gt;commitSync()&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;커밋해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;수동&lt;/span&gt; &lt;span&gt;커밋의&lt;/span&gt; &lt;span&gt;경우에도&lt;/span&gt; &lt;span&gt;중복은&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;주요&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;bootstrap.servers : &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;클러스터에&lt;/span&gt; &lt;span&gt;처음&lt;/span&gt; &lt;span&gt;연결을&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;호스트와&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt; &lt;span&gt;정보로&lt;/span&gt; &lt;span&gt;구성된&lt;/span&gt; &lt;span&gt;리스트&lt;/span&gt; &lt;span&gt;정보&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;정보만&lt;/span&gt; &lt;span&gt;사용시&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;호스트만&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;경우에는&lt;/span&gt; &lt;span&gt;접속이&lt;/span&gt; &lt;span&gt;불가하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;리스트&lt;/span&gt; &lt;span&gt;전체를&lt;/span&gt; &lt;span&gt;입력하는&lt;/span&gt; &lt;span&gt;방식을&lt;/span&gt; &lt;span&gt;권장한다&lt;/span&gt;&lt;span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;fetch.min.bytes : &lt;/span&gt;&lt;span&gt;한번에&lt;/span&gt; &lt;span&gt;가져올&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;최소&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;사이즈로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;지정한&lt;/span&gt; &lt;span&gt;사이즈보다&lt;/span&gt; &lt;span&gt;작은&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;요청에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;응답하지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;누적될때까지&lt;/span&gt; &lt;span&gt;기다린다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;group.id : &lt;/span&gt;&lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;속한&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;식별하는&lt;/span&gt; &lt;span&gt;식별자로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;아이디이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;enable.auto.commit : &lt;/span&gt;&lt;span&gt;백그라운드로&lt;/span&gt; &lt;span&gt;주기적으로&lt;/span&gt; &lt;span&gt;오프셋을&lt;/span&gt; &lt;span&gt;커밋한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;auto.offset.reset : &lt;/span&gt;&lt;span&gt;카프카에서&lt;/span&gt; &lt;span&gt;초기&lt;/span&gt; &lt;span&gt;오프셋이&lt;/span&gt; &lt;span&gt;없거나&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;오프셋이&lt;/span&gt; &lt;span&gt;더이상&lt;/span&gt; &lt;span&gt;존재하지&lt;/span&gt; &lt;span&gt;않은&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;옵션으로&lt;/span&gt; &lt;span&gt;리셋한다&lt;/span&gt;&lt;span&gt;.&amp;nbsp; (- earliest : &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt; &lt;span&gt;초기의&lt;/span&gt; &lt;span&gt;오프셋값으로&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt;&lt;span&gt; - lastest : &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt; &lt;span&gt;마지막의&lt;/span&gt; &lt;span&gt;오프셋값으로&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt;&lt;span&gt; - none : &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt; &lt;span&gt;오프셋값을&lt;/span&gt; &lt;span&gt;찾지&lt;/span&gt; &lt;span&gt;못하면&lt;/span&gt; &lt;span&gt;에러를&lt;/span&gt; &lt;span&gt;리턴&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;fetch.max.bytes : &lt;/span&gt;&lt;span&gt;한번에&lt;/span&gt; &lt;span&gt;가져올&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;사이즈이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;request.timeout.ms : &lt;/span&gt;&lt;span&gt;요청에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;응답을&lt;/span&gt; &lt;span&gt;기다리는&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;시간이다&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;session.timeout.ms : &lt;/span&gt;&lt;span&gt;컨슈머와&lt;/span&gt; &lt;span&gt;브로커&lt;/span&gt; &lt;span&gt;사이의&lt;/span&gt; &lt;span&gt;세션&lt;/span&gt; &lt;span&gt;타임&lt;/span&gt; &lt;span&gt;아웃&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;기본값&lt;/span&gt;&lt;span&gt; 10&lt;/span&gt;&lt;span&gt;초&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;브로커가&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;살아있는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;판단하는&lt;/span&gt; &lt;span&gt;시간이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;heartbeat.interval.ms : &lt;/span&gt;&lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;코디네이터에게&lt;/span&gt; &lt;span&gt;얼마나&lt;/span&gt; &lt;span&gt;자주&lt;/span&gt;&lt;span&gt; KafkaConsumer poll() &lt;/span&gt;&lt;span&gt;메소드로&lt;/span&gt; &lt;span&gt;하트비트를&lt;/span&gt; &lt;span&gt;보낼&lt;/span&gt; &lt;span&gt;것인지&lt;/span&gt; &lt;span&gt;조정&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;기본값은&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;초&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;max.poll.records : &lt;/span&gt;&lt;span&gt;단일&lt;/span&gt; &lt;span&gt;호출&lt;/span&gt;&lt;span&gt; poll()&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;수를&lt;/span&gt; &lt;span&gt;조정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;애플리케이션이&lt;/span&gt; &lt;span&gt;폴링&lt;/span&gt; &lt;span&gt;루프에서&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;양을&lt;/span&gt; &lt;span&gt;조정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;max.poll.interval.ms : &lt;/span&gt;&lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;살아있는지를&lt;/span&gt; &lt;span&gt;체크하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;하트비트를&lt;/span&gt; &lt;span&gt;주기적으로&lt;/span&gt; &lt;span&gt;보내는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;계속해서&lt;/span&gt; &lt;span&gt;하트비트만&lt;/span&gt; &lt;span&gt;보내고&lt;/span&gt; &lt;span&gt;실제로&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져가지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;경우가&lt;/span&gt; &lt;span&gt;있을&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;무한정&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;점유할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없도록&lt;/span&gt; &lt;span&gt;주기적으로&lt;/span&gt;&lt;span&gt; poll&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;호출하지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;장애라고&lt;/span&gt; &lt;span&gt;판단하고&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;그룹에서&lt;/span&gt; &lt;span&gt;제외한&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;컨슈머가&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;파티션에서&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져갈&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있게&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;auto.commit.interval.ms : &lt;/span&gt;&lt;span&gt;주기적으로&lt;/span&gt; &lt;span&gt;오프셋을&lt;/span&gt; &lt;span&gt;커밋하는&lt;/span&gt; &lt;span&gt;시간이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;fetch.max.wait.ms : fetch.min.bytes&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;의해&lt;/span&gt; &lt;span&gt;설정된&lt;/span&gt; &lt;span&gt;데이터보다&lt;/span&gt; &lt;span&gt;적은&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;요청에&lt;/span&gt; &lt;span&gt;응답을&lt;/span&gt; &lt;span&gt;기다리는&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;시간이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Kafka Consumers : &lt;a href=&quot;https://ibm-cloud-architecture.github.io/refarch-eda/technology/kafka-consumers/&quot;&gt;https://ibm-cloud-architecture.github.io/refarch-eda/technology/kafka-consumers/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://docs.confluent.io/kafka/design/consumer-design.html&quot;&gt;https://docs.confluent.io/kafka/design/consumer-design.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;What does the heartbeat thread do in Kafka Consumer? : &lt;a href=&quot;https://chrzaszcz.dev/2019/06/kafka-heartbeat-thread/&quot;&gt;https://chrzaszcz.dev/2019/06/kafka-heartbeat-thread/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;KIP-62: Allow consumer to send heartbeats from a background thread : &lt;a href=&quot;https://cwiki.apache.org/confluence/display/KAFKA/KIP-62%3A+Allow+consumer+to+send+heartbeats+from+a+background+thread&quot;&gt;https://cwiki.apache.org/confluence/display/KAFKA/KIP-62%3A+Allow+consumer+to+send+heartbeats+from+a+background+thread&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-01-23 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, Apache Kafka, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt;&lt;span&gt;, Kafka Topic, Kafka Partition, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt;&lt;span&gt;, Kafka Replication, &lt;/span&gt;&lt;span&gt;컨슈머&lt;/span&gt;&lt;span&gt;, Consumer, Kafka Consumer, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>Kafka</category>
      <category>Kafka Partition</category>
      <category>Kafka Replication</category>
      <category>kafka topic</category>
      <category>아파치 카프카</category>
      <category>카프카 복제</category>
      <category>카프카 토픽</category>
      <category>카프카 파티션</category>
      <category>컨슈머</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1575</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%EC%BB%A8%EC%8A%88%EB%A8%B8Consumer-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#entry1575comment</comments>
      <pubDate>Tue, 23 Jan 2024 11:38:21 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] Kafka 프로듀서(Producer) 이해하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%ED%94%84%EB%A1%9C%EB%93%80%EC%84%9CProducer-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] Kafka &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;프로듀서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;(Producer) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이해하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카는&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;생산&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;발송하는&lt;/span&gt; &lt;span&gt;프로듀서&lt;/span&gt;&lt;span&gt;(producer)&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;수신&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;소비하는&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt;&lt;span&gt;(consumer)&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로듀서와&lt;/span&gt; &lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;사이에서&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;중개하는&lt;/span&gt; &lt;span&gt;브로커&lt;/span&gt;&lt;span&gt;(broker)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;구성된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트는&lt;/span&gt; &lt;span&gt;프로듀서에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;생산&lt;/span&gt;&lt;span&gt;(producer)&lt;/span&gt;&lt;span&gt;해서&lt;/span&gt; &lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;토픽으로&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보내는&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;애플리케이션&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;등을&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;프로듀서라고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;프로듀서의&lt;/span&gt; &lt;span&gt;주요&lt;/span&gt; &lt;span&gt;기능은&lt;/span&gt; &lt;span&gt;각각의&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;매핑하고&lt;/span&gt; &lt;span&gt;파티션의&lt;/span&gt; &lt;span&gt;리더에&lt;/span&gt; &lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;보내는&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;키&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;정해&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;가진&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;파티션으로&lt;/span&gt; &lt;span&gt;전송할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;키를&lt;/span&gt; &lt;span&gt;지정하지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;라운드&lt;/span&gt; &lt;span&gt;로빈&lt;/span&gt; &lt;span&gt;방식으로&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;균등하게&lt;/span&gt; &lt;span&gt;배분한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로듀서는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;통해서&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;브로커로&lt;/span&gt; &lt;span&gt;전달한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Serialize&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Partition&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Compress&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Accumulate records&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Group by broker and send&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2476&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZq09U/btsDQ3jfh8l/ili8QBr1WVYkwnDYPWPCg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZq09U/btsDQ3jfh8l/ili8QBr1WVYkwnDYPWPCg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZq09U/btsDQ3jfh8l/ili8QBr1WVYkwnDYPWPCg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZq09U%2FbtsDQ3jfh8l%2Fili8QBr1WVYkwnDYPWPCg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2476&quot; height=&quot;576&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2476&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Serialize]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로듀서&lt;/span&gt; &lt;span&gt;레코드가&lt;/span&gt; &lt;span&gt;프로듀서에게&lt;/span&gt; &lt;span&gt;전달된&lt;/span&gt; &lt;span&gt;직렬&lt;/span&gt; &lt;span&gt;변환기를&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;직렬화된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;키와&lt;/span&gt; &lt;span&gt;값은&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;전달된&lt;/span&gt; &lt;span&gt;직렬&lt;/span&gt; &lt;span&gt;변환기를&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;직렬화된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt; &lt;span&gt;직렬&lt;/span&gt; &lt;span&gt;변환기에는&lt;/span&gt; &lt;span&gt;문자열&lt;/span&gt; &lt;span&gt;직렬&lt;/span&gt; &lt;span&gt;변환기&lt;/span&gt;&lt;span&gt;, byteArray &lt;/span&gt;&lt;span&gt;직렬&lt;/span&gt; &lt;span&gt;변환기&lt;/span&gt; &lt;span&gt;및&lt;/span&gt;&lt;span&gt; ByteBuffer &lt;/span&gt;&lt;span&gt;직렬&lt;/span&gt; &lt;span&gt;변환기가&lt;/span&gt; &lt;span&gt;포함된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Partitioner]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로듀서는&lt;/span&gt; &lt;span&gt;레코드를&lt;/span&gt; &lt;span&gt;기록해야하는&lt;/span&gt; &lt;span&gt;주제의&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;결정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; murmur2 &lt;/span&gt;&lt;span&gt;알고리즘이&lt;/span&gt; &lt;span&gt;파티셔닝에&lt;/span&gt; &lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. Murmur 2 &lt;/span&gt;&lt;span&gt;알고리즘은&lt;/span&gt; &lt;span&gt;전달된&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;고유한&lt;/span&gt; &lt;span&gt;해시&lt;/span&gt; &lt;span&gt;코드를&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt; &lt;span&gt;적절한&lt;/span&gt; &lt;span&gt;파티션이&lt;/span&gt; &lt;span&gt;결정된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;키가&lt;/span&gt; &lt;span&gt;전달되지&lt;/span&gt; &lt;span&gt;않은&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;라운드&lt;/span&gt; &lt;span&gt;로빈&lt;/span&gt; &lt;span&gt;방식으로&lt;/span&gt; &lt;span&gt;파티션이&lt;/span&gt; &lt;span&gt;선택된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1449&quot; data-origin-height=&quot;520&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzH4pX/btsDJYp3VXv/F8002oj5YZMVz5czmbOkH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzH4pX/btsDJYp3VXv/F8002oj5YZMVz5czmbOkH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzH4pX/btsDJYp3VXv/F8002oj5YZMVz5czmbOkH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzH4pX%2FbtsDJYp3VXv%2FF8002oj5YZMVz5czmbOkH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1449&quot; height=&quot;520&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1449&quot; data-origin-height=&quot;520&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;세트에&lt;/span&gt; &lt;span&gt;전달함으로써&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;주어진&lt;/span&gt; &lt;span&gt;수의&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;수신된&lt;/span&gt; &lt;span&gt;순서대로&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;메시지가&lt;/span&gt; &lt;span&gt;기록되도록&lt;/span&gt; &lt;span&gt;보장한다는&lt;/span&gt; &lt;span&gt;점을&lt;/span&gt; &lt;span&gt;이해하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;수신된&lt;/span&gt; &lt;span&gt;메시지의&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;유지하려면&lt;/span&gt; &lt;span&gt;메시지에&lt;/span&gt; &lt;span&gt;적절한&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;정의&lt;/span&gt; &lt;span&gt;파티셔너를&lt;/span&gt; &lt;span&gt;프로듀서에게&lt;/span&gt; &lt;span&gt;전달하여&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;써야&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;제어할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Compression]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로듀서&lt;/span&gt; &lt;span&gt;레코드가&lt;/span&gt; &lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;누산기에&lt;/span&gt; &lt;span&gt;기록되기&lt;/span&gt; &lt;span&gt;전에&lt;/span&gt; &lt;span&gt;압축된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; Kafka &lt;/span&gt;&lt;span&gt;생산자에서는&lt;/span&gt; &lt;span&gt;압축이&lt;/span&gt; &lt;span&gt;활성화되어&lt;/span&gt; &lt;span&gt;있지&lt;/span&gt; &lt;span&gt;않다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;지원되는&lt;/span&gt; &lt;span&gt;압축&lt;/span&gt; &lt;span&gt;유형은&lt;/span&gt; &lt;span&gt;다음과&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byw50N/btsDQeZDwVq/5BjOOVnaz66tMSw6jZeE6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byw50N/btsDQeZDwVq/5BjOOVnaz66tMSw6jZeE6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byw50N/btsDQeZDwVq/5BjOOVnaz66tMSw6jZeE6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbyw50N%2FbtsDQeZDwVq%2F5BjOOVnaz66tMSw6jZeE6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1438&quot; height=&quot;281&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Record Accumulator]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;레코드가&lt;/span&gt; &lt;span&gt;주제의&lt;/span&gt; &lt;span&gt;파티션당&lt;/span&gt; &lt;span&gt;버퍼에&lt;/span&gt; &lt;span&gt;누적된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;레코드는&lt;/span&gt; &lt;span&gt;프로듀서&lt;/span&gt; &lt;span&gt;배치&lt;/span&gt; &lt;span&gt;크기&lt;/span&gt; &lt;span&gt;속성에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;배치로&lt;/span&gt; &lt;span&gt;그룹화된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;주제의&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;파티션은&lt;/span&gt; &lt;span&gt;별도의&lt;/span&gt; &lt;span&gt;누산기&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;버퍼를&lt;/span&gt; &lt;span&gt;갖는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brXTm5/btsDKzp0hEu/lnLOPPNN5YFhqgCNSk03Xk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brXTm5/btsDKzp0hEu/lnLOPPNN5YFhqgCNSk03Xk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brXTm5/btsDKzp0hEu/lnLOPPNN5YFhqgCNSk03Xk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrXTm5%2FbtsDKzp0hEu%2FlnLOPPNN5YFhqgCNSk03Xk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;834&quot; height=&quot;544&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Sender thread]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;누산기의&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;배치가&lt;/span&gt; &lt;span&gt;전송될&lt;/span&gt; &lt;span&gt;브로커별로&lt;/span&gt; &lt;span&gt;그룹화된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;배치의&lt;/span&gt; &lt;span&gt;레코드는&lt;/span&gt;&lt;span&gt; batch.size &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; linger.ms &lt;/span&gt;&lt;span&gt;속성을&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;브로커로&lt;/span&gt; &lt;span&gt;전송된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;레코드는&lt;/span&gt; &lt;span&gt;정의된&lt;/span&gt; &lt;span&gt;배치&lt;/span&gt; &lt;span&gt;크기에&lt;/span&gt; &lt;span&gt;도달하거나&lt;/span&gt; &lt;span&gt;정의된&lt;/span&gt; &lt;span&gt;지연&lt;/span&gt; &lt;span&gt;시간에&lt;/span&gt; &lt;span&gt;도달한&lt;/span&gt; &lt;span&gt;경우로&lt;/span&gt; &lt;span&gt;두&lt;/span&gt; &lt;span&gt;가지&lt;/span&gt; &lt;span&gt;조건에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;전송한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;708&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Eb3wN/btsDLI1haV8/RIncKDkuV4bkPMMHFmxHvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Eb3wN/btsDLI1haV8/RIncKDkuV4bkPMMHFmxHvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Eb3wN/btsDLI1haV8/RIncKDkuV4bkPMMHFmxHvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEb3wN%2FbtsDLI1haV8%2FRIncKDkuV4bkPMMHFmxHvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1408&quot; height=&quot;708&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;708&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Duplicate message detection]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;커밋했지만&lt;/span&gt; &lt;span&gt;네트워크&lt;/span&gt; &lt;span&gt;오류&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;기타&lt;/span&gt; &lt;span&gt;문제로&lt;/span&gt; &lt;span&gt;인해&lt;/span&gt; &lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;승인을&lt;/span&gt; &lt;span&gt;받지&lt;/span&gt; &lt;span&gt;못한&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;프로듀서는&lt;/span&gt; &lt;span&gt;중복된&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보낼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;중복&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;피하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;생산자&lt;/span&gt;&lt;span&gt; ID &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;시퀀스&lt;/span&gt; &lt;span&gt;번호를&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;추적한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;생산자&lt;/span&gt;&lt;span&gt; ID &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;시퀀스&lt;/span&gt; &lt;span&gt;번호를&lt;/span&gt; &lt;span&gt;가진&lt;/span&gt; &lt;span&gt;커밋된&lt;/span&gt; &lt;span&gt;메시지에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;중복&lt;/span&gt; &lt;span&gt;메시지가&lt;/span&gt; &lt;span&gt;수신되면&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;중복&lt;/span&gt; &lt;span&gt;메시지로&lt;/span&gt; &lt;span&gt;처리하고&lt;/span&gt; &lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;처리할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;승인을&lt;/span&gt; &lt;span&gt;프로듀서에게&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;보낸다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKHTfh/btsDQRpB3xR/Kc2OVzlm7jOfh4Z7MG0U20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKHTfh/btsDQRpB3xR/Kc2OVzlm7jOfh4Z7MG0U20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKHTfh/btsDQRpB3xR/Kc2OVzlm7jOfh4Z7MG0U20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKHTfh%2FbtsDQRpB3xR%2FKc2OVzlm7jOfh4Z7MG0U20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;868&quot; height=&quot;554&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;554&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;프로듀서의&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;주요&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;설정&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;bootstrap.servers : &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;마스터라는&lt;/span&gt; &lt;span&gt;개념이&lt;/span&gt; &lt;span&gt;없기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;내&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;클라이언트&lt;/span&gt; &lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;받을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;정보만&lt;/span&gt; &lt;span&gt;사용해도&lt;/span&gt; &lt;span&gt;되지만&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;장애시&lt;/span&gt; &lt;span&gt;접속이&lt;/span&gt; &lt;span&gt;불가능하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;입력하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;추천한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;key.serializer : &lt;/span&gt;&lt;span&gt;메시지의&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;직렬화&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;클래스를&lt;/span&gt; &lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;직렬화&lt;/span&gt; &lt;span&gt;클래스의&lt;/span&gt; &lt;span&gt;경로를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;value.serializer : &lt;/span&gt;&lt;span&gt;메시지의&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;직렬화&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;클래스&lt;/span&gt; &lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;직렬화&lt;/span&gt; &lt;span&gt;클래스의&lt;/span&gt; &lt;span&gt;경로를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;partitioner.class : &lt;/span&gt;&lt;span&gt;파티셔너로&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;클래스&lt;/span&gt; &lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;클래스&lt;/span&gt; &lt;span&gt;경로를&lt;/span&gt; &lt;span&gt;넣으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;값은&lt;/span&gt; &lt;span&gt;카프카에서&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt;&lt;span&gt; DefaultPartitioner &lt;/span&gt;&lt;span&gt;클래스에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;경로이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;compression.type : &lt;/span&gt;&lt;span&gt;압축&lt;/span&gt; &lt;span&gt;타입에&lt;/span&gt; &lt;span&gt;관한&lt;/span&gt; &lt;span&gt;설정으로&lt;/span&gt; &lt;span&gt;어떤&lt;/span&gt; &lt;span&gt;타입으로&lt;/span&gt; &lt;span&gt;압축할&lt;/span&gt; &lt;span&gt;것인지&lt;/span&gt; &lt;span&gt;정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;buffer.memory : Record Accumulator&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;메모리의&lt;/span&gt; &lt;span&gt;총&lt;/span&gt; &lt;span&gt;양에&lt;/span&gt; &lt;span&gt;관한&lt;/span&gt; &lt;span&gt;설정으로&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;초과하면&lt;/span&gt; &lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;정상&lt;/span&gt; &lt;span&gt;동작하지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;batch.size : &lt;/span&gt;&lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;배치의&lt;/span&gt; &lt;span&gt;크기에&lt;/span&gt; &lt;span&gt;관한&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt;&lt;span&gt;(bytes)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;보내기&lt;/span&gt; &lt;span&gt;위하&lt;/span&gt; &lt;span&gt;잠시&lt;/span&gt; &lt;span&gt;대기&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;배치&lt;/span&gt; &lt;span&gt;전송이나&lt;/span&gt; &lt;span&gt;딜레이&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;바이트&lt;/span&gt; &lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;배치가&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;값에&lt;/span&gt; &lt;span&gt;다다르면&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;전송한다&lt;/span&gt;&lt;span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;linger.ms : &lt;/span&gt;&lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;배치의&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;전송&lt;/span&gt; &lt;span&gt;대기&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt;&lt;span&gt;(ms)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt;, batch.size&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;만족하지&lt;/span&gt; &lt;span&gt;않더라도&lt;/span&gt; &lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;배치는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;설정에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;전송된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본값은&lt;/span&gt; &lt;span&gt;0&lt;/span&gt;&lt;span&gt;이며&lt;/span&gt; &lt;span&gt;즉시&lt;/span&gt; &lt;span&gt;전송한다&lt;/span&gt;&lt;span&gt;. 0 &lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;시간만큼&lt;/span&gt; &lt;span&gt;지연되어&lt;/span&gt; &lt;span&gt;처리된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;retires : &lt;/span&gt;&lt;span&gt;일시적인&lt;/span&gt; &lt;span&gt;오류로&lt;/span&gt; &lt;span&gt;인해&lt;/span&gt; &lt;span&gt;전송에&lt;/span&gt; &lt;span&gt;실패한&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;재전송&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;횟수에&lt;/span&gt; &lt;span&gt;관한&lt;/span&gt; &lt;span&gt;설정이다&lt;/span&gt;&lt;span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;max.in.flight.requests.per.connection : &lt;/span&gt;&lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;응답&lt;/span&gt; &lt;span&gt;여부에&lt;/span&gt; &lt;span&gt;상관없이&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;번에&lt;/span&gt; &lt;span&gt;보낼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;요청&lt;/span&gt; &lt;span&gt;횟수에&lt;/span&gt; &lt;span&gt;관한&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt;&lt;span&gt;. 2 &lt;/span&gt;&lt;span&gt;이상이면&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;번의&lt;/span&gt; &lt;span&gt;연결에서&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개&lt;/span&gt; &lt;span&gt;이상의&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;전송&lt;/span&gt; &lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;보낼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;acks : &lt;/span&gt;&lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;전송&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;브로커의&lt;/span&gt; &lt;span&gt;응답을&lt;/span&gt; &lt;span&gt;기다리는&lt;/span&gt; &lt;span&gt;설정이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;옵션의&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt; &lt;span&gt;작으면&lt;/span&gt; &lt;span&gt;성능이&lt;/span&gt; &lt;span&gt;좋지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;손실&lt;/span&gt; &lt;span&gt;가능상이&lt;/span&gt; &lt;span&gt;있고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;반대로&lt;/span&gt; &lt;span&gt;크면&lt;/span&gt; &lt;span&gt;성능이&lt;/span&gt; &lt;span&gt;좋지&lt;/span&gt; &lt;span&gt;않지만&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;손실&lt;/span&gt; &lt;span&gt;가능성이&lt;/span&gt; &lt;span&gt;적어진다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;uuml;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Acks=0 : &lt;/span&gt;&lt;span&gt;프로듀서는&lt;/span&gt; &lt;span&gt;서버로부터&lt;/span&gt; &lt;span&gt;어떠한&lt;/span&gt; &lt;span&gt;응답을&lt;/span&gt; &lt;span&gt;기다리지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;받았는지&lt;/span&gt; &lt;span&gt;보장하지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;클라이언트는&lt;/span&gt; &lt;span&gt;전송&lt;/span&gt; &lt;span&gt;실패에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;알지&lt;/span&gt; &lt;span&gt;못하게&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;재요청&lt;/span&gt; &lt;span&gt;설정도&lt;/span&gt; &lt;span&gt;적용되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서버로부터&lt;/span&gt; &lt;span&gt;ack&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;응답을&lt;/span&gt; &lt;span&gt;기다리지&lt;/span&gt; &lt;span&gt;않기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;빠르게&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보낼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있어&lt;/span&gt; &lt;span&gt;높은&lt;/span&gt; &lt;span&gt;처리량을&lt;/span&gt; &lt;span&gt;얻을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;uuml;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Acks=1 : &lt;/span&gt;&lt;span&gt;리더는&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;기록하지만&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;팔로워는&lt;/span&gt; &lt;span&gt;확인하지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;일부&lt;/span&gt; &lt;span&gt;데이터의&lt;/span&gt; &lt;span&gt;손실이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;uuml;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Acks=all &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;-1 : &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;all &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;-1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;리더는&lt;/span&gt; &lt;span&gt;ISR &lt;/span&gt;&lt;span&gt;팔로워로부터&lt;/span&gt; &lt;span&gt;데이터에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;복제가&lt;/span&gt; &lt;span&gt;완료될&lt;/span&gt; &lt;span&gt;때까지&lt;/span&gt; &lt;span&gt;ack&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;기다린다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하나&lt;/span&gt; &lt;span&gt;이상의&lt;/span&gt; &lt;span&gt;팔로워가&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;데이터는&lt;/span&gt; &lt;span&gt;손실되지&lt;/span&gt; &lt;span&gt;않으며&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;무손실에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;강력하게&lt;/span&gt; &lt;span&gt;보장한다&lt;/span&gt;&lt;span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[3&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;개의&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;브로커&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;노드&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;구성에서&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;메시지&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;손실을&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;방지하기&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;위한&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;프로듀서의&lt;/span&gt; &lt;span&gt;acks &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설정과&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;브로커의&lt;/span&gt; &lt;span&gt;min.insync.replicas &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설정&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;acks=all&lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;브로커의&lt;/span&gt; &lt;span&gt;min.insync.replicas=1 : &lt;/span&gt;&lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;손실을&lt;/span&gt; &lt;span&gt;허용하지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;프로듀서의&lt;/span&gt; &lt;span&gt;acks &lt;/span&gt;&lt;span&gt;설정은&lt;/span&gt; &lt;span&gt;all&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;브로커의&lt;/span&gt; &lt;span&gt;min.insync.replicas &lt;/span&gt;&lt;span&gt;팩터&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;리더에&lt;/span&gt; &lt;span&gt;메시지가&lt;/span&gt; &lt;span&gt;저장되면&lt;/span&gt; &lt;span&gt;ack &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt; &lt;span&gt;보내기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;acks=all&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정했지만&lt;/span&gt; &lt;span&gt;acks=1&lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;동일하게&lt;/span&gt; &lt;span&gt;작동한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;카프카에서는&lt;/span&gt; &lt;span&gt;프로듀서만&lt;/span&gt; &lt;span&gt;acks=all&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보낸다고&lt;/span&gt; &lt;span&gt;해서&lt;/span&gt; &lt;span&gt;손실&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보장해주지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;acks=all&lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;브로커의&lt;/span&gt; &lt;span&gt;min.insync.replicas=2 : &lt;/span&gt;&lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;손실을&lt;/span&gt; &lt;span&gt;허용하지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;프로듀서의&lt;/span&gt; &lt;span&gt;acks &lt;/span&gt;&lt;span&gt;설정은&lt;/span&gt; &lt;span&gt;all&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;브로커의&lt;/span&gt; &lt;span&gt;min.insync.replicas &lt;/span&gt;&lt;span&gt;팩터&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;2&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;팔로워는&lt;/span&gt; &lt;span&gt;리더로부터&lt;/span&gt; &lt;span&gt;변경사항이&lt;/span&gt; &lt;span&gt;있는지&lt;/span&gt; &lt;span&gt;주기적으로&lt;/span&gt; &lt;span&gt;확인하며&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;복제한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;리더는&lt;/span&gt; &lt;span&gt;min.insync.replicas=2&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정되어&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;acks&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;보내기전&lt;/span&gt; &lt;span&gt;최소&lt;/span&gt; &lt;span&gt;2&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;리플리케이션을&lt;/span&gt; &lt;span&gt;유지하는지&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;리더가&lt;/span&gt; &lt;span&gt;acks&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;보내자마자&lt;/span&gt; &lt;span&gt;리더&lt;/span&gt; &lt;span&gt;선출작업이&lt;/span&gt; &lt;span&gt;발생해도&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가지고&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;팔로워가&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;손실은&lt;/span&gt; &lt;span&gt;발생하지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;문서에서는&lt;/span&gt; &lt;span&gt;손실&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;전송을&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;조건으로&lt;/span&gt; &lt;span&gt;프로듀서는&lt;/span&gt; &lt;span&gt;acks=all, &lt;/span&gt;&lt;span&gt;브로커의&lt;/span&gt; &lt;span&gt;min.insync.replicas=2, &lt;/span&gt;&lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;리플리케이션&lt;/span&gt; &lt;span&gt;팩터는&lt;/span&gt; &lt;span&gt;3&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;권장하고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;acks=all&lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;브로커의&lt;/span&gt; &lt;span&gt;min.insync.replicas=3 : &lt;/span&gt;&lt;span&gt;리플리케이션&lt;/span&gt; &lt;span&gt;팩터&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt;, min.insync.replicas=3&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;설정된&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;리더&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;팔로워&lt;/span&gt; &lt;span&gt;합쳐&lt;/span&gt; &lt;span&gt;3&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;복제본이&lt;/span&gt; &lt;span&gt;유지되어야만&lt;/span&gt; &lt;span&gt;acks&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;응답한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;노드라도&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하면&lt;/span&gt; &lt;span&gt;옵션값을&lt;/span&gt; &lt;span&gt;만족하지&lt;/span&gt; &lt;span&gt;못하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;오류가&lt;/span&gt; &lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.linkedin.com/pulse/kafka-producer-overview-sylvester-daniel/&quot;&gt;https://www.linkedin.com/pulse/kafka-producer-overview-sylvester-daniel/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-01-22 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, Apache Kafka, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt;&lt;span&gt;, Kafka Topic, Kafka Partition, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt;&lt;span&gt;, Kafka Replication, &lt;/span&gt;&lt;span&gt;프로듀서&lt;/span&gt;&lt;span&gt;, Producer, Kafka Producer, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;프로듀서&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>Kafka</category>
      <category>Kafka Partition</category>
      <category>Kafka Replication</category>
      <category>kafka topic</category>
      <category>아파치 카프카</category>
      <category>카프카 복제</category>
      <category>카프카 토픽</category>
      <category>카프카 파티션</category>
      <category>프로듀서</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1574</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%ED%94%84%EB%A1%9C%EB%93%80%EC%84%9CProducer-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#entry1574comment</comments>
      <pubDate>Mon, 22 Jan 2024 15:00:06 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] Kafka 리더, 팔로워, 복제 및 복구 이해하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%EB%A6%AC%EB%8D%94-%ED%8C%94%EB%A1%9C%EC%9B%8C-%EB%B3%B5%EC%A0%9C-%EB%B0%8F-%EB%B3%B5%EA%B5%AC-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] Kafka &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;리더&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;, &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;팔로워&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;, &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;복제&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;복구&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이해하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka (&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt;&lt;span&gt;&amp;rdquo;&lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;분산&lt;/span&gt; &lt;span&gt;처리&lt;/span&gt; &lt;span&gt;시스템으로&lt;/span&gt; &lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;물리적인&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하여도&lt;/span&gt; &lt;span&gt;높은&lt;/span&gt; &lt;span&gt;가용성을&lt;/span&gt; &lt;span&gt;보장하도록&lt;/span&gt; &lt;span&gt;구성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;가용성을&lt;/span&gt; &lt;span&gt;보장하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;노드로&lt;/span&gt; &lt;span&gt;분산해서&lt;/span&gt; &lt;span&gt;운영한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;개로&lt;/span&gt; &lt;span&gt;복사해서&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;브로커들에게&lt;/span&gt; &lt;span&gt;분산시키는데&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;리플리케이션&lt;/span&gt;&lt;span&gt;&amp;rdquo;&lt;/span&gt;&lt;span&gt;이라&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;실제로&lt;/span&gt; &lt;span&gt;리플리케이션되는&lt;/span&gt; &lt;span&gt;정보는&lt;/span&gt; &lt;span&gt;토픽이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;파티션이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;글을&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Kafka &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;모델인&lt;/span&gt;&lt;span&gt; Topic&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; Partition &lt;/span&gt;&lt;span&gt;이해하기&lt;/span&gt; &lt;span&gt;: &lt;a href=&quot;https://sungwookkang.com/entry/Kafka-Kafka-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%B8-Topic%EA%B3%BC-Partition-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0&quot;&gt;https://sungwookkang.com/entry/Kafka-Kafka-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%B8-Topic%EA%B3%BC-Partition-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카는&lt;/span&gt; &lt;span&gt;내부적으로&lt;/span&gt; &lt;span&gt;클러스터내에서&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;리플리케이션들에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;리더와&lt;/span&gt; &lt;span&gt;팔로워로&lt;/span&gt; &lt;span&gt;구분하여&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;분담하고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;리더는&lt;/span&gt; &lt;span&gt;리플리케이션중에&lt;/span&gt; &lt;span&gt;하나가&lt;/span&gt; &lt;span&gt;선정되며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;읽기와&lt;/span&gt; &lt;span&gt;쓰기는&lt;/span&gt; &lt;span&gt;리더를&lt;/span&gt; &lt;span&gt;통해서만&lt;/span&gt; &lt;span&gt;수행된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;프로듀서는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;브로커들에게&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보내는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;리더에게만&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;전송한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;또한&lt;/span&gt; &lt;span&gt;컨슈머도&lt;/span&gt; &lt;span&gt;리더에게만&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;가져온다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;팔로워들은&lt;/span&gt; &lt;span&gt;리더에서&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;복제한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;팔로워는&lt;/span&gt; &lt;span&gt;리더가&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;받았는지&lt;/span&gt; &lt;span&gt;확인하고&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;메시지가&lt;/span&gt; &lt;span&gt;있으면&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;리더&lt;/span&gt; &lt;span&gt;파티션으로부터&lt;/span&gt; &lt;span&gt;복제한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;리더를&lt;/span&gt; &lt;span&gt;담당하는&lt;/span&gt; &lt;span&gt;브로커에&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하더라도&lt;/span&gt; &lt;span&gt;복제되고&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;팔로워들이&lt;/span&gt; &lt;span&gt;언제든&lt;/span&gt; &lt;span&gt;리더로&lt;/span&gt; &lt;span&gt;대체될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;1022&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bebeUP/btsDJgwMBJb/XwUEE0WNdkj6DE8Tk3HONk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bebeUP/btsDJgwMBJb/XwUEE0WNdkj6DE8Tk3HONk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bebeUP/btsDJgwMBJb/XwUEE0WNdkj6DE8Tk3HONk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbebeUP%2FbtsDJgwMBJb%2FXwUEE0WNdkj6DE8Tk3HONk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1438&quot; height=&quot;1022&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;1022&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그림을&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;broker1&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;topic1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보내는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;상태는&lt;/span&gt; &lt;span&gt;topic1&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;리더는&lt;/span&gt; &lt;span&gt;broker1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;담당하고&lt;/span&gt; &lt;span&gt;있다는&lt;/span&gt; &lt;span&gt;뜻이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;팔로워인&lt;/span&gt; &lt;span&gt;broker2, broker3&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;복제한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;가지&lt;/span&gt; &lt;span&gt;주의해야&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;사항이&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;리더가&lt;/span&gt; &lt;span&gt;broker1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;아니라는&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그림에서&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;리더가&lt;/span&gt; &lt;span&gt;토픽별로&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;브로커에&lt;/span&gt; &lt;span&gt;분산된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;생성시&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;브로커에&lt;/span&gt; &lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;생성하며&lt;/span&gt; &lt;span&gt;이때&lt;/span&gt; &lt;span&gt;리더를&lt;/span&gt; &lt;span&gt;선출하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;브로커에서&lt;/span&gt; &lt;span&gt;리더가&lt;/span&gt; &lt;span&gt;되는&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;아니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;구조&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;프로듀서와&lt;/span&gt; &lt;span&gt;컨슈머에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;부분도&lt;/span&gt; &lt;span&gt;부하&lt;/span&gt; &lt;span&gt;분산이&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;구조로&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;토픽별로&lt;/span&gt; &lt;span&gt;어느&lt;/span&gt; &lt;span&gt;브로커에서&lt;/span&gt; &lt;span&gt;리더로&lt;/span&gt; &lt;span&gt;선출되어&lt;/span&gt; &lt;span&gt;있는지&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;kafka-topics.sh --bootstrap-server=XXX.XXX.XXX.XXX:9092 --describe topic1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1570&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0UGjQ/btsDIvuoWfy/V6ANTpeLWQ6pD9VNkhcci1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0UGjQ/btsDIvuoWfy/V6ANTpeLWQ6pD9VNkhcci1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0UGjQ/btsDIvuoWfy/V6ANTpeLWQ6pD9VNkhcci1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0UGjQ%2FbtsDIvuoWfy%2FV6ANTpeLWQ6pD9VNkhcci1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1570&quot; height=&quot;144&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1570&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Topic : &lt;/span&gt;&lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ReplicationFactor : &lt;/span&gt;&lt;span&gt;원본을&lt;/span&gt; &lt;span&gt;포함한&lt;/span&gt; &lt;span&gt;리플리케이션&lt;/span&gt; &lt;span&gt;개수를&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Leader : &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;리더&lt;/span&gt; &lt;span&gt;브로커를&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Replicas : &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;토픽이&lt;/span&gt; &lt;span&gt;복제되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;브로커를&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Isr : in sync replica&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;리더&lt;/span&gt; &lt;span&gt;브로커와&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;동기화되고&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;최신&lt;/span&gt; &lt;span&gt;상태의&lt;/span&gt; &lt;span&gt;복제본을&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;복제&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;유지와&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;커밋&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;복구&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;과정&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카에서&lt;/span&gt; &lt;span&gt;복제와&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;커밋&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;브로커가&lt;/span&gt; &lt;span&gt;다운된&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;리더와&lt;/span&gt; &lt;span&gt;팔로우의&lt;/span&gt; &lt;span&gt;역할&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;이후&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;복구되는&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;살펴본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;리더를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;Message1&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;팔로워는&lt;/span&gt; &lt;span&gt;Message1&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;완료한&lt;/span&gt; &lt;span&gt;상태이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;667&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uj41w/btsDJC0FbiR/0yKMpgIFbhR9gR1rRLhkrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uj41w/btsDJC0FbiR/0yKMpgIFbhR9gR1rRLhkrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uj41w/btsDJC0FbiR/0yKMpgIFbhR9gR1rRLhkrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuj41w%2FbtsDJC0FbiR%2F0yKMpgIFbhR9gR1rRLhkrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1104&quot; height=&quot;667&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;667&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로듀서가&lt;/span&gt; &lt;span&gt;리더로&lt;/span&gt; &lt;span&gt;Message2&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;아직&lt;/span&gt; &lt;span&gt;팔로워로는&lt;/span&gt; &lt;span&gt;Message2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;복제되지&lt;/span&gt; &lt;span&gt;않은&lt;/span&gt; &lt;span&gt;상태이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1566&quot; data-origin-height=&quot;671&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD02el/btsDJDSMuDD/DfbBvWxkKOXyoqjJbycF01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD02el/btsDJDSMuDD/DfbBvWxkKOXyoqjJbycF01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD02el/btsDJDSMuDD/DfbBvWxkKOXyoqjJbycF01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD02el%2FbtsDJDSMuDD%2FDfbBvWxkKOXyoqjJbycF01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1566&quot; height=&quot;671&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1566&quot; data-origin-height=&quot;671&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Message2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;팔로워로&lt;/span&gt; &lt;span&gt;복제되기&lt;/span&gt; &lt;span&gt;전에&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;리더&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;Broker1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;다운되었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;679&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cwqo1/btsDJUtoeVJ/ybAqgx7lcTQUmN2dCIcgpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cwqo1/btsDJUtoeVJ/ybAqgx7lcTQUmN2dCIcgpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cwqo1/btsDJUtoeVJ/ybAqgx7lcTQUmN2dCIcgpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCwqo1%2FbtsDJUtoeVJ%2FybAqgx7lcTQUmN2dCIcgpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1581&quot; height=&quot;679&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;679&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기존에&lt;/span&gt; &lt;span&gt;팔로워&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하던&lt;/span&gt; &lt;span&gt;Broker2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;리더로&lt;/span&gt; &lt;span&gt;역할이&lt;/span&gt; &lt;span&gt;변경되고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로듀서는&lt;/span&gt; &lt;span&gt;리더로&lt;/span&gt; &lt;span&gt;Message3&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1572&quot; data-origin-height=&quot;670&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7Wb6a/btsDJXcpOqy/Y7g1se77oO19NtvicFpQK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7Wb6a/btsDJXcpOqy/Y7g1se77oO19NtvicFpQK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7Wb6a/btsDJXcpOqy/Y7g1se77oO19NtvicFpQK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7Wb6a%2FbtsDJXcpOqy%2FY7g1se77oO19NtvicFpQK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1572&quot; height=&quot;670&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1572&quot; data-origin-height=&quot;670&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다운되었던&lt;/span&gt; &lt;span&gt;Broker1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;복구되고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;팔로워&lt;/span&gt; &lt;span&gt;역할로&lt;/span&gt; &lt;span&gt;수행된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그런데&lt;/span&gt; &lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;리더&lt;/span&gt;&lt;span&gt;(Broker2)&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;팔로워&lt;/span&gt;&lt;span&gt;(Broker1)&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;불일치하는&lt;/span&gt; &lt;span&gt;부분이&lt;/span&gt; &lt;span&gt;있음이&lt;/span&gt; &lt;span&gt;확인된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;1568&quot; data-origin-height=&quot;664&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/efuOGA/btsDJnvSutN/aCFkDriTukTgPfbKOWUkwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/efuOGA/btsDJnvSutN/aCFkDriTukTgPfbKOWUkwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/efuOGA/btsDJnvSutN/aCFkDriTukTgPfbKOWUkwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FefuOGA%2FbtsDJnvSutN%2FaCFkDriTukTgPfbKOWUkwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1568&quot; height=&quot;664&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;1568&quot; data-origin-height=&quot;664&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;6.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;팔로워는&lt;/span&gt; &lt;span&gt;리더에&lt;/span&gt; &lt;span&gt;포크&lt;/span&gt; &lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;불일치하는&lt;/span&gt; &lt;span&gt;과거&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;Message2&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;삭제하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;최신의&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;Message3&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;복제하고&lt;/span&gt; &lt;span&gt;최신의&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;유지된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;1567&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oLnCP/btsDKbPd7aB/bko7JOkpi6KkVpNNd6SWk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oLnCP/btsDKbPd7aB/bko7JOkpi6KkVpNNd6SWk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oLnCP/btsDKbPd7aB/bko7JOkpi6KkVpNNd6SWk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoLnCP%2FbtsDKbPd7aB%2Fbko7JOkpi6KkVpNNd6SWk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1567&quot; height=&quot;655&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;1567&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카는&lt;/span&gt; &lt;span&gt;분산처리&lt;/span&gt; &lt;span&gt;시스템이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;높은&lt;/span&gt; &lt;span&gt;가용성을&lt;/span&gt; &lt;span&gt;제공하지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;예상하지&lt;/span&gt; &lt;span&gt;못한&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하였을&lt;/span&gt; &lt;span&gt;경우에&lt;/span&gt; &lt;span&gt;시점에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;불일치가&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;부분이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt; &lt;span&gt;이때&lt;/span&gt; &lt;span&gt;복구&lt;/span&gt; &lt;span&gt;과정에서의&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;유실&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;불일치&lt;/span&gt; &lt;span&gt;부분이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;특징을&lt;/span&gt; &lt;span&gt;알고&lt;/span&gt; &lt;span&gt;있으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;장애상황에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;대처&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;사이드&lt;/span&gt; &lt;span&gt;이펙트에&lt;/span&gt; &lt;span&gt;대해서도&lt;/span&gt; &lt;span&gt;예상할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.confluent.io/blog/hands-free-kafka-replication-a-lesson-in-operational-simplicity/&quot;&gt;https://www.confluent.io/blog/hands-free-kafka-replication-a-lesson-in-operational-simplicity/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.conduktor.io/kafka/kafka-topic-replication/&quot;&gt;https://www.conduktor.io/kafka/kafka-topic-replication/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-01-19 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, Apache Kafka, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt;&lt;span&gt;, Kafka Topic, Kafka Partition, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt;&lt;span&gt;, Kafka Replication&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>Kafka</category>
      <category>Kafka Partition</category>
      <category>Kafka Replication</category>
      <category>kafka topic</category>
      <category>아파치 카프카</category>
      <category>카프카 복제</category>
      <category>카프카 토픽</category>
      <category>카프카 파티션</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1573</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%EB%A6%AC%EB%8D%94-%ED%8C%94%EB%A1%9C%EC%9B%8C-%EB%B3%B5%EC%A0%9C-%EB%B0%8F-%EB%B3%B5%EA%B5%AC-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#entry1573comment</comments>
      <pubDate>Fri, 19 Jan 2024 17:46:13 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] Kafka 데이터 모델인 Topic과 Partition 이해하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%B8-Topic%EA%B3%BC-Partition-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] Kafka &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;모델인&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;Topic&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;과&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;Partition &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이해하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka(&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt;&lt;span&gt;(Topic)&lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt;&lt;span&gt;(Partition)&lt;/span&gt;&lt;span&gt;이라는&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;모델이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;간단히&lt;/span&gt; &lt;span&gt;정리하면&lt;/span&gt; &lt;span&gt;토픽은&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;받을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;논리적으로&lt;/span&gt; &lt;span&gt;묶은&lt;/span&gt; &lt;span&gt;개념이고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;파티션은&lt;/span&gt; &lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;구성하는&lt;/span&gt; &lt;span&gt;물리적&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;저장소이며&lt;/span&gt; &lt;span&gt;수평&lt;/span&gt; &lt;span&gt;확장이&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;단위이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1638&quot; data-origin-height=&quot;812&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/43RFE/btsDA4xJ41o/jfDVZVMf4cKyxPV6VDYIkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/43RFE/btsDA4xJ41o/jfDVZVMf4cKyxPV6VDYIkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/43RFE/btsDA4xJ41o/jfDVZVMf4cKyxPV6VDYIkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F43RFE%2FbtsDA4xJ41o%2FjfDVZVMf4cKyxPV6VDYIkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1638&quot; height=&quot;812&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1638&quot; data-origin-height=&quot;812&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;저장한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;이름은&lt;/span&gt; &lt;span&gt;249&lt;/span&gt;&lt;span&gt;자&lt;/span&gt; &lt;span&gt;미만으로&lt;/span&gt; &lt;span&gt;영문&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;숫자&lt;/span&gt;&lt;span&gt;, &amp;lsquo;.&amp;rsquo;, &amp;lsquo;_&amp;rsquo;, &amp;lsquo;-&amp;lsquo;&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;조합하여&lt;/span&gt; &lt;span&gt;만들&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;토픽은&lt;/span&gt; &lt;span&gt;1&lt;/span&gt;&lt;span&gt;개&lt;/span&gt; &lt;span&gt;이상의&lt;/span&gt; &lt;span&gt;파티션으로&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파티션은&lt;/span&gt; &lt;span&gt;append-only&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;동작하며&lt;/span&gt; &lt;span&gt;새&lt;/span&gt; &lt;span&gt;메시지는&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;맨&lt;/span&gt; &lt;span&gt;뒤에&lt;/span&gt; &lt;span&gt;추가된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;메시지의&lt;/span&gt; &lt;span&gt;저장&lt;/span&gt; &lt;span&gt;위치를&lt;/span&gt; &lt;span&gt;offset&lt;/span&gt;&lt;span&gt;이라고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오프셋은&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;내에서&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;식별하는&lt;/span&gt; &lt;span&gt;유니크한&lt;/span&gt; &lt;span&gt;값이며&lt;/span&gt; &lt;span&gt;순차적으로&lt;/span&gt; &lt;span&gt;증가하는&lt;/span&gt; &lt;span&gt;64&lt;/span&gt;&lt;span&gt;비트&lt;/span&gt; &lt;span&gt;정수&lt;/span&gt; &lt;span&gt;형태로&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, 0&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;그림을&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;토픽에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;파티션이&lt;/span&gt; &lt;span&gt;3&lt;/span&gt;&lt;span&gt;개가&lt;/span&gt; &lt;span&gt;있고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;메시지는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;파티션별로&lt;/span&gt; &lt;span&gt;분산되어&lt;/span&gt; &lt;span&gt;저장된다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;그림에서&lt;/span&gt; &lt;span&gt;숫자는&lt;/span&gt; &lt;span&gt;오프셋&lt;/span&gt; &lt;span&gt;위치이다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1394&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pr4ye/btsDBtDTnTg/yCoDxSHo8NfKrTJARp7Wsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pr4ye/btsDBtDTnTg/yCoDxSHo8NfKrTJARp7Wsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pr4ye/btsDBtDTnTg/yCoDxSHo8NfKrTJARp7Wsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpr4ye%2FbtsDBtDTnTg%2FyCoDxSHo8NfKrTJARp7Wsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1394&quot; height=&quot;680&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1394&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;기준으로&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;파티션마다&lt;/span&gt; &lt;span&gt;오프셋이&lt;/span&gt; &lt;span&gt;동일하게&lt;/span&gt; &lt;span&gt;존재하지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;파티션별로&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;오프셋은&lt;/span&gt; &lt;span&gt;유일하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;카프카에서는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;오프셋을&lt;/span&gt; &lt;span&gt;이용하여&lt;/span&gt; &lt;span&gt;메시지의&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;보장한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;내에서는&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;보장하지만&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;간에는&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;보장하지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;보장해야&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;메시지의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;설정에&lt;/span&gt; &lt;span&gt;주의해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;브로커는&lt;/span&gt; &lt;span&gt;하나&lt;/span&gt; &lt;span&gt;이상의&lt;/span&gt; &lt;span&gt;노드들로&lt;/span&gt; &lt;span&gt;이루어지는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt; &lt;span&gt;브로커에&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;수평확장&lt;/span&gt; &lt;span&gt;하였을&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;이점이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;성능은&lt;/span&gt; &lt;span&gt;브로커의&lt;/span&gt;&lt;span&gt; I/O &lt;/span&gt;&lt;span&gt;처리량에&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;받는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;브로커에&lt;/span&gt; &lt;span&gt;넣는&lt;/span&gt; &lt;span&gt;것&lt;/span&gt; &lt;span&gt;보다&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;분산하였을&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;I/O &lt;/span&gt;&lt;span&gt;오버헤드도&lt;/span&gt; &lt;span&gt;분산할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;브로커에서&lt;/span&gt; &lt;span&gt;제공하면&lt;/span&gt; &lt;span&gt;지원할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt;&lt;span&gt; Consumer &lt;/span&gt;&lt;span&gt;수가&lt;/span&gt; &lt;span&gt;제한되는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt; &lt;span&gt;브로커에서&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;나누어&lt;/span&gt; &lt;span&gt;제공함으로써&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt;&lt;span&gt; Consumer &lt;/span&gt;&lt;span&gt;들이&lt;/span&gt; &lt;span&gt;동시에&lt;/span&gt; &lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;처리할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;동일한&lt;/span&gt;&lt;span&gt; Consumer&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;인스턴스가&lt;/span&gt; &lt;span&gt;서로&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;브로커에&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;접속함으로써&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;높은&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;처리가&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본적으로&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;키는&lt;/span&gt; &lt;span&gt;해시함수를&lt;/span&gt; &lt;span&gt;사용하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;갖는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;레코드들이&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;도착하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;보장한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;지정할&lt;/span&gt; &lt;span&gt;경우에는&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;관련된&lt;/span&gt; &lt;span&gt;이벤트를&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;파티션에&lt;/span&gt; &lt;span&gt;유지함으로써&lt;/span&gt; &lt;span&gt;전달된&lt;/span&gt; &lt;span&gt;순서가&lt;/span&gt; &lt;span&gt;그대로&lt;/span&gt; &lt;span&gt;유지되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;보장할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;사용한&lt;/span&gt; &lt;span&gt;방법이&lt;/span&gt; &lt;span&gt;이벤트의&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;보장할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다는&lt;/span&gt; &lt;span&gt;장점을&lt;/span&gt; &lt;span&gt;가진&lt;/span&gt; &lt;span&gt;반면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;키가&lt;/span&gt; &lt;span&gt;제대로&lt;/span&gt; &lt;span&gt;분산되지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;브로커만&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;받는&lt;/span&gt; &lt;span&gt;단점도&lt;/span&gt; &lt;span&gt;존재한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;596&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qmDxP/btsDC80sZAU/UWnRPbfpeatEn6AMGqzEXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qmDxP/btsDC80sZAU/UWnRPbfpeatEn6AMGqzEXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qmDxP/btsDC80sZAU/UWnRPbfpeatEn6AMGqzEXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqmDxP%2FbtsDC80sZAU%2FUWnRPbfpeatEn6AMGqzEXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1192&quot; height=&quot;596&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;596&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Producer &lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;레코드를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;명시하지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;카프카는&lt;/span&gt;&lt;span&gt; Round-Robin &lt;/span&gt;&lt;span&gt;방식을&lt;/span&gt; &lt;span&gt;사용해&lt;/span&gt; &lt;span&gt;파티션을&lt;/span&gt; &lt;span&gt;분산한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;레코드들은&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;파티션들에&lt;/span&gt; &lt;span&gt;균등하게&lt;/span&gt; &lt;span&gt;분배된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그러나&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않았기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;레코드들의&lt;/span&gt; &lt;span&gt;순서는&lt;/span&gt; &lt;span&gt;보장되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;수와&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;수를&lt;/span&gt; &lt;span&gt;설정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;bin/kafka-topics.sh --bootstrap-server &amp;lt;host:port&amp;gt; --create --topic &amp;lt;topic-name&amp;gt; \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--partitions 20 --replication-factor 3 --config &amp;lt;configName&amp;gt;=&amp;lt;configValue&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Replication-factor : &lt;/span&gt;&lt;span&gt;메시지가&lt;/span&gt; &lt;span&gt;기록될&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;수를&lt;/span&gt; &lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;컨슘을&lt;/span&gt; &lt;span&gt;중단하지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt; &lt;span&gt;시스템을&lt;/span&gt; &lt;span&gt;투명하게&lt;/span&gt; &lt;span&gt;서비스할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;인수를&lt;/span&gt;&lt;span&gt; 2 &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;사용해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt; &lt;span&gt;들어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;인수를&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;지정하면&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;오류가&lt;/span&gt; &lt;span&gt;발생하면&lt;/span&gt; &lt;span&gt;데이터에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;액세스가&lt;/span&gt; &lt;span&gt;손실될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Partitions : &lt;/span&gt;&lt;span&gt;파티션은&lt;/span&gt; &lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;샤딩의&lt;/span&gt; &lt;span&gt;수를&lt;/span&gt; &lt;span&gt;제어한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;수는&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;가지&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;미친다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;파티션은&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;완전히&lt;/span&gt; &lt;span&gt;맞아야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; 20&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;파티션이&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;세트와&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;로드는&lt;/span&gt;&lt;span&gt; 20&lt;/span&gt;&lt;span&gt;개&lt;/span&gt; &lt;span&gt;이하의&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;&lt;span&gt;복제본&lt;/span&gt; &lt;span&gt;제외&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;처리된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;마지막으로&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;수는&lt;/span&gt; &lt;span&gt;소비자의&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;병렬&lt;/span&gt; &lt;span&gt;처리에&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;미친다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.cloudkarafka.com/blog/part1-kafka-for-beginners-what-is-apache-kafka.html&quot;&gt;https://www.cloudkarafka.com/blog/part1-kafka-for-beginners-what-is-apache-kafka.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://docs.confluent.io/kafka/operations-tools/topic-operations.html#topic-operations&quot;&gt;https://docs.confluent.io/kafka/operations-tools/topic-operations.html#topic-operations&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-01-18 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, Apache Kafka, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;토픽&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt;&lt;span&gt;, Kafka Topic, Kafka Partition&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;position: absolute;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>Kafka</category>
      <category>Kafka Partition</category>
      <category>kafka topic</category>
      <category>아파치 카프카</category>
      <category>카프카 토픽</category>
      <category>카프카 파티션</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1572</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%9D%B8-Topic%EA%B3%BC-Partition-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0#entry1572comment</comments>
      <pubDate>Thu, 18 Jan 2024 16:12:45 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] Kafka 클러스터 4노드 구성 - Controller, Broker 혼합해서 구성하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-4%EB%85%B8%EB%93%9C-%EA%B5%AC%EC%84%B1-Controller-Broker-%ED%98%BC%ED%95%A9%ED%95%B4%EC%84%9C-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] Kafka &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;클러스터&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;노드&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;구성&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;- Controller, Broker &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;혼합해서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;구성하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka 3.6.1 with KRaft&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지난&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;카프카를&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;구성한&lt;/span&gt; &lt;span&gt;뒤&lt;/span&gt; &lt;span&gt;간단히&lt;/span&gt; &lt;span&gt;PUB/SUB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;테스트하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아보았다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Kafka &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt; (with KRaft) &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; PUB/SUB &lt;/span&gt;&lt;span&gt;테스트&lt;/span&gt; &lt;span&gt;코드&lt;/span&gt;&lt;span&gt; (with Python) &lt;/span&gt;&lt;span&gt;실습&lt;/span&gt; &lt;span&gt;: &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://sungwookkang.com/entry/Kafka-Kafka-%EC%84%A4%EC%B9%98-with-KRaft-%EB%B0%8F-PUBSUB-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-with-Python-%EC%8B%A4%EC%8A%B5&quot;&gt;https://sungwookkang.com/entry/Kafka-Kafka-%EC%84%A4%EC%B9%98-with-KRaft-%EB%B0%8F-PUBSUB-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-with-Python-%EC%8B%A4%EC%8A%B5&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트는&lt;/span&gt; &lt;span&gt;4 node&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;클러스터로&lt;/span&gt; &lt;span&gt;구성하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;이번&lt;/span&gt; &lt;span&gt;구성에서는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드마다&lt;/span&gt; &lt;span&gt;Controller&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;Broker&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;배치하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;전체적인&lt;/span&gt; &lt;span&gt;구성은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;688&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgYVSH/btsDwCBmPHi/XBQEVgZLEOcUN8pxsldKd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgYVSH/btsDwCBmPHi/XBQEVgZLEOcUN8pxsldKd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgYVSH/btsDwCBmPHi/XBQEVgZLEOcUN8pxsldKd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgYVSH%2FbtsDwCBmPHi%2FXBQEVgZLEOcUN8pxsldKd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1332&quot; height=&quot;688&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;688&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실습을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;4&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;VM &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;준비했다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;XXX.XXX.XXX.4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;XXX.XXX.XXX.5&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;XXX.XXX.XXX.6&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;XXX.XXX.XXX.7&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기존에&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정했다가&lt;/span&gt; &lt;span&gt;쿼럼을&lt;/span&gt; &lt;span&gt;찾지&lt;/span&gt; &lt;span&gt;못하여&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;설정하여&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;등록하여&lt;/span&gt; &lt;span&gt;사용하였다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;추후&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;설정해&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;예정이다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;vi /etc/hosts&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;XXX.XXX.XXX.4 kafka-1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;XXX.XXX.XXX.5 kafka-2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;XXX.XXX.XXX.6 kafka-3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;XXX.XXX.XXX.7 kafka-4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카를&lt;/span&gt; &lt;span&gt;설치하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;JDK 11 &lt;/span&gt;&lt;span&gt;버전&lt;/span&gt; &lt;span&gt;이상&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;실습에서는&lt;/span&gt; &lt;span&gt;JDK 17 &lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;3.6.1&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;설치하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;115&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;Install Open Jdk 17&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;apt-get install openjdk-17-jdk&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;Download Kafka&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;wget &lt;a href=&quot;https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz&quot;&gt;https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;Unpack Kafka&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;tar xvf kafka_2.13-3.6.1.tgz -C /usr/local&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;Create symbol link&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ln -s kafka_2.13-3.6.1/ kafka&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;Create log directory&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;mkdir -p /usr/local/kafka/kraft-combined-logs&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;디렉토리를&lt;/span&gt; &lt;span&gt;포맷한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, Kafka-1&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;생성한&lt;/span&gt; &lt;span&gt;UUID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;디렉터리를&lt;/span&gt; &lt;span&gt;포맷한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka-4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Create UUID&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-storage.sh random-uuid&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Format Directory&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-storage.sh format -t J9wwo7p2RHe9-4PiP4KbBw -c ./config/kraft/server.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka-1&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;UUID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;출력되는&lt;/span&gt; &lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;복사해&lt;/span&gt; &lt;span&gt;놓는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1298&quot; data-origin-height=&quot;113&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O9VI2/btsDBvfZMnB/KQxMEAGSg3tJWpaPN45T7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O9VI2/btsDBvfZMnB/KQxMEAGSg3tJWpaPN45T7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O9VI2/btsDBvfZMnB/KQxMEAGSg3tJWpaPN45T7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO9VI2%2FbtsDBvfZMnB%2FKQxMEAGSg3tJWpaPN45T7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1298&quot; height=&quot;113&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1298&quot; data-origin-height=&quot;113&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;복사해&lt;/span&gt; &lt;span&gt;놓은&lt;/span&gt; &lt;span&gt;UUID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;Kafka-1 ~ Kafka-4 &lt;/span&gt;&lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;디렉토리를&lt;/span&gt; &lt;span&gt;포맷한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RspEB/btsDARp5kvL/DHaunJIEn4JHyOmOb63bnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RspEB/btsDARp5kvL/DHaunJIEn4JHyOmOb63bnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RspEB/btsDARp5kvL/DHaunJIEn4JHyOmOb63bnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRspEB%2FbtsDARp5kvL%2FDHaunJIEn4JHyOmOb63bnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;71&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;시작하기&lt;/span&gt; &lt;span&gt;전&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;수정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;vi ./config/kraft/server.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;124&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;process.roles&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;broker,controller&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;node.id&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;124&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;controller.quorum.voters&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;1@kafka-1:9093,2@kafka-2:9093,3@kafka-3:9093,4@kafka-4:9093&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;listeners&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;124&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT://kafka-1:9092,CONTROLLER://kafka-1:9093&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT://kafka-2:9092,CONTROLLER://kafka-2:9093&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT://kafka-3:9092,CONTROLLER://kafka-3:9093&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT://kafka-4:9092,CONTROLLER://kafka-4:9093&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;inter.broker.listener.name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;advertised.listeners&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;124&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT://XXX.XXX.XXX.4:9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT://XXX.XXX.XXX.5:9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT://XXX.XXX.XXX.6:9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;PLAINTEXT://XXX.XXX.XXX.7:9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;controller.listener.names&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;CONTROLLER&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;listener.security.protocol.map&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;log.dirs&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;498&quot;&gt;&lt;span&gt;&lt;span&gt;/usr/local/kafka/kraft-combined-logs&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;num.partitions&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;124&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;transaction.state.log.replication.factor&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;124&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;140&quot;&gt;&lt;span&gt;&lt;span&gt;transaction.state.log.min.isr&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;124&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;125&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Start Kafka&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-server-start.sh -daemon ./config/kraft/server.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Check Service&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;netstat -antp | grep 9092&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;netstat -antp | grep 9093&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1148&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgIWbI/btsDxnxcQwS/T0phLCHnjvBtV8wCRxmrTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgIWbI/btsDxnxcQwS/T0phLCHnjvBtV8wCRxmrTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgIWbI/btsDxnxcQwS/T0phLCHnjvBtV8wCRxmrTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgIWbI%2FbtsDxnxcQwS%2FT0phLCHnjvBtV8wCRxmrTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1148&quot; height=&quot;176&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1148&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka-1 &lt;/span&gt;&lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실습에서는&lt;/span&gt; &lt;span&gt;topic1 &lt;/span&gt;&lt;span&gt;이라는&lt;/span&gt; &lt;span&gt;이름으로&lt;/span&gt; &lt;span&gt;생성했다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-topics.sh --create --topic topic1 --bootstrap-server XXX.XXX.XXX.4:9092 --replication-factor 4 --partitions 1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka-1&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;생성했지만&lt;/span&gt;&lt;span&gt;, Kafka-1 ~ Kafka-4 &lt;/span&gt;&lt;span&gt;노드까지&lt;/span&gt; &lt;span&gt;토픽이&lt;/span&gt; &lt;span&gt;복제된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Topic List&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-topics.sh --bootstrap-server=10.211.55.4:9092 --list&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-topics.sh --bootstrap-server=10.211.55.5:9092 --list&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-topics.sh --bootstrap-server=10.211.55.6:9092 --list&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-topics.sh --bootstrap-server=10.211.55.7:9092 --list&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1520&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmpGBe/btsDxwU11cs/k3x7pzVRPPzOGKKkTvGTl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmpGBe/btsDxwU11cs/k3x7pzVRPPzOGKKkTvGTl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmpGBe/btsDxwU11cs/k3x7pzVRPPzOGKKkTvGTl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmpGBe%2FbtsDxwU11cs%2Fk3x7pzVRPPzOGKKkTvGTl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1520&quot; height=&quot;244&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1520&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로듀서에서&lt;/span&gt; &lt;span&gt;Kafka-1&lt;/span&gt;&lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;확인해&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;복제된&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;노드로&lt;/span&gt; &lt;span&gt;복제되기&lt;/span&gt; &lt;span&gt;까지의&lt;/span&gt; &lt;span&gt;시간이&lt;/span&gt; &lt;span&gt;필요하므로&lt;/span&gt; &lt;span&gt;입력&lt;/span&gt; &lt;span&gt;즉시&lt;/span&gt; &lt;span&gt;컨슈머로&lt;/span&gt; &lt;span&gt;확인해보면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt; &lt;span&gt;노드에서는&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;보이지&lt;/span&gt; &lt;span&gt;않을&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt; &lt;span&gt;시간이&lt;/span&gt; &lt;span&gt;지나면&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Kfaka-4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;127&quot;&gt;&lt;span&gt;&lt;span&gt;Consumer check&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td colspan=&quot;4&quot; width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-console-consumer.sh --bootstrap-server XXX.XXX.XXX.4:9092 --topic topic1 --from-beginning&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-console-consumer.sh --bootstrap-server XXX.XXX.XXX.5:9092 --topic topic1 --from-beginning&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-console-consumer.sh --bootstrap-server XXX.XXX.XXX.6:9092 --topic topic1 --from-beginning&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-console-consumer.sh --bootstrap-server XXX.XXX.XXX.7:9092 --topic topic1 --from-beginning&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CSTRq/btsDwCOZaSf/km2KGtJgAW3A9rVvEXlvH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CSTRq/btsDwCOZaSf/km2KGtJgAW3A9rVvEXlvH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CSTRq/btsDwCOZaSf/km2KGtJgAW3A9rVvEXlvH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCSTRq%2FbtsDwCOZaSf%2Fkm2KGtJgAW3A9rVvEXlvH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1532&quot; height=&quot;618&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;618&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;Controller&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;Broker&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;실행하였지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;트래픽이&lt;/span&gt; &lt;span&gt;헤비한&lt;/span&gt; &lt;span&gt;서버에서는&lt;/span&gt; &lt;span&gt;Controller&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;Broker&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;분리해서&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;권장한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;분리하여&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;구성하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아볼&lt;/span&gt; &lt;span&gt;예정이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-01-17 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, Apache Kafka, KRaft, &lt;/span&gt;&lt;span&gt;크래프트&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>Kafka</category>
      <category>Kraft</category>
      <category>아파치 카프카</category>
      <category>크래프트</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1571</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-4%EB%85%B8%EB%93%9C-%EA%B5%AC%EC%84%B1-Controller-Broker-%ED%98%BC%ED%95%A9%ED%95%B4%EC%84%9C-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0#entry1571comment</comments>
      <pubDate>Wed, 17 Jan 2024 11:49:48 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] KRaft 설정 파일 및 기본 속성 정의 알아보기</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-KRaft-%EC%84%A4%EC%A0%95-%ED%8C%8C%EC%9D%BC-%EB%B0%8F-%EA%B8%B0%EB%B3%B8-%EC%86%8D%EC%84%B1-%EC%A0%95%EC%9D%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] KRaft &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;파일&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;기본&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;속성&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;정의&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;알아보기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka 3.6.1 with KRaft&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Apache Kafka Raft(KRaft)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메타데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; ZooKeeper&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; Apache Kafka&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;종속성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; KIP-500&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도입된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;합의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로토콜이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메타데이터에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;책임을&lt;/span&gt;&lt;span&gt; ZooKeeper&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;분할하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대신&lt;/span&gt;&lt;span&gt; Kafka &lt;/span&gt;&lt;span&gt;자체에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통합함으로써&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아키텍처를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;단순화한다&lt;/span&gt;&lt;span&gt;. KRaft &lt;/span&gt;&lt;span&gt;모드는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨트롤러를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대체하고&lt;/span&gt;&lt;span&gt; Raft &lt;/span&gt;&lt;span&gt;합의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로토콜의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이벤트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변형을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨트롤러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;738&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bc95rk/btsDiuQTU0B/CHWQhPRIV7YTEeYGxIwAcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bc95rk/btsDiuQTU0B/CHWQhPRIV7YTEeYGxIwAcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bc95rk/btsDiuQTU0B/CHWQhPRIV7YTEeYGxIwAcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc95rk%2FbtsDiuQTU0B%2FCHWQhPRIV7YTEeYGxIwAcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1172&quot; height=&quot;738&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;738&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kafka&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;쿼럼&lt;/span&gt; &lt;span&gt;컨트롤러의&lt;/span&gt; &lt;span&gt;이점은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;KRaft&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;적절한&lt;/span&gt; &lt;span&gt;크기의&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;지원한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;적절한&lt;/span&gt; &lt;span&gt;수의&lt;/span&gt; &lt;span&gt;브로커로&lt;/span&gt; &lt;span&gt;크기가&lt;/span&gt; &lt;span&gt;조정되고&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;사례의&lt;/span&gt; &lt;span&gt;처리량&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;대기&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt; &lt;span&gt;요구&lt;/span&gt; &lt;span&gt;사항을&lt;/span&gt; &lt;span&gt;충족하도록&lt;/span&gt; &lt;span&gt;컴퓨팅되는&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;의미하며&lt;/span&gt; &lt;span&gt;수백만&lt;/span&gt; &lt;span&gt;개의&lt;/span&gt; &lt;span&gt;파티션까지&lt;/span&gt; &lt;span&gt;확장할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;가능성이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;안정성을&lt;/span&gt; &lt;span&gt;향상시키고&lt;/span&gt; &lt;span&gt;소프트웨어를&lt;/span&gt; &lt;span&gt;단순화하며&lt;/span&gt;&lt;span&gt; Kafka&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;보다&lt;/span&gt; &lt;span&gt;쉽게&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;지원할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Kafka&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;시스템에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;보안&lt;/span&gt; &lt;span&gt;모델을&lt;/span&gt; &lt;span&gt;가질&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;구성&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;네트워킹&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;통신&lt;/span&gt; &lt;span&gt;프로토콜에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;통합&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;모델을&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Kafka&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;시작하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;경량의&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;6.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;조치를&lt;/span&gt; &lt;span&gt;거의&lt;/span&gt; &lt;span&gt;즉각적으로&lt;/span&gt; &lt;span&gt;수행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쿼럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨트롤러는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; KRaft &lt;/span&gt;&lt;span&gt;프로토콜을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메타데이터가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전체에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정확하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제되도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쿼럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨트롤러는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이벤트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모델을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장하므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;머신이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정확하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이벤트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;메타데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주제라고도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무한정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;커지지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정기적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스냅샷으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요약된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쿼럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨트롤러는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨트롤러가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이벤트에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;응답하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨트롤러를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따른다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;분할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이벤트로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;노드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중지되면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참여할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;액세스하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;놓친&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이벤트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빠르게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따라잡을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1264&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v4KX0/btsDkRdsVx7/V24WaZMkYWzSRayhJrGYh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v4KX0/btsDkRdsVx7/V24WaZMkYWzSRayhJrGYh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v4KX0/btsDkRdsVx7/V24WaZMkYWzSRayhJrGYh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv4KX0%2FbtsDkRdsVx7%2FV24WaZMkYWzSRayhJrGYh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1264&quot; height=&quot;430&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1264&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KRaft &lt;/span&gt;&lt;span&gt;프로토콜의&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt; &lt;span&gt;중심&lt;/span&gt; &lt;span&gt;특성은&lt;/span&gt;&lt;span&gt; ZooKeeper &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt; &lt;span&gt;컨트롤러와&lt;/span&gt; &lt;span&gt;달리&lt;/span&gt; &lt;span&gt;쿼럼&lt;/span&gt; &lt;span&gt;컨트롤러가&lt;/span&gt; &lt;span&gt;활성화되기&lt;/span&gt; &lt;span&gt;전에&lt;/span&gt;&lt;span&gt; ZooKeeper&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;로드할&lt;/span&gt; &lt;span&gt;필요가&lt;/span&gt; &lt;span&gt;없음을&lt;/span&gt; &lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;리더십이&lt;/span&gt; &lt;span&gt;변경되면&lt;/span&gt; &lt;span&gt;새&lt;/span&gt; &lt;span&gt;활성&lt;/span&gt; &lt;span&gt;컨트롤러에는&lt;/span&gt; &lt;span&gt;이미&lt;/span&gt; &lt;span&gt;커밋된&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;메타데이터&lt;/span&gt; &lt;span&gt;레코드가&lt;/span&gt; &lt;span&gt;메모리에&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;게다가&lt;/span&gt;&lt;span&gt; KRaft &lt;/span&gt;&lt;span&gt;프로토콜에&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;것과&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt; &lt;span&gt;중심&lt;/span&gt; &lt;span&gt;메커니즘이&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;전체의&lt;/span&gt; &lt;span&gt;메타데이터를&lt;/span&gt; &lt;span&gt;추적하는&lt;/span&gt; &lt;span&gt;데&lt;/span&gt; &lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전에&lt;/span&gt;&lt;span&gt; RPC&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;처리되었던&lt;/span&gt; &lt;span&gt;작업은&lt;/span&gt; &lt;span&gt;이제&lt;/span&gt; &lt;span&gt;통신을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것뿐만&lt;/span&gt; &lt;span&gt;아니라&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt; &lt;span&gt;중심으로&lt;/span&gt; &lt;span&gt;처리되는&lt;/span&gt; &lt;span&gt;이점도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;177&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;194&quot;&gt;&lt;span&gt;&lt;span&gt;WITH ZOOKEEPER&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;267&quot;&gt;&lt;span&gt;&lt;span&gt;WITH KRAFT (NO ZOOKEEPER)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;177&quot;&gt;&lt;span&gt;&lt;span&gt;Configuring Clients and Services&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;194&quot;&gt;&lt;span&gt;&lt;span&gt;zookeeper.connect=zookeeper:2181&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;267&quot;&gt;&lt;span&gt;&lt;span&gt;bootstrap.servers=broker:9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;177&quot;&gt;&lt;span&gt;&lt;span&gt;Configuring Schema Registry&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;194&quot;&gt;&lt;span&gt;&lt;span&gt;kafkastore.connection.url=zookeeper:2181&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;267&quot;&gt;&lt;span&gt;&lt;span&gt;kafkastore.bootstrap.servers=broker:9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;177&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka administrative tools&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;194&quot;&gt;&lt;span&gt;&lt;span&gt;kafka-topics --zookeeper zookeeper:2181&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;267&quot;&gt;&lt;span&gt;&lt;span&gt;kafka-topics --bootstrap-server broker:9092 ... --command-config properties to connect to brokers&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;177&quot;&gt;&lt;span&gt;&lt;span&gt;REST Proxy API&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;194&quot;&gt;&lt;span&gt;&lt;span&gt;v1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;267&quot;&gt;&lt;span&gt;&lt;span&gt;v2 or v3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;177&quot;&gt;&lt;span&gt;&lt;span&gt;Getting the Kafka Cluster ID&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;194&quot;&gt;&lt;span&gt;&lt;span&gt;zookeeper-shell zookeeper:2181 get/cluster/id&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;267&quot;&gt;&lt;span&gt;&lt;span&gt;kafka-metadata-quorum or view metadata.properties or confluent cluster describe --url http://broker:8090 --output json&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KRaft&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;브로커인지&lt;/span&gt; &lt;span&gt;컨트롤러인지&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;둘&lt;/span&gt; &lt;span&gt;다인지에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;다르다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;어떤&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;로드하여&lt;/span&gt; &lt;span&gt;사용하느냐에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;정의할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;/kafka/config/kraft/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;965&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEzYvF/btsDiOaRnvx/8vwPoRnLklTkqELY1VwnaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEzYvF/btsDiOaRnvx/8vwPoRnLklTkqELY1VwnaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEzYvF/btsDiOaRnvx/8vwPoRnLklTkqELY1VwnaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEzYvF%2FbtsDiOaRnvx%2F8vwPoRnLklTkqELY1VwnaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;965&quot; height=&quot;232&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;965&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;섹션의&lt;/span&gt; &lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;포함되어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;추가&lt;/span&gt; &lt;span&gt;설정은&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;브로커인지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨트롤러인지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;아니면&lt;/span&gt; &lt;span&gt;둘&lt;/span&gt; &lt;span&gt;다인지에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;달라진다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;broker.properties- &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;브로커&lt;/span&gt; &lt;span&gt;전용일&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;설정파일&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;controller.properties- &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;컨트롤러일&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;설정파일&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;server.properties- &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;브로커이자&lt;/span&gt; &lt;span&gt;컨트롤러인&lt;/span&gt; &lt;span&gt;경우에&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로덕션에서는&lt;/span&gt; &lt;span&gt;가급적&lt;/span&gt; &lt;span&gt;용도를&lt;/span&gt; &lt;span&gt;분리하여&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;권장&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;파일에서&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;속성과&lt;/span&gt; &lt;span&gt;정의에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아보자&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[#####Server basics#####]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[process.roles = {broker | controller | broker, controller}]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;속성은&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;컨트롤러&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;브로커&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;둘&lt;/span&gt; &lt;span&gt;다의&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는지&lt;/span&gt; &lt;span&gt;여부를&lt;/span&gt; &lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;. KRaft &lt;/span&gt;&lt;span&gt;모드에서는&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt;&lt;span&gt; Kafka &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;컨트롤러로&lt;/span&gt; &lt;span&gt;선택되어&lt;/span&gt; &lt;span&gt;클러스터에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;메타데이터를&lt;/span&gt; &lt;span&gt;메타데이터&lt;/span&gt; &lt;span&gt;로그에&lt;/span&gt; &lt;span&gt;저장하고&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;브로커로&lt;/span&gt; &lt;span&gt;선택된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;컨트롤러로&lt;/span&gt; &lt;span&gt;선택된&lt;/span&gt; &lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;메타데이터&lt;/span&gt; &lt;span&gt;쿼럼에&lt;/span&gt; &lt;span&gt;참여하게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;컨트롤러는&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;활성&lt;/span&gt; &lt;span&gt;컨트롤러에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;활성&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;상시&lt;/span&gt; &lt;span&gt;대기&lt;/span&gt; &lt;span&gt;상태이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로덕션&lt;/span&gt; &lt;span&gt;환경에서는&lt;/span&gt; &lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;쿼럼이&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;배포된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이것을&lt;/span&gt; &lt;span&gt;앙상블이라고한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;앙상블은&lt;/span&gt;&lt;span&gt; 2n + 1 &lt;/span&gt;&lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;세트이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기서&lt;/span&gt;&lt;span&gt; n&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;임의의&lt;/span&gt; &lt;span&gt;숫자이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;홀수&lt;/span&gt; &lt;span&gt;개의&lt;/span&gt; &lt;span&gt;컨트롤러를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;쿼럼이&lt;/span&gt; &lt;span&gt;리더십에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;다수&lt;/span&gt; &lt;span&gt;선거를&lt;/span&gt; &lt;span&gt;수행할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;언제든지&lt;/span&gt; &lt;span&gt;앙상블에는&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt;&lt;span&gt; n&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;실패한&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;있을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;쿼럼을&lt;/span&gt; &lt;span&gt;유지한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt; &lt;span&gt;들어&lt;/span&gt; &lt;span&gt;컨트롤러가&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;개인&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;오류를&lt;/span&gt; &lt;span&gt;허용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. 5&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;컨트롤러를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;오류를&lt;/span&gt; &lt;span&gt;허용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;전체&lt;/span&gt; &lt;span&gt;쿼럼이&lt;/span&gt; &lt;span&gt;손실되면&lt;/span&gt; &lt;span&gt;클러스터가&lt;/span&gt; &lt;span&gt;다운된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[node.id ]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;고유&lt;/span&gt; &lt;span&gt;식별자로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;고유해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[controller.quorum.voters=1@localhost:9093]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쿼럼&lt;/span&gt; &lt;span&gt;투표자&lt;/span&gt; &lt;span&gt;목록으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다수의&lt;/span&gt; &lt;span&gt;서버일&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;쉼표로&lt;/span&gt; &lt;span&gt;구분한다&lt;/span&gt;&lt;span&gt;. Kafka &lt;/span&gt;&lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;브로커&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;속성을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;쿼럼&lt;/span&gt; &lt;span&gt;투표자를&lt;/span&gt; &lt;span&gt;검색하며&lt;/span&gt; &lt;span&gt;속성에&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;목록에&lt;/span&gt; &lt;span&gt;컨트롤러를&lt;/span&gt; &lt;span&gt;포함하여&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;컨트롤러를&lt;/span&gt; &lt;span&gt;식별해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;컨트롤러는&lt;/span&gt; &lt;span&gt;{id}@{host}:{port} &lt;/span&gt;&lt;span&gt;형식을&lt;/span&gt; &lt;span&gt;사용하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt; &lt;span&gt;항목을&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;쉼표로&lt;/span&gt; &lt;span&gt;구분한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;controller.quorum.voters=1@host1:port1,2@host2:port2,3@host3:port3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;속성에&lt;/span&gt; &lt;span&gt;제공된&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; controller.quorum.voters&lt;/span&gt;&lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;일치해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt; &lt;span&gt;들어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨트롤러&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; node.id&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;반드시&lt;/span&gt; &lt;span&gt;1 &lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;브로커&lt;/span&gt; &lt;span&gt;전용인&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;목록에&lt;/span&gt; &lt;span&gt;표시되어서는&lt;/span&gt; &lt;span&gt;안&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[#####Socket server settings#####]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[listeners]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;소켓&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;수신하는&lt;/span&gt; &lt;span&gt;주소&lt;/span&gt; &lt;span&gt;목록으로&lt;/span&gt; &lt;span&gt;쉼표로&lt;/span&gt; &lt;span&gt;구분한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;격리&lt;/span&gt; &lt;span&gt;모드의&lt;/span&gt; &lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;역할&lt;/span&gt;&lt;span&gt;(process.roles=controller)&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;목록에는&lt;/span&gt; &lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;리스너만&lt;/span&gt; &lt;span&gt;허용되며&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;리스너는&lt;/span&gt; &lt;span&gt;controller.quorum.voters &lt;/span&gt;&lt;span&gt;값과&lt;/span&gt; &lt;span&gt;일치해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;이름이&lt;/span&gt; &lt;span&gt;java.net.InetAddress.getCanonicalHostName()&lt;/span&gt;&lt;span&gt;구성파일과&lt;/span&gt; &lt;span&gt;같을&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;이름은&lt;/span&gt; &lt;span&gt;리스너&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt; &lt;span&gt;값과&lt;/span&gt; &lt;span&gt;동일하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;637&quot;&gt;&lt;span&gt;&lt;span&gt;listeners=PLAINTEXT://your.host.name:9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;결합&lt;/span&gt; &lt;span&gt;모드의&lt;/span&gt; &lt;span&gt;컨트롤러의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;컨트롤러&lt;/span&gt; &lt;span&gt;수신기와&lt;/span&gt; &lt;span&gt;브로커&lt;/span&gt; &lt;span&gt;수신기를&lt;/span&gt; &lt;span&gt;나열해야&lt;/span&gt; &lt;span&gt;합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[controller.listener.names]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨트롤러에서&lt;/span&gt; &lt;span&gt;listener_name&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;목록은&lt;/span&gt; &lt;span&gt;쉼표로&lt;/span&gt; &lt;span&gt;구분한다&lt;/span&gt;&lt;span&gt;. process.roles=broker&lt;/span&gt;&lt;span&gt;목록의&lt;/span&gt; &lt;span&gt;첫&lt;/span&gt; &lt;span&gt;번째&lt;/span&gt; &lt;span&gt;리스너만&lt;/span&gt; &lt;span&gt;브로커에서&lt;/span&gt; &lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. ZooKeeper &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt; &lt;span&gt;브로커는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;설정하면&lt;/span&gt; &lt;span&gt;안&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;격리&lt;/span&gt; &lt;span&gt;모드&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;결합&lt;/span&gt; &lt;span&gt;모드의&lt;/span&gt;&lt;span&gt; KRaft &lt;/span&gt;&lt;span&gt;컨트롤러의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;속성에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;나열된&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;리스너에서&lt;/span&gt;&lt;span&gt; KRaft &lt;/span&gt;&lt;span&gt;컨트롤러로&lt;/span&gt; &lt;span&gt;수신하며&lt;/span&gt; &lt;span&gt;각각은&lt;/span&gt; &lt;span&gt;listeners &lt;/span&gt;&lt;span&gt;속성에&lt;/span&gt; &lt;span&gt;나타나야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. ZooKeeper &lt;/span&gt;&lt;span&gt;모드에서는&lt;/span&gt; &lt;span&gt;advertised.listeners &lt;/span&gt;&lt;span&gt;속성이&lt;/span&gt; &lt;span&gt;사용되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[#####Log settings#####]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[log.dirs]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;로그&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;저장할&lt;/span&gt; &lt;span&gt;디렉터리의&lt;/span&gt; &lt;span&gt;이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt; &lt;span&gt;디렉터리를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;쉼표로&lt;/span&gt; &lt;span&gt;구분한다&lt;/span&gt;&lt;span&gt;. KRaft &lt;/span&gt;&lt;span&gt;컨트롤러를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;메타데이터&lt;/span&gt; &lt;span&gt;로그에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;속성을&lt;/span&gt; &lt;span&gt;재정의하려면&lt;/span&gt; &lt;span&gt;메타데이터&lt;/span&gt; &lt;span&gt;보존&lt;/span&gt; &lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;참조한다&lt;/span&gt;&lt;span&gt;. KRaft &lt;/span&gt;&lt;span&gt;모드의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; JBOD&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;지원되지&lt;/span&gt; &lt;span&gt;않으므로&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;디렉터리만&lt;/span&gt; &lt;span&gt;나열해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[num.partitions]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;주제당&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;개수이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파티션이&lt;/span&gt; &lt;span&gt;많을수록&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt; &lt;span&gt;병렬&lt;/span&gt; &lt;span&gt;처리가&lt;/span&gt; &lt;span&gt;가능하지만&lt;/span&gt; &lt;span&gt;이로&lt;/span&gt; &lt;span&gt;인해&lt;/span&gt; &lt;span&gt;브로커&lt;/span&gt; &lt;span&gt;전체에&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;생성된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;브로커에&lt;/span&gt; &lt;span&gt;대해서만&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;적용되며&lt;/span&gt;&lt;span&gt;, KRaft &lt;/span&gt;&lt;span&gt;컨트롤러에서&lt;/span&gt; &lt;span&gt;무시된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://developer.confluent.io/learn/kraft/&quot;&gt;https://developer.confluent.io/learn/kraft/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Configure KRaft in Production : &lt;a href=&quot;https://docs.confluent.io/platform/current/kafka-metadata/config-kraft.html&quot;&gt;https://docs.confluent.io/platform/current/kafka-metadata/config-kraft.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-01-11 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, Apache Kafka, KRaft, &lt;/span&gt;&lt;span&gt;크래프트&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>Kafka</category>
      <category>Kraft</category>
      <category>아파치 카프카</category>
      <category>크래프트</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1570</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-KRaft-%EC%84%A4%EC%A0%95-%ED%8C%8C%EC%9D%BC-%EB%B0%8F-%EA%B8%B0%EB%B3%B8-%EC%86%8D%EC%84%B1-%EC%A0%95%EC%9D%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0#entry1570comment</comments>
      <pubDate>Thu, 11 Jan 2024 16:43:19 +0900</pubDate>
    </item>
    <item>
      <title>[Kafka] Kafka 설치 (with KRaft) 및 PUB/SUB 테스트 코드 (with Python) 실습</title>
      <link>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%EC%84%A4%EC%B9%98-with-KRaft-%EB%B0%8F-PUBSUB-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-with-Python-%EC%8B%A4%EC%8A%B5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka] Kafka &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설치&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;(with KRaft) &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;PUB/SUB &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;테스트&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;코드&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; (with Python) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;실습&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kafka 3.6.1 with KRaft&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Apache Kafka(&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;실시간으로&lt;/span&gt; &lt;span&gt;기록&lt;/span&gt; &lt;span&gt;스트림을&lt;/span&gt; &lt;span&gt;게시&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;구독&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;저장&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;처리할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;분산형&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;스트리밍&lt;/span&gt; &lt;span&gt;플랫폼이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt; &lt;span&gt;소스에서&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;스트림을&lt;/span&gt; &lt;span&gt;처리하고&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;사용자에게&lt;/span&gt; &lt;span&gt;전달하도록&lt;/span&gt; &lt;span&gt;설계되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;간단히&lt;/span&gt; &lt;span&gt;말해&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;span&gt;지점에서&lt;/span&gt;&lt;span&gt; B&lt;/span&gt;&lt;span&gt;지점까지&lt;/span&gt; &lt;span&gt;이동하는&lt;/span&gt; &lt;span&gt;것뿐만&lt;/span&gt; &lt;span&gt;아니라&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;span&gt;지점에서&lt;/span&gt;&lt;span&gt; Z&lt;/span&gt;&lt;span&gt;지점을&lt;/span&gt; &lt;span&gt;비롯해&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;곳에서&lt;/span&gt; &lt;span&gt;대규모&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;동시에&lt;/span&gt; &lt;span&gt;이동할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;카프카는&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;마이크로서비스&lt;/span&gt; &lt;span&gt;개발&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;사용되고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카는&lt;/span&gt; &lt;span&gt;3.5.2 &lt;/span&gt;&lt;span&gt;버전까지는&lt;/span&gt; &lt;span&gt;분산&lt;/span&gt; &lt;span&gt;코디네이션으로&lt;/span&gt; &lt;span&gt;주키퍼&lt;/span&gt;&lt;span&gt;(Zookeeper)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하였지만&lt;/span&gt;&lt;span&gt;, 3.6.0 &lt;/span&gt;&lt;span&gt;버전&lt;/span&gt; &lt;span&gt;부터는&lt;/span&gt; &lt;span&gt;분산&lt;/span&gt; &lt;span&gt;코디네이션에&lt;/span&gt; &lt;span&gt;KRaft&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;도입하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;글을&lt;/span&gt; &lt;span&gt;쓰는&lt;/span&gt; &lt;span&gt;시점의&lt;/span&gt; &lt;span&gt;최신&lt;/span&gt; &lt;span&gt;버전인&lt;/span&gt; &lt;span&gt;3.6.1 &lt;/span&gt;&lt;span&gt;버전에도&lt;/span&gt; &lt;span&gt;주키퍼와&lt;/span&gt; &lt;span&gt;KRaft&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;지원하고&lt;/span&gt; &lt;span&gt;있어&lt;/span&gt; &lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;선택하여&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt; &lt;span&gt;4.0 &lt;/span&gt;&lt;span&gt;버전부터는&lt;/span&gt; &lt;span&gt;주키퍼는&lt;/span&gt; &lt;span&gt;지원하지&lt;/span&gt; &lt;span&gt;않는다고&lt;/span&gt; &lt;span&gt;이후에는&lt;/span&gt; &lt;span&gt;KRaft&lt;/span&gt;&lt;span&gt;만&lt;/span&gt; &lt;span&gt;사용될&lt;/span&gt; &lt;span&gt;예정이라고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kraft&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;장점&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;설명은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;KRaft: Apache Kafka Without ZooKeeper : &lt;a href=&quot;https://developer.confluent.io/learn/kraft/&quot;&gt;https://developer.confluent.io/learn/kraft/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1619&quot; data-origin-height=&quot;1012&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyku2O/btsC9AiLWLU/4HEdWkpeYvOOMjt82z63U1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyku2O/btsC9AiLWLU/4HEdWkpeYvOOMjt82z63U1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyku2O/btsC9AiLWLU/4HEdWkpeYvOOMjt82z63U1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcyku2O%2FbtsC9AiLWLU%2F4HEdWkpeYvOOMjt82z63U1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1619&quot; height=&quot;1012&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1619&quot; data-origin-height=&quot;1012&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트는&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;3.6.1 &lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt; &lt;span&gt;설치하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;주키퍼가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;KRaft&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;간단히&lt;/span&gt; &lt;span&gt;파이썬&lt;/span&gt; &lt;span&gt;코드로&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;게시&lt;/span&gt;&lt;span&gt;(Producer)&lt;/span&gt;&lt;span&gt;하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;구독&lt;/span&gt;&lt;span&gt;(Consumer)&lt;/span&gt;&lt;span&gt;하는&lt;/span&gt; &lt;span&gt;프로그램을&lt;/span&gt; &lt;span&gt;만들어&lt;/span&gt; &lt;span&gt;본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;테스트&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;환경&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;OS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.3 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;CPU&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;2 Core&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Memory&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;2 GB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;Kafka 3.6.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카를&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;운영하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;JDK&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;설치되어&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. JDK&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;11&lt;/span&gt;&lt;span&gt;버전이상&lt;/span&gt; &lt;span&gt;사용해야&lt;/span&gt; &lt;span&gt;하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;실습에서는&lt;/span&gt; &lt;span&gt;17&lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt; &lt;span&gt;설치하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;apt-get install openjdk-17-jdk&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;다운로드&lt;/span&gt; &lt;span&gt;페이지에서&lt;/span&gt; &lt;span&gt;원하는&lt;/span&gt; &lt;span&gt;버전을&lt;/span&gt; &lt;span&gt;다운로드&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;압축을&lt;/span&gt; &lt;span&gt;해제한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Kafka Download : &lt;a href=&quot;https://kafka.apache.org/downloads&quot;&gt;https://kafka.apache.org/downloads&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;설치형이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;압축을&lt;/span&gt; &lt;span&gt;해제&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt; &lt;span&gt;바로&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실습에서는&lt;/span&gt; &lt;span&gt;3.6.1 &lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt; &lt;span&gt;설치한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;다운로드&lt;/span&gt; &lt;span&gt;하고&lt;/span&gt;&lt;span&gt;, /usr/local &lt;/span&gt;&lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;압축을&lt;/span&gt; &lt;span&gt;해제한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;wget &lt;a href=&quot;https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz&quot;&gt;https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;tar xvf kafka_2.13-3.6.1.tgz -C /usr/local&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;관리&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;편의성을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;심볼링크를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ln -s kafka_2.13-3.6.1/ kafka&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[server.properties &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;세팅&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카를&lt;/span&gt; &lt;span&gt;실행하기&lt;/span&gt; &lt;span&gt;전에&lt;/span&gt; &lt;span&gt;server.properties&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;설정해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;단계를&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. Properties &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;경로는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka/config/kraft/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;vi &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;편집기를&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt;&lt;span&gt; server.properties &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;수정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;vi server.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;외부&lt;/span&gt; &lt;span&gt;통신을&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;advertised.listeners&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;localhost &lt;/span&gt;&lt;span&gt;주소를&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;반드시&lt;/span&gt; &lt;span&gt;변경해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;필자도&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;부분을&lt;/span&gt; &lt;span&gt;놓쳐서&lt;/span&gt; &lt;span&gt;거의&lt;/span&gt; &lt;span&gt;이틀동안&lt;/span&gt; &lt;span&gt;삽질했다&lt;/span&gt;&lt;span&gt;.) &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;############################# Socket Server Settings #############################&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#advertised.listeners=PLAINTEXT://localhost:9092 &amp;lt;-&lt;/span&gt;&lt;span&gt;주석처리&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;advertised.listeners=PLAINTEXT://XXX.XXXX.XXXX:9092 &amp;lt;- localhost &lt;/span&gt;&lt;span&gt;대신&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;IP &lt;/span&gt;&lt;span&gt;입력&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;log.dirs&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;경로이다&lt;/span&gt; &lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본값은&lt;/span&gt; &lt;span&gt;/tmp/kraft-combined-logs&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;편의에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;경로를&lt;/span&gt; &lt;span&gt;변경할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;필자는&lt;/span&gt; &lt;span&gt;/usr/local/kafka/kraft-combined-logs &lt;/span&gt;&lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;디렉터리를&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;변경하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;############################# Log Basics #############################&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;log.dirs=/usr/local/kafka/kraft-combined-logs&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여기까지&lt;/span&gt; &lt;span&gt;server.properties &lt;/span&gt;&lt;span&gt;수정이&lt;/span&gt; &lt;span&gt;완료&lt;/span&gt; &lt;span&gt;되었으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;저장하고&lt;/span&gt; &lt;span&gt;편집기를&lt;/span&gt; &lt;span&gt;빠져나온다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kafka &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;ID &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;생성&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;포맷&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;시작하기전&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;ID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;위에서&lt;/span&gt; &lt;span&gt;지정한&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;경로의&lt;/span&gt; &lt;span&gt;디렉터리&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;포맷해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;ID&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령으로&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-storage.sh random-uuid&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1295&quot; data-origin-height=&quot;115&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/In7Bb/btsC6owO4Rm/vPa0cOi8yFgQEk6zBWs30k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/In7Bb/btsC6owO4Rm/vPa0cOi8yFgQEk6zBWs30k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/In7Bb/btsC6owO4Rm/vPa0cOi8yFgQEk6zBWs30k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIn7Bb%2FbtsC6owO4Rm%2FvPa0cOi8yFgQEk6zBWs30k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1295&quot; height=&quot;115&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1295&quot; data-origin-height=&quot;115&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;랜덤한&lt;/span&gt; &lt;span&gt;UUID&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;ID&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;생성되면&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;ID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;스토리지&lt;/span&gt; &lt;span&gt;디렉터리를&lt;/span&gt; &lt;span&gt;포맷한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-storage.sh format -t J9wwo7p2RHe9-4PiP4KbBw -c ./config/kraft/server.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rzvoW/btsC54ZonzW/GVCyPDzCjzu00O7HLazdQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rzvoW/btsC54ZonzW/GVCyPDzCjzu00O7HLazdQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rzvoW/btsC54ZonzW/GVCyPDzCjzu00O7HLazdQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrzvoW%2FbtsC54ZonzW%2FGVCyPDzCjzu00O7HLazdQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;116&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;서버&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;시작&lt;/span&gt; &lt;span&gt;/ &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;중지&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;단계까지&lt;/span&gt; &lt;span&gt;완료되었으면&lt;/span&gt; &lt;span&gt;이제&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;중지는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#Start Service&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-server-start.sh -daemon ./config/kraft/server.properties&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#Stop Service&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;cd cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-server-stop.sh -daemon ./config/kraft/server.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;실행되었는지&lt;/span&gt; &lt;span&gt;확인하려면&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;데몬&lt;/span&gt; &lt;span&gt;활성화&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt; &lt;span&gt;오픈&lt;/span&gt; &lt;span&gt;여부를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;ps -ef | grep java | grep kraft/server.properties&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;netstat -antp | grep 9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1286&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PVo6s/btsC9zKUFve/xcGtEYeew84J0i9LqLNZqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PVo6s/btsC9zKUFve/xcGtEYeew84J0i9LqLNZqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PVo6s/btsC9zKUFve/xcGtEYeew84J0i9LqLNZqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPVo6s%2FbtsC9zKUFve%2FxcGtEYeew84J0i9LqLNZqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1286&quot; height=&quot;90&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1286&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;netstat -antp | grep 9093&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1261&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/trsf5/btsC5YkAPIX/lNC1j3rpJq8ORqbA0Rl9qK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/trsf5/btsC5YkAPIX/lNC1j3rpJq8ORqbA0Rl9qK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/trsf5/btsC5YkAPIX/lNC1j3rpJq8ORqbA0Rl9qK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftrsf5%2FbtsC5YkAPIX%2FlNC1j3rpJq8ORqbA0Rl9qK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1261&quot; height=&quot;166&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1261&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Producer / Consumer Test]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;실행되었으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;간단히&lt;/span&gt; &lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;하나&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로듀서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;테스트를&lt;/span&gt; &lt;span&gt;진행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;생성은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실습에서는&lt;/span&gt; &lt;span&gt;토픽의&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;topic1 &lt;/span&gt;&lt;span&gt;이라고&lt;/span&gt; &lt;span&gt;생성하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#Create Topic&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-topics.sh --create --topic topic1 --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#Delete Topic&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-topics.sh --delete --topic topic1 --bootstrap-server localhost:9092&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;생성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;토픽을&lt;/span&gt; &lt;span&gt;확인하는&lt;/span&gt; &lt;span&gt;명령은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-topics.sh --bootstrap-server=localhost:9092 --list&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카에&lt;/span&gt; &lt;span&gt;topic1 &lt;/span&gt;&lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;게시한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;gt; Input message&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;gt; Input another message&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#End Input&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Ctrl+C&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;topic1&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;구독한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/kafka&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1 --from-beginning&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKoEmZ/btsDd26SxDx/2FBlbRpQHho3KXyDRvQRe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKoEmZ/btsDd26SxDx/2FBlbRpQHho3KXyDRvQRe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKoEmZ/btsDd26SxDx/2FBlbRpQHho3KXyDRvQRe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKoEmZ%2FbtsDd26SxDx%2F2FBlbRpQHho3KXyDRvQRe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1098&quot; height=&quot;103&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;103&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;파이썬으로&lt;/span&gt; &lt;span&gt;Producer, Consumer &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;테스트&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;파이썬으로&lt;/span&gt; &lt;span&gt;간단한&lt;/span&gt; &lt;span&gt;Producer, Consumer &lt;/span&gt;&lt;span&gt;테스트&lt;/span&gt; &lt;span&gt;코드를&lt;/span&gt; &lt;span&gt;작성해&lt;/span&gt; &lt;span&gt;본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;우선&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;커넥터를&lt;/span&gt; &lt;span&gt;설치해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;커넥터가&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt; &lt;span&gt;실습에서는&lt;/span&gt; &lt;span&gt;kafka-python &lt;/span&gt;&lt;span&gt;커넥터를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;pip3 install kafka-python&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;코드는&lt;/span&gt; &lt;span&gt;producer &lt;/span&gt;&lt;span&gt;코드로&lt;/span&gt; &lt;span&gt;1 ~ 10&lt;/span&gt;&lt;span&gt;까지&lt;/span&gt; &lt;span&gt;반복하며&lt;/span&gt; &lt;span&gt;topic1&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;파이썬&lt;/span&gt; &lt;span&gt;코드에&lt;/span&gt; &lt;span&gt;관한&lt;/span&gt; &lt;span&gt;설명은&lt;/span&gt; &lt;span&gt;생략한다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;from kafka import KafkaProducer&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;from json import dumps&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;import time&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;import traceback&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;producer = KafkaProducer(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;acks=0, &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;compression_type='gzip', &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bootstrap_servers=['XXX.XXX.XXX.XXXX:9092'], &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;value_serializer=lambda x:dumps(x).encode('utf-8')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;start = time.time()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;try:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;for i in range(10):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;data = {'str' : 'result'+str(i)}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;producer.send('topic1', value=data)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;producer.flush()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;producer.close()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;print('[Done]', time.time() - start)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;except:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;traceback.print_exc()&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfPML6/btsDfptTh4x/kPt2g7DMdXbLK0KjY1Qzm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfPML6/btsDfptTh4x/kPt2g7DMdXbLK0KjY1Qzm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfPML6/btsDfptTh4x/kPt2g7DMdXbLK0KjY1Qzm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfPML6%2FbtsDfptTh4x%2FkPt2g7DMdXbLK0KjY1Qzm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;912&quot; height=&quot;116&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;코드는&lt;/span&gt; &lt;span&gt;Consumer &lt;/span&gt;&lt;span&gt;코드로&lt;/span&gt; &lt;span&gt;topic1&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;처음부터&lt;/span&gt; &lt;span&gt;구독한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;from kafka import KafkaConsumer&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;from json import loads&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;consumer = KafkaConsumer(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'topic1',&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bootstrap_servers=['XXX.XXX.XXX.XXX:9092'], &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;auto_offset_reset='earliest', &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;enable_auto_commit=True, &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;group_id='1', &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;value_deserializer=lambda x: loads(x.decode('utf-8')), &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;consumer_timeout_ms=1000 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;print('[Start] get consumer')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;for message in consumer:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;print(f'Topic : {message.topic}, Partition : {message.partition}, Offset : {message.offset}, Key : {message.key}, value : {message.value}')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;print('[End] get consumer')&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOVbiV/btsDdFjsRNj/TWNUNgAygmOhLhkLoy7Lg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOVbiV/btsDdFjsRNj/TWNUNgAygmOhLhkLoy7Lg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOVbiV/btsDdFjsRNj/TWNUNgAygmOhLhkLoy7Lg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOVbiV%2FbtsDdFjsRNj%2FTWNUNgAygmOhLhkLoy7Lg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1000&quot; height=&quot;342&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;342&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금까지&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;간단하게&lt;/span&gt; &lt;span&gt;프로슈머&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨슈머&lt;/span&gt; &lt;span&gt;사용법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아보았다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;카프카는&lt;/span&gt; &lt;span&gt;대규모&lt;/span&gt; &lt;span&gt;메시징&lt;/span&gt; &lt;span&gt;시스템에서&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;단독&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;클러스터로&lt;/span&gt; &lt;span&gt;구성하여&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;경우가&lt;/span&gt; &lt;span&gt;많다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;카프카의&lt;/span&gt; &lt;span&gt;특성을&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;이해하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;토픽&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;파티션&lt;/span&gt; &lt;span&gt;최적화&lt;/span&gt; &lt;span&gt;설계로&lt;/span&gt; &lt;span&gt;안정적인&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;반드시&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt; &lt;span&gt;학습을&lt;/span&gt; &lt;span&gt;진행할&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;권장한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KRaft: Apache Kafka Without ZooKeeper : &lt;a href=&quot;https://developer.confluent.io/learn/kraft/&quot;&gt;https://developer.confluent.io/learn/kraft/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Mark KRaft as Production Ready : &lt;a href=&quot;https://cwiki.apache.org/confluence/display/KAFKA/KIP-833%3A+Mark+KRaft+as+Production+Ready&quot;&gt;https://cwiki.apache.org/confluence/display/KAFKA/KIP-833%3A+Mark+KRaft+as+Production+Ready&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-01-09 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;KAFKA, &lt;/span&gt;&lt;span&gt;아파치&lt;/span&gt; &lt;span&gt;카프카&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt;&lt;span&gt;, Install Kafka, Apache Kafka, Kraft, &lt;/span&gt;&lt;span&gt;카프카&lt;/span&gt; &lt;span&gt;스트림&lt;/span&gt;&lt;span&gt;, producer, consumer&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apache kafka</category>
      <category>consumer</category>
      <category>install kafka</category>
      <category>Kafka</category>
      <category>Kraft</category>
      <category>Producer</category>
      <category>아파치 카프카</category>
      <category>카프카 설치</category>
      <category>카프카 스트림</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1569</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kafka-Kafka-%EC%84%A4%EC%B9%98-with-KRaft-%EB%B0%8F-PUBSUB-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-with-Python-%EC%8B%A4%EC%8A%B5#entry1569comment</comments>
      <pubDate>Tue, 9 Jan 2024 11:19:26 +0900</pubDate>
    </item>
    <item>
      <title>[Linux] 리눅스에서 TCP DUMP로 패킷헤더 출력하기</title>
      <link>https://sqlmvp.tistory.com/entry/Linux-%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-TCP-DUMP%EB%A1%9C-%ED%8C%A8%ED%82%B7%ED%97%A4%EB%8D%94-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Linux] &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;리눅스에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; TCP DUMP&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;로&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;패킷헤더&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;출력하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;어플리케이션간&lt;/span&gt; &lt;span&gt;통신이&lt;/span&gt; &lt;span&gt;되지&lt;/span&gt; &lt;span&gt;않을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;어플리케이션의&lt;/span&gt; &lt;span&gt;로그도&lt;/span&gt; &lt;span&gt;확인하겠지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt; &lt;span&gt;먼저&lt;/span&gt; &lt;span&gt;확인하는&lt;/span&gt; &lt;span&gt;부분이&lt;/span&gt; &lt;span&gt;OS &lt;/span&gt;&lt;span&gt;방화벽&lt;/span&gt; &lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;방화벽&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;보안프로그램&lt;/span&gt;&lt;span&gt;) &amp;gt; &lt;/span&gt;&lt;span&gt;네트워크&lt;/span&gt; &lt;span&gt;방화벽&lt;/span&gt; &lt;span&gt;순이지&lt;/span&gt; &lt;span&gt;않을까&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;권한을&lt;/span&gt; &lt;span&gt;가지고&lt;/span&gt; &lt;span&gt;있으면&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;단계별로&lt;/span&gt; &lt;span&gt;방화벽&lt;/span&gt; &lt;span&gt;로그나&lt;/span&gt; &lt;span&gt;기타&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;보면서&lt;/span&gt; &lt;span&gt;통신이&lt;/span&gt; &lt;span&gt;되는지&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;&lt;span&gt;접근이&lt;/span&gt; &lt;span&gt;되는지&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;등의&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;사실상&lt;/span&gt; &lt;span&gt;대부분의&lt;/span&gt; &lt;span&gt;업무는&lt;/span&gt; &lt;span&gt;역할이&lt;/span&gt; &lt;span&gt;정해져&lt;/span&gt; &lt;span&gt;있고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;역할마다&lt;/span&gt; &lt;span&gt;접근&lt;/span&gt; &lt;span&gt;권한이&lt;/span&gt; &lt;span&gt;다르기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;빠르게&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;구간을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;가끔은&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;단계에서&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;방화벽의&lt;/span&gt; &lt;span&gt;포트가&lt;/span&gt; &lt;span&gt;오픈되어&lt;/span&gt; &lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;통신이&lt;/span&gt; &lt;span&gt;되지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;대부분은&lt;/span&gt; &lt;span&gt;오해로&lt;/span&gt; &lt;span&gt;발생&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이럴&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;쉽게&lt;/span&gt; &lt;span&gt;패킷이&lt;/span&gt; &lt;span&gt;호출되는지&lt;/span&gt; &lt;span&gt;통신&lt;/span&gt; &lt;span&gt;여부를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;명령이&lt;/span&gt; &lt;span&gt;TCP DUMP&lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. TCP DUMP &lt;/span&gt;&lt;span&gt;명령은&lt;/span&gt; &lt;span&gt;주어진&lt;/span&gt; &lt;span&gt;조건식을&lt;/span&gt; &lt;span&gt;만족하는&lt;/span&gt; &lt;span&gt;네트워크&lt;/span&gt; &lt;span&gt;인터페이스를&lt;/span&gt; &lt;span&gt;거치는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;패킷을&lt;/span&gt; &lt;span&gt;캡처하여&lt;/span&gt; &lt;span&gt;헤더를&lt;/span&gt; &lt;span&gt;출력해준다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;우선&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;명령으로&lt;/span&gt; &lt;span&gt;TCP DUMP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;실행해본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;출력하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;사실상&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;확인하기에는&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;불편할&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;tcpdump -i eth0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1838&quot; data-origin-height=&quot;657&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m7KDq/btsCRibYNjU/KiKcLZQ9efrViBCQYwoiXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m7KDq/btsCRibYNjU/KiKcLZQ9efrViBCQYwoiXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m7KDq/btsCRibYNjU/KiKcLZQ9efrViBCQYwoiXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm7KDq%2FbtsCRibYNjU%2FKiKcLZQ9efrViBCQYwoiXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1838&quot; height=&quot;657&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1838&quot; data-origin-height=&quot;657&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;패킷의&lt;/span&gt; &lt;span&gt;정보만&lt;/span&gt; &lt;span&gt;표시할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;TCP DUMP &lt;/span&gt;&lt;span&gt;명령의&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;살펴보자&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 : &lt;/span&gt;&lt;span&gt;인터페이스&lt;/span&gt; &lt;span&gt;eth0&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;패킷&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 -c 10 : 10&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;내용만&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 tcp : TCP&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;패킷만&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 udp : UDP &lt;/span&gt;&lt;span&gt;패킷만&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 tcp port 80 : TCP 80 &lt;/span&gt;&lt;span&gt;포트로&lt;/span&gt; &lt;span&gt;통신하는&lt;/span&gt; &lt;span&gt;패킷&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 udp port 80 : UDP 80 &lt;/span&gt;&lt;span&gt;포트로&lt;/span&gt; &lt;span&gt;통신하는&lt;/span&gt; &lt;span&gt;패킷&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 src X.X.X.X : source ip&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;X.X.X.X&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;패킷&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 dst X.X.X.X : destination ip&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;X.X.X.X&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;패킷&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 src port 3306 : source port&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;3306&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;패킷&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -i eth0 dst port 3306 : destination port&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;3306&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;패킷&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump net 192.168.0.1/24 : CIDR &lt;/span&gt;&lt;span&gt;형식으로&lt;/span&gt; &lt;span&gt;캡처할&lt;/span&gt; &lt;span&gt;IP &lt;/span&gt;&lt;span&gt;범위&lt;/span&gt; &lt;span&gt;지정하여&lt;/span&gt; &lt;span&gt;패킷&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -w tcpdump.log : &lt;/span&gt;&lt;span&gt;캡처된&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;tcpdump.log&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;저장하며&lt;/span&gt; &lt;span&gt;txt &lt;/span&gt;&lt;span&gt;형식이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt;&lt;span&gt;, bin &lt;/span&gt;&lt;span&gt;형식으로&lt;/span&gt; &lt;span&gt;저장&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;저장된&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;wireshark &lt;/span&gt;&lt;span&gt;등에서&lt;/span&gt; &lt;span&gt;분석&lt;/span&gt; &lt;span&gt;가능&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcpdump -r tcpdump.log : tcpdump.log &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;보여줌&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;연산자&lt;/span&gt; &lt;span&gt;&amp;amp;&amp;amp;(AND), ||(OR), !(NOT)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;조건을&lt;/span&gt; &lt;span&gt;조합해서도&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Source IP&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;X.X.X.X&lt;/span&gt;&lt;span&gt;이면서&lt;/span&gt; &lt;span&gt;TCP PORT&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;80&lt;/span&gt;&lt;span&gt;인것만&lt;/span&gt; &lt;span&gt;출력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;tcpdump -i eth0 src X.X.X.X and tcp and port 80&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Destination IP&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;X.X.X.X &lt;/span&gt;&lt;span&gt;이면서&lt;/span&gt; &lt;span&gt;UDP 3306 &lt;/span&gt;&lt;span&gt;포트의&lt;/span&gt; &lt;span&gt;패킷을&lt;/span&gt; &lt;span&gt;tcpdump.log&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;저장한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;tcpdump -w tcpdump.log -i eth0 dst X.X.X.X and udp and port 3306 &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Source IP&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;X.X.X.X &lt;/span&gt;&lt;span&gt;이고&lt;/span&gt; &lt;span&gt;Destination PORT&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;22&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;것만&lt;/span&gt; &lt;span&gt;출력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;tcpdump src X.X.X.X and not dst port 22&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Source IP&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;X.X.X.X &lt;/span&gt;&lt;span&gt;이고&lt;/span&gt; &lt;span&gt;Destination PORT&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;22 &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;3389&lt;/span&gt;&lt;span&gt;인것만&lt;/span&gt; &lt;span&gt;출력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;조건에&lt;/span&gt; &lt;span&gt;연산자&lt;/span&gt; &lt;span&gt;우선순위를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;싱글쿼테이션&lt;/span&gt;&lt;span&gt;(&amp;lsquo;)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;구분한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;tcpdump &amp;lsquo;src X.X.X.X and (dst port 3389 or 22)&amp;rsquo;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금까지&lt;/span&gt; &lt;span&gt;TCPDUMP&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;활용법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아보았다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본적인&lt;/span&gt; &lt;span&gt;명령어만&lt;/span&gt; &lt;span&gt;알고&lt;/span&gt; &lt;span&gt;있어도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;관여하는&lt;/span&gt; &lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;패킷이&lt;/span&gt; &lt;span&gt;호출되는지&lt;/span&gt; &lt;span&gt;정도까지는&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;유관부서에&lt;/span&gt; &lt;span&gt;협업을&lt;/span&gt; &lt;span&gt;요청하거나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;해결하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;포인트를&lt;/span&gt; &lt;span&gt;좀&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;빠르게&lt;/span&gt; &lt;span&gt;접근할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있지&lt;/span&gt; &lt;span&gt;않을까&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2024-01-02 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;리눅스&lt;/span&gt;&lt;span&gt;, TCPDUMP, &lt;/span&gt;&lt;span&gt;패킷덤프&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;패킷출력&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;통신확인&lt;/span&gt;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>tcpdump</category>
      <category>리눅스</category>
      <category>통신확인</category>
      <category>패킷덤프</category>
      <category>패킷출력</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1568</guid>
      <comments>https://sqlmvp.tistory.com/entry/Linux-%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-TCP-DUMP%EB%A1%9C-%ED%8C%A8%ED%82%B7%ED%97%A4%EB%8D%94-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0#entry1568comment</comments>
      <pubDate>Tue, 2 Jan 2024 11:53:06 +0900</pubDate>
    </item>
    <item>
      <title>[ProxySQL] CONNECTING_CLIENT_STATE_SERVER_HANDSHAKE 오류</title>
      <link>https://sqlmvp.tistory.com/entry/ProxySQL-CONNECTINGCLIENTSTATESERVERHANDSHAKE-%EC%98%A4%EB%A5%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[ProxySQL] CONNECTING_CLIENT_STATE_SERVER_HANDSHAKE &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;오류&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : ProxySQL 2.4.2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서 백엔드 어플리케이션이 접속하는 포트로 로그인이 안되는 문제가 발생하였다&lt;span&gt;. ProxySQL&lt;/span&gt;의 로그를 확인해 보니 아래와 같은 로그가 기록되어 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES)MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재 시스템 구성은 &lt;span&gt;MySQL PXC &lt;/span&gt;환경으로 &lt;span&gt;3&lt;/span&gt;개의 노드&lt;span&gt;(Primary 1, Secondary 2)&lt;/span&gt;와 클러스터 상단에 쿼리 종류에 따라 로드 밸런서 및 커넥션 매지니지먼트를 위한 &lt;span&gt;ProxySQL&lt;/span&gt;이 구성되어 있다&lt;span&gt;. &lt;/span&gt;문제는 관리자 포트인 &lt;span&gt;6032&lt;/span&gt;로 접속하면 정상적으로 접속이 되며&lt;span&gt;, &lt;/span&gt;백엔드 포트인 &lt;span&gt;6033 &lt;/span&gt;포트로 접속하면 오류 로그와 함께 접속이 되지 않는 것이다&lt;span&gt;. &lt;/span&gt;사실상 위 오류 로그만으로는 문제의 원인을 찾기가 쉽지 않았다&lt;span&gt;. &lt;/span&gt;단순히 사용자 패스워드 오류 메시지로만 표시되기 때문이다&lt;span&gt;. &lt;/span&gt;하지만 해당 문제가 발생할 때 패턴을 살펴보면&lt;span&gt;, &lt;/span&gt;신규 사용자를 생성한 경우에 가끔 발생한다는 것이었다&lt;span&gt;. &lt;/span&gt;그리고 여러 검색을 해본결과&lt;span&gt;, &lt;/span&gt;해당 문제는 특정 버전이 아닌&lt;span&gt;, &lt;/span&gt;오래전부터 다양한 버전에서 발생하는 문제였다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;은 &lt;span&gt;SQLite&lt;/span&gt;를 기본 데이터 저장소로 사용하며 디스크로 데이터를 저장하면 &lt;span&gt;SQLite&lt;/span&gt;로 저장이 된다&lt;span&gt;. &lt;/span&gt;이때 간혹 데이터 불일치가 발생하여 이와 같은 문제가 발생할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wWxa9/btsBG30zFcj/cCgSiV1RJQY4ameA6cdwTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wWxa9/btsBG30zFcj/cCgSiV1RJQY4ameA6cdwTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wWxa9/btsBG30zFcj/cCgSiV1RJQY4ameA6cdwTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwWxa9%2FbtsBG30zFcj%2FcCgSiV1RJQY4ameA6cdwTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;456&quot; height=&quot;352&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;은 서비스에 필요한 설정값을 어디에 저장하고 재사용할까&lt;span&gt;? : &lt;a href=&quot;https://sungwookkang.com/entry/ProxySQL-%EC%9D%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%A4%EC%A0%95%EA%B0%92%EC%9D%84-%EC%96%B4%EB%94%94%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B3%A0-%EC%9E%AC%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C&quot;&gt;https://sungwookkang.com/entry/ProxySQL-%EC%9D%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%A4%EC%A0%95%EA%B0%92%EC%9D%84-%EC%96%B4%EB%94%94%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B3%A0-%EC%9E%AC%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 문제는 아래 순서로 재현이 가능하다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#ProxySQL &lt;/span&gt;&lt;span&gt;관리자 모드 접속&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql -uadmin -padmin -P6032 -h127.0.0.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;신규 사용자 추가&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;insert into mysql_users (username, password,default_hostgroup) values ('admin','admin',0);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;변경 사항 메모리 로드 및 디스크에 변경 사항 저장&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;load mysql users to runtime; save mysql users to disk;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;관리자 모드로 재접속&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql -uadmin -padmin -P6032 -h127.0.0.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;반환되는 오류 메시지&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql: [Warning] Using a password on the command line interface can be insecure.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ERROR 1045 (28000): ProxySQL Error: Access denied for user 'admin'@'127.0.0.1' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#ProxySQL &lt;/span&gt;&lt;span&gt;오류 로그 확인&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;tail -1 /var/lib/proxysql/proxysql.log&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;MySQL_Session.cpp:5439:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE(): [ERROR] ProxySQL Error: Access denied for user 'admin'@'127.0.0.1' (using password: YES)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 문제를 해결하기 위서는 &lt;span&gt;ProxySQL&lt;/span&gt;에서 사용하는 &lt;span&gt;SQLite&lt;/span&gt;의 데이터를 직접 수정해서 해결할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;# Stop ProxySQL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;systemctl stop proxysql&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# Backup the db file&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;cd /var/lib/proxysql/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;cp proxysql.db proxysql.db.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# Open db file with sqlite3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sqlite3 proxysql.db&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sqlite&amp;gt; select * from mysql_users;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;admin|*4ACFE3202A5FF5CF467898FC58AAB1D615029441|1|0|10|test|0|1|0|1|1|10000||&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# Delete the user we created and verify it is gone&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sqlite&amp;gt; delete from mysql_users where username='admin';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sqlite&amp;gt; .quit&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# Start ProxySQL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;systemctl start proxysql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위 방식은 직접 &lt;span&gt;SQLite&lt;/span&gt;에 접속하여 문제의 계정을 삭제하고 서비스를 재시작 후 새롭게 계정을 또 다시 등록하고 해야한다&lt;span&gt;. &lt;/span&gt;하지만 &lt;span&gt;SQLite&lt;/span&gt;를 직접 수정하는 것은 최대한 피하는 것이 좋다&lt;span&gt;. &lt;/span&gt;엉뚱한 데이터를 삭제하는 문제가 발생하면 더 큰 서비스 문제로 이어질 수 있기 때문이다&lt;span&gt;. &lt;/span&gt;또한&lt;span&gt;, ProxySQL&lt;/span&gt;을 여러대 사용할 경우 매번 접속해서 계정을 삭제하고 만드는 일이 매우 불편할 수 있다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다른 방법으로는 &lt;span&gt;ProxySQL&lt;/span&gt;을 초기화 하고 미리 만들어둔 사용자 및 서버&lt;span&gt;, &lt;/span&gt;호스트 그룹등을 설정하는 스크립트를 재실행하여 새롭게 구성하거나 백업해둔 &lt;span&gt;SQLite&lt;/span&gt;를 복원해서 사용하는 것이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#ProxySQL &lt;/span&gt;&lt;span&gt;초기화&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;proxysql &amp;ndash;initial&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;하지만 이 방법 또한 재구성 후 이니셜 작업을 해주어야 하는 불편함이 있기 때문에 나의 경우에는 &lt;span&gt;proxysql.cnf &lt;/span&gt;파일에 사용자&lt;span&gt;, &lt;/span&gt;서버&lt;span&gt;, &lt;/span&gt;호스트그룹&lt;span&gt;, &lt;/span&gt;쿼리룰 등 모두 세팅하여 서비스가 시작될 때 &lt;span&gt;proxysql.cnf &lt;/span&gt;파일의 정보를 사용하도록 하였다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금까지 설명한 방법중 어떠한 것을 도입하더라도 서비스 다운타임은 피할 수 없다&lt;span&gt;. &lt;/span&gt;그래서 설정 파일로 모두 관리한 다음 문제가 생겼을 때 빠르게 서비스를 재시작하거나&lt;span&gt;, ProxySQL &lt;/span&gt;클러스터 그룹을 생성하여 문제가 되는 노드는 빠르게 제거하고 다시 세팅할 수 있는 환경을 만들어 서비스 다운타임을 최화 하는 것이 중요할 듯 하다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://kedar.nitty-witty.com/blog/can-not-connect-to-proxysql-reasons-and-fixtures&quot;&gt;https://kedar.nitty-witty.com/blog/can-not-connect-to-proxysql-reasons-and-fixtures&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-12-11 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, ProxySQL, &lt;/span&gt;&lt;span&gt;프록시 &lt;span&gt;SQL, &lt;/span&gt;커넥션 오류&lt;span&gt;, CONNECTING_CLIENT_STATE_SERVER_HANDSHAKE&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>CONNECTING_CLIENT_STATE_SERVER_HANDSHAKE</category>
      <category>MySQL</category>
      <category>proxysql</category>
      <category>커넥션 오류</category>
      <category>프록시 SQL</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1567</guid>
      <comments>https://sqlmvp.tistory.com/entry/ProxySQL-CONNECTINGCLIENTSTATESERVERHANDSHAKE-%EC%98%A4%EB%A5%98#entry1567comment</comments>
      <pubDate>Mon, 11 Dec 2023 09:47:55 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] Galera 클러스터 이름 길이 초과로 인한 클러스터 조인 오류</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-Galera-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%9D%B4%EB%A6%84-%EA%B8%B8%EC%9D%B4-%EC%B4%88%EA%B3%BC%EB%A1%9C-%EC%9D%B8%ED%95%9C-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%A1%B0%EC%9D%B8-%EC%98%A4%EB%A5%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] Galera &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;클러스터 이름 길이 초과로 인한 클러스터 조인 오류&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL Percona Cluster, Galera Cluster&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL Percona &lt;/span&gt;&lt;span&gt;클러스터를 구성하고&lt;span&gt;, Primary &lt;/span&gt;서비스를 정상적으로 구동한 후 &lt;span&gt;Secondary &lt;/span&gt;서버를 클러스터에 조인하려고 할 때 아래와 같은 오류와 함께 클러스터 조인에 실패하였다&lt;span&gt;. Secondary&lt;/span&gt;의 경우 서비스가 시작될 때 &lt;span&gt;my.cnf&lt;/span&gt;에 정의되어 있는 정보에 따라 클러스터 조인을 자동으로 시도하고 클러스터 조인에 실패할 경우 &lt;span&gt;MySQL&lt;/span&gt;이 정상적으로 실행되지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;1070&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBc6Bp/btsByxCayZR/BwXX1lUW6UxKcBXPwuRR3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBc6Bp/btsByxCayZR/BwXX1lUW6UxKcBXPwuRR3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBc6Bp/btsByxCayZR/BwXX1lUW6UxKcBXPwuRR3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBc6Bp%2FbtsByxCayZR%2FBwXX1lUW6UxKcBXPwuRR3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2182&quot; height=&quot;1070&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;1070&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:52.460279Z 0 [ERROR] [MY-000000] [Galera] failed to open gcomm backend connection: 110: failed to reach primary view (pc.wait_prim_timeout): 110 (Connection timed out)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;at /mnt/jenkins/workspace/pxc80-autobuild-RELEASE/test/percona-xtradb-cluster-8.0.34-26/percona-xtradb-cluster-galera/gcomm/src/pc.cpp:connect():176&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:52.460299Z 0 [ERROR] [MY-000000] [Galera] /mnt/jenkins/workspace/pxc80-autobuild-RELEASE/test/percona-xtradb-cluster-8.0.34-26/percona-xtradb-cluster-galera/gcs/src/gcs_core.cpp:gcs_core_open():219: Failed to open backend connection: -110 (Connection timed out)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:53.460513Z 0 [Note] [MY-000000] [Galera] gcomm: terminating thread&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:53.460616Z 0 [Note] [MY-000000] [Galera] gcomm: joining thread&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:53.460932Z 0 [ERROR] [MY-000000] [Galera] /mnt/jenkins/workspace/pxc80-autobuild-RELEASE/test/percona-xtradb-cluster-8.0.34-26/percona-xtradb-cluster-galera/gcs/src/gcs.cpp:gcs_open():1876: Failed to open channel 'XXXXXXXXXX-XXX-XX-XXXX-XXXXXXX-XXX' at 'gcomm://192.168.0.1,192.168.0.2': -110 (Connection timed out)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:53.460972Z 0 [ERROR] [MY-000000] [Galera] gcs connect failed: Connection timed out&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:53.460988Z 0 [ERROR] [MY-000000] [WSREP] Provider/Node (gcomm://192.168.0.1,192.168.0.2) failed to establish connection with cluster (reason: 7)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:53.461001Z 0 [ERROR] [MY-010119] [Server] Aborting&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:53.461456Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.34-26.1)&lt;span&gt;&amp;nbsp; &lt;/span&gt;Percona XtraDB Cluster (GPL), Release rel26, Revision 0988772, WSREP version 26.1.4.3.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-12-06T10:02:53.464279Z 0 [ERROR] [MY-010065] [Server] Failed to shutdown components infrastructure.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제의 원인을 조사해보니&lt;span&gt;, &lt;/span&gt;클러스터 이름 길이 초과로 인해서&lt;span&gt;, &lt;/span&gt;클러스터 조인시 발생하는 오류였다&lt;span&gt;. &lt;/span&gt;해당 오류 사례가 이슈로 제기된 깃헙을 확인할 수 있었고 오래된 이슈였는데 아직 픽스 되지는 않은것 같다&lt;span&gt;. (&lt;/span&gt;버그가 아니기에 픽스할 이유는 없을듯 하기도 하다&lt;span&gt;.) &lt;/span&gt;클러스터의 이름을 &lt;span&gt;32&lt;/span&gt;자 이내로 설정해야 한다고 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://github.com/bloomberg/chef-bcpc/issues/649&quot;&gt;https://github.com/bloomberg/chef-bcpc/issues/649&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터의 이름을 &lt;span&gt;32&lt;/span&gt;자 이내로 수정하고 실행한 결과 정상적으로 클러스터에 조인하는 것을 확인할 수 있었다&lt;span&gt;. &lt;/span&gt;여기에서 한가지 의심&lt;span&gt;(?)&lt;/span&gt;스러운 것은&lt;span&gt;, Primary &lt;/span&gt;노드를 시작할 때에는 클러스터 이름의 길이가 &lt;span&gt;32&lt;/span&gt;자가 초과해도 문제없이 실행된다는 점이다&lt;span&gt;. &lt;/span&gt;만약에 처음 &lt;span&gt;Primary &lt;/span&gt;세팅 때부터 해당 문제로 서비스가 정상적으로 실행되지 않았으면 빠르게 알 수 있었을 텐데&lt;span&gt;, Primary&lt;/span&gt;는 전혀 영향이 없고&lt;span&gt;, Secondary &lt;/span&gt;노드부터 조인을 시도할 때 문제가 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;개인적으로는 &lt;span&gt;Primary &lt;/span&gt;시작부터 클러스터 이름 길이에 대한 유효성 검사를 하는 부분을 추가하여 &lt;span&gt;PR&lt;/span&gt;을 하고 싶지만&lt;span&gt;, MySQL &lt;/span&gt;및 &lt;span&gt;Galera Cluster&lt;/span&gt;에 대한 전체 소스를 파악하지 못한 상태에서 섣불리 수정할 수 없기에 우선은 마음에만 담아 두기로 했다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://github.com/bloomberg/chef-bcpc/issues/649&quot;&gt;https://github.com/bloomberg/chef-bcpc/issues/649&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-12-08 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, Percona, Galera Cluster, &lt;/span&gt;&lt;span&gt;퍼코나&lt;span&gt;, &lt;/span&gt;갈레라 클러스터&lt;span&gt;, &lt;/span&gt;클러스터 이름 길이 초과&lt;span&gt;, wsrep_cluster_name&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>Galera Cluster</category>
      <category>MySQL</category>
      <category>percona</category>
      <category>wsrep_cluster_name</category>
      <category>갈레라 클러스터</category>
      <category>클러스터 이름 길이 초과</category>
      <category>퍼코나</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1566</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-Galera-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%9D%B4%EB%A6%84-%EA%B8%B8%EC%9D%B4-%EC%B4%88%EA%B3%BC%EB%A1%9C-%EC%9D%B8%ED%95%9C-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%A1%B0%EC%9D%B8-%EC%98%A4%EB%A5%98#entry1566comment</comments>
      <pubDate>Fri, 8 Dec 2023 13:33:44 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] SHOW PROCESSLIST로 현재 실행중인 스레드 목록 확인하기</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-SHOW-PROCESSLIST%EB%A1%9C-%ED%98%84%EC%9E%AC-%EC%8B%A4%ED%96%89%EC%A4%91%EC%9D%B8-%EC%8A%A4%EB%A0%88%EB%93%9C-%EB%AA%A9%EB%A1%9D-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] SHOW PROCESSLIST&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;로 현재 실행중인 스레드 목록 확인하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;에서 현재 실행중인 스레드 목록을 확인하기 위해서는 &lt;span&gt;SHOW PROCESSLIST &lt;/span&gt;명령어를 사용할 수 있다&lt;span&gt;. PROCESS &lt;/span&gt;권한이 있으면 다른 사용자에게 속한 스레드까지 포함하여 모든 스레드를 볼 수 있다&lt;span&gt;. &lt;/span&gt;그렇지 않으면 익명이 아닌 사용자는 자신의 스레드에 대한 정보에만 액세스할 수 있어 다른 사용자의 스레드 정보는 확인할 수 없다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SHOW PROCESSLIST &lt;/span&gt;&lt;span&gt;명령문은 정보 필드에 각 문의 처음&lt;span&gt; 100&lt;/span&gt;자만 표시한다&lt;span&gt;. info &lt;/span&gt;컬럼에 현재 실행중인&lt;span&gt; SQL&lt;/span&gt;문 전체를 표시하고 싶을 경우&lt;span&gt; SHOW FULL PROCESSLIST &lt;/span&gt;명령을 사용한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 명령어를 사용하여 실행중인 스레드의 목록을 살펴본다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; show processlist;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1794&quot; data-origin-height=&quot;778&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOME1K/btsBhWBVIuW/xiq6gM9sD3BtSvk2YRHgK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOME1K/btsBhWBVIuW/xiq6gM9sD3BtSvk2YRHgK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOME1K/btsBhWBVIuW/xiq6gM9sD3BtSvk2YRHgK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOME1K%2FbtsBhWBVIuW%2Fxiq6gM9sD3BtSvk2YRHgK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1794&quot; height=&quot;778&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1794&quot; data-origin-height=&quot;778&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;컬럼명&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;정보&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Id&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;프로세스&lt;span&gt; ID ( = INFORMATION_SCHEMA PROCESSLIST&lt;/span&gt;테이블의&lt;span&gt; ID&lt;/span&gt;컬럼값과 동일&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;User&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;에 접속하고 있는&lt;span&gt; User &lt;/span&gt;명&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Host&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;User&lt;/span&gt;&lt;span&gt;가 접속하고 있는&lt;span&gt; Client &lt;/span&gt;호스트 명&lt;span&gt; (IP &lt;/span&gt;주소&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;db&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;스레드의 기본 데이터베이스&lt;span&gt; (default: NULL)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Command&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;실행중인 스레드 명령 타입&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Time&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 현재 상태에 있었던 시간&lt;span&gt; (&lt;/span&gt;초&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;State&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 수행중인 작업을 나타내는 이벤트&lt;span&gt;, &lt;/span&gt;상태&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Info&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 실행중인 명령문&lt;span&gt; (&lt;/span&gt;실행하지 않을경우&lt;span&gt; : NULL)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Time_ms&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 현재 상태에 있었던 시간&lt;span&gt; (&lt;/span&gt;밀리초&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Rows_sent&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;스레드에서 보낸 &lt;span&gt;ROWS &lt;/span&gt;수&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Rows_examined&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;프로세스가 검사한 행 수&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;조회 결과에서 &lt;span&gt;Command &lt;/span&gt;컬럼은&lt;span&gt;, &lt;/span&gt;현재 스레드의 명령 타입을 보여주는데&lt;span&gt;, &lt;/span&gt;이때 다양한 명령 타입이 있으므로 각 상태의 정보를 알고 있으면 운영에 많은 도움이 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;상태타입&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;정보&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Binlog Dump&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;바이너리 로그 내용을 복제본으로 보내기 위한 복제 소스의 스레드&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Change user&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 사용자 변경 작업을 실행 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Close stmt&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 준비된 명령문을 닫는 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Connect&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;소스에 연결된 복제 수신기 스레드와 복제 작업자 스레드에서 사용&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Connect Out&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;복제본이 소스에 연결 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Create DB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 데이터베이스 생성 작업을 실행 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Daemon&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;클라이언트 연결을 서비스하는 스레드가 아닌 서버 내부 스레드&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Debug&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 디버깅 정보 생성 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Delayed insert&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;지연된 삽입 처리기&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Drop DB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 데이터베이스 삭제 작업을 실행 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Error&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Execute&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 준비된 명령문을 실행하고 있음&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Fetch&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 준비된 명령문을 실행하여 결과를 가져오는 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Field List&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 테이블 열에 대한 정보를 검색 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Init DB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 기본 데이터베이스를 선택&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Kill&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 다른 스레드를 강제 종료시킴&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Long Data&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드는 준비된 명령문을 실행한 결과 긴 데이터를 검색&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Ping&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 서버 핑 요청 처리&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Prepare&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 준비된 명령문을 준비 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Processlist&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 서버 스레드에 대한 정보를 생성&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Query&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;클라이언트의 쿼리 실행&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Quit&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 종료되고 있음&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Refresh&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 테이블&lt;span&gt;, &lt;/span&gt;로그 또는 캐시를 플러시하거나 상태 변수 또는 서버정보 재설정&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Register Slave&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 복제 서버를 등록&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Reset stmt&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 준비된 명령문을 재설정 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Set option&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 클라이언트 문 실행 옵션을 설정하거나 재설정하는 중&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Shutdown&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 서버 종료하고 있음&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Sleep&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;클라이언트가 새로운 명령을 보내기를 기다림&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Statistics&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 서버 상태 정보를 생성&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;113&quot;&gt;&lt;span&gt;&lt;span&gt;Statistics&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;510&quot;&gt;&lt;span&gt;&lt;span&gt;스레드가 서버 상태 정보를 생성&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;일반적으로&lt;span&gt; SHOW PROCESSLIST &lt;/span&gt;문은&lt;span&gt; &quot;&lt;/span&gt;연결이 너무 많습니다&lt;span&gt;&quot; &lt;/span&gt;오류 메시지가 표시되고 무슨 일이 일어나고 있는지 확인하려는 경우 매우 유용하게 사용할 수 있다&lt;span&gt;. MySQL&lt;/span&gt;은 관리자가 항상 연결하고 시스템을 확인할 수 있도록 하기 위해&lt;span&gt; CONNECTION_ADMIN &lt;/span&gt;권한&lt;span&gt;(&lt;/span&gt;또는 더 이상 사용되지 않는&lt;span&gt; SUPER &lt;/span&gt;권한&lt;span&gt;)&lt;/span&gt;이 있는 계정이 사용할 추가 연결을 미리 예약한다&lt;span&gt;. &lt;/span&gt;데이터베이스에서 특정 사용자가 오랫동안 쿼리를 실행하고 있거나&lt;span&gt;, &lt;/span&gt;현재 실행중인 스레드에 문제점을 찾고 싶을 경우에도 유용하게 활용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;SHOW PROCESSLIST Statement : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Thread Command Values : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/thread-commands.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/thread-commands.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-12-04 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, SHOW PROCESSLiST, &lt;/span&gt;&lt;span&gt;스레드 목록 확인&lt;span&gt;, &lt;/span&gt;실행중인 쿼리 확인&lt;span&gt;, &lt;/span&gt;마이에스큐엘&lt;span&gt;, &lt;/span&gt;프로세스리스트&lt;span&gt;. &lt;/span&gt;스레드리스트&lt;span&gt;, &lt;/span&gt;롱쿼리&lt;span&gt;, &lt;/span&gt;슬로우쿼리&lt;span&gt;, &lt;/span&gt;연결상태확인 &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>show processlist</category>
      <category>롱쿼리</category>
      <category>마이에스큐엘</category>
      <category>스레드 목록 확인</category>
      <category>슬로우쿼리</category>
      <category>실행중인 쿼리 확인</category>
      <category>연결상태확인</category>
      <category>프로세스리스트. 스레드리스트</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1565</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-SHOW-PROCESSLIST%EB%A1%9C-%ED%98%84%EC%9E%AC-%EC%8B%A4%ED%96%89%EC%A4%91%EC%9D%B8-%EC%8A%A4%EB%A0%88%EB%93%9C-%EB%AA%A9%EB%A1%9D-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0#entry1565comment</comments>
      <pubDate>Mon, 4 Dec 2023 10:28:44 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] Stopping Purge/Resuming Purge in Error Logs</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-Stopping-PurgeResuming-Purge-in-Error-Logs</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] Stopping Purge/Resuming Purge in Error Logs&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL 5.7 X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.7.X &lt;/span&gt;&lt;span&gt;운영환경에서 아래와 같은 로그가 잔뜩 기록되어 있었다&lt;span&gt;. &lt;/span&gt;계속해서 반복되는 &lt;span&gt;Stoppoing purge&lt;/span&gt;과 &lt;span&gt;Resuming purge&lt;/span&gt;는 오류로 기록되고 있지는 않았지만&lt;span&gt;, &lt;/span&gt;반복해서 남는 로그에 원인이 궁금했다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;023-11-22T15:27:13.249813Z 4 [Note] InnoDB: Stopping purge&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-11-22T15:27:13.363487Z 4 [Note] InnoDB: Resuming purge&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-11-22T15:27:13.462275Z 4 [Note] InnoDB: Stopping purge&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-11-22T15:27:13.548486Z 4 [Note] InnoDB: Resuming purge&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;해당 로그에 관한 내용을 살펴보니 해당 로그는 테이블에서 &lt;span&gt;TRUNCATE&lt;/span&gt;가 발생할 때 마다 기록되었다&lt;span&gt;. &lt;/span&gt;로그를 재현해 보기 위해 간단히 테이블을 생성하고 &lt;span&gt;TRUNCATE &lt;/span&gt;구문을 실행해 보았다&lt;span&gt;. &lt;/span&gt;해당 로그가 기록되기 위해서는 &lt;span&gt;Vervos log &lt;/span&gt;수준이 &lt;span&gt;3&lt;/span&gt;으로 설정되어 있어야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show variables like 'log_error_verbosity%';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;217&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K5JMS/btsA9Tyzqqn/kSXczz5CGAlkMQN07fybNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K5JMS/btsA9Tyzqqn/kSXczz5CGAlkMQN07fybNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K5JMS/btsA9Tyzqqn/kSXczz5CGAlkMQN07fybNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK5JMS%2FbtsA9Tyzqqn%2FkSXczz5CGAlkMQN07fybNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;633&quot; height=&quot;217&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;217&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;로그를 재현하기 위해 빈 테이블을 하나 생성하고&lt;span&gt;, TRUNCATE &lt;/span&gt;명령을 반복적으로 실행하였다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; create table t(id int primary key);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; truncate table t;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; truncate table t;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; truncate table t;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; truncate table t;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실행 결과 후 로그를 살펴보니 아래와 같이 로그가 기록된 것을 확인할 수 있었다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VKXZt/btsA9UYuPcr/kRZzcKJ63UeasOE5NFAIw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VKXZt/btsA9UYuPcr/kRZzcKJ63UeasOE5NFAIw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VKXZt/btsA9UYuPcr/kRZzcKJ63UeasOE5NFAIw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVKXZt%2FbtsA9UYuPcr%2FkRZzcKJ63UeasOE5NFAIw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;772&quot; height=&quot;289&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;자료를 찾다보니 이러한 상황은 이미 알려진 &lt;span&gt;Bug&lt;/span&gt;로 리포팅이 되었다고 한다&lt;span&gt;. &lt;/span&gt;그리고 &lt;span&gt;MySQL 8.0&lt;/span&gt;에서는 해결이 되었다고 한다&lt;span&gt;. &lt;/span&gt;아마도 &lt;span&gt;MySQL 5.7.X&lt;/span&gt;는 &lt;span&gt;2023&lt;/span&gt;년 &lt;span&gt;10&lt;/span&gt;월부터 &lt;span&gt;EOL(End of Life)&lt;/span&gt;되었므로 아마도 기존 버전에는 더 이상 &lt;span&gt;fix&lt;/span&gt;가 될것 같지 않은 개인적인 생각이 들며&lt;span&gt;, &lt;/span&gt;이 문제를 해결하기 위해서는&lt;span&gt; MySQL 8.0&lt;/span&gt;으로 업그레이드 또는 &lt;span&gt;MySQL 5.7&lt;/span&gt;에서는 불필요하게 로그가 남지 않도록 &lt;span&gt;verbos &lt;/span&gt;로그 수준을 &lt;span&gt;2&lt;/span&gt;로 조정하여 사용해야 할 듯하다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.percona.com/blog/bug-stopping-purge-resuming-purge-in-error-logs&quot;&gt;https://www.percona.com/blog/bug-stopping-purge-resuming-purge-in-error-logs&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-12-01 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, Percona, InnoDB purge, TRUNCATE TABLE, &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>InnoDB purge</category>
      <category>MySQL</category>
      <category>percona</category>
      <category>TRUNCATE TABLE</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1564</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-Stopping-PurgeResuming-Purge-in-Error-Logs#entry1564comment</comments>
      <pubDate>Fri, 1 Dec 2023 10:03:43 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] 삭제 마킹된 데이터를 물리적으로 제거하는 purge thread 와 설정을 위한 innodb_purge_threads 변수 알아보기</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-%EC%82%AD%EC%A0%9C-%EB%A7%88%ED%82%B9%EB%90%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EB%AC%BC%EB%A6%AC%EC%A0%81%EC%9C%BC%EB%A1%9C-%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94-purge-thread-%EC%99%80-%EC%84%A4%EC%A0%95%EC%9D%84-%EC%9C%84%ED%95%9C-innodbpurgethreads-%EB%B3%80%EC%88%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;삭제 마킹된 데이터를 물리적으로 제거하는 &lt;span&gt;purge thread &lt;/span&gt;와 설정을 위한 &lt;span&gt;innodb_purge_threads &lt;/span&gt;변수 알아보기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL 5.5 later&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL purge thread&lt;/span&gt;&lt;span&gt;는 삭제 표시된 레코드를 물리적으로 제거하는 작업을 하는 스레드이다&lt;span&gt;. &lt;/span&gt;쉽게 설명하면 가비지 컬렉션과 같은 역할이다&lt;span&gt;. DELETE &lt;/span&gt;쿼리 등에 의해 삭제되었다고 마킹된 데이터에 대해서 물리적으로 삭제 작업을 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1VZVp/btsAPv4EtUb/u9LDeCf3WywIBX1cxI5ya0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1VZVp/btsAPv4EtUb/u9LDeCf3WywIBX1cxI5ya0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1VZVp/btsAPv4EtUb/u9LDeCf3WywIBX1cxI5ya0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1VZVp%2FbtsAPv4EtUb%2Fu9LDeCf3WywIBX1cxI5ya0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1438&quot; height=&quot;734&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;의&lt;span&gt; innodb_purge_threads &lt;/span&gt;변수는&lt;span&gt; InnoDB &lt;/span&gt;스토리지 엔진에서 제거 작업 전용 스레드 수를 제어하는&lt;span&gt; ​​&lt;/span&gt;데 사용된다&lt;span&gt;. Purge thread&lt;/span&gt;는 더 이상 필요하지 않은 행을 삭제하는 프로세스이다&lt;span&gt;. &lt;/span&gt;일반적으로 이러한 상황은 해당 행이 삭제 또는 업데이트되었으며 최신 버전의 행이 존재하기 때문이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;데이터베이스&lt;span&gt;, &lt;/span&gt;특히 데이터 수정&lt;span&gt;(&lt;/span&gt;업데이트 및 삭제&lt;span&gt;) &lt;/span&gt;수준이 높은 데이터베이스에서는 이전 버전의 행이 누적될 수 있다&lt;span&gt;. &lt;/span&gt;이로 인해 스토리지 사용량이 증가하고 성능이 저하되며 데이터베이스 복구와 같은 특정 작업에 소요되는 시간이 길어질 수 있다&lt;span&gt;. Purge thread&lt;/span&gt;를 &lt;span&gt;2&lt;/span&gt;이상 값으로 설정하여 스레드를 사용하면 잠재적으로 이러한 오래된 행을 정리하는 프로세스 속도를 높일 수 있다&lt;span&gt;. &lt;/span&gt;이는 많은 데이터가 정기적으로 수정되는 처리량이 많은 데이터베이스에 특히 유용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, Percona, MariaDB&lt;/span&gt;&lt;span&gt;의 &lt;span&gt;purge &lt;/span&gt;스레드에 대한 설정 정의는 아래와 같다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Percona&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;MariaDB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Innodb_purge_threads&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Innodb_purge_threads&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Innodb_purge_threads&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Configuration&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Supported&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Supported&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Supported&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Scope&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Global, Session&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Global, Session&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Global, Session&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Dynamic&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Data Type&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Integer&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Integer&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;INT UNSIGNED&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Default Value&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Minium Value&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;Maximum Value&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;32&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;32&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;156&quot;&gt;&lt;span&gt;&lt;span&gt;32&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재 설정된 &lt;span&gt;innodb_purge_threads &lt;/span&gt;값을 확인하는 방법은 아래 스크립트를 사용하여 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show variables like '%innodb_purge_threads%';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSMQ8k/btsARVuLQuy/eU5CgmXH1gXXn88N2mhnyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSMQ8k/btsARVuLQuy/eU5CgmXH1gXXn88N2mhnyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSMQ8k/btsARVuLQuy/eU5CgmXH1gXXn88N2mhnyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSMQ8k%2FbtsARVuLQuy%2FeU5CgmXH1gXXn88N2mhnyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;648&quot; height=&quot;216&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_purge_threads &lt;/span&gt;&lt;span&gt;변수 설정은 시작 시 사용되는 구성 파일을 사용하여 구성할 수 있다&lt;span&gt;. value&lt;/span&gt;를 데이터베이스 요구 사항에 맞는 값으로 수정하여 사용한다&lt;span&gt;. &lt;/span&gt;적용된 변경 사항을 보려면&lt;span&gt; MySQL &lt;/span&gt;서버를 다시 시작해야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[mysqld]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;innodb_purge_threads variable = value&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;많은 데이터베이스 구성 설정과 마찬가지로&lt;span&gt; innodb_purge_threads&lt;/span&gt;의 최적 값은 워크로드 및 하드웨어의 세부 사항에 따라 크게 달라질 수 있다&lt;span&gt;. &lt;/span&gt;따라서 일률적인 권장사항을 제공하기는 어렵다&lt;span&gt;. MySQL&lt;/span&gt;에서&lt;span&gt; innodb_purge_threads &lt;/span&gt;변수를 설정하거나 조정할 때 다음 사항을 고려할 수 있도록 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;작업 부하 특성 &amp;ndash; 제거 스레드 수 증가의 영향은 작업 부하에 따라 크게 달라질 수 있다&lt;span&gt;. &lt;/span&gt;데이터베이스의 데이터 수정&lt;span&gt;(&lt;/span&gt;삭제 및 업데이트&lt;span&gt;) &lt;/span&gt;비율이 높은 경우 이 값을 늘리면 불필요한 오래된 행 버전을 더 빠르게 제거하여 성능을 향상시킬 수 있다&lt;span&gt;. &lt;/span&gt;그러나 작업 부하가 수정 횟수가 적고 읽기 작업이 많은 경우 이 변수를 늘리면 이점이 줄어들 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;시스템 리소스 &amp;ndash; 각 추가 제거 스레드는 더 많은&lt;span&gt; CPU &lt;/span&gt;및 기타 시스템 리소스를 소비한다&lt;span&gt;. &lt;/span&gt;전체 시스템 성능에 부정적인 영향을 주지 않으면서 서버에 추가 스레드를 처리할 수 있는 충분한 용량이 있는지 확인해야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;복구 시간에 대한 영향 &amp;ndash; 제거 작업은 실행 취소 로그가 너무 커지는 것을 방지하여 충돌 발생 시 데이터베이스 복구 시간을 단축할 수 있다&lt;span&gt;. &lt;/span&gt;시스템이 행 수정 속도를 따라잡을 수 없는 경우 제거 스레드 수를 늘리면 잠재적으로 복구 시간이 줄어들 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://releem.com/docs/mysql-performance-tuning/innodb_purge_threads&quot;&gt;https://releem.com/docs/mysql-performance-tuning/innodb_purge_threads&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.alibabacloud.com/blog/mysql-engine-features-innodb-based-physical-replication_65220&quot;&gt;https://www.alibabacloud.com/blog/mysql-engine-features-innodb-based-physical-replication_65220&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-11-24 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, Percona, purge thread, innodb_purge_threads, &lt;/span&gt;&lt;span&gt;퍼지스레드&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>innodb_purge_threads</category>
      <category>MySQL</category>
      <category>percona</category>
      <category>purge thread</category>
      <category>퍼지스레드</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1563</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-%EC%82%AD%EC%A0%9C-%EB%A7%88%ED%82%B9%EB%90%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EB%AC%BC%EB%A6%AC%EC%A0%81%EC%9C%BC%EB%A1%9C-%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94-purge-thread-%EC%99%80-%EC%84%A4%EC%A0%95%EC%9D%84-%EC%9C%84%ED%95%9C-innodbpurgethreads-%EB%B3%80%EC%88%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0#entry1563comment</comments>
      <pubDate>Fri, 24 Nov 2023 11:28:12 +0900</pubDate>
    </item>
    <item>
      <title>[Grafana] Grafana에서 이메일 알림 보내기</title>
      <link>https://sqlmvp.tistory.com/entry/Grafana-Grafana%EC%97%90%EC%84%9C-%EC%9D%B4%EB%A9%94%EC%9D%BC-%EC%95%8C%EB%A6%BC-%EB%B3%B4%EB%82%B4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Grafana] Grafana&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이메일&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;알림&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;보내기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Grafana, PMM&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Grafana(&amp;ldquo;&lt;/span&gt;&lt;span&gt;그라파나&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;이상&lt;/span&gt; &lt;span&gt;징후를&lt;/span&gt; &lt;span&gt;감지했을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;대시보드&lt;/span&gt; &lt;span&gt;패널에서&lt;/span&gt; &lt;span&gt;알림&lt;/span&gt; &lt;span&gt;규칙을&lt;/span&gt; &lt;span&gt;추가하여&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;방식으로&lt;/span&gt; &lt;span&gt;알림을&lt;/span&gt; &lt;span&gt;받을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;그라파나에서&lt;/span&gt; &lt;span&gt;이메일로&lt;/span&gt; &lt;span&gt;알람을&lt;/span&gt; &lt;span&gt;보낼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;설정하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;알람을&lt;/span&gt; &lt;span&gt;이메일로&lt;/span&gt; &lt;span&gt;보내기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;그라파나에서&lt;/span&gt; &lt;span&gt;SMTP &lt;/span&gt;&lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;해야한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;물론&lt;/span&gt; &lt;span&gt;SMTP &lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;이메일&lt;/span&gt; &lt;span&gt;서버에서는&lt;/span&gt; &lt;span&gt;SMTP &lt;/span&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;허용되어&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그라파나가&lt;/span&gt; &lt;span&gt;설치된&lt;/span&gt; &lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;Grafana.ini &lt;/span&gt;&lt;span&gt;설정파일을&lt;/span&gt; &lt;span&gt;수정하여&lt;/span&gt; &lt;span&gt;SMTP &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;등록한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;vi /etc/Grafana/Grafana.ini&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;설정파일에서&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;참고하여&lt;/span&gt; &lt;span&gt;추가하도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[smtp]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;enabled = true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;host = smtp.office365.com:587&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;user = &amp;lt;o365 username&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;password = &amp;lt;o365 Password&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;cert_file =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;key_file =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;skip_verify = false&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;from_address = &amp;lt;o365 username&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;from_name = Grafana&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;EHLO identity in SMTP dialog (defaults to instance_name)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;ehlo_identity = dashboard.example.com&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;[emails]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;welcome_email_on_sign_up = false&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;네이버&lt;/span&gt; &lt;span&gt;메일로&lt;/span&gt; &lt;span&gt;SMTP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;설정하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[smtp]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;enabled = true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;host = smtp.naver.com587&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;user = email@naver.com&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;password = your_passwrod&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;cert_file =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;key_file =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;skip_verify = false&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;from_address = email@naver.com&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;from_name = Grafana&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;EHLO identity in SMTP dialog (defaults to instance_name)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;ehlo_identity = dashboard.example.com&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;[emails]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;;welcome_email_on_sign_up = false&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;네이버&lt;/span&gt; &lt;span&gt;메일의&lt;/span&gt; &lt;span&gt;SMTP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하려면&lt;/span&gt; &lt;span&gt;네이버에&lt;/span&gt; &lt;span&gt;로그인한&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;이메일&lt;/span&gt; &lt;span&gt;설정에서&lt;/span&gt; &lt;span&gt;SMTP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용가능하도록&lt;/span&gt; &lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;부분은&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;글을&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;grafana.ini &lt;/span&gt;&lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;완료&lt;/span&gt; &lt;span&gt;되었으면&lt;/span&gt; &lt;span&gt;Grafana &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;재시작하여&lt;/span&gt; &lt;span&gt;변경된&lt;/span&gt; &lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;적용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;supervisorctl restart grafana&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨테이너로&lt;/span&gt; &lt;span&gt;그라파나를&lt;/span&gt; &lt;span&gt;운영하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;명령으로&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;내부에서&lt;/span&gt; &lt;span&gt;수정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;rarr;&lt;/span&gt;&lt;span&gt;$sudo docker exec -it pmm-server bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;rarr;&lt;/span&gt;&lt;span&gt;##cd /etc/grafana&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;rarr;&lt;/span&gt;&lt;span&gt;## vi grafana.ini&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;실행시&lt;/span&gt; &lt;span&gt;환경변수로&lt;/span&gt; &lt;span&gt;대입하여&lt;/span&gt; &lt;span&gt;설정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;# Docker run -d -p 80:80 -p 443:443 --volumes-from pmm-data --name pmm-server \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--restart always \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e GF_SMTP_ENABLED=true \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e GF_SMTP_HOST=smtp.gmail.com:587 \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e GF_SMTP_USER=&amp;lt;gmail username&amp;gt; \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e GF_SMTP_PASSWORD=&amp;lt;gmail password&amp;gt; \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e GF_SMTP_SKIP_VERIFY=false \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e GF_SMTP_FROM_ADDRESS=&amp;lt;gmail email address&amp;gt; \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e GF_SMTP_FROM_NAME=Grafana \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;percona/pmm-server:2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SMTP &lt;/span&gt;&lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;완료되었으면&lt;/span&gt; &lt;span&gt;Grafana &lt;/span&gt;&lt;span&gt;대시보드의&lt;/span&gt; &lt;span&gt;좌측&lt;/span&gt; &lt;span&gt;메뉴에서&lt;/span&gt; &lt;span&gt;Alerting &amp;ndash; Contact point&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;218&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwFanb/btsAsAzsdrd/SZfDEzSwlxRAIeYHkstVk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwFanb/btsAsAzsdrd/SZfDEzSwlxRAIeYHkstVk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwFanb/btsAsAzsdrd/SZfDEzSwlxRAIeYHkstVk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwFanb%2FbtsAsAzsdrd%2FSZfDEzSwlxRAIeYHkstVk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;218&quot; height=&quot;340&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;218&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Alerting &lt;/span&gt;&lt;span&gt;페이지의&lt;/span&gt; &lt;span&gt;Contact point &lt;/span&gt;&lt;span&gt;탭&lt;/span&gt; &lt;span&gt;화면에서&lt;/span&gt; &lt;span&gt;[New contact point]&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1491&quot; data-origin-height=&quot;597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C5Mg0/btsAxIQsAmt/Q6MHQMPEmXZzR0NHK9TmR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C5Mg0/btsAxIQsAmt/Q6MHQMPEmXZzR0NHK9TmR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C5Mg0/btsAxIQsAmt/Q6MHQMPEmXZzR0NHK9TmR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC5Mg0%2FbtsAxIQsAmt%2FQ6MHQMPEmXZzR0NHK9TmR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1491&quot; height=&quot;597&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1491&quot; data-origin-height=&quot;597&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;발지자에&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;이름과&lt;/span&gt; &lt;span&gt;수신자의&lt;/span&gt; &lt;span&gt;이메일을&lt;/span&gt; &lt;span&gt;등록한다&lt;/span&gt;&lt;span&gt;. [Test] &lt;/span&gt;&lt;span&gt;버튼을&lt;/span&gt; &lt;span&gt;클릭하면&lt;/span&gt; &lt;span&gt;이메일을&lt;/span&gt; &lt;span&gt;보내어&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;발신이&lt;/span&gt; &lt;span&gt;되는지&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;완료되었으면&lt;/span&gt; &lt;span&gt;[Save contact point]&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1313&quot; data-origin-height=&quot;762&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLFJVl/btsAszHgZbw/zcK0ULCnSVsvcZAeERjTk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLFJVl/btsAszHgZbw/zcK0ULCnSVsvcZAeERjTk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLFJVl/btsAszHgZbw/zcK0ULCnSVsvcZAeERjTk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLFJVl%2FbtsAszHgZbw%2FzcK0ULCnSVsvcZAeERjTk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1313&quot; height=&quot;762&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1313&quot; data-origin-height=&quot;762&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;메일함을&lt;/span&gt; &lt;span&gt;열어&lt;/span&gt; &lt;span&gt;확인해보면&lt;/span&gt; &lt;span&gt;Grafana&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;Test &lt;/span&gt;&lt;span&gt;단계에서&lt;/span&gt; &lt;span&gt;보낸&lt;/span&gt; &lt;span&gt;이메일을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1551&quot; data-origin-height=&quot;707&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QavD5/btsAvtTPc8L/H7PcqMnw2xlutV0o12TxmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QavD5/btsAvtTPc8L/H7PcqMnw2xlutV0o12TxmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QavD5/btsAvtTPc8L/H7PcqMnw2xlutV0o12TxmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQavD5%2FbtsAvtTPc8L%2FH7PcqMnw2xlutV0o12TxmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1551&quot; height=&quot;707&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1551&quot; data-origin-height=&quot;707&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이메일&lt;/span&gt; &lt;span&gt;세팅이&lt;/span&gt; &lt;span&gt;완료되었으므로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;환경에&lt;/span&gt; &lt;span&gt;맞게&lt;/span&gt; &lt;span&gt;템플릿을&lt;/span&gt; &lt;span&gt;활용하거나&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;코드를&lt;/span&gt; &lt;span&gt;작성하여&lt;/span&gt; &lt;span&gt;대시보드에서&lt;/span&gt; &lt;span&gt;이상징후가&lt;/span&gt; &lt;span&gt;감지되었을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;이메일로&lt;/span&gt; &lt;span&gt;받을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이메일로&lt;/span&gt; &lt;span&gt;알람을&lt;/span&gt; &lt;span&gt;받을&lt;/span&gt; &lt;span&gt;때에는&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;알람의&lt;/span&gt; &lt;span&gt;관련&lt;/span&gt; &lt;span&gt;그래프나&lt;/span&gt; &lt;span&gt;기타&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;포함하여&lt;/span&gt; &lt;span&gt;발송할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-11-16 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그라파나&lt;/span&gt;&lt;span&gt;, Grafana, &lt;/span&gt;&lt;span&gt;알림설정&lt;/span&gt;&lt;span&gt;, Alert, email notification, &lt;/span&gt;&lt;span&gt;이메일&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그라파나&lt;/span&gt;&lt;span&gt;SMTP, Grafana.ini&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>alert</category>
      <category>email notification</category>
      <category>grafana</category>
      <category>grafana.ini</category>
      <category>그라파나</category>
      <category>그라파나SMTP</category>
      <category>알림설정</category>
      <category>이메일 설정</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1562</guid>
      <comments>https://sqlmvp.tistory.com/entry/Grafana-Grafana%EC%97%90%EC%84%9C-%EC%9D%B4%EB%A9%94%EC%9D%BC-%EC%95%8C%EB%A6%BC-%EB%B3%B4%EB%82%B4%EA%B8%B0#entry1562comment</comments>
      <pubDate>Fri, 17 Nov 2023 15:02:23 +0900</pubDate>
    </item>
    <item>
      <title>[PMM] PMM Client 실행시 사용되는 동적 포트 변경하기</title>
      <link>https://sqlmvp.tistory.com/entry/PMM-PMM-Client-%EC%8B%A4%ED%96%89%EC%8B%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EB%8A%94-%EB%8F%99%EC%A0%81-%ED%8F%AC%ED%8A%B8-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[PMM] PMM Client &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;실행시 사용되는 동적 포트 변경하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : PMM 2.X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번 포스트는 &lt;span&gt;PMM Client&lt;/span&gt;의 설정 파일을 수정하여 동적 포트의 범위를 제한하는 방법에 대해서 알아본다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PMM&lt;/span&gt;&lt;span&gt;은&lt;span&gt; Percona Monitoring and Management&lt;/span&gt;의 약자로&lt;span&gt; PostgreSQL &lt;/span&gt;및&lt;span&gt; MySQL, MongoDB&lt;/span&gt;를 위한 오픈소스 데이터베이스 모니터링 및 관리 솔루션이다&lt;span&gt;. &lt;/span&gt;이를 통해 데이터베이스 시스템의 상태를 관찰하고&lt;span&gt;, &lt;/span&gt;동작의 새로운 패턴을 탐색하고&lt;span&gt;, &lt;/span&gt;문제를 해결하고&lt;span&gt;, &lt;/span&gt;온프레미스나 클라우드 어디에 있든 데이터베이스 관리 작업을 수행할 수 있다&lt;span&gt;. PMM&lt;/span&gt;은 데이터베이스와 해당 호스트로부터 수천 개의 기본 성능 지표를 수집한다&lt;span&gt;. &lt;/span&gt;그리고 웹&lt;span&gt; UI &lt;/span&gt;대시보드를 제공하여 데이터를 시각화 한다&lt;span&gt;. &lt;/span&gt;추가 기능에는 데이터베이스 상태 평가를 위한 조언을 제공하기도 한다&lt;span&gt;. PMM&lt;/span&gt;에 대한 자세한 내용은 아래 링크를 참고한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL PMM(Percona Monitoring and Management) &lt;/span&gt;&lt;span&gt;소개 및 설치 &lt;span&gt;: &lt;a href=&quot;https://sungwookkang.com/entry/MySQL-PMMPercona-Monitoring-and-Management-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98&quot;&gt;https://sungwookkang.com/entry/MySQL-PMMPercona-Monitoring-and-Management-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PMM Client&lt;/span&gt;&lt;span&gt;는 &lt;span&gt;PMM Server&lt;/span&gt;와 통신을 할 때 다양한 포트를 사용한다&lt;span&gt;. PMM&lt;/span&gt;에서 사용되는 네트워크 포트 정보는 아래 공식 문서를 참고한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;PMM Network : &lt;a href=&quot;https://docs.percona.com/percona-monitoring-and-management/setting-up/server/network.html#ports&quot;&gt;https://docs.percona.com/percona-monitoring-and-management/setting-up/server/network.html#ports&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문서를 살펴보면 &lt;span&gt;PMM Server&lt;/span&gt;로의 연결은 &lt;span&gt;443 &lt;/span&gt;포트를 사용하지만&lt;span&gt;, PMM Client&lt;/span&gt;에서는 동적포트를 사용하여 아웃바운드를 시도한다&lt;span&gt;. &lt;/span&gt;그 이유는 &lt;span&gt;PMM Client Agent&lt;/span&gt;가 실행되는 서버에 혹시나 이미 다른 서비스가 해당 포트를 점유해서 사용하고 있을 수 있기 때문에 설정파일에서 지정한 범위에서 랜덤하게 포트를 할당해서 사용한다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그런데 이와 같이 넓은 범위의 랜덤한 동적포트를 사용하게 되면&lt;span&gt;, &lt;/span&gt;사용자 환경에 따라 아웃바운드까지 제어하는 환경에서는 많은 범위의 포트를 열어야 하기에 보안에 취약해질 수 있다&lt;span&gt;. PMM Client&lt;/span&gt;의 설정 파일을 수정하여 동적 포트의 범위를 제한하는 방법에 대해서 알아본다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PMM Client&lt;/span&gt;&lt;span&gt;가 실행되면 파일에 기록된 설정 값을 읽어 사용한다&lt;span&gt;. &lt;/span&gt;파일은 기본적으로 아래와 같은 경로에 위치한다&lt;span&gt;. &lt;/span&gt;여기에서 &lt;span&gt;min, max&lt;/span&gt;의 범위를 설정하여 사용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/usr/local/percona/pmm2/config/pmm-agent.yaml&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CSniQ/btsAmDirrIg/G3vE3NS5k2gwm0Um0TG841/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CSniQ/btsAmDirrIg/G3vE3NS5k2gwm0Um0TG841/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CSniQ/btsAmDirrIg/G3vE3NS5k2gwm0Um0TG841/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCSniQ%2FbtsAmDirrIg%2FG3vE3NS5k2gwm0Um0TG841%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1186&quot; height=&quot;1020&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PMM Client&lt;/span&gt;&lt;span&gt;가 실행될 때&lt;span&gt;, &lt;/span&gt;기본 경로의 &lt;span&gt;pmm-agent.yaml &lt;/span&gt;파일을 사용할 수도 있지만&lt;span&gt;, &lt;/span&gt;사용자가 별도의 설정 파일을 만들어 사용할 수도 있다&lt;span&gt;. &lt;/span&gt;자세한 사용법은 아래 링크를 참고 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;pmm-agent - PMM Client agent : &lt;a href=&quot;https://docs.percona.com/percona-monitoring-and-management/details/commands/pmm-agent.html#options-and-environment&quot;&gt;https://docs.percona.com/percona-monitoring-and-management/details/commands/pmm-agent.html#options-and-environment&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;공식문서를 요약해보면&lt;span&gt;, &lt;/span&gt;커스텀한 설정 파일을 만들고 &lt;span&gt;PMM Client&lt;/span&gt;를 실행할 때&lt;span&gt;, paths-base &lt;/span&gt;옵션을 사용하여 커스텀한 설정 파일을 사용하게 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;pmm-agent setup --paths-base=/home/user/custom/pmm2 --config-file=pmm-agent-dev.yaml --server-insecure-tls --server-address=127.0.0.1:443 --server-username=admin --server-password=admin&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-11-15 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, PMM, Percona, DB Monitoring, PMM Port change, PMM &lt;/span&gt;&lt;span&gt;포트변경&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>DB Monitoring</category>
      <category>MySQL</category>
      <category>percona</category>
      <category>PMM</category>
      <category>PMM Port change</category>
      <category>PMM 포트변경</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1561</guid>
      <comments>https://sqlmvp.tistory.com/entry/PMM-PMM-Client-%EC%8B%A4%ED%96%89%EC%8B%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EB%8A%94-%EB%8F%99%EC%A0%81-%ED%8F%AC%ED%8A%B8-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0#entry1561comment</comments>
      <pubDate>Wed, 15 Nov 2023 15:20:19 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL에서 caching_sha2_password 특징 및 mysql_native_password 사용하기</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL%EC%97%90%EC%84%9C-cachingsha2password-%ED%8A%B9%EC%A7%95-%EB%B0%8F-mysqlnativepassword-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서 &lt;span&gt;caching_sha2_password &lt;/span&gt;특징 및 &lt;span&gt;mysql_native_password &lt;/span&gt;사용하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL 8.0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;은 다양한 계정 인증 플러그인 방식을 지원하고 있다&lt;span&gt;. &lt;/span&gt;현재 공식 매뉴얼에 따르면 &lt;span&gt;13&lt;/span&gt;개의 인증 방식을 제공하고 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/authentication-plugins.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/authentication-plugins.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번 포스트에서는 다양한 플러그인 중에 &lt;span&gt;MySQL 8&lt;/span&gt;버전부터 변경된 인증 방식인 &lt;span&gt;caching sha2_password&lt;/span&gt;에 대해서 알아보고 &lt;span&gt;MySQL 8&lt;/span&gt;버전에서 이전 버전의 &lt;span&gt;mysql_native_password&lt;/span&gt;를 사용하는 방법에 대해서 알아본다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.7&lt;/span&gt;&lt;span&gt;버전까지는 기본 인증 방식이 &lt;span&gt;mysql_native_password&lt;/span&gt;이다&lt;span&gt;. MySQL 8&lt;/span&gt;버전 부터는 기본 인증방식이 &lt;span&gt;caching_sha2_password &lt;/span&gt;방식으로 변경되었다&lt;span&gt;. mysql_native_password&lt;/span&gt;는 계정 비밀번호에 &lt;span&gt;SHA-1 &lt;/span&gt;알고리즘을 사용하여 해시된 값을 저장해두고 사용자가 로그인시 입력한 비밀번호의 해시 값을 비교하는 방식이었다&lt;span&gt;. &lt;/span&gt;즉&lt;span&gt;, &lt;/span&gt;해시 값을 저장하여 비교하기 때문에 다른 계정에서 동일한 비밀번호를 사용한다면 &lt;span&gt;MySQL&lt;/span&gt;에서는 동일한 해시값을 가지고 있다&lt;span&gt;. &lt;/span&gt;그래서 해시값에 따라 비밀번호를 유추할 가능성이 있는 취약점이 존재한다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8 &lt;/span&gt;&lt;span&gt;버전부터 &lt;span&gt;caching_sha2_password&lt;/span&gt;를 사용하는데&lt;span&gt;, &lt;/span&gt;이 방식은 비밀번호를 해시하여 저장할 때&lt;span&gt;, salt &lt;/span&gt;키를 사용하여 동일한 비밀번호에 대해서도 서로 다른 해시 값이 생성되도록 하였고&lt;span&gt;, &lt;/span&gt;기존의 암호화 방식보다 강화된 &lt;span&gt;256&lt;/span&gt;비트 알고리즘을 사용하였다&lt;span&gt;. &lt;/span&gt;그래서 동일한 비밀번호를 사용하더라도 저장된 해시값이 다르기 때문에 유추의 어렵도록 보안이 강화되었다&lt;span&gt;. &lt;/span&gt;하지만 로그인시 해시값을 비교하기 위한 리소스가 증가하게 되어 빈번한 로그인시 오버헤드에 따른 성능 저하가 발생할 수 있어 이러한 부분을 개선하고자 로그인한 해시값을 서버측 메모리에 캐싱하여 재사용하는 방식으로 연결에 대한 인증 성능을 높였다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 스크립트를 사용하면 현재 운영중인 &lt;span&gt;MySQL&lt;/span&gt;의 기본 인증방식을 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; show variables like 'default_authentication_plugin';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJsXIV/btsAiBKHtbb/0tG47ApFAsM1KTgySqZ10K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJsXIV/btsAiBKHtbb/0tG47ApFAsM1KTgySqZ10K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJsXIV/btsAiBKHtbb/0tG47ApFAsM1KTgySqZ10K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJsXIV%2FbtsAiBKHtbb%2F0tG47ApFAsM1KTgySqZ10K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;742&quot; height=&quot;206&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;206&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본 인증 방식이 변경하려면 &lt;span&gt;my.cnf&lt;/span&gt;에서 &lt;span&gt;mysqld&lt;/span&gt;에서 기본 인증으로 사용할 플러그인을 명시하여 변경할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[mysqld]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;default_authentication_plugin=caching_sha2_password&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 스크립트는 기본 인증 방식을 변경하는 것은 아니며 &lt;span&gt;MySQL8&lt;/span&gt;에서 &lt;span&gt;mysql_native_password&lt;/span&gt;를 사용할 수 있도록 플러그인을 추가한 것이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;authentication-policy=mysql_native_password&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;계정을 생성할 때&lt;span&gt;, &lt;/span&gt;사용할 플러그인을 명시하면 해당 플러그인을 사용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;--caching_sha2_password&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; CREATE USER 'user'@'%' IDENTIFIED WITH caching_sha2_password BY 'password';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--mysql_native_password&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;생성된 계정의 &lt;span&gt;plugin &lt;/span&gt;타입을 조회해 보면 사용된 비밀번호 암호화시 사용된 플러그인을 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; select user, plugin from mysql.user;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;578&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boJZXq/btsAeD3kkE9/HRAOBYefFE8hfJlRJn4g00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boJZXq/btsAeD3kkE9/HRAOBYefFE8hfJlRJn4g00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boJZXq/btsAeD3kkE9/HRAOBYefFE8hfJlRJn4g00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboJZXq%2FbtsAeD3kkE9%2FHRAOBYefFE8hfJlRJn4g00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;676&quot; height=&quot;578&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;578&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-11-13 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, MySQL Authentication Plugin, MySQL Password, &lt;/span&gt;&lt;span&gt;마이에스큐엘&lt;span&gt;, &lt;/span&gt;인증방식 변경&lt;span&gt;, caching_sha2_password, mysql_native_password&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>caching_sha2_password</category>
      <category>MySQL</category>
      <category>MySQL Authentication Plugin</category>
      <category>mysql password</category>
      <category>mysql_native_password</category>
      <category>마이에스큐엘</category>
      <category>인증방식 변경</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1560</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL%EC%97%90%EC%84%9C-cachingsha2password-%ED%8A%B9%EC%A7%95-%EB%B0%8F-mysqlnativepassword-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#entry1560comment</comments>
      <pubDate>Mon, 13 Nov 2023 13:59:56 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL에서 SSL 인증서 사용하기</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL%EC%97%90%EC%84%9C-SSL-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서 &lt;span&gt;SSL &lt;/span&gt;인증서 사용하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL 8.0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;에서 &lt;span&gt;SSL &lt;/span&gt;통신을 위해서는 인증서를 사용하게 되는데&lt;span&gt;, &lt;/span&gt;이때 인증서는 &lt;span&gt;MySQL&lt;/span&gt;을 시작할 때 자동으로 생성되기도 하며&lt;span&gt;, &lt;/span&gt;수동으로 생성할 경우 &lt;span&gt;openssl &lt;/span&gt;등을 사용하여 생성할 수 있다&lt;span&gt;. &lt;/span&gt;또한 타사 서비스와 연동이 필요한 경우 타사의 인증서를 등록해서 사용할 경우가 있는데&lt;span&gt;, &lt;/span&gt;이때 &lt;span&gt;pem &lt;/span&gt;확장자 형식으로 인증서를 변환해서 사용할 수 있다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;시작 시 생성되는 인증서는 보통 데이터 디렉토리&lt;span&gt;(data directory)&lt;/span&gt;에 생성되며 아래와 같은 인증서 파일이 생성된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;292&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rXFm3/btsz5mG6NEV/xbgnJypVDmHNlYDivXMjN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rXFm3/btsz5mG6NEV/xbgnJypVDmHNlYDivXMjN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rXFm3/btsz5mG6NEV/xbgnJypVDmHNlYDivXMjN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrXFm3%2Fbtsz5mG6NEV%2FxbgnJypVDmHNlYDivXMjN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;748&quot; height=&quot;292&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;292&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ca.pem : self-signed CA cetificate&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ca-key.pem : CA private key&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;private_key.pem&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;public_key.pem&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;server-cert.pem : Server certificate&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;server-key.pem : Server private key&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;client-cert.pem : Client certificate&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;client-key.pem : Client private key&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재 서버의 인증서를 다른 서버에 등록하여 사용할 때에는 &lt;span&gt;ca.pem, server-cert.pem, server-key.pem &lt;/span&gt;파일을 복사하여 다른 &lt;span&gt;MySQL &lt;/span&gt;서버에 등록하여 사용할 수 있다&lt;span&gt;. &lt;/span&gt;파일을 복사하였으면&lt;span&gt;, my.cnf&lt;/span&gt;에서 인증서의 위치를 설정하여 서비스에 사용할 수 있도록 해야한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[my.cnf]&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[mysqld]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ssl-ca=/var/lib/mysql/ca.pem&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ssl-cert=/var/lib/mysql/server-cert.pem&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ssl-key=/var/lib/mysql/server-key.pem&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;my.cnf &lt;/span&gt;&lt;span&gt;수정이 완료되었으면 &lt;span&gt;mysql&lt;/span&gt;을 재시작 한다&lt;span&gt;. mysql&lt;/span&gt;에 접속하여 &lt;span&gt;SSL&lt;/span&gt;과 관련된 상태를 살펴보면 현재 인증서 작동 유무를 확인할 수 있다&lt;span&gt;. have_openssl, have_ssl&lt;/span&gt;이 &lt;span&gt;YES&lt;/span&gt;로 표시되면 인증서가 정상적으로 등록되어 사용중인것으로 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;888&quot; data-origin-height=&quot;938&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CW4s9/btsz1f3KU03/x2vq4gHd1BGatHIR08pEr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CW4s9/btsz1f3KU03/x2vq4gHd1BGatHIR08pEr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CW4s9/btsz1f3KU03/x2vq4gHd1BGatHIR08pEr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCW4s9%2Fbtsz1f3KU03%2Fx2vq4gHd1BGatHIR08pEr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;888&quot; height=&quot;938&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;888&quot; data-origin-height=&quot;938&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;접근을 위한 사용자 계정 생성시 &lt;span&gt;SSL&lt;/span&gt;을 사용한 권한을 생성할 때에는 &lt;span&gt;require SSL&lt;/span&gt;을 명시하여 생성한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;grant all privileges on *.* to 'app_user'@'%' identified by 'password' require SSL;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;CLI&lt;/span&gt;&lt;span&gt;에서 &lt;span&gt;SSL&lt;/span&gt;을 사용한 접속은 아래 스크립트처럼 클라이언트의 인증서키를 명시하고 접속한다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql -uapp_user -p -h172.0.0.1 --ssl --ssl-ca=cert.pem&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-11-09 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, SSL, &lt;/span&gt;&lt;span&gt;인증서통신&lt;span&gt;, &lt;/span&gt;인증서등록&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>ssl</category>
      <category>인증서등록</category>
      <category>인증서통신</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1559</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL%EC%97%90%EC%84%9C-SSL-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#entry1559comment</comments>
      <pubDate>Thu, 9 Nov 2023 14:55:27 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] [InnoDB] Failed to create check sector file, errno:13 Please confirm O_DIRECT is supported 오류 및 해결</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-InnoDB-Failed-to-create-check-sector-file-errno13-Please-confirm-ODIRECT-is-supported-%EC%98%A4%EB%A5%98-%EB%B0%8F-%ED%95%B4%EA%B2%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] [InnoDB] Failed to create check sector file, errno:13 Please confirm O_DIRECT is supported &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;오류 및 해결&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL 8.0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;을 시작할 때&lt;span&gt;, &lt;/span&gt;정상적으로 서비스가 시작되지 않았으며 아래와 같은 오류 로그를 확인할 수 있었다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[ERROR] [MY-012655] [InnoDB] Failed to create check sector file, errno:13 Please confirm O_DIRECT is supported and remove the file /var/lib/check_sector_size if it exists.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Error 13&lt;/span&gt;&lt;span&gt;에 대해서 찾아보면 공식 매뉴얼에는 퍼미션에 관련된 내용으로 안내 되어 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/starting-server-troubleshooting.html&quot;&gt;https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/starting-server-troubleshooting.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;If you get Errcode 13 (which means Permission denied) when starting mysqld, this means that the privileges of the data directory or its contents do not permit server access. In this case, you change the permissions for the involved files and directories so that the server has the right to use them. You can also start the server as root, but this raises security issues and should be avoided.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하지만 해당 이슈는 &lt;span&gt;mysql.cnf&lt;/span&gt;에 설정된 &lt;span&gt;innodb_data_home_dir &lt;/span&gt;파라메터에 설정된 경로에서 마지막 슬래시&lt;span&gt;(/)&lt;/span&gt;가 누락되어 발생한 오류이다&lt;span&gt;. &lt;/span&gt;해결 방법은 경로 마지막에 슬래시&lt;span&gt;(/)&lt;/span&gt;만 추가하면 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;my.cnf&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;innodb_data_home_dir = /var/lib/mysql/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-11-02 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, innodb, o_direct, error13&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>error13</category>
      <category>innodb</category>
      <category>MySQL</category>
      <category>O_DIRECT</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1558</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-InnoDB-Failed-to-create-check-sector-file-errno13-Please-confirm-ODIRECT-is-supported-%EC%98%A4%EB%A5%98-%EB%B0%8F-%ED%95%B4%EA%B2%B0#entry1558comment</comments>
      <pubDate>Thu, 2 Nov 2023 15:16:59 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL 저장 프로시저 - 소개</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL-%EC%A0%80%EC%9E%A5-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EC%86%8C%EA%B0%9C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;저장 프로시저 &lt;span&gt;- &lt;/span&gt;소개&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;저장 프로시저와 장&lt;span&gt;, &lt;/span&gt;단점에 대해서 알아본다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 스크립트는 테이블에 있는 데이터를 조회한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;customer_id,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;first_name,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;last_name,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;email&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;FROM customer&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ORDER BY first_name;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbwiyu/btsyYnnk1Cg/4AkQ2dsaH0fb3xerHuaVJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbwiyu/btsyYnnk1Cg/4AkQ2dsaH0fb3xerHuaVJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbwiyu/btsyYnnk1Cg/4AkQ2dsaH0fb3xerHuaVJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbwiyu%2FbtsyYnnk1Cg%2F4AkQ2dsaH0fb3xerHuaVJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;517&quot; height=&quot;386&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;386&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL Workbench &lt;/span&gt;&lt;span&gt;또는 &lt;span&gt;mysql &lt;/span&gt;셸을 사용하여 &lt;span&gt;MySQL Server&lt;/span&gt;에 쿼리를 실행하면 &lt;span&gt;MySQL&lt;/span&gt;은 쿼리를 처리하고 결과 집합을 반환한다&lt;span&gt;. &lt;/span&gt;나중에 실행하기 위해 이러한 쿼리를 데이터베이스 서버에 저장하기 위해 저장 프로시저를 사용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 스크립트에서 &lt;span&gt;CREATE PROCEDURE &lt;/span&gt;문은 위의 쿼리를 래핑하여 새 저장 프로시저를 만든다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;DELIMITER $$&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;CREATE PROCEDURE GetCustomers()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;customer_id,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;first_name,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;last_name,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;email&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;FROM customer&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ORDER BY first_name;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;END$$&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;DELIMITER ;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;정의에 따르면 저장 프로시저는 &lt;span&gt;MySQL &lt;/span&gt;서버 내에 저장된 선언적 &lt;span&gt;SQL &lt;/span&gt;문의 세그먼트이다&lt;span&gt;. &lt;/span&gt;이 예에서는 &lt;span&gt;GetCustomers()&lt;/span&gt;라는 이름으로 생성하였다&lt;span&gt;. &lt;/span&gt;저장프로시저의 호출은 &lt;span&gt;CALL &lt;/span&gt;명령문을 사용한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;CALL GetCustomers();&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b13mco/btsyVkdRvWD/2j62coWijgSFoScbgnN38K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b13mco/btsyVkdRvWD/2j62coWijgSFoScbgnN38K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b13mco/btsyVkdRvWD/2j62coWijgSFoScbgnN38K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb13mco%2FbtsyVkdRvWD%2F2j62coWijgSFoScbgnN38K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;330&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;330&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;저장 프로시저를 호출하면 동일한 결과가 나타난다&lt;span&gt;. &lt;/span&gt;저장 프로시저를 처음 호출하면 &lt;span&gt;MySQL&lt;/span&gt;은 다음을 수행한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;첫째&lt;span&gt;, &lt;/span&gt;데이터베이스 카탈로그에서 이름으로 저장 프로시저를 찾는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;둘째&lt;span&gt;, &lt;/span&gt;저장 프로시저의 코드를 컴파일 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;셋째&lt;span&gt;, &lt;/span&gt;컴파일된 저장 프로시저를 캐시라고 알려진 메모리 영역에 배치한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;넷째&lt;span&gt;, &lt;/span&gt;저장 프로시저를 실행한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;동일한 세션에서 동일한 저장 프로시저를 다시 호출하면 &lt;span&gt;MySQL&lt;/span&gt;은 다시 컴파일할 필요 없이 캐시에서 저장 프로시저를 실행한다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;저장 프로시저에는 매개 변수가 있어서 값을 전달하고 결과를 다시 가져올 수 있다&lt;span&gt;. &lt;/span&gt;예를 들어 국가 및 도시별로 고객을 반환하는 저장 프로시저가 있을 수 있다&lt;span&gt;. &lt;/span&gt;이 경우 국가와 도시는 저장 프로시저의 매개변수이다&lt;span&gt;. &lt;/span&gt;저장 프로시저에는 &lt;span&gt;IF, CASE, LOOP&lt;/span&gt;와 같은 제어문이 포함될 수 있다&lt;span&gt;. &lt;/span&gt;저장 프로시저는 다른 저장 프로시저나 저장 함수를 호출할 수 있으므로 코드를 보다 효과적으로 구성할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;저장 프로시저의 장점은 다음과 같다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;네트워크 트래픽 감소 &lt;span&gt;: &lt;/span&gt;저장 프로시저는 애플리케이션과 &lt;span&gt;MySQL &lt;/span&gt;서버간의 네트워크 트래픽을 줄이는 데 도움이 된다&lt;span&gt;. &lt;/span&gt;왜냐하면 애플리케이션은 긴 &lt;span&gt;SQL&lt;/span&gt;문을 여러 개 보내는 대신&lt;span&gt;, &lt;/span&gt;저장 프로시저의 이름과 매개변수만 보내면 되기 때문이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터베이스에 비즈니스 논리 중앙 집중화 &lt;span&gt;: &lt;/span&gt;저장 프로시저를 사용하여 여러 애플리케이션에서 재사용할 수 있는 비즈니스 논리를 구현할 수 있다&lt;span&gt;. &lt;/span&gt;저장 프로시저는 많은 애플리케이션에서 동일한 논리를 복제하는 노력을 줄이고 데이터베이스의 일관성을 높이는데 도움이 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터베이스 보안 강화 &lt;span&gt;: &lt;/span&gt;데이터베이스 관리자는 기본 테이블에 대한 권한을 부여하지 않고 특정 저장 프로시저에만 액세스하는 애플리케이션에 적절한 권한을 부여할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;저장 프로시저의 단점은 다음과 같다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;리소스 사용량 &lt;span&gt;: &lt;/span&gt;저장 프로시저를 많이 사용하는 모든 연결의 메모리 사용이 크게 늘어난다&lt;span&gt;. &lt;/span&gt;게다가 저장 프로시저에서 많은 수의 논리적 작업을 과도하게 사용하면 &lt;span&gt;MySQL&lt;/span&gt;이 논리 작업에 적합하게 설계되지 않았기 때문에 &lt;span&gt;CPU &lt;/span&gt;사용량이 증가한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;문제 해결 &lt;span&gt;: &lt;/span&gt;저장 프로시저를 디버깅하기가 어렵다&lt;span&gt;. MySQL&lt;/span&gt;은 다른 데이터베이스 제품과 다르게 저장 프로시저를 디버깅하는 기능을 제공하지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;유지 관리 &lt;span&gt;: &lt;/span&gt;저장 프로시저를 개발하고 유지 관리하려면 모든 응용 프로그램 개발자가 보유하지 않은 전문 기술이 필요한 경우가 많다&lt;span&gt;. &lt;/span&gt;이로 인해 애플리케이션 개발 및 유지 관리 모두에 문제가 발생할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-10-23 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, Stored Procedure, &lt;/span&gt;&lt;span&gt;저장프로시저&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>stored procedure</category>
      <category>저장프로시저</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1557</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL-%EC%A0%80%EC%9E%A5-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EC%86%8C%EA%B0%9C#entry1557comment</comments>
      <pubDate>Mon, 23 Oct 2023 15:51:33 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL에서 기본키로 UUID를 선택했을 때의 장단점 및 특징</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL%EC%97%90%EC%84%9C-%EA%B8%B0%EB%B3%B8%ED%82%A4%EB%A1%9C-UUID%EB%A5%BC-%EC%84%A0%ED%83%9D%ED%96%88%EC%9D%84-%EB%95%8C%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90-%EB%B0%8F-%ED%8A%B9%EC%A7%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서 기본키로 &lt;span&gt;UUID&lt;/span&gt;를 선택했을 때의 장단점 및 특징&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL PXC 8.0.X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL UUID&lt;/span&gt;&lt;span&gt;에 대해서 알아보고 테이블의 기본키로 사용하는 방법 및 &lt;span&gt;UUID&lt;/span&gt;를 기본키로 했을 때의 장단점에 대해서 알아본다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;UUID&lt;/span&gt;&lt;span&gt;는 &lt;span&gt;universally unique Identifier&lt;/span&gt;의 약자로 &lt;span&gt;RFC 4122&lt;/span&gt;를 기반으로 정의된다&lt;span&gt;. UUID&lt;/span&gt;는 공간과 시간에 있어서 전 세계적으로 고유한 숫자로 설계되었다&lt;span&gt;. &lt;/span&gt;두 개의 &lt;span&gt;UUID &lt;/span&gt;값은 두개의 독립적인 서버에 생성되더라도 서로 구별되어야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;에서 &lt;span&gt;UUID&lt;/span&gt;값은 다음 형식의 &lt;span&gt;5&lt;/span&gt;개의 &lt;span&gt;16&lt;/span&gt;진수 숫자로 구성된 &lt;span&gt;utf8 &lt;/span&gt;문자열로 표시되는 &lt;span&gt;128&lt;/span&gt;비트 숫자이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;UUID &lt;/span&gt;&lt;span&gt;값을 생성하려면 &lt;span&gt;UUID() &lt;/span&gt;함수를 사용하며&lt;span&gt;, RFC 4122&lt;/span&gt;에 설명된 &lt;span&gt;UUID &lt;/span&gt;버전&lt;span&gt;1&lt;/span&gt;에 따라 &lt;span&gt;UUID &lt;/span&gt;값을 반환한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT UUID()&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B1Y8b/btsyR6FUkXJ/AeAIIk1oRxOKfJgIRFOh8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B1Y8b/btsyR6FUkXJ/AeAIIk1oRxOKfJgIRFOh8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B1Y8b/btsyR6FUkXJ/AeAIIk1oRxOKfJgIRFOh8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB1Y8b%2FbtsyR6FUkXJ%2FAeAIIk1oRxOKfJgIRFOh8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;146&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본키에 &lt;span&gt;UUID&lt;/span&gt;를 사용하면 다음과 같은 이점이 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;UUID &lt;/span&gt;&lt;span&gt;값은 테이블&lt;span&gt;, &lt;/span&gt;데이터베이스&lt;span&gt;, &lt;/span&gt;심지어 다른 데이터베이스의 행을 병합하거나 서버 간에 데이터베이스를 배포할 수 있는 서버에서도 고유하다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;UUID &lt;/span&gt;&lt;span&gt;값은 데이터에 대한 정보를 노출하지 않으므로&lt;span&gt; URL&lt;/span&gt;에서 사용하는 것이 더 안전하다&lt;span&gt;. &lt;/span&gt;예를 들어&lt;span&gt; ID&lt;/span&gt;가&lt;span&gt; 10&lt;/span&gt;인 고객이&lt;span&gt; &lt;a href=&quot;http://www.example.com/customers/10/URL&quot;&gt;http://www.example.com/customers/10/URL&lt;/a&gt;&lt;/span&gt;을 통해 자신의 계정에 접속하면 고객&lt;span&gt; 11, 12 &lt;/span&gt;등이 있다고 쉽게 추측할 수 있으며 이것이 공격 대상이 될 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;UUID &lt;/span&gt;&lt;span&gt;값은 데이터베이스 서버로의 왕복을 피하는 어디에서나 생성될 수 있다&lt;span&gt;. &lt;/span&gt;또한 애플리케이션의 논리를 단순화한다&lt;span&gt;. &lt;/span&gt;예를 들어 상위 테이블과 하위 테이블에 데이터를 삽입하려면 먼저 상위 테이블에 삽입하고 생성된&lt;span&gt; ID&lt;/span&gt;를 가져온 다음 하위 테이블에 데이터를 삽입해야 한다&lt;span&gt;. UUID&lt;/span&gt;를 사용하면 상위 테이블의 기본 키 값을 미리 생성하고 트랜잭션 내에서 동시에 상위 테이블과 하위 테이블 모두에 행을 삽입할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하지만 아래와 같은 단점도 존재한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;UUID &lt;/span&gt;&lt;span&gt;값&lt;span&gt;(16&lt;/span&gt;바이트&lt;span&gt;)&lt;/span&gt;을 저장하려면 정수&lt;span&gt;(4&lt;/span&gt;바이트&lt;span&gt;) &lt;/span&gt;또는 큰 정수&lt;span&gt;(8&lt;/span&gt;바이트&lt;span&gt;)&lt;/span&gt;보다 더 많은 저장 공간이 필요하다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;WHERE id = 'df3b7cb7-6a95-11e7-8846-b05adad3f0ae'&lt;/span&gt;&lt;span&gt;처럼 사용해야 해서 디버깅이 어려울 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;UUID &lt;/span&gt;&lt;span&gt;값을 사용하면 크기 및 정렬 불가 문제로 인해 성능 문제가 발생할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;에서는&lt;span&gt; UUID &lt;/span&gt;값을 간단한 형식&lt;span&gt;(BINARY)&lt;/span&gt;으로 저장하고 다음 기능을 사용하여 사람이 읽을 수 있는 형식&lt;span&gt;(VARCHAR)&lt;/span&gt;으로 표시할 수 있다&lt;span&gt;. &lt;/span&gt;다만 해당 함수는 &lt;span&gt;MySQL 8.0&lt;/span&gt;이상에서만 사용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;UUID_TO_BIN&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;BIN_TO_UUID&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;IS_UUID&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;UUID_TO_BIN() &lt;/span&gt;&lt;span&gt;함수는&lt;span&gt; UUID&lt;/span&gt;를 사람이 읽을 수 있는 형식&lt;span&gt;(VARCHAR)&lt;/span&gt;에서 압축 포맷&lt;span&gt;(BINARY) &lt;/span&gt;형식으로 변환하여 저장하고&lt;span&gt;, BIN_TO_UUID()&lt;/span&gt;는&lt;span&gt; UUID&lt;/span&gt;를 압축 포맷&lt;span&gt;(BINARY) &lt;/span&gt;형식에서 사람이 읽을 수 있는 형식&lt;span&gt;(VARCHAR)&lt;/span&gt;으로 변환하여 표시한다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;IS_UUID() &lt;/span&gt;&lt;span&gt;함수는 유효한 문자열 형식&lt;span&gt; UUID&lt;/span&gt;인 경우 함수는&lt;span&gt; 1&lt;/span&gt;을 반환한다&lt;span&gt;. &lt;/span&gt;인수가 유효한 문자열 형식&lt;span&gt; UUID&lt;/span&gt;가 아닌 경우 함수는&lt;span&gt; 0&lt;/span&gt;을 반환한다&lt;span&gt;. IS_UUID&lt;/span&gt;인수가&lt;span&gt; NULL, IS_UUID()&lt;/span&gt;인 경우 함수는&lt;span&gt; NULL&lt;/span&gt;를 반환한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음은 &lt;span&gt;MySQL&lt;/span&gt;의 유효한 문자열 형식 &lt;span&gt;UUID&lt;/span&gt;이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;aaaaaaaabbbbccccddddeeeeeeeeeeee&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 스크립트는 &lt;span&gt;UUID&lt;/span&gt;를 기본키로 사용하는 테이블 생성 스크립트이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;CREATE TABLE customers (&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;id BINARY(16) PRIMARY KEY,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;name VARCHAR(255)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;열에 &lt;span&gt;UUID &lt;/span&gt;값을 삽입하려면 다음과 같이 &lt;span&gt;UUID() &lt;/span&gt;및&lt;span&gt; UUID_TO_BIN()&lt;/span&gt;함수를 사용한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;INSERT INTO customers(id, name)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;VALUES(UUID_TO_BIN(UUID()),'John Doe'),&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(UUID_TO_BIN(UUID()),'Will Smith'),&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(UUID_TO_BIN(UUID()),'Mary Jane');&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj6VYW/btsyRWDjAdC/uukNbcHaAtzbDKhAbQVQa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj6VYW/btsyRWDjAdC/uukNbcHaAtzbDKhAbQVQa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj6VYW/btsyRWDjAdC/uukNbcHaAtzbDKhAbQVQa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj6VYW%2FbtsyRWDjAdC%2FuukNbcHaAtzbDKhAbQVQa0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;429&quot; height=&quot;357&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;357&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;UUID &lt;/span&gt;&lt;span&gt;열에서 데이터를 쿼리하려면&lt;span&gt; BIN_TO_UUID()&lt;/span&gt;함수를 사용하여 이진 형식을 사람이 읽을 수 있는 형식으로 변환한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;BIN_TO_UUID(id) id, &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;customers;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;219&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xAb4e/btsyTiMPY54/X1GTaiMTIvuRWdj8knhWj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xAb4e/btsyTiMPY54/X1GTaiMTIvuRWdj8knhWj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xAb4e/btsyTiMPY54/X1GTaiMTIvuRWdj8knhWj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxAb4e%2FbtsyTiMPY54%2FX1GTaiMTIvuRWdj8knhWj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;432&quot; height=&quot;219&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;219&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.mysqltutorial.org/mysql-uuid/&quot;&gt;https://www.mysqltutorial.org/mysql-uuid/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-10-19 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, MySQL UUID&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>MySQL UUID</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1556</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL%EC%97%90%EC%84%9C-%EA%B8%B0%EB%B3%B8%ED%82%A4%EB%A1%9C-UUID%EB%A5%BC-%EC%84%A0%ED%83%9D%ED%96%88%EC%9D%84-%EB%95%8C%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90-%EB%B0%8F-%ED%8A%B9%EC%A7%95#entry1556comment</comments>
      <pubDate>Fri, 20 Oct 2023 15:18:02 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7에서 8.0 업그레이드시 timeout 문제 및 해결 방법</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL-PXC-Percona-XtraDB-Cluster-57%EC%97%90%EC%84%9C-80-%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C%EC%8B%9C-timeout-%EB%AC%B8%EC%A0%9C-%EB%B0%8F-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서 &lt;span&gt;8.0 &lt;/span&gt;업그레이드시 &lt;span&gt;timeout &lt;/span&gt;문제 및 해결 방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL PXC 8.0.X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL PXC (Percona XtraDB Cluster) 5.7&lt;/span&gt;&lt;span&gt;환경에서 &lt;span&gt;8.0&lt;/span&gt;으로 업그레이드 진행중에 발생한 이슈가 있어&lt;span&gt;, &lt;/span&gt;문제 및 해결 방법에 대해서 정리한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Problem]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기존에 운영중이던 &lt;span&gt;MySQL PXC 5.7.X &lt;/span&gt;버전에서 &lt;span&gt;MySQL 8.0.X&lt;/span&gt;로 업그레이드 작업이 필요 했으며&lt;span&gt;, &lt;/span&gt;업그레이드를 위해 여러 상황을 검토한 결과 &lt;span&gt;XtraBackup&lt;/span&gt;을 사용하여 백업&lt;span&gt;(5.7) &lt;/span&gt;및 복원&lt;span&gt;(8.0)&lt;/span&gt;으로 진행하였다&lt;span&gt;. &lt;/span&gt;복원 과정 &lt;span&gt;(&lt;/span&gt;리스토어 및 서비스 시작&lt;span&gt;)&lt;/span&gt;에서 &lt;span&gt;timeout &lt;/span&gt;오류가 발생하였다&lt;span&gt;. &lt;/span&gt;해당 데이터베이스는 테이블이 약 &lt;span&gt;70&lt;/span&gt;만개 존재한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;root@mysqlpxc:/etc/default# systemctl start mysql@bootstrap.service&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Job for mysql@bootstrap.service failed because a timeout was exceeded.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;See &quot;systemctl status mysql@bootstrap.service&quot; and &quot;journalctl -xeu mysql@bootstrap.service&quot; for details.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;저널로그를 확인해보면 타임아웃으로 인해 실패한 것을 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1537 (n/a) with signal SIGKILL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1540 (n/a) with signal SIGKILL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1541 (n/a) with signal SIGKILL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1542 (n/a) with signal SIGKILL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1543 (n/a) with signal SIGKILL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1544 (boot) with signal SIGKILL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Killing process 1545 (n/a) with signal SIGKILL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Failed with result 'timeout'.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: Failed to start Percona XtraDB Cluster with config /etc/default/mysql.bootstrap.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Oct 17 23:54:06 coveredcare02lv systemd[1]: mysql@bootstrap.service: Consumed 1min 15.669s CPU time.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Solutions]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;부트스트랩 설정에서 서비스 시작에 대한 타임아웃을 기본 &lt;span&gt;1&lt;/span&gt;분&lt;span&gt;40&lt;/span&gt;초로 되어 있던 것을 무제한&lt;span&gt;(TimeoutStartSec=0)&lt;/span&gt;으로 변경한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;부트스트랩 위치&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;vi /usr/lib/systemd/system/'mysql@.service'&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;수정 코드 부분&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[Service]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;TimeoutStartSec=0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;부트스트랩을 수정하고&lt;span&gt;, &lt;/span&gt;서비스를 시작한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;systemctl start mysql@bootstrap.service&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;410&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nRHMA/btsyLs3H0BW/kYChE7DU3ASDfKZTKTpfH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nRHMA/btsyLs3H0BW/kYChE7DU3ASDfKZTKTpfH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nRHMA/btsyLs3H0BW/kYChE7DU3ASDfKZTKTpfH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnRHMA%2FbtsyLs3H0BW%2FkYChE7DU3ASDfKZTKTpfH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1004&quot; height=&quot;410&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-10-19 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL upgrade, MySQL &lt;/span&gt;&lt;span&gt;업그레이드&lt;span&gt;, MySQL PXC upgrade, MySQL Percona, MySQL Galera Cluster, MySQL &lt;/span&gt;복원&lt;span&gt;, MySQL &lt;/span&gt;마이그레이션&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1555</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL-PXC-Percona-XtraDB-Cluster-57%EC%97%90%EC%84%9C-80-%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C%EC%8B%9C-timeout-%EB%AC%B8%EC%A0%9C-%EB%B0%8F-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95#entry1555comment</comments>
      <pubDate>Thu, 19 Oct 2023 11:26:37 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL의 다양한 주석(comment) 방법 살펴보기</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL%EC%9D%98-%EB%8B%A4%EC%96%91%ED%95%9C-%EC%A3%BC%EC%84%9Dcomment-%EB%B0%A9%EB%B2%95-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;의 다양한 주석&lt;span&gt;(comment) &lt;/span&gt;방법 살펴보기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;주석은 데이터베이스 스키마&lt;span&gt;, SQL &lt;/span&gt;쿼리 및 저장 프로시저를 문서화하는데 필수적이다&lt;span&gt;. &lt;/span&gt;특히 주석의 작성은 다른 개발자가 코드의 목적을 이해하는데 도움이 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;한 줄 주석&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;한 줄 주석은 한 줄에 주석을 추가하는데 사용된다&lt;span&gt;. MySQL&lt;/span&gt;은 두가지 유형의 한 줄 주석을 지원한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-- (&lt;/span&gt;&lt;span&gt;하이픈 두개&lt;span&gt;) : &lt;/span&gt;두개의 하이픈 뒤에 텍스트는 주석으로 사용되며&lt;span&gt;, &lt;/span&gt;같은 줄에 이어지는 모든 텍스트는 주석으로 처리 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;-- This is a single-line comment&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT * FROM employees;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;# (&lt;/span&gt;&lt;span&gt;해시&lt;span&gt;) : &lt;/span&gt;해시 기호를 사용하여 한 줄 주석을 추가할 수 있다&lt;span&gt;. &lt;/span&gt;같은 줄에 이어지는 모든 텍스트는 추석으로 처리된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;# This is another single-line comment&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT * FROM customers;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;여러 줄 주석&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여러 줄 주석을 사용하면 여러 줄에 걸쳐 주석을 추가할 수 있다&lt;span&gt;. MySQL&lt;/span&gt;은 두 가지 유형의 여러 줄 주석을 지원한다&lt;span&gt;. &lt;/span&gt;여러 줄 주석은 &lt;span&gt;/* &amp;hellip; */ &lt;/span&gt;기호를 사용하며&lt;span&gt;, &lt;/span&gt;열기&lt;span&gt;(/*)&lt;/span&gt;와 닫기&lt;span&gt;(*/) &lt;/span&gt;사이의 모든 내용은 주석으로 처리 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/* This is a&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;multi-line comment */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT * FROM orders;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;실행 가능한 주석&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;에서 실행 가능한 주석은 다른 데이터베이스 간의 이식성을 지원한다&lt;span&gt;. &lt;/span&gt;이러한 주석을 사용하면 &lt;span&gt;MySQL&lt;/span&gt;에서만 실행되고 다른 데이터베이스에서는 실행되지 않는 &lt;span&gt;SQL &lt;/span&gt;코드를 포함할 수 있다&lt;span&gt;. &lt;/span&gt;아래는 실행 가능한 주석 구문을 작성하는 규칙이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/*! MySQL-specific code */&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;예를들어 아래 구문은 실행 가능한 주석을 사용하여 결과가 &lt;span&gt;1&lt;/span&gt;이 아닌 &lt;span&gt;2&lt;/span&gt;가 반환된다&lt;span&gt;. &lt;/span&gt;그러나 다른 데이터베이스 시스템에서 실행하면 &lt;span&gt;1&lt;/span&gt;이 반환된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT 1 /*! +1 */&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;236&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wCfa3/btsyHIeS5Gx/I6UqzIrqyseeFpyHkgJIL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wCfa3/btsyHIeS5Gx/I6UqzIrqyseeFpyHkgJIL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wCfa3/btsyHIeS5Gx/I6UqzIrqyseeFpyHkgJIL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwCfa3%2FbtsyHIeS5Gx%2FI6UqzIrqyseeFpyHkgJIL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;236&quot; height=&quot;148&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;236&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;특정 버전의 &lt;span&gt;MySQL&lt;/span&gt;에서만 주석을 실행하려면 아래 구문을 사용한다&lt;span&gt;. ##### &lt;/span&gt;문자열은 해당 주석을 실행할 수 있는 &lt;span&gt;MySQL&lt;/span&gt;의 최소 버전을 나타낸다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/*!##### MySQL-specific code */&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;첫번째 &lt;span&gt;#&lt;/span&gt;은 주 버전을 나타내며&lt;span&gt;(&lt;/span&gt;예 &lt;span&gt;: 5 &lt;/span&gt;또는 &lt;span&gt;8), &lt;/span&gt;두 번째&lt;span&gt; 2&lt;/span&gt;개의 &lt;span&gt;##&lt;/span&gt;은 부 버전이다&lt;span&gt;. &lt;/span&gt;그리고 마지막 &lt;span&gt;2&lt;/span&gt;개&lt;span&gt; ##&lt;/span&gt;은 패치 수준이다&lt;span&gt;. &lt;/span&gt;아래 스크립트는 &lt;span&gt;MySQL 8.0.33-25.1&lt;/span&gt;에서 실행하였으며&lt;span&gt;, &lt;/span&gt;주석에 기입되어 있는 최소버전에 따라 실행 여부가 달라지는 것을 확인할 수 있다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT 1 /*!80110 +1 */;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SELECT 1 /*!80010 +1 */;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;277&quot; data-origin-height=&quot;408&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x135f/btsyLKCyzfD/2zckjfnu7BsKl7LnXmeLX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x135f/btsyLKCyzfD/2zckjfnu7BsKl7LnXmeLX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x135f/btsyLKCyzfD/2zckjfnu7BsKl7LnXmeLX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx135f%2FbtsyLKCyzfD%2F2zckjfnu7BsKl7LnXmeLX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;277&quot; height=&quot;408&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;277&quot; data-origin-height=&quot;408&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-10-18 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL Comment, MySQL &lt;/span&gt;&lt;span&gt;주석&lt;span&gt;, &lt;/span&gt;데이터베이스 주석&lt;span&gt;, MySQL &lt;/span&gt;실행 가능한 주석&lt;span&gt;, MySQL &lt;/span&gt;버전에 따른 주석 처리&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>mysql comment</category>
      <category>MySQL 버전에 따른 주석 처리</category>
      <category>MySQL 실행 가능한 주석</category>
      <category>MySQL 주석</category>
      <category>데이터베이스 주석</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1554</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL%EC%9D%98-%EB%8B%A4%EC%96%91%ED%95%9C-%EC%A3%BC%EC%84%9Dcomment-%EB%B0%A9%EB%B2%95-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0#entry1554comment</comments>
      <pubDate>Wed, 18 Oct 2023 16:42:13 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL(mariadb) Galera Cluster 장애 시나리오에 따른 다양한 복구 방법</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQLmariadb-Galera-Cluster-%EC%9E%A5%EC%95%A0-%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4%EC%97%90-%EB%94%B0%EB%A5%B8-%EB%8B%A4%EC%96%91%ED%95%9C-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL(mariadb) Galera Cluster &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;장애 시나리오에 따른 다양한 복구 방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL(mariadb) Galera Cluster&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;는 동기 복제를 사용하여 데이터를 복제하는 &lt;span&gt;MySQL, MariaDB&lt;/span&gt;용 다중 마스터 클러스터이다&lt;span&gt;. Galera Cluster&lt;/span&gt;를 사용하면 클러스터의 모든 노드가 마스터 역할을 하고 한 번에 모든 노드에 쓸 수 있다&lt;span&gt;. Galera Cluster&lt;/span&gt;의 &lt;span&gt;Active-Active &lt;/span&gt;구성은 장애 조치가 없기 때문에 더 많은 로드 밸런싱과 내결함성을 제공한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL/MariaDB &lt;/span&gt;&lt;span&gt;환경에서 다중 마스터 복제를 지원하는&lt;span&gt; Galera Cluster &lt;/span&gt;알아보기 &lt;span&gt;: &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://sungwookkang.com/entry/MySQLMariaDB-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EB%8B%A4%EC%A4%91-%EB%A7%88%EC%8A%A4%ED%84%B0-%EB%B3%B5%EC%A0%9C%EB%A5%BC-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-Galera-Cluster-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&quot;&gt;https://sungwookkang.com/entry/MySQLMariaDB-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EB%8B%A4%EC%A4%91-%EB%A7%88%EC%8A%A4%ED%84%B0-%EB%B3%B5%EC%A0%9C%EB%A5%BC-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-Galera-Cluster-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;일단 구성되면&lt;span&gt; Galera Cluster&lt;/span&gt;는 큰 문제없이 작동할 수 있지만 여러 노드 오류로 인해 클러스터가 비정상적인 상황이 발생할 수 있다&lt;span&gt;. &lt;/span&gt;노드가 클러스터와의 통신이 되지 않으면 실패한 노드로 간주되는데&lt;span&gt;, &lt;/span&gt;하드웨어&lt;span&gt;, &lt;/span&gt;네트워크&lt;span&gt;, &lt;/span&gt;소프트웨어 오류 및 일반적인 사용자 실수로도 클러스터가 중단될 수 있다&lt;span&gt;. &lt;/span&gt;그래도 다행인 것은 하나라도 정상적인 노드가 있으면 클러스터 서비스의 연속성이 유지되어 데이터 손실이 발생하지 않는다&lt;span&gt;. &lt;/span&gt;이번 포스트에서는 &lt;span&gt;Galera Cluster&lt;/span&gt;에서 장애가 발생하였을 때 클러스터를 복구하는 방법에 대해서 다뤄 본다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터 장애는 크게 세 가지 시나리오로 분류할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;단일 노드 오류 &lt;span&gt;(Single node failure)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다중 노드 오류 &lt;span&gt;(Multi-node failure)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;전체 클러스터 오류 &lt;span&gt;(Full cluster failure)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 중에 전체 클러스터 장애는 데이터베이스 연결이 완전히 끊어진 것으로 실제 장애 상황일수도 있으며&lt;span&gt;, &lt;/span&gt;일반 상황으로는 의도적으로 업데이트 및 정기 유지 관리로 인해 노드를 다시 시작하는 경우이다&lt;span&gt;. &lt;/span&gt;일반적인 상황에서는 노드가 정상적으로 재부팅 되면 클러스터에 다시 참여하고 클러스터의 나머지 부분과 동기화 된다&lt;span&gt;. &lt;/span&gt;노드가 재부팅 되는 동안 클러스터 상태에서 특정 노드가 누락되는 것은 정상적인 현상이고 이런 경우에는 클러스터 장애로 간주되지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;정상 클러스터 확인&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;장애가 발생했을 때 클러스터 상태를 신속하게 확인할 수 있도록&lt;span&gt; Galera Cluster&lt;/span&gt;가 정상인지 확인하는 방법을 아는 것이 중요하다&lt;span&gt;. &lt;/span&gt;아래 스크립트를 실행하면 현재 클러스터에 연결된 노드의 &lt;span&gt;IP&lt;/span&gt;를 확인할 수 있다&lt;span&gt;. 3&lt;/span&gt;개 노드로 구성된 정상&lt;span&gt; Galera Cluster&lt;/span&gt;는 데이터베이스 셸에서 다음과 같이 &lt;span&gt;3&lt;/span&gt;개의 &lt;span&gt;IP &lt;/span&gt;목록이 표시된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show status like 'wsrep_incoming_addresses';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kwKJT/btsyFmnRS1b/LE9Ng9XdFjpzTa2Hn6RYU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kwKJT/btsyFmnRS1b/LE9Ng9XdFjpzTa2Hn6RYU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kwKJT/btsyFmnRS1b/LE9Ng9XdFjpzTa2Hn6RYU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkwKJT%2FbtsyFmnRS1b%2FLE9Ng9XdFjpzTa2Hn6RYU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1028&quot; height=&quot;264&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;264&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재 클러스터 구성의 총 노드 수를 확인하려면 아래 스크립트를 실행한다&lt;span&gt;. &lt;/span&gt;전체 노드수와 현재 활성중인 노드수가 다르다면 일부 서버가 클러스터에서 제외된 상태로 확인이 필요하다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show status like 'wsrep_cluster_size';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CJlxe/btsytNVBLeq/ZkJLIcFkrVqqW4zPLKHkC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CJlxe/btsytNVBLeq/ZkJLIcFkrVqqW4zPLKHkC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CJlxe/btsytNVBLeq/ZkJLIcFkrVqqW4zPLKHkC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCJlxe%2FbtsytNVBLeq%2FZkJLIcFkrVqqW4zPLKHkC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;256&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터의 &lt;span&gt;UUID&lt;/span&gt;를 검색하려면 아래 스크립트를 실행한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show status like 'wsrep_cluster_state_uuid';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vB9Ki/btsyyoUYUlQ/MqyPJ9vYxUn2XHi2xkVKxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vB9Ki/btsyyoUYUlQ/MqyPJ9vYxUn2XHi2xkVKxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vB9Ki/btsyyoUYUlQ/MqyPJ9vYxUn2XHi2xkVKxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvB9Ki%2FbtsyyoUYUlQ%2FMqyPJ9vYxUn2XHi2xkVKxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;830&quot; height=&quot;260&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;멤버 노드가 클러스터와 동기화되었는지 확인하려면 아래 스크립트를 실행한다&lt;span&gt;. Synced &lt;/span&gt;라고 표시되면 정상이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show status like 'wsrep_local_state_comment';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHkxdg/btsyDLu1GGO/CkaY3LxnhEHBkGumc0iVAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHkxdg/btsyDLu1GGO/CkaY3LxnhEHBkGumc0iVAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHkxdg/btsyDLu1GGO/CkaY3LxnhEHBkGumc0iVAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHkxdg%2FbtsyDLu1GGO%2FCkaY3LxnhEHBkGumc0iVAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;260&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;단일 노드 오류 복구&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 시나리오에서는 클러스터의 노드 중 하나의 노드만 실패한 경우로&lt;span&gt;, &lt;/span&gt;데이터가 손실되거나 데이터베이스 연결이 중단되지는 않는다&lt;span&gt;. &lt;/span&gt;아래 스크립트를 실행하여 클러스터 정보를 조회하면 실패한 노드의 정보가 제외되고 활성중인 노드의 목록이 출력된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show status like 'wsrep_incoming_addresses';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; show status like 'wsrep_incoming_addresses';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------------------+-------------------------------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| Variable_name | Value |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------------------+-------------------------------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| wsrep_incoming_addresses | 10.0.0.51:3306,10.0.0.52:3306 |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------------------+-------------------------------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터에 참여한 노드 수에도 현재 장애가 발생한 노드 수를 제외하고 표시된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show status like 'wsrep_cluster_size';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; show status like 'wsrep_cluster_size';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------------+-------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| Variable_name | Value |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------------+-------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| wsrep_cluster_size | 2 |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------------+-------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실패한 노드를 복구하는 방법은 문제 해결 후 다시 클러스터에 조인하는 것이다&lt;span&gt;. &lt;/span&gt;간단한 문제의 경우 서비스 재시작으로 해결된다&lt;span&gt;. MySQL &lt;/span&gt;서비스를 시작하여 클러스터에 다시 조인되었는지 확인한다&lt;span&gt;. &lt;/span&gt;어떤 이유로든 다시 참여하지 못한 경우 &lt;span&gt;MySQL(MariaDB)&lt;/span&gt;를 다시 시작한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ systemctl restart mysql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;다중 노드 오류 복구&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 시나리오에서는 하나를 제외한 모든 노드가 실패하여 쿼럼이 손실된 상태이다&lt;span&gt;. &lt;/span&gt;이 단계에서는&lt;span&gt; Galera Cluster&lt;/span&gt;가 더 이상&lt;span&gt; SQL &lt;/span&gt;요청을 처리할 수 없다&lt;span&gt;. &lt;/span&gt;하지만 하나의 노드가 계속 실행 중이므로 데이터가 손실되지는 않는다&lt;span&gt;. &lt;/span&gt;그러나 실패한 노드가 다시 온라인 상태가 되면 클러스터가 존재하지 않기 때문에 클러스터에 다시 참여할 수 없다&lt;span&gt;. &lt;/span&gt;살아남은 노드에서 클러스터 크기 및 클러스터 상태 명령을 사용하여 이를 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show status like 'wsrep_cluster_size';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;+--------------------+-------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| Variable_name | Value |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------------+-------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| wsrep_cluster_size | 1 |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------------+-------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;show status like 'wsrep_cluster_status';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;+----------------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| Variable_name | Value |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+----------------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| wsrep_cluster_status | Primary |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+----------------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;드문 경우지만 클러스터 상태 값이&lt;span&gt; non-Primary &lt;/span&gt;로 표시될 수 있다&lt;span&gt;. &lt;/span&gt;이러한 오류는 쿼럼 손실뿐 아니라 네트워크 연결 손실일 수도 있다&lt;span&gt;. &lt;/span&gt;쿼럼 달성을 진행하기 전에 노드 클러스터 상태가 기본 값을 반환하는지 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쿼럼 달성을 진행하기 전에 살아남은 노드에 실제로 최신 커밋이 있는지 확인해야 한다&lt;span&gt;. &lt;/span&gt;다른 노드가 클러스터에 다시 참여할 수 있도록 쿼럼을 재설정할 수 있는데&lt;span&gt;, &lt;/span&gt;자동과 수동으로&lt;span&gt; 2&lt;/span&gt;가지 방법이 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Automatic Bootstrap&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쿼럼을 재설정하는 가장 간단한 방법은 자동 부트스트랩을 사용하는 것이다&lt;span&gt;. &lt;/span&gt;데이터베이스 셸에서 다음 명령을 실행하여 노드를 자동 부트스트랩 할 수 있다&lt;span&gt;. &lt;/span&gt;그러면 살아남은 노드가 기본 시작 노드가 되도록 부트스트랩 되므로 실패한 다른 노드가 클러스터에 다시 참여할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;set global wsrep_provider_options='pc.bootstrap=YES';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Manual Bootstrap&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음 명령을 실행하여 노드를 수동으로 부트스트랩 한다&lt;span&gt;. &lt;/span&gt;기본 노드가 실행되면 나머지 모든 노드에서 한 번에 하나씩&lt;span&gt;MySQL(mariadb) &lt;/span&gt;서비스를 다시 시작한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ systemctl stop mysql&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;$ galera_new_cluster&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;$ systemctl restart mysql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;전체 클러스터 장애 복구&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 시나리오에서는 모든 노드가 실패했거나 정상적으로 종료되지 않은 경우이다&lt;span&gt;. &lt;/span&gt;전체 쿼럼 손실이 발생했으며 클러스터가&lt;span&gt; SQL &lt;/span&gt;요청을 수락하지 않는다&lt;span&gt;. &lt;/span&gt;이와 같은 심각한 장애가 발생한 후 모든 노드가 다시 온라인 상태가 되더라도&lt;span&gt; MySQL(mariadb) &lt;/span&gt;서비스를 시작할 수 없다&lt;span&gt;. &lt;/span&gt;이는 비정상적으로 종료되어 어떤 노드도 마지막 커밋을 수행할 수 없었기 때문이다&lt;span&gt;. Galera Cluster&lt;/span&gt;는 다양한 방식으로 장애가 발생될 수 있으며 이로 인해 전체 장애를 복구하는 방법도 다양하다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;가장 높은 &lt;span&gt;seqno &lt;/span&gt;값을 기반으로 한 복구&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 방법은 클러스터 중에 하나 이상의 노드가 정상적으로 종료될 가능성이 약간이라도 있는 경우 사용할 수 있다&lt;span&gt;. &lt;/span&gt;최신 데이터를 가진 노드는 장애가 발생한 클러스터의 모든 노드 중에서 가장 높은&lt;span&gt; seqno &lt;/span&gt;값을 갖게 된다&lt;span&gt;. /var/lib/mysql/grastate.datseqno&lt;/span&gt;의 내용을 확인해보면&lt;span&gt; seqno &lt;/span&gt;값을 보여주는 내용에서 단서를 찾을 수 있다&lt;span&gt;. &lt;/span&gt;장애 성격에 따라 모든 노드가 동일한 음수의&lt;span&gt; seqno &lt;/span&gt;값을 갖거나 노드 중 하나가 가장 높은 양수의&lt;span&gt; seqno &lt;/span&gt;값을 갖게 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음은 노드&lt;span&gt;3&lt;/span&gt;의 &lt;span&gt;grastate.dat &lt;/span&gt;내용이다&lt;span&gt;. &lt;/span&gt;이 노드에는 음수의&lt;span&gt; seqno&lt;/span&gt;가 있고 그룹&lt;span&gt; ID(uuid)&lt;/span&gt;정보가가 없다&lt;span&gt;. DDL(&lt;/span&gt;데이터 정의 언어&lt;span&gt;) &lt;/span&gt;처리 중에 노드 장애가 발생한 경우이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ cat /var/lib/mysql/grastate.dat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# GALERA saved state&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;version: 2.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;uuid: 00000000-0000-0000-0000-000000000000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;seqno: -1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;safe_to_bootstrap: 0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음은 노드&lt;span&gt;2&lt;/span&gt;의 &lt;span&gt;grastate.dat &lt;/span&gt;내용이다&lt;span&gt;. &lt;/span&gt;이 노드는 트랜잭션 처리 중에 장애가 발생하여&lt;span&gt; seqno&lt;/span&gt;가 음수이지만 그룹&lt;span&gt; ID(uud) &lt;/span&gt;정보를 가지고 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ cat /var/lib/mysql/grastate.dat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# GALERA saved state&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;version: 2.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;uuid: 886dd8da-3d07-11e8-a109-8a3c80cebab4&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;seqno: -1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;safe_to_bootstrap: 0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음은 노드&lt;span&gt;1&lt;/span&gt;의&lt;span&gt; grastate.dat &lt;/span&gt;내용이다&lt;span&gt;. seqno &lt;/span&gt;값이 가장 높은 것을 확인할 수 있다&lt;span&gt;. (&lt;/span&gt;물론 사용자 노드마다 가장 높은 &lt;span&gt;seqno&lt;/span&gt;의 노드는 다를 것이다&lt;span&gt;.) &lt;/span&gt;노드가 정상적으로 종료될 수 있을 때 노드는 양수로 가장 높은&lt;span&gt; seqno &lt;/span&gt;값을 갖게 된다&lt;span&gt;. &lt;/span&gt;이 경우 먼저 복구해야 할 노드이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ cat /var/lib/mysql/grastate.dat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# GALERA saved state&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;version: 2.1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;uuid: 886dd8da-3d07-11e8-a109-8a3c80cebab4&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;seqno: 31929&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;safe_to_bootstrap: 1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모든 노드의&lt;span&gt; seqno &lt;/span&gt;값이 &lt;span&gt;-1, safe_to_bootstrap &lt;/span&gt;값이 &lt;span&gt;0&lt;/span&gt;으로 되어 있는 경우전체 클러스터 장애가 발생했음을 나타낸다&lt;span&gt;. &lt;/span&gt;이 시점에서 &lt;span&gt;galera_new_cluster &lt;/span&gt;명령을 사용하여 클러스터를 새로 생성하여 시작할 수 있다&lt;span&gt;. &lt;/span&gt;그러나 각 노드가 동일한 데이터베이스 데이터 복사본을 가지고 있는지 알 수 있는 방법이 없으므로 권장하지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;노드&lt;span&gt; 1&lt;/span&gt;을 다시 시작하기 전에 클러스터 구성 파일 &lt;span&gt;(/etc/my.cnf.d/server.cnf)&lt;/span&gt;를 변경하여 클러스터 노드의&lt;span&gt; IP&lt;/span&gt;에 대한 정보를 제거해야 한다&lt;span&gt;. &lt;/span&gt;다음은 변경 전 구성의&lt;span&gt; [galera] &lt;/span&gt;섹션 내용이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[galera]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# Mandatory settings&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_on=ON&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_provider=/usr/lib64/galera/libgalera_smm.so&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_cluster_address=&quot;gcomm://10.0.0.51,10.0.0.52,10.0.0.53&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_cluster_name='galeraCluster01'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_node_address='10.0.0.51'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_node_name='galera-01'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_sst_method=rsync&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;binlog_format=row&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;default_storage_engine=InnoDB&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;innodb_autoinc_lock_mode=2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;wsrep_cluster_address&lt;/span&gt;&lt;span&gt;모든 구성원 노드의&lt;span&gt; IP&lt;/span&gt;가 표시된다&lt;span&gt;. &lt;/span&gt;다음과 같이 주소를 제거해야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;wsrep_cluster_address=&quot;gcomm://&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이제 이 노드에서&lt;span&gt; MySQL(mariadb) &lt;/span&gt;서비스를 다시 시작할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ systemctl restart mysql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서비스가 성공적으로 시작되었는지 확인되었으면&lt;span&gt;, &lt;/span&gt;다른 노드에서 한 번에 하나씩 서비스를 다시 시작할 수 있도록 한다&lt;span&gt;. &lt;/span&gt;모든 노드가 성공적으로 실행되었으면 노드&lt;span&gt;1&lt;/span&gt;의 클러스터 구성을 편집하여 모든 구성원 노드의&lt;span&gt; IP &lt;/span&gt;주소를 추가하고 서비스를 다시 시작한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;wsrep_cluster_address=&quot;gcomm://10.8.8.53,10.8.8.54,10.8.8.55&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 시점에서는&lt;span&gt; Galera Cluster&lt;/span&gt;가 실행 중이어야 하며 모든 노드는 활성중인 노드와 동기화 되어야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;마지막 커밋을 기준으로 복구&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이는 모든 노드가 완전히 중단되어 &lt;span&gt;seqno &lt;/span&gt;값이&lt;span&gt; -1&lt;/span&gt;이 되는&lt;span&gt; Galera Cluster &lt;/span&gt;장애의 최악의 시나리오이다&lt;span&gt;. &lt;/span&gt;이 경우에는 앞서 언급한 것처럼 노드에서&lt;span&gt; galera_new_cluster &lt;/span&gt;명령을 실행한 다음 나머지 노드를 클러스터에 다시 연결하는 방식을 실행할 경우&lt;span&gt;, &lt;/span&gt;새로운&lt;span&gt; ID &lt;/span&gt;세트로 새 클러스터가 생성되고 다른 모든 노드가 여기에 합류하여 완전한 동기화를 시작하기 때문에 데이터가 손실될 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;마지막 커밋이 있는 노드를 확인하려면 각 노드에서&lt;span&gt; wsrep_last_commit &lt;/span&gt;값을 개별적으로 확인할 수 있다&lt;span&gt;. &lt;/span&gt;가장 높은 값을 가진 노드는 가장 최근에 커밋된 노드이다&lt;span&gt;. &lt;/span&gt;가장 높은 커밋 값을 가진 노드를 부트스트랩하여 클러스터를 시작한 다음 다른 구성원들은 클러스터 노드에 합류할 수 있다&lt;span&gt;. &lt;/span&gt;이 프로세스는 이전 섹션에서 본 것처럼 가장 높은&lt;span&gt; seqno&lt;/span&gt;를 가진 노드를 부트스트래핑하는 것과 유사하다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모든 노드의 &lt;span&gt;MySQL(mariadb) &lt;/span&gt;서비스를 중지한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ systemctl stop mariadb&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;/etc/my.cnf.d/server.cnf&lt;/span&gt;&lt;span&gt;의&lt;span&gt; [galera] &lt;/span&gt;섹션에서&lt;span&gt; wsrep_cluster_address&lt;/span&gt;를 편집하여 멤버 노드에 대한 정보를 제거한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;wsrep_cluster_address=&quot;gcomm://&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL(mariadb) &lt;/span&gt;&lt;span&gt;서비스를 시작한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ systemctl start mariadb&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;데이터베이스 셸에서 마지막으로 커밋된 값을 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&amp;gt; show status like 'wsrep_last_committed';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+----------------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| Variable_name | Value |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+----------------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| wsrep_last_committed | 319589 |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+----------------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모든 노드에서 마지막으로 커밋된 값을 확인한다&lt;span&gt;. &lt;/span&gt;최신 데이터를 가진 노드가 가장 높은 값을 갖게 된다&lt;span&gt;. &lt;/span&gt;커밋된 값이 가장 높은 노드에서 새 클러스터를 만든다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ galera_new_cluster&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;wsrep_cluster_address &lt;/span&gt;&lt;span&gt;나머지 노드의 값을 변경하여&lt;span&gt; IP &lt;/span&gt;주소를 추가한 다음 한 번에 한 노드씩&lt;span&gt; MySQL(mariadb) &lt;/span&gt;서비스를 다시 시작한다&lt;span&gt;. &lt;/span&gt;클러스터가 실행 중이어야 하며 데이터 동기화가 모든 변경 사항을 커밋해야 한다&lt;span&gt;. &lt;/span&gt;잠시 후 모든 노드에서 마지막으로 커밋된 값을 확인하여 노드가 현재 동기화되어 있는지 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;How To Recover MariaDB Galera Cluster After Partial or Full Crash : &lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.symmcom.com/docs/how-tos/databases/how-to-recover-mariadb-galera-cluster-after-partial-or-full-crash&quot;&gt;https://www.symmcom.com/docs/how-tos/databases/how-to-recover-mariadb-galera-cluster-after-partial-or-full-crash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-10-17 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL Galera Cluster, &lt;/span&gt;&lt;span&gt;갈레라 클러스터&lt;span&gt;, MySQL PXC, &lt;/span&gt;클러스터 장애 복구&lt;span&gt;, &lt;/span&gt;갈레라 클러스터 복구&lt;span&gt;, Recovery Galera Cluster&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL Galera Cluster</category>
      <category>MySQL PXC</category>
      <category>Recovery Galera Cluster</category>
      <category>갈레라 클러스터</category>
      <category>갈레라 클러스터 복구</category>
      <category>클러스터 장애 복구</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1553</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQLmariadb-Galera-Cluster-%EC%9E%A5%EC%95%A0-%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4%EC%97%90-%EB%94%B0%EB%A5%B8-%EB%8B%A4%EC%96%91%ED%95%9C-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95#entry1553comment</comments>
      <pubDate>Tue, 17 Oct 2023 09:27:01 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL 오류 로그 이해</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL-%EC%98%A4%EB%A5%98-%EB%A1%9C%EA%B7%B8-%EC%9D%B4%ED%95%B4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;오류 로그 이해&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;시스템을 운영할 때&lt;span&gt;, &lt;/span&gt;오류를 완벽히 피하기는 거의 불가능에 가깝다고 생각한다&lt;span&gt;. &lt;/span&gt;그렇다면 문제가 발생하였을 때&lt;span&gt;, &lt;/span&gt;문제의 원인을 빠르게 파악하고 해결하기 위해서 가장 먼저 하는 행동은 무엇일까&lt;span&gt;? &lt;/span&gt;정답은 각종 로그를 확인하는 것이다&lt;span&gt;. &lt;/span&gt;이번 포스트에서는 &lt;span&gt;MySQL &lt;/span&gt;오류 로그를 통해 어떠한 정보를 확인할 수 있는지 알아본다&lt;span&gt;. &lt;/span&gt;이 글에서는 오류 로그는 &lt;span&gt;5.6&lt;/span&gt;버전을 설명하고 있지만&lt;span&gt;, &lt;/span&gt;이후 버전에서도 충분히 활용할 수 있다고 판단된다&lt;span&gt;. &lt;/span&gt;모든 오류 내용을 다루지는 않지만 예제에서 확인할 수 있는 몇 가지 정보를 공유한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;오류 로그에는 &lt;span&gt;MySQL &lt;/span&gt;상태 및 활동과 관련한 다양한 정보가 기록되어 있다&lt;span&gt;. &lt;/span&gt;정상적인 &lt;span&gt;MySQL &lt;/span&gt;시작&lt;span&gt;, &lt;/span&gt;종료에 대한 기록 및 운영 중에 발생하는 오류들&lt;span&gt;, &lt;/span&gt;그리고 설정 문제로 인한 오류 등 다양한 문제에 대한 정보를 포함하고 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;오류 로그는 일반적은 경우 아래 위치에 기록된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/var/log/mysql/error.log&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;만약 해당 위치에 로그 파일이 없다면 &lt;span&gt;my.cnf &lt;/span&gt;에서 &lt;span&gt;log_error &lt;/span&gt;파라메터의 정의된 위치에서 오류 로그가 기록되는 것을 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Error log on MySQL &amp;ndash; clean startup and shutdown]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;의 클린 스타트가 어떻게 시작되는지 알아본다&lt;span&gt;. &lt;/span&gt;정상적인 상태를 알고 있다면&lt;span&gt;, &lt;/span&gt;나중에 이상징후가 있을 때 좀 더 쉽게 문제를 찾을 수 있다&lt;span&gt;. MySQL&lt;/span&gt;이 시작될 때 처음에는 모든 플러그인이 시작된다&lt;span&gt;. &lt;/span&gt;잘못된 경우 이 단계에서 오류가 표시된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] Plugin 'FEDERATED' is disabled.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음으로 &lt;span&gt;InnoDB &lt;/span&gt;초기화와 관련된 중요한 부분을 볼 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] InnoDB: Using atomics to ref count buffer pool pages&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] InnoDB: The InnoDB memory heap is disabled&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] InnoDB: Memory barrier is not used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] InnoDB: Compressed tables use zlib 1.2.8&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] InnoDB: Using Linux native AIO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] InnoDB: Using CPU crc32 instructions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:20 13762 [Note] InnoDB: Initializing buffer pool, size = 512.0M&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] InnoDB: Completed initialization of buffer pool&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] InnoDB: Highest supported file format is Barracuda.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] InnoDB: 128 rollback segment(s) are active.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] InnoDB: Waiting for purge to start&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] InnoDB:&lt;span&gt;&amp;nbsp; &lt;/span&gt;Percona XtraDB (&lt;a href=&quot;http://www.percona.com)&quot;&gt;http://www.percona.com)&lt;/a&gt; 5.6.26-74.0 started; log sequence number 710963181&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음 단계에서는 인증 플러그인이 시작된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;마지막에는 구성된 &lt;span&gt;IP &lt;/span&gt;및 포트에 &lt;span&gt;MySQL&lt;/span&gt;을 바인딩하는 방법에 대한 정보가 표시된다&lt;span&gt;. &lt;/span&gt;이벤트 스케줄러도 초기화 된다&lt;span&gt;. &lt;/span&gt;마지막으로 &lt;span&gt;MySQL&lt;/span&gt;이 올바르게 시작되었음을 나타내는 &lt;span&gt;&amp;lsquo;ready for connections&amp;rsquo; &lt;/span&gt;메시지가 표시된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] Server hostname (bind-address): '*'; port: 33306&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] IPv6 is available.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note]&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;- '::' resolves to '::';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] Server socket created on IP: '::'.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Warning] 'proxies_priv' entry '@ root@ip-172-30-4-23' ignored in --skip-name-resolve mode.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] Event Scheduler: Loaded 2 events&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:21 13762 [Note] /usr/sbin/mysqld: ready for connections.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Version: '5.6.26-74.0'&lt;span&gt;&amp;nbsp; &lt;/span&gt;socket: '/var/run/mysqld/mysqld.sock'&lt;span&gt;&amp;nbsp; &lt;/span&gt;port: 33306&lt;span&gt;&amp;nbsp; &lt;/span&gt;Percona Server (GPL), Release 74.0, Revision 32f8dfd&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;종료 프로세스의 경우 아래와 같은 로그가 기록된다&lt;span&gt;. &lt;/span&gt;이 메시지의 내용은 종료하는데 있어서 매우 중요한 정보를 나타낸다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:13 12955 [Note] /usr/sbin/mysqld: Normal shutdown&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;은 다양한 방법으로 중지될 수 있다&lt;span&gt;. &lt;/span&gt;사용자는 &lt;span&gt;init &lt;/span&gt;스크립트를 사용할 수 있고&lt;span&gt;, &amp;lsquo;mysqladmin&amp;rsquo;&lt;/span&gt;을 사용하여 &lt;span&gt;SHUTDOWN &lt;/span&gt;명령을 실행할 수 있으며&lt;span&gt;, &lt;/span&gt;데이터베이스 종료를 시작하는 &lt;span&gt;SIGTERM&lt;/span&gt;을 &lt;span&gt;MySQL&lt;/span&gt;로 보낼 수도 있다&lt;span&gt;. MySQL &lt;/span&gt;인스턴스가 종료된 원인을 조사할 경우 이러한 메시지는 항상 누군가&lt;span&gt;(&lt;/span&gt;또는 무언가&lt;span&gt;) &lt;/span&gt;완전한 종료를 실행했음을 나타난다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 메시지는 크래시가 발생하지도 않았으며 &lt;span&gt;MySQL&lt;/span&gt;도 종료되지 않았다&lt;span&gt;. MySQL&lt;/span&gt;은 나머지 연결을 닫고 강제로 종료한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:13 12955 [Note] Giving 12 client threads a chance to die gracefully&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:13 12955 [Note] Event Scheduler: Purging the queue. 2 events&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:13 12955 [Note] Shutting down slave threads&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Note] Forcefully disconnecting 6 remaining clients&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Warning] /usr/sbin/mysqld: Forcing close of thread 37&lt;span&gt;&amp;nbsp; &lt;/span&gt;user: 'cmon'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Warning] /usr/sbin/mysqld: Forcing close of thread 53&lt;span&gt;&amp;nbsp; &lt;/span&gt;user: 'cmon'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Warning] /usr/sbin/mysqld: Forcing close of thread 38&lt;span&gt;&amp;nbsp; &lt;/span&gt;user: 'cmon'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Warning] /usr/sbin/mysqld: Forcing close of thread 39&lt;span&gt;&amp;nbsp; &lt;/span&gt;user: 'cmon'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Warning] /usr/sbin/mysqld: Forcing close of thread 44&lt;span&gt;&amp;nbsp; &lt;/span&gt;user: 'cmon'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Warning] /usr/sbin/mysqld: Forcing close of thread 47&lt;span&gt;&amp;nbsp; &lt;/span&gt;user: 'cmon'&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그리고 &lt;span&gt;MySQL&lt;/span&gt;에서는 활성화된 모든 플러그인을 종료한다&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Note] Binlog end&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Note] Shutting down plugin 'partition'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:15 12955 [Note] Shutting down plugin 'ARCHIVE'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 내용은 종료되는 플러그인 중 &lt;span&gt;InnoDB&lt;/span&gt;에 관한 것으로 빠른 종료가 활성화된 상태에서도 바쁜 서버에서는 완전한 &lt;span&gt;InnoDB &lt;/span&gt;종료에 시간이 걸릴 수 있다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] Shutting down plugin 'MyISAM'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] Shutting down plugin 'MRG_MYISAM'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] Shutting down plugin 'CSV'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] Shutting down plugin 'MEMORY'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] Shutting down plugin 'sha256_password'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] Shutting down plugin 'mysql_old_password'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] Shutting down plugin 'mysql_native_password'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] Shutting down plugin 'binlog'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-26 19:35:17 12955 [Note] /usr/sbin/mysqld: Shutdown complete&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;종료 프로세스는 &lt;span&gt;&amp;lsquo;Shutdown complete&amp;rsquo;&lt;/span&gt;라는 메시지와 함께 종료된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Configuration errors]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;my.cnf&lt;/span&gt;&lt;span&gt;를 편집하는 과정에서 변수명에 대한 오타 또는 설정에 대한 리밋값 오류가 있을 수 있다&lt;span&gt;. MySQL&lt;/span&gt;은 시작될 때&lt;span&gt;, &lt;/span&gt;구성 파일을 구문 분석한다&lt;span&gt;. &lt;/span&gt;오류가 발생하면 실행이 거부된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] Plugin 'FEDERATED' is disabled.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Using atomics to ref count buffer pool pages&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: The InnoDB memory heap is disabled&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Memory barrier is not used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Compressed tables use zlib 1.2.8&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Using Linux native AIO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Using CPU crc32 instructions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Initializing buffer pool, size = 512.0M&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Completed initialization of buffer pool&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Highest supported file format is Barracuda.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: 128 rollback segment(s) are active.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:05 18858 [Note] InnoDB: Waiting for purge to start&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:06 18858 [Note] InnoDB:&lt;span&gt;&amp;nbsp; &lt;/span&gt;Percona XtraDB (&lt;a href=&quot;http://www.percona.com)&quot;&gt;http://www.percona.com)&lt;/a&gt; 5.6.26-74.0 started; log sequence number 773268083&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:06 18858 [ERROR] /usr/sbin/mysqld: unknown variable '--max-connections=512'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:20:06 18858 [ERROR] Aborting&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위 로그를 살펴보면 &lt;span&gt;max_connections &lt;/span&gt;변수와 관련하여 변수에 대한 오타가 있음을 확인할 수 있다&lt;span&gt;. MySQL&lt;/span&gt;은 &lt;span&gt;my.cnf&lt;/span&gt;에서 &lt;span&gt;&amp;lsquo;-&amp;lsquo; &lt;/span&gt;접두사를 허용하지 않음으로 &lt;span&gt;&amp;lsquo;ps&amp;rsquo; &lt;/span&gt;출력 또는 &lt;span&gt;MySQL &lt;/span&gt;설명서에서 설정을 복사하는 경우 이 부분을 주의하기 바란다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 내용은 변수 오타가 아닌 잘못된 구성의 문제로&lt;span&gt;, &lt;/span&gt;서버에 메모리를 과도하게 할당했을 때 발생한 오류이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] Plugin 'FEDERATED' is disabled.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] InnoDB: Using atomics to ref count buffer pool pages&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] InnoDB: The InnoDB memory heap is disabled&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] InnoDB: Memory barrier is not used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] InnoDB: Compressed tables use zlib 1.2.8&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] InnoDB: Using Linux native AIO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] InnoDB: Using CPU crc32 instructions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [Note] InnoDB: Initializing buffer pool, size = 512.0G&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: mmap(70330089472 bytes) failed; errno 12&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [ERROR] InnoDB: Cannot allocate memory for the buffer pool&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [ERROR] Plugin 'InnoDB' init function returned error.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [ERROR] Unknown/unsupported storage engine: InnoDB&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:24:41 31325 [ERROR] Aborting&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;메시지를 살펴보면 이 호스트에서 불가능했던 &lt;span&gt;512G&lt;/span&gt;의 메모리를 할당하려고 시도하였고 오류가 발생한 것을 확인할 수 있다&lt;span&gt;. MySQL&lt;/span&gt;을 시작하려면 &lt;span&gt;InnoDB&lt;/span&gt;가 필요한데&lt;span&gt;, InnoDB &lt;/span&gt;초기화 오류로 인해 &lt;span&gt;MySQL&lt;/span&gt;이 시작되지 않았다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Permission errors]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 로그를 살펴보면 &lt;span&gt;MySQL&lt;/span&gt;은 &lt;span&gt;&amp;lsquo;permission denied&amp;rsquo; &lt;/span&gt;오류로 인해 바이너리 로그에 대한 인덱스 파일을 찾을 수 없다&lt;span&gt;. &lt;/span&gt;이 경우 &lt;span&gt;MySQL&lt;/span&gt;의 하드 스톱 원인 이기도 하다&lt;span&gt;. &lt;/span&gt;바이너리 로그를 읽고 쓸 수 있어야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld: File './binlog.index' not found (Errcode: 13 - Permission denied)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:31:40 11469 [ERROR] Aborting&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 메시지는 또 다른 권한 문제로 &lt;span&gt;ibdata1 &lt;/span&gt;파일과 관련되어 있다&lt;span&gt;. &lt;/span&gt;이는 &lt;span&gt;InnoDB&lt;/span&gt;가 내부 데이터&lt;span&gt;(InnoDB &lt;/span&gt;사전 및 기본적으로 실행 취소 로그&lt;span&gt;)&lt;/span&gt;를 저장하는데 사용되는 공유 시스템 테이블 스페이스이다&lt;span&gt;. MySQL 5.6&lt;/span&gt;의 기본 설정인 &lt;span&gt;innodb_file_per_table&lt;/span&gt;을 사용하더라도 &lt;span&gt;InnoDB&lt;/span&gt;에서는 초기화를 위해 이 파일이 필요하다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] Plugin 'FEDERATED' is disabled.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: Using atomics to ref count buffer pool pages&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: The InnoDB memory heap is disabled&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: Memory barrier is not used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: Compressed tables use zlib 1.2.8&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: Using Linux native AIO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: Using CPU crc32 instructions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: Initializing buffer pool, size = 512.0M&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [Note] InnoDB: Completed initialization of buffer pool&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [ERROR] InnoDB: ./ibdata1 can't be opened in read-write mode&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [ERROR] InnoDB: The system tablespace must be writable!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [ERROR] Plugin 'InnoDB' init function returned error.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [ERROR] Unknown/unsupported storage engine: InnoDB&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:32:46 13601 [ERROR] Aborting&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래 로그는 시스템 스키마&lt;span&gt;(mysql &lt;/span&gt;스키마&lt;span&gt;)&lt;/span&gt;와 관련된 권한 문제이다&lt;span&gt;. &lt;/span&gt;로그를 보면 &lt;span&gt;InnoDB&lt;/span&gt;는 이 스키마에서 테이블을 열 수 있는 액세스 권한이 없다고 표시한다&lt;span&gt;. &lt;/span&gt;이경우 &lt;span&gt;MySQL&lt;/span&gt;이 멈추게 되며 심각한 문제임을 알 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;015-10-27 11:35:21 17826 [Note] Plugin 'FEDERATED' is disabled.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13 - Permission denied)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Using atomics to ref count buffer pool pages&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: The InnoDB memory heap is disabled&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Memory barrier is not used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Compressed tables use zlib 1.2.8&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Using Linux native AIO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Using CPU crc32 instructions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Initializing buffer pool, size = 512.0M&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Completed initialization of buffer pool&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [Note] InnoDB: Highest supported file format is Barracuda.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 7fa02e97d780&lt;span&gt;&amp;nbsp; &lt;/span&gt;InnoDB: Operating system error number 13 in a file operation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: The error means mysqld does not have the access rights to&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: the directory.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [ERROR] InnoDB: Could not find a valid tablespace file for 'mysql/innodb_index_stats'. See &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html&quot;&gt;http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html&lt;/a&gt; for how to resolve the issue.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [ERROR] InnoDB: Tablespace open failed for '&quot;mysql&quot;.&quot;innodb_index_stats&quot;', ignored.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 7fa02e97d780&lt;span&gt;&amp;nbsp; &lt;/span&gt;InnoDB: Operating system error number 13 in a file operation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: The error means mysqld does not have the access rights to&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: the directory.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [ERROR] InnoDB: Could not find a valid tablespace file for 'mysql/innodb_table_stats'. See &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html&quot;&gt;http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html&lt;/a&gt; for how to resolve the issue.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 17826 [ERROR] InnoDB: Tablespace open failed for '&quot;mysql&quot;.&quot;innodb_table_stats&quot;', ignored.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2015-10-27 11:35:21 7fa02e97d780&lt;span&gt;&amp;nbsp; &lt;/span&gt;InnoDB: Operating system error number 13 in a file operation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: The error means mysqld does not have the access rights to&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: the directory.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Out of memory errors]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서버의 메모리 부족과 관련된 또 다른 자주 발생하는 문제로&lt;span&gt;, &lt;/span&gt;다양하게 나타나지만 가장 흔하게 접하게 되는 메시지는 아래와 같다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Killed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;151027 12:18:58 mysqld_safe Number of processes running now: 0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysqld_safe&lt;/span&gt;&lt;span&gt;는 &lt;span&gt;mysqld&lt;/span&gt;를 모니터링하고 종료되면 다시 시작하는 &lt;span&gt;&amp;lsquo;angel&amp;rsquo; &lt;/span&gt;프로세스이다&lt;span&gt;. MySQL&lt;/span&gt;에는 해당되지만 &lt;span&gt;Galera &lt;/span&gt;노드에서는 해당되지 않는다&lt;span&gt;. &lt;/span&gt;이 경우 &lt;span&gt;MySQL&lt;/span&gt;을 다시 시작하지는 않지만 다음 순서가 표시된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Killed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;151027 12:18:58 mysqld_safe Number of processes running now: 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;151027 12:18:58 mysqld_safe WSREP: not restarting wsrep node automatically&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;151027 12:18:58 mysqld_safe mysqld from pid file /var/lib/mysql/mysql.pid ended&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;메모리 문제가 나타날 수 있는 또 다른 방법은 오류 로그의 다음 메시지를 통해서이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;InnoDB: mmap(3145728 bytes) failed; errno 12&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: mmap(3145728 bytes) failed; errno 12&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 경우 &lt;span&gt;&amp;lsquo;perror&amp;rsquo; &lt;/span&gt;유틸리티를 사용하여 오류 코드를 확인하면&lt;span&gt;, &lt;/span&gt;정확히 무슨 일이 일어났는지 알 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ perror 12&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;OS error code&lt;span&gt;&amp;nbsp; &lt;/span&gt;12:&lt;span&gt;&amp;nbsp; &lt;/span&gt;Cannot allocate memory&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;메모리 문제가 의심되거나 예상치 못한 &lt;span&gt;MySQL &lt;/span&gt;크래시가 발생하는 경우 &lt;span&gt;dmesg&lt;/span&gt;를 실행하여 더 많은 데이터를 얻을 수도 있다&lt;span&gt;. &lt;/span&gt;아래와 같은 출력이 표시되면 &lt;span&gt;OOM Killer&lt;/span&gt;가 &lt;span&gt;MySQL&lt;/span&gt;을 종료하여 문제가 발생한 것임을 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[ 4165.802544] Out of memory: Kill process 8143 (mysqld) score 938 or sacrifice child&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;[ 4165.808329] Killed process 8143 (mysqld) total-vm:5101492kB, anon-rss:3789388kB, file-rss:0kB&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;[ 4166.226410] init: mysql main process (8143) killed by KILL signal&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;[ 4166.226437] init: mysql main process ended, respawning&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[InnoDB crashes]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;대부분의 경우&lt;span&gt; InnoDB&lt;/span&gt;는 매우 견고하고 내구성이 뛰어난 스토리지 엔진이다&lt;span&gt;. &lt;/span&gt;하지만 어떤 상황에서는 데이터가 손상될 수 있다&lt;span&gt;. &lt;/span&gt;일반적으로 잘못된 구성&lt;span&gt;(&lt;/span&gt;예&lt;span&gt;: &lt;/span&gt;이중 쓰기 버퍼 비활성화&lt;span&gt;) &lt;/span&gt;또는 일종의 하드웨어 결함&lt;span&gt;(&lt;/span&gt;메모리 모듈 결함&lt;span&gt;, &lt;/span&gt;불안정한&lt;span&gt; I/O &lt;/span&gt;계층&lt;span&gt;)&lt;/span&gt;과 관련이 있다&lt;span&gt;. &lt;/span&gt;이러한 경우&lt;span&gt; InnoDB&lt;/span&gt;가 크래시 될 수 있다&lt;span&gt;. InnoDB &lt;/span&gt;버그로 인해서도 크래시가 발생할 수도 있다&lt;span&gt;. &lt;/span&gt;흔한 일은 아니지만 가끔씩 발생한다&lt;span&gt;. &lt;/span&gt;크래시 원인에 관계없이 오류 로그는 일반적으로 비슷한 방식으로 표시된다&lt;span&gt;. &lt;/span&gt;실제 사례를 살펴보자&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2015-10-13 15:08:06 7f53f0658700&lt;span&gt;&amp;nbsp; &lt;/span&gt;InnoDB: Assertion failure in thread 139998492198656 in file btr0pcur.cc line 447&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: Failing assertion: btr_page_get_prev(next_page, mtr) == buf_block_get_page_no(btr_pcur_get_block(cursor))&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;InnoDB &lt;/span&gt;&lt;span&gt;코드는 온전성 검사로 가득 차 있다&lt;span&gt;. &lt;/span&gt;어설션은 매우 빈번하며&lt;span&gt;, &lt;/span&gt;그 중 하나가 실패하면&lt;span&gt; InnoDB&lt;/span&gt;는 의도적으로&lt;span&gt; MySQL&lt;/span&gt;을 크래시 시킨다&lt;span&gt;. &lt;/span&gt;처음에는 실패한 어설션의 정확한 위치에 대한 정보가 표시된다&lt;span&gt;. &lt;/span&gt;이는 정확히 무슨 일이 일어났는지에 대한 정보를 제공한다&lt;span&gt;. MySQL &lt;/span&gt;소스 코드는 인터넷에서 확인할 수 있으며 특정 버전과 관련된 코드를 다운로드하는 것은 매우 쉽다&lt;span&gt;. MySQL &lt;/span&gt;코드는 적절하게 문서화되어 있으며 최소한 어떤 종류의 활동이 문제를 유발하는지 파악하는 것은 문제가 되지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;InnoDB: We intentionally generate a memory trap.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: Submit a detailed bug report to &lt;a href=&quot;http://bugs.mysql.com.&quot;&gt;http://bugs.mysql.com.&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: If you get repeated assertion failures or crashes, even&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: immediately after the mysqld startup, there may be&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: corruption in the InnoDB tablespace. Please refer to&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html&quot;&gt;http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;InnoDB: about forcing recovery.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;InnoDB &lt;/span&gt;&lt;span&gt;로깅 정보에는&lt;span&gt; InnoDB &lt;/span&gt;복구 프로세스에 대한 정보가 있다&lt;span&gt;. &lt;/span&gt;어떤 상황에서는&lt;span&gt; MySQL&lt;/span&gt;을 시작하고&lt;span&gt; InnoDB &lt;/span&gt;데이터를 덤프할 수 있다&lt;span&gt;. &lt;/span&gt;이는&lt;span&gt; &quot;&lt;/span&gt;거의 최후의 수단&lt;span&gt;&quot;&lt;/span&gt;으로 사용된다&lt;span&gt;. &lt;/span&gt;한 단계 더 나아가면&lt;span&gt; 16&lt;/span&gt;진수 편집기를 사용하여&lt;span&gt; InnoDB &lt;/span&gt;파일을 파헤치게 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;13:08:06 UTC - mysqld got signal 6 ;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;This could be because you hit a bug. It is also possible that this binary&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;or one of the libraries it was linked against is corrupt, improperly built,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;or misconfigured. This error can also be caused by malfunctioning hardware.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;We will try our best to scrape up some info that will hopefully help&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;diagnose the problem, but since we have already crashed,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;something is definitely wrong and this may fail.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Please help us make Percona Server better by reporting any&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;bugs at &lt;a href=&quot;http://bugs.percona.com/&quot;&gt;http://bugs.percona.com/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;key_buffer_size=67108864&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;read_buffer_size=131072&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;max_used_connections=36&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;max_threads=514&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;thread_count=27&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;connection_count=26&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;It is possible that mysqld could use up to&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 269997 K&lt;span&gt;&amp;nbsp; &lt;/span&gt;bytes of memory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Hope that's ok; if not, decrease some variables in the equation.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음 단계에서는 일부 상태 카운터가 기록된 것을 볼 수 있다&lt;span&gt;. &lt;/span&gt;이는 구성에 대한 몇 가지 아이디어를 제공할 것으로 예상된다&lt;span&gt;. &lt;/span&gt;너무 많은 리소스를 사용하도록&lt;span&gt; MySQL&lt;/span&gt;을 구성했을 수도 있다&lt;span&gt;. &lt;/span&gt;이 데이터를 검토하면 역추적에 도달하게 된다&lt;span&gt;. &lt;/span&gt;이 정보는 스택을 안내하고 크래시가 발생했을 때 어떤 종류의 호출이 실행되었는지 보여준다&lt;span&gt;. &lt;/span&gt;이 특별한 경우에 정확히 무슨 일이 일어났는지 확인해 보자&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Thread pointer: 0xa985960&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Attempting backtrace. You can use the following information to find out&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;where mysqld died. If you see no messages after this, something went&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;terribly wrong...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;stack_bottom = 7f53f0657d40 thread_stack 0x40000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(my_print_stacktrace+0x2c)[0x8cd37c]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(handle_fatal_signal+0x461)[0x6555a1]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/lib64/libpthread.so.0(+0xf710)[0x7f540f978710]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/lib64/libc.so.6(gsignal+0x35)[0x7f540dfd4625]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/lib64/libc.so.6(abort+0x175)[0x7f540dfd5e05]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld[0xa0277b]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld[0x567f88]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld[0x99afde]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld[0x8eb926]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(_ZN7handler11ha_rnd_nextEPh+0x5d)[0x59a6ed]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(_Z13rr_sequentialP11READ_RECORD+0x20)[0x800cd0]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(_Z12mysql_deleteP3THDP10TABLE_LISTP4ItemP10SQL_I_ListI8st_orderEyy+0xc88)[0x8128c8]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x1bc5)[0x6d6d15]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x5a8)[0x6dc228]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x108c)[0x6dda4c]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x162)[0x6ab002]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(handle_one_connection+0x40)[0x6ab0f0]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/usr/sbin/mysqld(pfs_spawn_thread+0x143)[0xaddd73]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/lib64/libpthread.so.0(+0x79d1)[0x7f540f9709d1]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/lib64/libc.so.6(clone+0x6d)[0x7f540e08a8fd]&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;이&lt;span&gt; DELETE &lt;/span&gt;명령을 실행할 때 문제가 발생한 것을 볼 수 있다&lt;span&gt;. &lt;/span&gt;레코드를 순차적으로 읽고 전체 테이블 스캔을 수행했다&lt;span&gt;(handler read_rnd_next). &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;InnoDB: Failing assertion: btr_page_get_prev(next_page, mtr) == buf_block_get_page_no(btr_pcur_get_block(cursor))&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;InnoDB&lt;/span&gt;&lt;span&gt;가 버퍼 풀 스캔을 수행할 때 충돌이 발생했음을 알 수 있다&lt;span&gt;(btr_pcur_move_to_next_page &lt;/span&gt;메소드에서 어설션이 트리거됨&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Trying to get some variables.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Some pointers may be invalid and cause the dump to abort.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Query (a991d40): DELETE FROM cmon_stats WHERE cid = 2 AND ts &amp;lt; 1444482484&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Connection ID (thread ID): 5&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Status: NOT_KILLED&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;마지막으로 어떤 스레드가 어설션을 트리거했는지 확인할 수 있다&lt;span&gt;(&lt;/span&gt;때로는 항상 로깅 되지는 않음&lt;span&gt;). &lt;/span&gt;이 경우에는 실제로 일종의 문제를 일으킨&lt;span&gt; DELETE &lt;/span&gt;쿼리였음을 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;You may download the Percona Server operations manual by visiting&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;http://www.percona.com/software/percona-server/.&quot;&gt;http://www.percona.com/software/percona-server/.&lt;/a&gt; You may find information&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;in the manual which will help you identify the cause of the crash.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;151013 15:08:06 mysqld_safe Number of processes running now: 0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;일반적으로&lt;span&gt; MySQL&lt;/span&gt;은 오류 로그와 관련하여 매우 장황하다&lt;span&gt;. &lt;/span&gt;하지만 상황이 너무 잘못되어&lt;span&gt; MySQL&lt;/span&gt;이 실제로 많은 정보를 수집할 수 없는 경우도 있다&lt;span&gt;. &lt;/span&gt;이는 여전히 뭔가 매우 잘못되었다는 매우 명확한 표시를 제공한다&lt;span&gt;(&lt;/span&gt;신호&lt;span&gt; 11). &lt;/span&gt;아래 사례를 살펴보자&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;22:31:40 UTC - mysqld got signal 11 ;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;This could be because you hit a bug. It is also possible that this binary&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;or one of the libraries it was linked against is corrupt, improperly built,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;or misconfigured. This error can also be caused by malfunctioning hardware.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;We will try our best to scrape up some info that will hopefully help&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;diagnose the problem, but since we have already crashed,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;something is definitely wrong and this may fail.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Please help us make Percona XtraDB Cluster better by reporting any&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;bugs at &lt;a href=&quot;https://bugs.launchpad.net/percona-xtradb-cluster&quot;&gt;https://bugs.launchpad.net/percona-xtradb-cluster&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;key_buffer_size=33554432&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;read_buffer_size=131072&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;max_used_connections=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;max_threads=202&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;thread_count=9&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;connection_count=7&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;It is possible that mysqld could use up to&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 113388 K&lt;span&gt;&amp;nbsp; &lt;/span&gt;bytes of memory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Hope that's ok; if not, decrease some variables in the equation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Thread pointer: 0x1fb7050&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Attempting backtrace. You can use the following information to find out&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;where mysqld died. If you see no messages after this, something went&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;terribly wrong...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Segmentation fault (core dumped)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;150119 23:48:08 mysqld_safe Number of processes running now: 0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;로그를 살펴보면 &lt;span&gt;MySQL&lt;/span&gt;이 크래시 했다는 명확한 정보가 있다&lt;span&gt;. &lt;/span&gt;하지만 추가 정보는 없다&lt;span&gt;. &lt;/span&gt;분할 오류는 진단 메시지에 기록될 수도 있다&lt;span&gt;. &lt;/span&gt;이 특별한 경우&lt;span&gt; dmesg&lt;/span&gt;는 다음을 반환했다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[370591.200799] mysqld[5462]: segfault at 51 ip 00007fe624e3e688 sp 00007fe4f4099c30 error 4 in libgcc_s.so.1[7fe624e2f000+16000]&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;많은 내용이 포함된 것은 아니지만 이미 보고된 경우 이러한 정보는 매우 유용할 수 있다&lt;span&gt;. &lt;/span&gt;오류 로그에 기록된 정보만으로 문제를 해결하는 것이 항상 가능한 것은 아니다&lt;span&gt;. &lt;/span&gt;하지만 데이터베이스의 문제 디버깅을 시작하기에는 확실히 좋은 장소이다&lt;span&gt;. &lt;/span&gt;매우 일반적이고 단순한 구성 오류가 발생하는 경우 오류 로그에서 찾을 수 있는 정보만으로도 원인을 찾아내고 해결책을 찾는 데 충분하다&lt;span&gt;. &lt;/span&gt;심각한&lt;span&gt; MySQL &lt;/span&gt;충돌에 대해 이야기하고 있다면 상황은 확실히 다르다&lt;span&gt;. &lt;/span&gt;대부분의 경우 문제를 스스로 해결할 수 없을 것이다&lt;span&gt;. &lt;/span&gt;반면에 이 데이터는 범인을 식별하고 이를 다루는 기존 버그 보고서를 찾는 데 충분할 수 있다&lt;span&gt;. &lt;/span&gt;이러한 버그 보고서에는 많은 토론과 팁 또는 해결 방법이 포함되어 있다&lt;span&gt;. &lt;/span&gt;아마도 그 중 하나를 구현할 수 있을 것이다&lt;span&gt;. &lt;/span&gt;해당 버그가&lt;span&gt; xyz &lt;/span&gt;버전에서 수정되었다는 정보도 유용하다&lt;span&gt;. &lt;/span&gt;이를 확인하고 문제가 해결되면 업그레이드 계획을 세울 수 있다&lt;span&gt;. &lt;/span&gt;최악의 경우에는 스스로 버그 보고서를 작성할 수 있을 만큼 충분한 데이터가 있어야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Understanding the MySQL Error Log : &lt;a href=&quot;https://severalnines.com/blog/understanding-mysql-error-log/&quot;&gt;https://severalnines.com/blog/understanding-mysql-error-log/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-10-11 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, ErrorLog, &lt;/span&gt;&lt;span&gt;오류로그&lt;span&gt;, ErrorMessage, MySQL Error, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>ERRORLOG</category>
      <category>errormessage</category>
      <category>MySQL</category>
      <category>mysql error</category>
      <category>오류로그</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1552</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL-%EC%98%A4%EB%A5%98-%EB%A1%9C%EA%B7%B8-%EC%9D%B4%ED%95%B4#entry1552comment</comments>
      <pubDate>Mon, 16 Oct 2023 11:41:15 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] ProxySQL 연결이 실패할 때 확인해야 할 기본 체크리스트</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-ProxySQL-%EC%97%B0%EA%B2%B0%EC%9D%B4-%EC%8B%A4%ED%8C%A8%ED%95%A0-%EB%95%8C-%ED%99%95%EC%9D%B8%ED%95%B4%EC%95%BC-%ED%95%A0-%EA%B8%B0%EB%B3%B8-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] ProxySQL &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;연결이 실패할 때 확인해야 할 기본 체크리스트&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : ProxySQL&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;서버를 여러대로 구성해야하는 경우&lt;span&gt; (&lt;/span&gt;예&lt;span&gt;, Replication, Sharding &lt;/span&gt;등&lt;span&gt;) &lt;/span&gt;어플리케이션 수에 따라 &lt;span&gt;MySQL &lt;/span&gt;서버와 맺게 되는 커넥션수가 급격하게 늘어난다&lt;span&gt;. &lt;/span&gt;예를들어&lt;span&gt; MySQL &lt;/span&gt;서버가&lt;span&gt; 30&lt;/span&gt;대&lt;span&gt;, &lt;/span&gt;어플리케이션 서버가&lt;span&gt; 200&lt;/span&gt;대이고&lt;span&gt;, &lt;/span&gt;각 서버별로 커넥션을&lt;span&gt; 10&lt;/span&gt;개씩 유지한다면&lt;span&gt; 30 * 200 * 10 = 60000 &lt;/span&gt;커넥션이 발생한다&lt;span&gt;. &lt;/span&gt;이런 이슈를 피하기 위해 중간에 미들웨어 개념으로 프록시 역할을 해주는 것이 &lt;span&gt;ProxySQL&lt;/span&gt;이다&lt;span&gt;. ProxySQL&lt;/span&gt;은 효율적인 커넥션 관리뿐만 아니라 라우팅 기능 등 여러 기능을 제공한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;이란 무엇인가 &lt;span&gt;: &lt;a href=&quot;https://sungwookkang.com/entry/ProxySQL-%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80&quot;&gt;https://sungwookkang.com/entry/ProxySQL-%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번 포스트는 &lt;span&gt;ProxySQL&lt;/span&gt;을 운영할 때&lt;span&gt;, &lt;/span&gt;어플리케이션에서 &lt;span&gt;DB &lt;/span&gt;커넥션 관련 오류가 발생할 때 확인해야 하는 체크리스트를 정리하였다&lt;span&gt;. &lt;/span&gt;당연한 말이지만&lt;span&gt;, &lt;/span&gt;막상 트러블이 발생했을 때 어디서부터 확인해야 될지 우왕좌왕 하는 경우가 많다&lt;span&gt;. &lt;/span&gt;해당 순서를 참고하여 빠르게 확인할 수 있도록 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;런타임 상태 확인&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;의 프로세스가 정상적으로 활성화된 상태라도 &lt;span&gt;ProxySQL&lt;/span&gt;이 &lt;span&gt;MySQL&lt;/span&gt;과 연결이 정상적인지 또는 클러스터에서 제외되지는 않았는지 런타임 상태를 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from runtime_mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/L5k9u/btsx48KBQZf/aWaKQflNUBb0jFe14MSt30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L5k9u/btsx48KBQZf/aWaKQflNUBb0jFe14MSt30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L5k9u/btsx48KBQZf/aWaKQflNUBb0jFe14MSt30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL5k9u%2Fbtsx48KBQZf%2FaWaKQflNUBb0jFe14MSt30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;280&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;280&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;status &lt;/span&gt;&lt;span&gt;항목이 &lt;span&gt;SHUNNED&lt;/span&gt;이면 현재 해당 서버와 연결이 끊어진 것으로&lt;span&gt;, &lt;/span&gt;원인을 확인하여 &lt;span&gt;ONLINE&lt;/span&gt;상태가 되도록 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_2.png&quot; data-origin-width=&quot;1013&quot; data-origin-height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x28jZ/btsx46TwIlR/vufK9ADcm6h5HBsVbKF6sK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x28jZ/btsx46TwIlR/vufK9ADcm6h5HBsVbKF6sK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x28jZ/btsx46TwIlR/vufK9ADcm6h5HBsVbKF6sK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx28jZ%2Fbtsx46TwIlR%2FvufK9ADcm6h5HBsVbKF6sK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1013&quot; height=&quot;187&quot; data-filename=&quot;1_2.png&quot; data-origin-width=&quot;1013&quot; data-origin-height=&quot;187&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Ping log&lt;/span&gt;&lt;span&gt;를 확인하여&lt;span&gt;, ProxySQL&lt;/span&gt;과 &lt;span&gt;MySQL&lt;/span&gt;의 연결 상태를 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT * FROM monitor.mysql_server_ping_log ORDER BY time_start_us DESC LIMIT 10;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HZzj1/btsxzZPNw6t/kOIxrYJaZlQ4ul1I7lk1Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HZzj1/btsxzZPNw6t/kOIxrYJaZlQ4ul1I7lk1Bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HZzj1/btsxzZPNw6t/kOIxrYJaZlQ4ul1I7lk1Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHZzj1%2FbtsxzZPNw6t%2FkOIxrYJaZlQ4ul1I7lk1Bk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;291&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;291&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위의 핑 로그에서는 패스워드 관련으로 핑 실패가 발생한 것을 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;커넥션 로그를 확인하여 &lt;span&gt;MySQL&lt;/span&gt;서버와 연결 상태를 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;커넥션 로그를 확인하여&lt;span&gt;, &lt;/span&gt;현재 등록된 타겟 서버&lt;span&gt;(&lt;/span&gt;노드라고도 부름&lt;span&gt;, mysql_servers &lt;/span&gt;테이블 목록&lt;span&gt;)&lt;/span&gt;와의 커넥션 상태를 확인한다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start_us DESC LIMIT 10;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1091&quot; data-origin-height=&quot;246&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byCekX/btsxSAIpoCE/OeDd3Jd5Ya8FKR28NIv0rK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byCekX/btsxSAIpoCE/OeDd3Jd5Ya8FKR28NIv0rK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byCekX/btsxSAIpoCE/OeDd3Jd5Ya8FKR28NIv0rK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyCekX%2FbtsxSAIpoCE%2FOeDd3Jd5Ya8FKR28NIv0rK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1091&quot; height=&quot;246&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1091&quot; data-origin-height=&quot;246&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;connect_error &lt;/span&gt;&lt;span&gt;항목이 &lt;span&gt;NULL&lt;/span&gt;이 아닐 경우 &lt;span&gt;ProxySQL&lt;/span&gt;과 &lt;span&gt;MySQL &lt;/span&gt;연결이 정상적이지 않은 것으로 원인을 찾아 해결할 수 있도록 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;오류 로그확인&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에 발생하는 각종 로그는 파일로 기록된다&lt;span&gt;. &lt;/span&gt;로그 파일의 위치는 &lt;span&gt;proxysql.cnf&lt;/span&gt;에서 확인할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cat /etc/proxysql.cnf&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4_1.png&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfPxjz/btsx2uN3NET/PZ3nTizDAxUMw0ZLxnusTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfPxjz/btsx2uN3NET/PZ3nTizDAxUMw0ZLxnusTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfPxjz/btsx2uN3NET/PZ3nTizDAxUMw0ZLxnusTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfPxjz%2Fbtsx2uN3NET%2FPZ3nTizDAxUMw0ZLxnusTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;768&quot; height=&quot;144&quot; data-filename=&quot;4_1.png&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오류 로그를 확인하여 &lt;span&gt;ProxySQL&lt;/span&gt;에서 발생하는 다양한 로그를 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;tail -10 /var/log/proxysql/proxysql-error.log&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4_2.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAA8Aj/btsxUbu9x4x/MBfgj4747f1SkU0PKCEmIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAA8Aj/btsxUbu9x4x/MBfgj4747f1SkU0PKCEmIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAA8Aj/btsxUbu9x4x/MBfgj4747f1SkU0PKCEmIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAA8Aj%2FbtsxUbu9x4x%2FMBfgj4747f1SkU0PKCEmIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;202&quot; data-filename=&quot;4_2.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;외부 접근용 계정 확인&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;을 사용할 경우&lt;span&gt;, &lt;/span&gt;외부 어플리케이션은 &lt;span&gt;MySQL&lt;/span&gt;이 아닌 &lt;span&gt;ProxySQL&lt;/span&gt;로 연결하게 된다&lt;span&gt;. &lt;/span&gt;이때 외부 어플리케이션이 사용할 &lt;span&gt;ID/PWD&lt;/span&gt;가 생성되어 있는지 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from mysql_users;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGOyP1/btsxHZ9GpF4/uNVT8sWfpVeTPSnkmb2kok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGOyP1/btsxHZ9GpF4/uNVT8sWfpVeTPSnkmb2kok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGOyP1/btsxHZ9GpF4/uNVT8sWfpVeTPSnkmb2kok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGOyP1%2FbtsxHZ9GpF4%2FuNVT8sWfpVeTPSnkmb2kok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1113&quot; height=&quot;225&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;6.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;모니터링 계정 확인&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서버에서 &lt;span&gt;ProxySQL&lt;/span&gt;이 사용할 모니터링 계정이 정상적으로 등록되어 있는지 확인한다&lt;span&gt;. ProxySQL&lt;/span&gt;에서 모니터링으로 사용할 계정은 아래 명령으로 확인할 수 있다&lt;span&gt;. &lt;/span&gt;모니터링이 실패하면 &lt;span&gt;ProxySQL&lt;/span&gt;에서는 서버와 통신이상으로 노드에서 제외한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT * FROM global_variables WHERE variable_name LIKE 'mysql-monitor_%';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;926&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lu0Mp/btsx46eWaV1/LieH93ZKFJGEqJIRn2QLN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lu0Mp/btsx46eWaV1/LieH93ZKFJGEqJIRn2QLN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lu0Mp/btsx46eWaV1/LieH93ZKFJGEqJIRn2QLN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flu0Mp%2Fbtsx46eWaV1%2FLieH93ZKFJGEqJIRn2QLN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;980&quot; height=&quot;926&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;926&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;시스템을 운영하다 보면 다양한 오류 환경을 만나게 되는데&lt;span&gt;, &lt;/span&gt;이때 케이스를 해결하는 방법보다&lt;span&gt;, &lt;/span&gt;원인을 파악하는데 오랜 시간이 걸리는 경우가 대부분이다&lt;span&gt;. &lt;/span&gt;케이스에 따른 체크리스트를 잘 만들어 놓으면 긴급 상황에서 많은 도움이 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-10-11 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL, &lt;/span&gt;&lt;span&gt;프록시&lt;span&gt;SQL, &lt;/span&gt;트러블슈팅&lt;span&gt;,ProxySQL &lt;/span&gt;연결오류&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>proxysql</category>
      <category>ProxySQL 연결오류</category>
      <category>트러블슈팅</category>
      <category>프록시SQL</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1551</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-ProxySQL-%EC%97%B0%EA%B2%B0%EC%9D%B4-%EC%8B%A4%ED%8C%A8%ED%95%A0-%EB%95%8C-%ED%99%95%EC%9D%B8%ED%95%B4%EC%95%BC-%ED%95%A0-%EA%B8%B0%EB%B3%B8-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8#entry1551comment</comments>
      <pubDate>Wed, 11 Oct 2023 10:44:01 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL Percona XtraDB Cluster 소개 및 설정 변수 알아보기</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL-Percona-XtraDB-Cluster-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%84%A4%EC%A0%95-%EB%B3%80%EC%88%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL Percona XtraDB Cluster &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;소개 및 설정 변수 알아보기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL Percona 8.X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Percona XtraDB Cluster&lt;/span&gt;&lt;span&gt;는&lt;span&gt; MySQL&lt;/span&gt;을 위한 완전한 오픈 소스 고가용성 솔루션으로&lt;span&gt; MySQL&lt;/span&gt;용&lt;span&gt; Percona Server &lt;/span&gt;및&lt;span&gt; Percona XtraBackup&lt;/span&gt;을&lt;span&gt; Galera &lt;/span&gt;라이브러리와 통합하여 동기식 다중 소스 복제를 가능하게 한다&lt;span&gt;. Galera &lt;/span&gt;라이브러리에 대한 내용은 아래 링크를 참고한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL/MariaDB &lt;/span&gt;&lt;span&gt;환경에서 다중 마스터 복제를 지원하는&lt;span&gt; Galera Cluster &lt;/span&gt;알아보기 &lt;span&gt;: &lt;a href=&quot;https://sungwookkang.com/entry/MySQLMariaDB-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EB%8B%A4%EC%A4%91-%EB%A7%88%EC%8A%A4%ED%84%B0-%EB%B3%B5%EC%A0%9C%EB%A5%BC-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-Galera-Cluster-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&quot;&gt;https://sungwookkang.com/entry/MySQLMariaDB-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EB%8B%A4%EC%A4%91-%EB%A7%88%EC%8A%A4%ED%84%B0-%EB%B3%B5%EC%A0%9C%EB%A5%BC-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-Galera-Cluster-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL Galera Cluster + ProxySQL&lt;/span&gt;&lt;span&gt;에서&lt;span&gt; Galera Cluster &lt;/span&gt;특성을 고려한&lt;span&gt; R/W &lt;/span&gt;호스트 그룹 설정 하기 &lt;span&gt;: &lt;a href=&quot;https://sungwookkang.com/entry/MySQL-Galera-Cluster-ProxySQL%EC%97%90%EC%84%9C-Galera-Cluster-%ED%8A%B9%EC%84%B1%EC%9D%84-%EA%B3%A0%EB%A0%A4%ED%95%9C-RW-%ED%98%B8%EC%8A%A4%ED%8A%B8-%EA%B7%B8%EB%A3%B9-%EC%84%A4%EC%A0%95-%ED%95%98%EA%B8%B0&quot;&gt;https://sungwookkang.com/entry/MySQL-Galera-Cluster-ProxySQL%EC%97%90%EC%84%9C-Galera-Cluster-%ED%8A%B9%EC%84%B1%EC%9D%84-%EA%B3%A0%EB%A0%A4%ED%95%9C-RW-%ED%98%B8%EC%8A%A4%ED%8A%B8-%EA%B7%B8%EB%A3%B9-%EC%84%A4%EC%A0%95-%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터는 노드로 구성되며&lt;span&gt;, &lt;/span&gt;각 노드에는 노드 전체에 걸쳐 동기화된 동일한 데이터 세트가 포함되어 있다&lt;span&gt;. &lt;/span&gt;권장되는 구성은&lt;span&gt; 3&lt;/span&gt;개 이상의 노드를 보유하는 것이지만&lt;span&gt; 2&lt;/span&gt;개의 노드를 보유할 수도 있다&lt;span&gt;. &lt;/span&gt;각 노드는 일반&lt;span&gt; MySQL Server &lt;/span&gt;인스턴스&lt;span&gt;(&lt;/span&gt;예&lt;span&gt;: Percona Server)&lt;/span&gt;이다&lt;span&gt;. &lt;/span&gt;기존&lt;span&gt; MySQL Server &lt;/span&gt;인스턴스를 노드로 변환하고 이 노드를 기본으로 사용하여 클러스터를 실행할 수 있다&lt;span&gt;. &lt;/span&gt;클러스터에서 노드를 분리하여 일반&lt;span&gt; MySQL Server &lt;/span&gt;인스턴스로 사용할 수도 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QOKHl/btsvXbxhjcQ/6zdGkoW1UH8EowEKhSGXJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QOKHl/btsvXbxhjcQ/6zdGkoW1UH8EowEKhSGXJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QOKHl/btsvXbxhjcQ/6zdGkoW1UH8EowEKhSGXJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQOKHl%2FbtsvXbxhjcQ%2F6zdGkoW1UH8EowEKhSGXJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;417&quot; height=&quot;289&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Percona XtraDB Cluster &lt;/span&gt;&lt;span&gt;장점은 쿼리를 실행하면 노드에서 로컬로 실행된다&lt;span&gt;. &lt;/span&gt;모든 데이터는 로컬에서 사용할 수 있으므로 원격 액세스가 필요하지 않다&lt;span&gt;. &lt;/span&gt;중앙 관리 시스템이 아니므로 언제든지 노드를 유연하게 구성할 수 있으며 클러스터는 데이터 손실 없이 계속 작동한다&lt;span&gt;. &lt;/span&gt;읽기 작업 부하를 확장하는 데 적합한 솔루션이며 모든 노드에 읽기 쿼리를 호출할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;단점으로는 노드 프로비저닝의 오버헤드가 있다&lt;span&gt;. &lt;/span&gt;새 노드를 추가하면 기존 노드 중 하나에서 전체 데이터 세트를 복사해야 한다&lt;span&gt;. &lt;/span&gt;예를 들어 노드가 &lt;span&gt;100GB&lt;/span&gt;이면&lt;span&gt; 100GB&lt;/span&gt;를 복사하는 방식이다&lt;span&gt;. &lt;/span&gt;이러한 특징 때문에 쓰기 확장 솔루션으로는 사용할 수 없다&lt;span&gt;. &lt;/span&gt;전체 트래픽을&lt;span&gt; 1&lt;/span&gt;개 노드에 실행하는 경우에 비해&lt;span&gt; 2&lt;/span&gt;개 노드에 쓰기 트래픽을 실행하는 경우 쓰기 처리량이 약간 향상될 수 있지만 많은 것을 기대할 수는 없다&lt;span&gt;. &lt;/span&gt;모든 쓰기는 여전히 모든 노드에서 진행되기 때문이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Percona XtraDB Cluster &lt;/span&gt;&lt;span&gt;구성요소는&lt;span&gt; XtraDB &lt;/span&gt;스토리지 엔진으로 실행되는&lt;span&gt; MySQL&lt;/span&gt;용&lt;span&gt; Percona &lt;/span&gt;서버를 기반으로 하며&lt;span&gt;, Codership Oy&lt;/span&gt;에서 개발한 쓰기 세트 복제&lt;span&gt;(wsrep) API&lt;/span&gt;의 구현인&lt;span&gt; Galera &lt;/span&gt;라이브러리를 사용한다&lt;span&gt;. &lt;/span&gt;기본 및 권장 데이터 전송 방법은&lt;span&gt; Percona XtraBackup&lt;/span&gt;을 사용한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[XtraDB Cluster&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;제약 사항&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;복제는&lt;span&gt; InnoDB &lt;/span&gt;스토리지 엔진에서만 작동한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다른 유형의 테이블에 대한 쓰기는 복제되지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;LOCK TABLES &lt;/span&gt;&lt;span&gt;및&lt;span&gt; UNLOCK TABLES&lt;/span&gt;는 다중 소스 설정에서 지원되지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;n&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;GET_LOCK(), RELEASE_LOCK() &lt;/span&gt;&lt;span&gt;등과 같은 잠금 함수 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;쿼리 로그를 테이블로 보낼 수 없다&lt;span&gt;. &lt;/span&gt;쿼리 로깅을 활성화하는 경우 로그를 파일로 전달해야 한다&lt;span&gt;. &lt;/span&gt;쿼리 로깅 및 로그 파일 이름을 선택하려면&lt;span&gt; General_log &lt;/span&gt;및&lt;span&gt; General_log_file&lt;/span&gt;을 사용해야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;log_output = FILE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;허용되는 최대 트랜잭션 크기는&lt;span&gt; wsrep_max_ws_rows &lt;/span&gt;및&lt;span&gt; wsrep_max_ws_size &lt;/span&gt;변수에 의해 정의된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;LOAD DATA INFILE &lt;/span&gt;&lt;span&gt;처리는&lt;span&gt; 10,000&lt;/span&gt;개 행마다 커밋된다&lt;span&gt;. &lt;/span&gt;따라서&lt;span&gt; LOAD DATA&lt;/span&gt;로 인한 대규모 트랜잭션은 일련의 작은 트랜잭션으로 분할된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;COMMIT&lt;/span&gt;&lt;span&gt;를 발행하는 트랜잭션은 해당 단계에서 여전히 중단될 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;클러스터 수준의 낙관적 동시성 제어로 인해 동일한 행에 쓰고 별도의&lt;span&gt; Percona XtraDB &lt;/span&gt;클러스터 노드에서 커밋하는 두 개의 트랜잭션이 있을 수 있으며 그 중 하나만 성공적으로 커밋할 수 있다&lt;span&gt;. &lt;/span&gt;실패한 항목은 중단되며&lt;span&gt;, &lt;/span&gt;클러스터 수준 중단의 경우&lt;span&gt; Percona XtraDB Cluster&lt;/span&gt;는 교착 상태 오류 코드를 반환한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;(Error: 1213 SQLSTATE: 40001&lt;span&gt;&amp;nbsp; &lt;/span&gt;(ER_LOCK_DEADLOCK)).&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;XA &lt;/span&gt;&lt;span&gt;트랜잭션은 지원되지 않는다&lt;span&gt;. &lt;/span&gt;커밋시 롤백이 가능하기 때문이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;전체 클러스터의 쓰기 처리량은 가장 약한 노드에 의해 제한된다&lt;span&gt;. &lt;/span&gt;한 노드가 느려지면 전체 클러스터도 느려진다&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최소 권장 클러스터 크기는 노드&lt;span&gt; 3&lt;/span&gt;개이다&lt;span&gt;. &lt;/span&gt;세 번째 노드는 중재자가 될 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;enforce_storage_engine=InnoDB&lt;/span&gt;&lt;span&gt;는&lt;span&gt; wsrep_replicate_myisam=OFF&lt;/span&gt;와 호환되지 않는다&lt;span&gt;. wsrep_replicate_myisam&lt;/span&gt;은 기본적으로&lt;span&gt; OFF&lt;/span&gt;로 설정된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;클러스터 모드에서&lt;span&gt; Percona XtraDB Cluster&lt;/span&gt;를 실행할 때&lt;span&gt; ALTER TABLE ... IMPORT/EXPORT &lt;/span&gt;워크로드를 가급적 사용하지 않도록 한다&lt;span&gt;. &lt;/span&gt;모든 노드에서 동기화되어 실행되지 않으면 노드 불일치가 발생할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;모든 테이블에는 기본 키가 있어야 합니다&lt;span&gt;. &lt;/span&gt;이렇게 하면 동일한 행이 다른 노드에서 동일한 순서로 표시된다&lt;span&gt;. &lt;/span&gt;기본 키가 없는 테이블에서는&lt;span&gt; DELETE &lt;/span&gt;문이 지원되지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;임시 테이블에 영구 테이블 이름을 재사용하지 않도록 한다&lt;span&gt;. MySQL&lt;/span&gt;은 영구 테이블과 동일한 이름의 임시 테이블을 허용하지만 이 접근 방식은 권장되지 않는다&lt;span&gt;. Galera Cluster&lt;/span&gt;는 이름이 임시 테이블의 이름과 일치하는 영구 테이블의 복제를 차단한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;wsrep_debug&lt;/span&gt;&lt;span&gt;를&lt;span&gt; 1&lt;/span&gt;로 설정하면 오류 로그에 다음 메시지가 포함될 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;... [Note] WSREP: TO BEGIN: -1, 0 : create table t (i int) engine=innodb&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;... [Note] WSREP: TO isolation skipped for: 1, sql: create table t (i int) engine=innodb.Only temporary tables affected.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;버전&lt;span&gt; 8.0.21&lt;/span&gt;부터&lt;span&gt; INPLACE ALTER TABLE &lt;/span&gt;쿼리는 쿼리 실행 중에 테이블에 대한 내부 공유 잠금을 사용한다&lt;span&gt;. &lt;/span&gt;이 변경으로 인해 모든&lt;span&gt; INPLACE ALTER TABLE &lt;/span&gt;쿼리에 대해&lt;span&gt; LOCK=NONE &lt;/span&gt;절이 더 이상 허용되지 않는다&lt;span&gt;. &lt;/span&gt;이 변경 사항은 다음 시나리오에서 클러스터 노드가 중단될 수 있는 교착 상태를 해결한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;n&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;한 세션에 있거나&lt;span&gt; TOI(Total Order Isolation)&lt;/span&gt;로 적용되는&lt;span&gt; INPLACE ALTER TABLE &lt;/span&gt;쿼리&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;n&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다른 세션의 동일한 테이블에 있는&lt;span&gt; DML&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;n&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;log_bin, log_bin_index &lt;/span&gt;&lt;span&gt;값을 정의할 때 하나 이상의 점 문자&lt;span&gt;(.)&lt;/span&gt;를 사용하지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;n&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;과&lt;span&gt; XtraBackup&lt;/span&gt;은 서로 다른 방식으로 값을 처리하며 이러한 차이로 인해 예측할 수 없는 동작이 발생한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Percona &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;버전 번호이해&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;버전 번호는 제품 릴리스를 식별한다&lt;span&gt;. &lt;/span&gt;제품에는 해당 릴리스 당시의 최신&lt;span&gt; GA(&lt;/span&gt;일반 출시&lt;span&gt;) &lt;/span&gt;기능이 포함되어 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;349&quot; data-origin-height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKcH7c/btsv7XjQ2A8/yHHNKIAjjiWetzx71diaJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKcH7c/btsv7XjQ2A8/yHHNKIAjjiWetzx71diaJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKcH7c/btsv7XjQ2A8/yHHNKIAjjiWetzx71diaJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKcH7c%2Fbtsv7XjQ2A8%2FyHHNKIAjjiWetzx71diaJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;349&quot; height=&quot;101&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;349&quot; data-origin-height=&quot;101&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Percona&lt;/span&gt;&lt;span&gt;는 기본 버전&lt;span&gt;, &lt;/span&gt;마이너 빌드 및 선택적 사용자 정의 빌드 패턴을 따르는 의미 체계 버전 번호 지정을 사용한다&lt;span&gt;. Percona&lt;/span&gt;는 각 마이너 빌드 릴리스에 대해 음수가 아닌 고유한 정수를 오름차순으로 할당한다&lt;span&gt;. &lt;/span&gt;버전 번호는 필요한 경우 기본&lt;span&gt; Percona Server for MySQL &lt;/span&gt;버전 번호&lt;span&gt;, &lt;/span&gt;마이너 빌드 버전 및 사용자 정의 빌드 버전을 결합한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Base Version : &lt;/span&gt;&lt;span&gt;기본으로 사용되는&lt;span&gt; Percona Server for MySQL &lt;/span&gt;버전을 나타내는 가장 왼쪽 숫자 집합으로&lt;span&gt;, &lt;/span&gt;베이스 버전이 이 증가하면 마이너 빌드 버전과 사용자 정의 빌드 버전이&lt;span&gt; 0&lt;/span&gt;으로 재설정된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Minor Build : Percona XtraDB &lt;/span&gt;&lt;span&gt;클러스터가 릴리스 될 때마다 증가하는 내부 번호이며 사용자 정의 빌드 번호는&lt;span&gt; 0&lt;/span&gt;으로 재설정된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Customer Build : &lt;/span&gt;&lt;span&gt;버그 수정에 사용되는 사용자 정의 빌드에 할당된 선택적 번호이다&lt;span&gt;. &lt;/span&gt;수정 사항에 해당 기능이 포함되지 않는 한 기능은 변경되지 않는다&lt;span&gt;. &lt;/span&gt;예를 들어&lt;span&gt; Percona XtraDB Cluster 8.0.20-11.1, 8.0.20-11.2 &lt;/span&gt;및&lt;span&gt; 8.0.20-11.3&lt;/span&gt;은 동일한&lt;span&gt; Percona Server for MySQL &lt;/span&gt;버전 및 마이너 빌드 버전을 기반으로 하지만 사용자 정의 빌드 버전이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[wsrep status variables]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;623&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep status variables&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Comments&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_apply_oooe&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;병렬화 효율성&lt;span&gt;, &lt;/span&gt;쓰기가 순서 없이 적용되는 빈도&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_apply_oool&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;더 높은 시퀀스 번호를 가진 쓰기 세트가 더 낮은 시퀀스 번호를 가진 쓰기 세트보다 먼저 적용되는 빈도&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_apply_window&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;동시에 적용된 최고 및 최저 시퀀스 번호 사이의 평균 거리&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_causal_reads&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_causal_reads &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;변수가&lt;span&gt; ON&lt;/span&gt;으로 설정된 동안 처리된 쓰기 세트 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cert_bucket_count&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;인증 색인 해시 테이블의 셀 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cert_deps_distance&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;병렬로 적용될 수 있는 가장 높은 시퀀스 번호와 가장 낮은 시퀀스 번호 사이의 평균 거리&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cert_index_size&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;인증 색인의 항목 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cert_interval&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;트랜잭션이 복제되는 동안 수신된 평균 쓰기 세트 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cluster_conf_id&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;발생한 클러스터 멤버십 변경 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cluster_size&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터의 현재 노드 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cluster_state_uuid&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터의&lt;span&gt; UUID &lt;/span&gt;상태로&lt;span&gt;, &lt;/span&gt;이 값이&lt;span&gt; wsrep_local_state_uuid&lt;/span&gt;의 값과 동일하면 노드가 클러스터와 동기화상태임&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cluster_status&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터 구성 요소의 상태로&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Primary, Non-Primary, Disconnected&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가 있음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_commit_oooe&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;트랜잭션이 순서 없이 커밋된 빈도&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_commit_oool&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 변수는 현재 사용하지 않음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_commit_window&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;동시에 커밋된 최고 시퀀스 번호와 최저 시퀀스 번호 사이의 평균 거리&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_connected&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 클러스터에 연결되어 있는지 여부를 표시&lt;span&gt;. &lt;/span&gt;값이&lt;span&gt; OFF&lt;/span&gt;이면 노드가 아직 클러스터 구성 요소에 연결되지 않은 상태로&lt;span&gt;, &lt;/span&gt;이는 잘못된 구성으로 인한 것일 수 있음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_evs_delayed&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;지연된 것으로 간주되는 쉼표로 구분된 노드 목록&lt;span&gt;. &lt;/span&gt;노드 형식은&lt;span&gt; &amp;lt;uuid&amp;gt;:&amp;lt;address&amp;gt;:&amp;lt;count&amp;gt;&lt;/span&gt;로&lt;span&gt;, &amp;lt;count&amp;gt;&lt;/span&gt;는 해당 노드에 대한 지연 목록의 항목 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_evs_evict_list&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;제거된 노드의&lt;span&gt; UUID &lt;/span&gt;목록&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_evs_repl_latency&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그룹 통신 복제 대기 시간에 관한 정보를 제공&lt;span&gt;. &lt;/span&gt;이 대기 시간은 메시지가 전송된 시점부터 메시지가 수신될 때까지 초 단위로 측정&lt;span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;출력 형식&lt;span&gt;: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;min&amp;gt;/&amp;lt;avg&amp;gt;/&amp;lt;max&amp;gt;/&amp;lt;std_dev&amp;gt;/&amp;lt;sample_size&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_evs_state&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;내부&lt;span&gt; EVS &lt;/span&gt;프로토콜 상태&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_interval&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Galera &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;흐름 제어의 하한 및 상한을 표시&lt;span&gt;. &lt;/span&gt;상한은 대기열에 허용되는 최대 요청 수이며&lt;span&gt;, &lt;/span&gt;대기열이 상한에 도달하면 새 요청이 거부된다&lt;span&gt;. &lt;/span&gt;기존 요청이 처리되면 대기열이 줄어들고&lt;span&gt;, &lt;/span&gt;하한에 도달하면 새 요청이 다시 허용된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_interval_high&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;트리거할 흐름 제어의 상한을 표시&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_interval_low&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;흐름 제어를 정지하는 하한값을 표시&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_paused&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;흐름 제어로 인해 일시 중지된 마지막 상태 쿼리 이후의 시간&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_paused_ns&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;일시 중지된 상태에서 소요된 총 시간은 나노초 단위로 측정&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_recv&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마지막 상태 쿼리 이후 수신된&lt;span&gt; FC_PAUSE &lt;/span&gt;이벤트 수&lt;span&gt;. &lt;/span&gt;대부분의 상태 변수와 달리 이 카운터는 쿼리를 실행할 때마다 재설정되지 않으며&lt;span&gt;, &lt;/span&gt;서버가 다시 시작되면 재설정된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_requested&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 복제 일시 중지를 요청했는지 여부를 반환&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_sent&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마지막 상태 쿼리 이후 전송된&lt;span&gt; FC_PAUSE &lt;/span&gt;이벤트 수&lt;span&gt;. &lt;/span&gt;대부분의 상태 변수와 달리 이 카운터는 쿼리를 실행할 때마다 재설정되지 않으며&lt;span&gt;, &lt;/span&gt;서버가 다시 시작되면 재설정된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_flow_control_status&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드에 일반 트래픽에 대해 흐름 제어가 활성화되어 있는지 여부를 표시&lt;span&gt;. SST &lt;/span&gt;중에는 흐름 제어 상태를 나타내지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_gcache_pool_size&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;GCache&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 할당된 페이지 풀 및 동적 메모리의 크기&lt;span&gt;(&lt;/span&gt;바이트&lt;span&gt;)&lt;/span&gt;를 표시&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_gcomm_uuid&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Galera &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;보기&lt;span&gt; ID(&lt;/span&gt;따라서 클러스터 상태&lt;span&gt; UUID&lt;/span&gt;와 관련 없음&lt;span&gt;)&lt;/span&gt;인&lt;span&gt; gvwstate.dat&lt;/span&gt;의&lt;span&gt; UUID&lt;/span&gt;를 노출&lt;span&gt;. &lt;/span&gt;이&lt;span&gt; UUID&lt;/span&gt;는 각 노드마다 고유하며&lt;span&gt;, &lt;/span&gt;수동 제거 기능을 사용할 때 이 값을 알아야 한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_incoming_addresses&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터에 있는 수신 노드 주소의 쉼표로 구분된 목록을 표시&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_ist_receive_status&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;JOIN &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드에 대한&lt;span&gt; IST &lt;/span&gt;진행 상황을 표시&lt;span&gt;. IST&lt;/span&gt;가 실행 중이 아닌 경우 값은 비어 있으며&lt;span&gt;, IST&lt;/span&gt;가 실행 중인 경우 값은 완료된 전송 비율&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_ist_receive_seqno_end&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IST&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의 마지막 트랜잭션의 시퀀스 번호&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_ist_receive_seqno_current&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IST&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 현재 트랜잭션의 시퀀스 번호&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_ist_receive_seqno_start&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IST&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의 첫 번째 트랜잭션의 시퀀스 번호&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_last_applied&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마지막으로 적용된 트랜잭션의 시퀀스 번호&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_last_committed&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마지막으로 커밋된 트랜잭션의 시퀀스 번호&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_bf_aborts&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;실행되는 동안 복제본 트랜잭션에 의해 중단된 로컬 트랜잭션 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_cached_downto&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;GCache&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 가장 낮은 시퀀스 번호&lt;span&gt;. &lt;/span&gt;이 정보는&lt;span&gt; IST &lt;/span&gt;및&lt;span&gt; SST&lt;/span&gt;를 결정하는 데 도움이 될 수 있다&lt;span&gt;. &lt;/span&gt;값이&lt;span&gt; 0&lt;/span&gt;이면&lt;span&gt; GCache&lt;/span&gt;에 쓰기 세트가 없음을 의미 &lt;span&gt;(&lt;/span&gt;일반적으로 단일 노드의 경우&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_cert_failures&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;인증 테스트에 실패한 쓰기 세트 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_commits&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드에 커밋된 쓰기 세트 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_index&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터에 있는 노드의 인덱스&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_recv_queue&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;수신 대기열의 현재 길이&lt;span&gt;(&lt;/span&gt;즉&lt;span&gt;, &lt;/span&gt;적용을 기다리는 쓰기 세트 수&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_recv_queue_avg&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마지막 상태 쿼리 이후 수신 대기열의 평균 길이&lt;span&gt;. &lt;/span&gt;이 숫자가&lt;span&gt; 0&lt;/span&gt;보다 크면 노드가 쓰기 세트를 수신하는 속도만큼 빠르게 적용할 수 없음을 의미&lt;span&gt;. &lt;/span&gt;이는 노드가 과부하되어 복제 제한이 발생할 수 있다는 신호일 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_replays&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;비대칭 잠금 세분성으로 인한 트랜잭션 재생 횟수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_send_queue&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전송 대기열의 현재 길이&lt;span&gt;(&lt;/span&gt;즉&lt;span&gt;, &lt;/span&gt;전송 대기 중인 쓰기 세트 수&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_send_queue_avg&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마지막 상태 쿼리 이후 전송 대기열의 평균 길이&lt;span&gt;. &lt;/span&gt;클러스터에서 네트워크 처리량 문제나 복제 제한이 발생하는 경우 이 값은&lt;span&gt; 0&lt;/span&gt;보다 훨씬 커진다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_state&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;내부&lt;span&gt; Galera &lt;/span&gt;클러스터&lt;span&gt; FSM &lt;/span&gt;상태 번호&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_state_comment&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드 상태에 대한 내부 번호 및 사람이 읽을 수 있는 해당 설명&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1 : Joining - Node is joining the cluster&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2 : Donor/Desynced - Node is the donor to the node joining the cluster&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3 : Joined - Node has joined the cluster&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;4 : Synced-Node is synced with the cluster&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_local_state_uuid&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드에 저장된 상태의&lt;span&gt; UUID.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_monitor_status&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로컬 모니터&lt;span&gt;(&lt;/span&gt;로컬 및 복제 작업&lt;span&gt;), &lt;/span&gt;적용 모니터&lt;span&gt;(&lt;/span&gt;쓰기 세트의 적용 작업&lt;span&gt;) &lt;/span&gt;및 커밋 모니터&lt;span&gt;(&lt;/span&gt;쓰기 세트의 커밋 작업&lt;span&gt;)&lt;/span&gt;의 상태&lt;span&gt;. &lt;/span&gt;이 변수의 값에서 각 모니터&lt;span&gt;(L: Local, A: Apply, C: Commit)&lt;/span&gt;는&lt;span&gt; last_entered &lt;/span&gt;및&lt;span&gt; last_left &lt;/span&gt;쌍으로 표시&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_monitor_status (L/A/C)&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[ ( 7, 5), (2, 2), ( 2, 2) ]&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_protocol_version&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;사용된&lt;span&gt; wsrep &lt;/span&gt;프로토콜의 버전&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_provider_name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공급자의 이름&lt;span&gt;(&lt;/span&gt;일반적으로&lt;span&gt; Galera).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_provider_vendor&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공급자 공급업체의 이름&lt;span&gt;(&lt;/span&gt;일반적으로&lt;span&gt; Codership Oy).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_provider_version&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공급자의 현재 버전&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_ready&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 쿼리를 수락할 준비가 되었는지 표시&lt;span&gt;. &lt;/span&gt;상태가&lt;span&gt; OFF&lt;/span&gt;이면 거의 모든 쿼리가&lt;span&gt; ERROR 1047(08S01) &lt;/span&gt;알 수 없는 명령 오류로 인해 실패한다&lt;span&gt;. (wsrep_on &lt;/span&gt;변수가&lt;span&gt; 0&lt;/span&gt;으로 설정되지 않은 경우&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_received&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다른 노드에서 수신된 총 쓰기 세트 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_received_bytes&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다른 노드에서 수신된 쓰기 세트의 총 크기&lt;span&gt;(&lt;/span&gt;바이트&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_repl_data_bytes&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제된 데이터의 총 크기&lt;span&gt;(&lt;/span&gt;바이트&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_repl_keys&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제된 총 키 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_repl_keys_bytes&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제된 키의 총 크기&lt;span&gt;(&lt;/span&gt;바이트&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_repl_other_bytes&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제된 다른 비트의 총 크기&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_replicated&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다른 노드로 전송된 총 쓰기 세트 수&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_replicated_bytes&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제된 쓰기 세트의 총 크기&lt;span&gt;. &lt;/span&gt;네트워크를 통해 클러스터 피어로 전송된 실제 바이트 크기를 계산하려면 이 변수의 값에 지정된 네트워크 세그먼트의 클러스터 피어 수를 곱한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[wsrep system variables]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;623&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep system variables&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Comments&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pxc_encrypt_cluster_traffic&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SSL &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;암호화의 자동 구성을 활성화 유무&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ON, 1, true : Enabled(default).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;OFF, 0, false : Disabled.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pxc_maint_mode&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ProxySQL&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의 설정을 조정하지 않고 노드를 종료하기 위한 유지 관리 모드를 지정&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;DISABLED : ProxySQL&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에게 평소와 같이 트래픽을 노드로 라우팅하도록 지시하는 기본 상태&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SHUTDOWN: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드 종료를 시작할 때 자동으로 설정&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;MAINTENANCE: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드를 종료하지 않고 유지 관리를 수행해야 하는 경우 이 상태를 수동으로 변경할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pxc_maint_transition_period&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pxc_maint_mode&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를&lt;span&gt; SHUTDOWN &lt;/span&gt;또는&lt;span&gt; MAINTENANCE&lt;/span&gt;로 변경할 때 전환 기간을 정의&lt;span&gt;. &lt;/span&gt;기본적으로 기간은&lt;span&gt; 10&lt;/span&gt;초로 설정&lt;span&gt;. &lt;/span&gt;장기 실행 트랜잭션을 수용하도록 값을 늘릴 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pxc_strict_mode&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 실험적 기능과 지원되지 않는 기능의 사용을 피하기 위해 검증을 실행하는&lt;span&gt; PXC Strict &lt;/span&gt;모드를 제어&lt;span&gt;. &lt;/span&gt;선택한 실제 모드에 따라 유효성 검사에 실패하면 서버에서 오류가 발생하거나&lt;span&gt;(&lt;/span&gt;시작 중지 또는 작업 거부&lt;span&gt;) &lt;/span&gt;경고를 기록하고 정상적으로 계속 실행&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_applier_FK_checks&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터&lt;span&gt; wsrep_slave_FK_checks &lt;/span&gt;변수는 이 변수를 위해 더 이상 사용되지 않음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_applier_threads&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터&lt;span&gt; wsrep_slave_threads &lt;/span&gt;변수는 더 이상 사용되지 않으며&lt;span&gt;, wsrep_applier_threads &lt;/span&gt;변수를 사용한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_applier_UK_checks&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터&lt;span&gt; wsrep_slave_UK_checks &lt;/span&gt;변수는 더 이상 사용되지 않으며&lt;span&gt;, wsrep_applier_UK_checks &lt;/span&gt;변수를 사용한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_auto_increment_control&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터 크기에 따라 자동 증가 시스템 변수의 자동 조정을 활성화&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;auto_increment_increment : &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;연속적인&lt;span&gt; AUTO_INCREMENT &lt;/span&gt;열 값 사이의 간격을 제어&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;auto_increment_offse : AUTO_INCREMENT &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;열 값의 시작점을 결정&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_causal_reads&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;경우에 따라 소스가 복제본보다 더 빠르게 이벤트를 적용할 수 있으며&lt;span&gt;, &lt;/span&gt;이로 인해 소스와 복제본이 잠시 동안 동기화되지 않을 수 있다&lt;span&gt;. &lt;/span&gt;이 변수가&lt;span&gt; ON&lt;/span&gt;으로 설정되면 복제본은 다른 쿼리를 수행하기 전에 해당 이벤트가 적용될 때까지 기다린다&lt;span&gt;. &lt;/span&gt;이 변수를 활성화하면 대기 시간이 길어진다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_certification_rules&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터에서 인증이 수행되는 방식을 제어하며&lt;span&gt;, &lt;/span&gt;특히 외래 키가 처리되는 방식에 영향을 미친다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_certify_nonPK&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기본 키가 없는 행에 대해 기본 키 자동 생성을 활성화&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cluster_address&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터에 연결할 때 노드가 사용하는 백엔드 스키마&lt;span&gt;, IP &lt;/span&gt;주소&lt;span&gt;, &lt;/span&gt;포트 및 옵션을 정의&lt;span&gt;. &lt;/span&gt;이 변수는 활성 상태이고 클러스터의 구성원인 다른 노드의 주소를 하나 이상 지정해야 한다&lt;span&gt;. &lt;/span&gt;실제로는 가능한 모든 클러스터 노드의 전체 목록을 제공하는 것이 가장 좋다&lt;span&gt;(&lt;/span&gt;필수는 아님&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_cluster_name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터의 이름을 지정하며 모든 노드에서 동일해야 한다&lt;span&gt;. &lt;/span&gt;노드는 클러스터에 연결을 시도할 때 값을 확인한다&lt;span&gt;. &lt;/span&gt;이름이 일치하면 노드가 연결됩니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_data_home_dir&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공급자가 해당 파일&lt;span&gt;(&lt;/span&gt;예&lt;span&gt;: grastate.dat)&lt;/span&gt;을 저장하는 디렉터리의 경로를 지정&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_dbug_option&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공급자에게 전달할&lt;span&gt; DBUG &lt;/span&gt;옵션을 정의&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_debug&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;데이터베이스 서버 및&lt;span&gt; wsrep-lib&lt;/span&gt;에 대한 디버그 수준 로깅을 활성화&lt;span&gt;(&lt;/span&gt;기본적으로&lt;span&gt; --wsrep-debug &lt;/span&gt;변수는 비활성화되어 있음&lt;span&gt;). &lt;/span&gt;이 변수는 문제를 진단하거나 버그를 제출할 때 사용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_desync&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 흐름 제어에 참여해야 하는지 여부를 정의 &lt;span&gt;(&lt;/span&gt;비활성화 기본값&lt;span&gt;). &lt;/span&gt;수신 대기열이 너무 커지면 노드가 흐름 제어에 참여한다&lt;span&gt;. &lt;/span&gt;이 변수를 활성화하면 노드에 대한 흐름 제어가 비활성화된다&lt;span&gt;. &lt;/span&gt;적용할 수 없는 쓰기 세트를 계속 수신하고 수신 대기열은 계속 증가하며 노드는 계속해서 클러스터 뒤처지게 된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이를 다시&lt;span&gt; OFF&lt;/span&gt;로 전환하려면 비동기화 기간에 따라&lt;span&gt; IST &lt;/span&gt;또는&lt;span&gt; SST&lt;/span&gt;가 필요하다&lt;span&gt;. &lt;/span&gt;이는&lt;span&gt; RSU TOI &lt;/span&gt;중에 발생하는 클러스터 비동기화와 유사하다&lt;span&gt;. &lt;/span&gt;이 때문에&lt;span&gt; wsrep_desync&lt;/span&gt;를 오랜 기간 동안 활성화하거나 여러 노드에 대해 동시에 활성화하는 것은 좋은 생각이 아니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_dirty_reads&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 비작동 상태&lt;span&gt;, &lt;/span&gt;즉 기본 구성요소에 대한 연결이 끊어졌을 때 읽기 쿼리를 수락할지 여부를 정의&lt;span&gt;. &lt;/span&gt;기본적으로 이 변수는 비활성화되어 있으며 데이터가 올바른지 알 수 있는 방법이 없기 때문에 노드는 모든 쿼리를 거부한다&lt;span&gt;. &lt;/span&gt;이 변수를 활성화하면 노드는 읽기 쿼리&lt;span&gt;(USE, SELECT, LOCK TABLE &lt;/span&gt;및&lt;span&gt; UNLOCK TABLES)&lt;/span&gt;를 허용하지만 작동하지 않는 노드에서 데이터베이스를 수정하거나 업데이트하는 모든 명령은 계속 거부된다&lt;span&gt;(DDL &lt;/span&gt;및&lt;span&gt; DML &lt;/span&gt;문 포함&lt;span&gt;). INSERT, DELETE, UPDATE &lt;/span&gt;등&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;교착 상태 오류를 방지하려면&lt;span&gt; wsrep_dirty_reads&lt;/span&gt;를 활성화한 경우&lt;span&gt; wsrep_sync_wait &lt;/span&gt;변수를&lt;span&gt; 0&lt;/span&gt;으로 설정한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터&lt;span&gt; set_var &lt;/span&gt;힌트를 사용하여 변수를 업데이트할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_drupal_282555_workaround&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Drupal&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 영향을 미치는&lt;span&gt; MySQL InnoDB &lt;/span&gt;버그&lt;span&gt;(Drupal &lt;/span&gt;버그&lt;span&gt; #282555 &lt;/span&gt;및&lt;span&gt; MySQL &lt;/span&gt;버그&lt;span&gt; #41984)&lt;/span&gt;에 대한 해결 방법을 활성화한다&lt;span&gt;. &lt;/span&gt;경우에 따라&lt;span&gt; AUTO_INCREMENT &lt;/span&gt;열에&lt;span&gt; DEFAULT &lt;/span&gt;값을 삽입할 때 중복 키 오류가 발생한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_forced_binlog_format&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클라이언트 세션&lt;span&gt; binlog_format &lt;/span&gt;변수 값에 관계없이 항상 유효한 바이너리 로그 형식을 정의한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ROW: Force row-based logging format&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;STATEMENT: Force statement-based logging format&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;MIXED: Force mixed logging format&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;NONE: Do not force the binary log format and use whatever is set by the binlog_format variable (default)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_ignore_apply_errors&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;오류에 대한&lt;span&gt; wsrep &lt;/span&gt;적용자 동작 규칙을 정의&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_min_log_verbosity&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep/Galera&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의 최소 로깅 상세 수준을 정의하고&lt;span&gt; log_error_verbosity &lt;/span&gt;변수와 함께 작동&lt;span&gt;. wsrep_min_log_verbosity&lt;/span&gt;는&lt;span&gt; log_error_verbosity&lt;/span&gt;와 동일한 값을 갖는다&lt;span&gt;. log_error_verbosity&lt;/span&gt;가&lt;span&gt; wsrep_min_log_verbosity&lt;/span&gt;보다 큰 경우&lt;span&gt; wsrep/Galera&lt;/span&gt;의 실제 로그 상세 수준은&lt;span&gt; wsrep_min_log_verbosity &lt;/span&gt;값보다 클 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_load_data_splitting&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 대규모&lt;span&gt; LOAD DATA &lt;/span&gt;트랜잭션을 분할해야 하는지 여부를 정의&lt;span&gt;. &lt;/span&gt;이 변수는 기본적으로 활성화됩니다&lt;span&gt;. &lt;/span&gt;즉&lt;span&gt;, LOAD DATA &lt;/span&gt;명령은&lt;span&gt; 10,000&lt;/span&gt;행 이하의 트랜잭션으로 분할된다&lt;span&gt;. &lt;/span&gt;이 변수를 비활성화하면 막대한 데이터 로드로 인해 충돌 발생 시 노드가 작업을 완전히 롤백하지 못할 수 있으며 커밋된 내용은 커밋된 상태로 유지된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_log_conflicts&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 충돌에 대한 추가 정보를 기록해야 하는지 여부를 정의&lt;span&gt;. &lt;/span&gt;기본적으로 이 변수는 비활성화되어 있으며&lt;span&gt; Percona XtraDB Cluster&lt;/span&gt;는&lt;span&gt; MySQL&lt;/span&gt;의 표준 로깅 기능을 사용&lt;span&gt;. &lt;/span&gt;이 변수를 활성화하면 충돌이 발생한 테이블과 스키마뿐만 아니라 충돌을 일으킨 키의 실제 값도 기록된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_max_ws_rows&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;각 쓰기 세트에 포함될 수 있는 최대 행 수를 정의&lt;span&gt;. &lt;/span&gt;기본적으로 쓰기 세트의 최대 행 수에는 제한이 없다&lt;span&gt;. &lt;/span&gt;허용되는 최대 값은&lt;span&gt; 1048576&lt;/span&gt;이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_max_ws_size&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최대 쓰기 세트 크기&lt;span&gt;(&lt;/span&gt;바이트&lt;span&gt;)&lt;/span&gt;를 정의&lt;span&gt;. &lt;/span&gt;지정된 값보다 큰 값은 거부된다&lt;span&gt;. 1024&lt;/span&gt;와 기본값&lt;span&gt; 2147483647 &lt;/span&gt;사이의 값으로 설정할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_mode&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.31&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 구현되었으며&lt;span&gt;, &lt;/span&gt;지정된 값에 따라 노드 동작을 정의&lt;span&gt;. &lt;/span&gt;값은 기본적으로 비어 있거나 비활성화되어 있음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;비어 있음&lt;span&gt; - &lt;/span&gt;노드 동작을 변경하지 않음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IGNORE_NATIVE_REPLICATION_FILTER_RULES - &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기본 복제 필터 규칙을 무시하도록&lt;span&gt; wsrep &lt;/span&gt;동작을 변경&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_node_address&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드의 네트워크 주소를 지정&lt;span&gt;. &lt;/span&gt;기본적으로 이 변수는 첫 번째 네트워크 인터페이스&lt;span&gt;(&lt;/span&gt;일반적으로&lt;span&gt; eth0 &lt;/span&gt;또는&lt;span&gt; enp2s0)&lt;/span&gt;의&lt;span&gt; IP &lt;/span&gt;주소와 기본 포트&lt;span&gt;(4567)&lt;/span&gt;로 설정&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_node_incoming_address&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 클라이언트 연결을 예상하는 네트워크 주소를 지정&lt;span&gt;. &lt;/span&gt;기본적으로 &lt;span&gt;wsrep_node_address&lt;/span&gt;의&lt;span&gt; IP &lt;/span&gt;주소와 포트 번호&lt;span&gt; 3306&lt;/span&gt;을 사용&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_node_name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드의 고유 이름을 정의&lt;span&gt;. &lt;/span&gt;기본값은 호스트 이름&lt;span&gt;. &lt;/span&gt;이 변수의 값을 클러스터에서 지정된 노드를 식별하는 수단으로 사용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_notify_cmd&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터 멤버십이나 로컬 노드 상태가 변경될 때마다 노드가 실행해야 하는 알림 명령을 지정&lt;span&gt;. &lt;/span&gt;이는 경고를 보내거나 로드 밸런서를 재구성하는 데 사용될 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_on&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드의 현재 세션 트랜잭션 변경 사항이 클러스터에 복제되는지 정의&lt;span&gt;. &lt;/span&gt;세션을&lt;span&gt; OFF&lt;/span&gt;로 설정하면 해당 세션에 트랜잭션 변경 사항이 복제되지 않는다&lt;span&gt;. &lt;/span&gt;설정으로 인해 노드가 클러스터를 떠나지 않으며 노드가 다른 노드와 통신한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_OSU_method&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가&lt;span&gt; DDL &lt;/span&gt;문을 복제하는 데 사용하는 온라인 스키마 업그레이드 방법을 정의&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_provider&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Galera &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;라이브러리의 경로를 지정&lt;span&gt;. &lt;/span&gt;경로를 지정하지 않거나 값이 유효하지 않은 경우 노드는&lt;span&gt; MySQL&lt;/span&gt;의 독립 실행형 인스턴스로 작동&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_provider_options&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_provider&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;옵션 인덱스에 설명된 복제 공급자에 대한 선택적 설정을 지정&lt;span&gt;. &lt;/span&gt;이러한 옵션은 복제 중에 다양한 상황이 처리되는 방식에 영향을 준다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_recover&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로그에서&lt;span&gt; GTID&lt;/span&gt;를 구문 분석하여 충돌 후 데이터베이스 상태를 복구&lt;span&gt;. GTID&lt;/span&gt;가 발견되면 서버의 초기 위치로 지정된다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_reject_queries&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드가 클라이언트의 쿼리를 거부해야 하는지 여부를 정의&lt;span&gt;. &lt;/span&gt;쿼리 거부는 업그레이드 중에 쿼리를 수락하지 않고 노드를 유지하고 쓰기 세트를 적용하려는 경우 유용할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_replicate_myisam&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;MyISAM &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;테이블에 대한&lt;span&gt; DML &lt;/span&gt;문을 복제해야 하는지 여부를 정의&lt;span&gt;. &lt;/span&gt;기본적으로 비활성화되어 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전역 수준에서&lt;span&gt; wsrep_replicate_myisam&lt;/span&gt;은 시작 중에만 설정할 수 있다&lt;span&gt;. &lt;/span&gt;세션 수준에서는 런타임 중에도 변경할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_restart_replica&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터 더 이상 사용되지 않음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_restart_slave&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터 더 이상 사용되지 않음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_retry_autocommit&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;인증 오류가 발생할 경우 클러스터에서 자동 커밋 트랜잭션을 다시 시도할 횟수를 지정&lt;span&gt;. &lt;/span&gt;충돌이 있는 경우 클러스터 노드는 클라이언트에 오류를 반환하지 않고 명령문을 다시 시도하여 다음에 통과할 수 있기를 바라면 안전하다&lt;span&gt;. &lt;/span&gt;이는 복제 충돌로 인해 발생할 수 있는 교착 상태 오류를 방지하기 위해 자동 커밋을 사용하는 애플리케이션을 돕는 데 유용할 수 있다&lt;span&gt;. &lt;/span&gt;이 변수가&lt;span&gt; 0&lt;/span&gt;으로 설정되면 자동 커밋 트랜잭션이 다시 시도되지 않는다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_RSU_commit_timeout&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;RSU&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 시작하기 전에 활성 연결이&lt;span&gt; COMMIT &lt;/span&gt;작업을 완료할 수 있도록 허용하는 시간 제한&lt;span&gt;(&lt;/span&gt;마이크로초&lt;span&gt;)&lt;/span&gt;을 지정&lt;span&gt;. RSU&lt;/span&gt;를 실행하는 동안 사용자가 노드를 격리했고 노드에서 실행 중인 활성 트래픽이 없을 것으로 예상된다&lt;span&gt;. RSU&lt;/span&gt;는 이를 확인하고&lt;span&gt; RSU&lt;/span&gt;를 시작하기 전에&lt;span&gt; COMMIT &lt;/span&gt;상태의 활성 연결을 기다린다&lt;span&gt;. &lt;/span&gt;기본적으로 이 검사의 시간 제한은&lt;span&gt; 5&lt;/span&gt;밀리초이지만 어떤 경우에는&lt;span&gt; COMMIT&lt;/span&gt;가 더 오래 걸린다&lt;span&gt;. &lt;/span&gt;이 변수는 제한 시간을 설정하며&lt;span&gt; (5&lt;/span&gt;밀리초&lt;span&gt;, 365&lt;/span&gt;일&lt;span&gt;) &lt;/span&gt;범위의 값을 허용한다&lt;span&gt;. &lt;/span&gt;값은 마이크로초 단위로 설정된다&lt;span&gt;. &lt;/span&gt;변수의 단위는 마이크로초 단위이므로 그에 맞춰 설정한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_slave_FK_checks&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터 이 변수는 더 이상 사용되지 않음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_slave_threads&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터 이 변수는 더 이상 사용되지 않음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_slave_UK_checks&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터 이 변수는 더 이상 사용되지 않음&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_SR_store&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;스트리밍 복제 조각을 위한 스토리지를 정의&lt;span&gt;. &lt;/span&gt;사용 가능한 값은 기본값인&lt;span&gt; table&lt;/span&gt;과 변수를 비활성화하는&lt;span&gt; none&lt;/span&gt;이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_sst_allowed_methods&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_sst_method &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;변수에 대해 서버에서 허용하는&lt;span&gt; SST &lt;/span&gt;방법을 제한&lt;span&gt;. &lt;/span&gt;기본값은&lt;span&gt; xtrabackup-v2&lt;/span&gt;이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_sst_donor&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;현재 노드가&lt;span&gt; SST &lt;/span&gt;및&lt;span&gt; IST&lt;/span&gt;에 대한 기증자로 선호해야 하는 노드 목록&lt;span&gt;(wsrep_node_name &lt;/span&gt;값 사용&lt;span&gt;)&lt;/span&gt;을 지정&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_sst_method&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SST(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상태 스냅샷 전송&lt;span&gt;)&lt;/span&gt;에 대한 방법 또는 스크립트를 정의&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_sst_receive_address&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기증자 노드가 상태 전송을 보내야 하는 네트워크 주소를 지정&lt;span&gt;. &lt;/span&gt;기본적으로 이 변수는&lt;span&gt; AUTO&lt;/span&gt;로 설정되며 &lt;span&gt;wsrep_node_address&lt;/span&gt;의&lt;span&gt; IP &lt;/span&gt;주소가 사용됩니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_start_position&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드의 시작 위치를&lt;span&gt; UUID:seqno&lt;/span&gt;로 지정&lt;span&gt;. &lt;/span&gt;이 변수에 대해 모든 노드가 동일한 값을 갖도록 설정하면 상태 전송 없이 클러스터를 설정할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_sync_wait&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;특정 명령문에 대한 클러스터 전체의 인과성 검사를 제어한다&lt;span&gt;. &lt;/span&gt;클러스터와 완전히 동기화된 노드에서 명령문이 실행되는지 확인한다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터&lt;span&gt; set_var &lt;/span&gt;힌트를 사용하여 변수를 업데이트할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_trx_fragment_size&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;스트리밍 복제 조각 크기를 정의한다&lt;span&gt;. &lt;/span&gt;이 변수는&lt;span&gt; wsrep_trx_fragment_unit&lt;/span&gt;에 의해 정의된 값으로 측정된다&lt;span&gt;. &lt;/span&gt;최소값은&lt;span&gt; 0&lt;/span&gt;이고 최대값은&lt;span&gt; 2147483647&lt;/span&gt;이다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Percona XtraDB Cluster for MySQL 8.0.26-16&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부터&lt;span&gt; set_var &lt;/span&gt;힌트를 사용하여 변수를 업데이트할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;242&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_trx_fragment_unit&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;382&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;wsrep_trx_fragment_size&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 대한 측정 유형을 정의&lt;span&gt;. &lt;/span&gt;가능한 값은 바이트&lt;span&gt;, &lt;/span&gt;행&lt;span&gt;, &lt;/span&gt;명령문이다&lt;span&gt;. Percona XtraDB Cluster for MySQL 8.0.26-16&lt;/span&gt;부터&lt;span&gt; set_var &lt;/span&gt;힌트를 사용하여 변수를 업데이트할 수 있다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;About Percona XtraDB Cluster : &lt;a href=&quot;https://docs.percona.com/percona-xtradb-cluster/8.0/intro.html&quot;&gt;https://docs.percona.com/percona-xtradb-cluster/8.0/intro.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-27 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL Percona, XtraDB, XtraBackup, XtraDB Cluster, &lt;/span&gt;&lt;span&gt;퍼코나 클러스터&lt;span&gt;, &lt;/span&gt;퍼코나 데이터베이스&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL Percona</category>
      <category>XtraBackup</category>
      <category>XtraDB</category>
      <category>XtraDB Cluster</category>
      <category>퍼코나 데이터베이스</category>
      <category>퍼코나 클러스터</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1550</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL-Percona-XtraDB-Cluster-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%84%A4%EC%A0%95-%EB%B3%80%EC%88%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0#entry1550comment</comments>
      <pubDate>Wed, 27 Sep 2023 14:30:23 +0900</pubDate>
    </item>
    <item>
      <title>[Linux] 리눅스 디스크 용량 확인</title>
      <link>https://sqlmvp.tistory.com/entry/Linux-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EC%8A%A4%ED%81%AC-%EC%9A%A9%EB%9F%89-%ED%99%95%EC%9D%B8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Linux] &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;리눅스&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;디스크&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;용량&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;확인&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;시스템을&lt;/span&gt; &lt;span&gt;운영하다&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;공간&lt;/span&gt; &lt;span&gt;사용률이&lt;/span&gt; &lt;span&gt;100%&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;경우가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;실수하는&lt;/span&gt; &lt;span&gt;부분이&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;방치하여&lt;/span&gt; &lt;span&gt;어느&lt;/span&gt; &lt;span&gt;순간&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;공간을&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;소진하였거나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;백업할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;순간적으로&lt;/span&gt; &lt;span&gt;디스크를&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;소진하여&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;때가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;주기적인&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;모니터링으로&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;공간에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;사용률을&lt;/span&gt; &lt;span&gt;확인하여&lt;/span&gt; &lt;span&gt;사전에&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;부분을&lt;/span&gt; &lt;span&gt;방지할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇다면&lt;/span&gt; &lt;span&gt;어느&lt;/span&gt; &lt;span&gt;디렉터리에서&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt; &lt;span&gt;공간을&lt;/span&gt; &lt;span&gt;사용하는지를&lt;/span&gt; &lt;span&gt;확인하는&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;무엇일까&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;리눅스에서&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;사용량을&lt;/span&gt; &lt;span&gt;확인하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;리눅스에서&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;공간을&lt;/span&gt; &lt;span&gt;확인하는&lt;/span&gt; &lt;span&gt;명령어는&lt;/span&gt; &lt;span&gt;df (Disk Free)&lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;마운트&lt;/span&gt; &lt;span&gt;되어있는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;디스크의&lt;/span&gt; &lt;span&gt;사용량을&lt;/span&gt; &lt;span&gt;보여준다&lt;/span&gt;&lt;span&gt;. 1K-blocks &lt;/span&gt;&lt;span&gt;항목이&lt;/span&gt; &lt;span&gt;디스크에&lt;/span&gt; &lt;span&gt;할당된&lt;/span&gt; &lt;span&gt;용량이며&lt;/span&gt;&lt;span&gt;, Used&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;사용량&lt;/span&gt;&lt;span&gt;, Available&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;공간&lt;/span&gt;&lt;span&gt;, Use%&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;공간에서&lt;/span&gt; &lt;span&gt;사용률을&lt;/span&gt; &lt;span&gt;퍼센트로&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;df&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cN00DK/btsvqBRchxo/yhgmQ8dxZiiWXJUM6XcOt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cN00DK/btsvqBRchxo/yhgmQ8dxZiiWXJUM6XcOt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cN00DK/btsvqBRchxo/yhgmQ8dxZiiWXJUM6XcOt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcN00DK%2FbtsvqBRchxo%2FyhgmQ8dxZiiWXJUM6XcOt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;772&quot; height=&quot;221&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;용량&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;사용량이&lt;/span&gt; &lt;span&gt;킬로바이트로&lt;/span&gt; &lt;span&gt;표시되기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;용량이&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;자릿수로&lt;/span&gt; &lt;span&gt;인해&lt;/span&gt; &lt;span&gt;쉽게&lt;/span&gt; &lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;확인하기&lt;/span&gt; &lt;span&gt;어렵다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;-h &lt;/span&gt;&lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;친화적으로&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;df -h&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AN9kK/btsvXVTW00S/nkVQl6bKyVMhdlOFjMNzHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AN9kK/btsvXVTW00S/nkVQl6bKyVMhdlOFjMNzHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AN9kK/btsvXVTW00S/nkVQl6bKyVMhdlOFjMNzHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAN9kK%2FbtsvXVTW00S%2FnkVQl6bKyVMhdlOFjMNzHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;230&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;디스크가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;디렉터리별&lt;/span&gt; &lt;span&gt;사용량&lt;/span&gt; &lt;span&gt;확인은&lt;/span&gt; &lt;span&gt;du&lt;/span&gt;&lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. du&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;disk usage&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;약자로&lt;/span&gt; &lt;span&gt;하위&lt;/span&gt; &lt;span&gt;디렉토리를&lt;/span&gt; &lt;span&gt;포함한&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;사용량을&lt;/span&gt; &lt;span&gt;보여준다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;du -h /var/lib/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbVfme/btsvXchntyA/z7w2AkhHCd8xEsvvOEZnFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbVfme/btsvXchntyA/z7w2AkhHCd8xEsvvOEZnFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbVfme/btsvXchntyA/z7w2AkhHCd8xEsvvOEZnFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbVfme%2FbtsvXchntyA%2Fz7w2AkhHCd8xEsvvOEZnFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;304&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하위&lt;/span&gt; &lt;span&gt;디렉터리가&lt;/span&gt; &lt;span&gt;많을&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;어느&lt;/span&gt; &lt;span&gt;디렉토리에서&lt;/span&gt; &lt;span&gt;사용량이&lt;/span&gt; &lt;span&gt;많은지&lt;/span&gt; &lt;span&gt;한번에&lt;/span&gt; &lt;span&gt;확인하기&lt;/span&gt; &lt;span&gt;힘들다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt; &lt;span&gt;사용량&lt;/span&gt; &lt;span&gt;기준으로&lt;/span&gt; &lt;span&gt;정렬한&lt;/span&gt; &lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;표시할&lt;/span&gt; &lt;span&gt;때에는&lt;/span&gt; &lt;span&gt;sort -n &lt;/span&gt;&lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;du -h /var/log | sort -n&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0e1tj/btsvNui6iy2/lHd8kpVmCfgfKYSpnLUFL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0e1tj/btsvNui6iy2/lHd8kpVmCfgfKYSpnLUFL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0e1tj/btsvNui6iy2/lHd8kpVmCfgfKYSpnLUFL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0e1tj%2FbtsvNui6iy2%2FlHd8kpVmCfgfKYSpnLUFL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;768&quot; height=&quot;306&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그런데&lt;/span&gt; &lt;span&gt;나타난&lt;/span&gt; &lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;정렬&lt;/span&gt; &lt;span&gt;상태가&lt;/span&gt; &lt;span&gt;이상하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;단위가&lt;/span&gt; &lt;span&gt;바뀌면서&lt;/span&gt; &lt;span&gt;88K&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;4.1G &lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;것처럼&lt;/span&gt; &lt;span&gt;정렬되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt; &lt;span&gt;정렬을&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;때에는&lt;/span&gt; &lt;span&gt;-h &lt;/span&gt;&lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;du &lt;span&gt;&amp;nbsp;&lt;/span&gt;/var/log | sort -n&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lR0ha/btsvHdoxosk/vcTb8XhOvD5xcSMtfdWHj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lR0ha/btsvHdoxosk/vcTb8XhOvD5xcSMtfdWHj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lR0ha/btsvHdoxosk/vcTb8XhOvD5xcSMtfdWHj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlR0ha%2FbtsvHdoxosk%2FvcTb8XhOvD5xcSMtfdWHj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;705&quot; height=&quot;306&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-26 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;리눅스&lt;/span&gt;&lt;span&gt;, Linux, &lt;/span&gt;&lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;사용량&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;usage, disk usage&lt;/span&gt;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>disk usage</category>
      <category>Linux</category>
      <category>디스크 usage</category>
      <category>디스크 사용량</category>
      <category>리눅스</category>
      <category>리눅스 디스크</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1549</guid>
      <comments>https://sqlmvp.tistory.com/entry/Linux-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EC%8A%A4%ED%81%AC-%EC%9A%A9%EB%9F%89-%ED%99%95%EC%9D%B8#entry1549comment</comments>
      <pubDate>Tue, 26 Sep 2023 15:27:10 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] MySQL 5.7에서 8.0으로 업그레이드시 변경되는 설정 및 옵션 정리</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-MySQL-57%EC%97%90%EC%84%9C-80%EC%9C%BC%EB%A1%9C-%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C%EC%8B%9C-%EB%B3%80%EA%B2%BD%EB%90%98%EB%8A%94-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%98%B5%EC%85%98-%EC%A0%95%EB%A6%AC</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] MySQL 5.7&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;8.0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;으로&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;업그레이드시&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;변경되는&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;정리&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL 8.X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.7 &lt;/span&gt;&lt;span&gt;버전과&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변화가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;업그레이드하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주의가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;운영중인&lt;/span&gt;&lt;span&gt; MySQL 5.7X &lt;/span&gt;&lt;span&gt;버전에서&lt;/span&gt;&lt;span&gt; MySQL 8.0.X&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진행하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;업그레이드시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주의해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정리해본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Data Dictionary]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL Server 8.0&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;트랜잭션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개체에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전역&lt;/span&gt;&lt;span&gt; &lt;span&gt;Data Dictionary&lt;/span&gt;&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통합되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;/span&gt;&lt;span&gt;시리즈에서는&lt;/span&gt;&lt;span&gt; &lt;span&gt;Data Dictionary&lt;/span&gt;&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메타데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일과&lt;/span&gt;&lt;span&gt; &lt;span&gt;InnoDB &lt;/span&gt;&lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전에는&lt;/span&gt;&lt;span&gt; innodb_read_only &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화하면&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해서만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;삭제할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없었다&lt;/span&gt;&lt;span&gt;. MySQL 8.0&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; innodb_read_only&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;삭제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업은&lt;/span&gt;&lt;span&gt; mysql &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터베이스의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; Dictionary &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블은&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하며&lt;/span&gt;&lt;span&gt; innodb_read_only&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화되면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. Data Dictionary &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업에도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동일한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원칙이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이전에는&lt;/span&gt;&lt;span&gt; STATISTICS &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; INFORMATION_SCHEMA &lt;/span&gt;&lt;span&gt;쿼리가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;직접&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검색했다면&lt;/span&gt;&lt;span&gt;, MySQL 8.0&lt;/span&gt;&lt;span&gt;부터는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;캐시된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. information_schema_stats_expiry &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;캐시된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만료되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기간을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본값은&lt;/span&gt;&lt;span&gt; 86400&lt;/span&gt;&lt;span&gt;초&lt;/span&gt;&lt;span&gt;(24&lt;/span&gt;&lt;span&gt;시간&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수동으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;캐시된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업데이트하려면&lt;/span&gt;&lt;span&gt; ANALYZE TABLE&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;캐시된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만료된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검색된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;항상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;직접&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최신&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통계를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검색하려면&lt;/span&gt;&lt;span&gt; information_schema_stats_expiry&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;INFORMATION_SCHEMA &lt;/span&gt;&lt;span&gt;테이블은&lt;/span&gt;&lt;span&gt; &lt;span&gt;Data Dictionary &lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뷰로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;통해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;결과적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선택에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따라&lt;/span&gt;&lt;span&gt; INFORMATION_SCHEMA &lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있어야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; ORDER BY &lt;/span&gt;&lt;span&gt;절을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;INFORMATION_SCHEMA &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;시리즈와는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반환할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;애플리케이션은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세트에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대소문자를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구분하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테스트해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부분을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대소문자로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반환하도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;별칭을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysqldump &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; mysqlpump&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령줄에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명시적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우에도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; INFORMATION_SCHEMA &lt;/span&gt;&lt;span&gt;데이터베이스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;덤프하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. Data Dictionary&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자세한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내용은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Data Dictionary Usage Differences : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-usage-differences.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-usage-differences.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[caching_sha2_password &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;인증&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;플러그인&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;변경&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;caching_sha2_password &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; sha256_password &lt;/span&gt;&lt;span&gt;인증&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인은&lt;/span&gt;&lt;span&gt; mysql_native_password &lt;/span&gt;&lt;span&gt;플러그인보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안전한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비밀번호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;암호화를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공하고&lt;/span&gt;&lt;span&gt;, caching_sha2_password&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; sha256_password&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성능을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;. caching_sha2_password&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;span&gt;MySQL 8.0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인증&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버와&lt;/span&gt;&lt;span&gt; libmysqlclient &lt;/span&gt;&lt;span&gt;클라이언트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모두에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;영향을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미친다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서버의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; default_authentication_plugin &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; mysql_native_password&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; caching_sha2_password&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항은&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;이상을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치하거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정에만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;업그레이드된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인증&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유지된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자를&lt;/span&gt;&lt;span&gt; &lt;span&gt;caching_sha2_password&lt;/span&gt;&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전환하려면&lt;/span&gt;&lt;span&gt; &lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;ALTER USER &lt;/span&gt;&lt;/span&gt;&lt;span&gt;문을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전환할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;ALTER USER user IDENTIFIED WITH caching_sha2_password BY 'password';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0 &lt;/span&gt;&lt;span&gt;이상으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;호환성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인증&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되돌리도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;재구성할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;애플리케이션들이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;패스워드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방식을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보안에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취약하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;영구적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[mysqld]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;default_authentication_plugin=mysql_native_password&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;자세한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내용은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Pluggable Authentication : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication.html#pluggable-authentication-compatibility&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication.html#pluggable-authentication-compatibility&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[caching_sha2_password and the root Administrative Account]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; 'root'@'localhost' &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인증&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유지된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;설치의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기화하면&lt;/span&gt;&lt;span&gt; 'root'@'localhost' &lt;/span&gt;&lt;span&gt;계정이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성되고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; caching_sha2_password&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결하려면&lt;/span&gt;&lt;span&gt; caching_sha2_password&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지원하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클라이언트나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;커넥터를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;신규&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;루트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정이&lt;/span&gt;&lt;span&gt; mysql_native_password&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하려면&lt;/span&gt;&lt;span&gt; MySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;평소와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉토리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기화한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그런&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다음&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;루트로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다음과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같이&lt;/span&gt;&lt;span&gt; ALTER USER&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인증&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비밀번호를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[caching_sha2_password and Replication]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt;&lt;span&gt; MySQL 8.0.4 &lt;/span&gt;&lt;span&gt;이상으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시나리오에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결은&lt;/span&gt;&lt;span&gt; caching_sha2_password&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인증하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; caching_sha2_password&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인증하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클라이언트와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동일한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요구&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;보안&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; RSA &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;암호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;교환을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Configuration Changes]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자체&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티셔닝&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;핸들러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;담당하며&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;서버는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티셔닝&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. InnoDB&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; NDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지원되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티셔닝&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;핸들러를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유일한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; NDB&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변환하거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티셔닝을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않으면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나중에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;collation_server &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; collation_database &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; latin1_swedish_ci&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; utf8mb4_0900_ai_ci&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;결과적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개체의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명시적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다르다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;뷰&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;저장된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;등&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터베이스와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개체가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되었다고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가정하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유지하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법은&lt;/span&gt;&lt;span&gt; my.cnf &lt;/span&gt;&lt;span&gt;파일에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;재시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;[mysqld]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;character_set_server=latin1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;collation_server=latin1_swedish_ci&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;복제된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정에서&lt;/span&gt;&lt;span&gt; MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;업그레이드하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합을&lt;/span&gt;&lt;span&gt; MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;업그레이드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;완료되면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합을&lt;/span&gt;&lt;span&gt; utf8mb4&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;또한&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; MySQL 5.7&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검사를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시행한다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기억해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알려진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시도하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세트에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주석에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;문제의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세트로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;문제가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.11&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; lower_case_table_names &lt;/span&gt;&lt;span&gt;설정으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다양한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필드에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기화될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의된&lt;/span&gt;&lt;span&gt; lower_case_table_names &lt;/span&gt;&lt;span&gt;설정을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;식별자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비교&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관련하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불일치가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제한이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Server Changes]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.11&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비권한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위한&lt;/span&gt;&lt;span&gt; GRANT &lt;/span&gt;&lt;span&gt;문&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt;, NO_AUTO_CREATE_USER SQL &lt;/span&gt;&lt;span&gt;모드&lt;/span&gt;&lt;span&gt;, PASSWORD() &lt;/span&gt;&lt;span&gt;함수&lt;/span&gt;&lt;span&gt;, old_passwords &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;등&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관련된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령문을&lt;/span&gt;&lt;span&gt; MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;제거된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;애플리케이션은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정되어야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;가능하면&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설명된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대안을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실패를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하려면&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt;&lt;span&gt; sql_mode &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정에서&lt;/span&gt;&lt;span&gt; NO_AUTO_CREATE_USER &lt;/span&gt;&lt;span&gt;인스턴스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;저장된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의에&lt;/span&gt;&lt;span&gt; NO_AUTO_CREATE_USER SQL &lt;/span&gt;&lt;span&gt;모드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;덤프&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;서버로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로드하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;. MySQL 5.7.24 &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; MySQL 8.0.13&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; mysqldump&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의에서&lt;/span&gt;&lt;span&gt; NO_AUTO_CREATE_USER&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전의&lt;/span&gt;&lt;span&gt; mysqldump&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;덤프&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수동으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정하여&lt;/span&gt;&lt;span&gt; NO_AUTO_CREATE_USER &lt;/span&gt;&lt;span&gt;인스턴스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.11&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;호환성&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;모드인&lt;/span&gt;&lt;span&gt; DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; sql_mode &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당하거나&lt;/span&gt;&lt;span&gt; mysqldump -- Compatible &lt;/span&gt;&lt;span&gt;옵션에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. MAXDB&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거된다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt; CREATE TABLE &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; ALTER TABLE&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; TIMESTAMP &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유형이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; DATETIME&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않음을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;제거된&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;모드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령문을&lt;/span&gt;&lt;span&gt; MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt;&lt;span&gt; sql_mode &lt;/span&gt;&lt;span&gt;값에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동안&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;저장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로시저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;트리거&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이벤트&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; CREATE &lt;/span&gt;&lt;span&gt;문의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.3&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유형은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt;(SRS)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명시적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나타내기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; SRID &lt;/span&gt;&lt;span&gt;속성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;명시적인&lt;/span&gt;&lt;span&gt; SRID &lt;/span&gt;&lt;span&gt;특성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열은&lt;/span&gt;&lt;span&gt; SRID&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제한되며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당열은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열의&lt;/span&gt;&lt;span&gt; SPATIAL &lt;/span&gt;&lt;span&gt;인덱스는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램은&lt;/span&gt;&lt;span&gt; SRID &lt;/span&gt;&lt;span&gt;속성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열의&lt;/span&gt;&lt;span&gt; SPATIAL &lt;/span&gt;&lt;span&gt;인덱스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무시한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램이&lt;/span&gt;&lt;span&gt; SRID&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제한되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열의&lt;/span&gt;&lt;span&gt; SPATIAL &lt;/span&gt;&lt;span&gt;인덱스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;고려하도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;정확한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연산을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; ST_ &lt;/span&gt;&lt;span&gt;접두사를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구현하거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경계&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사각형을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연산을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; MBR &lt;/span&gt;&lt;span&gt;접두사를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구현하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네임스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; MySQL 8.0.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;생성된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실패할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;업그레이드하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; mysqlcheck --check-upgrade&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;찾은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것을&lt;/span&gt;&lt;span&gt; ST_ &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; MBR&lt;/span&gt;&lt;span&gt;이라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대체&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항목으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;제거된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수목록은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Features Removed in MySQL 8.0 : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;BACKUP_ADMIN &lt;/span&gt;&lt;span&gt;권한은&lt;/span&gt;&lt;span&gt; MySQL 8.0.3 &lt;/span&gt;&lt;span&gt;이상으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전체&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; RELOAD &lt;/span&gt;&lt;span&gt;권한이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자에게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부여된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.13&lt;/span&gt;&lt;span&gt;부터는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;혼합&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모드와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령문&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모드의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;임시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방식&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;차이로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;런타임&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로깅&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;형식&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전환에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;세션에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열려&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;임시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으면&lt;/span&gt;&lt;span&gt; SET @@SESSION.binlog_format&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채널에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열려&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;임시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으면&lt;/span&gt;&lt;span&gt; SET @@global.binlog_format &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; SET @@persist.binlog_format&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. PERSIST&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;달리&lt;/span&gt;&lt;span&gt; PERSIST_ONLY&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;런타임&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전역&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채널에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열려&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;임시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; SET @@persist_only.binlog_format&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채널&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; SET @@global.binlog_format &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; SET @@persist.binlog_format&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채널에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용되며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채널에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열려&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;임시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제한적이며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;채널&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; SET @@persist_only.binlog_format&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.27&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; Internal_tmp_mem_storage_engine&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성하려면&lt;/span&gt;&lt;span&gt; SESSION_VARIABLES_ADMIN &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; SYSTEM_VARIABLES_ADMIN &lt;/span&gt;&lt;span&gt;권한이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.27&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진행되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동안&lt;/span&gt;&lt;span&gt; &lt;span&gt;donor &lt;/span&gt;&lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;/span&gt;&lt;span&gt;인스턴스에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동시&lt;/span&gt;&lt;span&gt; DDL &lt;/span&gt;&lt;span&gt;작업을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;백업&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잠금이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유지되어&lt;/span&gt;&lt;span&gt; &lt;span&gt;donor&lt;/span&gt;&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동시&lt;/span&gt;&lt;span&gt; DDL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중에&lt;/span&gt;&lt;span&gt; &lt;span&gt;donor&lt;/span&gt;&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동시&lt;/span&gt;&lt;span&gt; DDL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;차단하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되돌리려면&lt;/span&gt;&lt;span&gt; clone_block_ddl &lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;자세한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내용은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Cloning and Concurrent DDL : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/clone-plugin-concurrent-ddl.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/clone-plugin-concurrent-ddl.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.30&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; log_error_services &lt;/span&gt;&lt;span&gt;값에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나열된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요소는&lt;/span&gt;&lt;span&gt; MySQL Server &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시퀀스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;암시적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로드된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전에&lt;/span&gt;&lt;span&gt; INSTALL COMPONENT&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요소를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치했고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;읽는&lt;/span&gt;&lt;span&gt; log_error_services &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;예&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일에서&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요소를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나열한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경고가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업데이트해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;자세한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내용은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Error Log Configuration Methods : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/error-log-configuration.html#error-log-configuration-methods&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/error-log-configuration.html#error-log-configuration-methods&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[InnoDB Changes]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;InnoDB &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; INFORMATION_SCHEMA &lt;/span&gt;&lt;span&gt;뷰는&lt;/span&gt;&lt;span&gt; &lt;span&gt;Data Dictionary &lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뷰로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대체되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;영향을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받은&lt;/span&gt;&lt;span&gt; InnoDB INFORMATION_SCHEMA &lt;/span&gt;&lt;span&gt;뷰의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. MySQL 8.0.3 &lt;/span&gt;&lt;span&gt;이상으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; InnoDB INFORMATION_SCHEMA &lt;/span&gt;&lt;span&gt;뷰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스크립트가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업데이트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #ffffff; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;623&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Old Name&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;New Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_COLUMNS&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_COLUMNS&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_DATAFILES&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_DATAFILES&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_FIELDS&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_FIELDS&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_FOREIGN&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_FOREIGN&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_FOREIGN_COLS&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_FOREIGN_COLS&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_INDEXES&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_INDEXES&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_TABLES&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_TABLES&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_TABLESPACES&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_TABLESPACES&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_TABLESTATS&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_TABLESTATS&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;283&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_SYS_VIRTUAL&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;340&quot;&gt;&lt;span&gt;&lt;span&gt;INNODB_VIRTUAL&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함께&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;번들로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공되는&lt;/span&gt;&lt;span&gt; zlib &lt;/span&gt;&lt;span&gt;라이브러리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전&lt;/span&gt;&lt;span&gt; 1.2.3&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전&lt;/span&gt;&lt;span&gt; 1.2.11&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상향되었다&lt;/span&gt;&lt;span&gt;. zlib 1.2.11&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; zlib &lt;/span&gt;&lt;span&gt;압축&lt;/span&gt;&lt;span&gt;Bound() &lt;/span&gt;&lt;span&gt;함수는&lt;/span&gt;&lt;span&gt; zlib &lt;/span&gt;&lt;span&gt;버전&lt;/span&gt;&lt;span&gt; 1.2.3&lt;/span&gt;&lt;span&gt;에서보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주어진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;길이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;압축하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버퍼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;약간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추정치를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반환한다&lt;/span&gt;&lt;span&gt;. CompressBound() &lt;/span&gt;&lt;span&gt;함수는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;압축된&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성하거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;압축된&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;삽입&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업데이트할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결정하는&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;함수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;호출된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;결과적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;릴리스에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성공했던&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;매우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가까운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; CREATE TABLE ... ROW_FORMAT=COMPRESSED, INSERT &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; UPDATE &lt;/span&gt;&lt;span&gt;작업이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실패할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;테스트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인스턴스에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;압축된&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; CREATE TABLE &lt;/span&gt;&lt;span&gt;문을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테스트해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;--innodb-directories &lt;/span&gt;&lt;span&gt;기능이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도입되면서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;절대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;외부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위치로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위치가&lt;/span&gt;&lt;span&gt; innodb_directories &lt;/span&gt;&lt;span&gt;인수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가되어야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않으면&lt;/span&gt;&lt;span&gt; InnoDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복구&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;찾을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위치를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt; FILES &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리한단&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #0077aa;&quot;&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #000000;&quot;&gt;&lt;span&gt; TABLESPACE_NAME&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #999999;&quot;&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #000000;&quot;&gt;&lt;span&gt; FILE_NAME &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #0077aa;&quot;&gt;&lt;span&gt;FROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #000000;&quot;&gt;&lt;span&gt; INFORMATION_SCHEMA&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #999999;&quot;&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #000000;&quot;&gt;&lt;span&gt;FILES \G&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상주하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. MySQL 8.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;자세한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내용은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Undo Tablespaces : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하면&lt;/span&gt;&lt;span&gt; MySQL 5.7 &lt;/span&gt;&lt;span&gt;인스턴스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거되고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대체된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스는&lt;/span&gt;&lt;span&gt; innodb_undo_directory &lt;/span&gt;&lt;span&gt;변수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위치에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된다&lt;/span&gt;&lt;span&gt;. innodb_undo_directory &lt;/span&gt;&lt;span&gt;변수가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된다&lt;/span&gt;&lt;span&gt;. MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하려면&lt;/span&gt;&lt;span&gt; MySQL 5.7 &lt;/span&gt;&lt;span&gt;인스턴스의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안전하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;느린&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;종료가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;릴리스에서&lt;/span&gt;&lt;span&gt; MySQL 8.0.14 &lt;/span&gt;&lt;span&gt;이상으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; innodb_undo_tablespaces &lt;/span&gt;&lt;span&gt;설정이&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인스턴스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각각&lt;/span&gt;&lt;span&gt; ALTER UNDO TABLESPACE &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; DROP UNDO TABLESPACE &lt;/span&gt;&lt;span&gt;구문을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;삭제되었다&lt;/span&gt;&lt;span&gt;. MySQL 8.0 &lt;/span&gt;&lt;span&gt;릴리스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시리즈&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;느린&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;종료가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있음을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로세스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.17&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; CREATE TABLESPACE ... ADD DATAFILE &lt;/span&gt;&lt;span&gt;절은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다음&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령문의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조&lt;/span&gt;&lt;span&gt;(/../)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;제한사항에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예외는&lt;/span&gt;&lt;span&gt; Linux&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉토리가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;심볼릭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉토리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;위&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로는&lt;/span&gt;&lt;span&gt; any_directory&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;심볼릭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용된다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로가&lt;/span&gt;&lt;span&gt; '../'&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여전히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용된다&lt;/span&gt;&lt;span&gt;.) &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하려면&lt;/span&gt;&lt;span&gt; MySQL 8.0.17 &lt;/span&gt;&lt;span&gt;이상으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경로를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검사하려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt; INNODB_DATAFILES &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.14&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도입된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;회귀로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;분할된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있고&lt;/span&gt;&lt;span&gt; lower_case_table_names=1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인스턴스의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; MySQL 5.7 &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; MySQL 8.0.14 &lt;/span&gt;&lt;span&gt;이전의&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;릴리스에서&lt;/span&gt;&lt;span&gt; MySQL 8.0.16&lt;/span&gt;&lt;span&gt;으로의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대소문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불일치&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전체&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실패한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구분&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자열을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다음과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같이&lt;/span&gt;&lt;span&gt; &quot; #p# &quot; &lt;/span&gt;&lt;span&gt;구분&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자열은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;앞에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오고&lt;/span&gt;&lt;span&gt; &quot; #sp# &quot; &lt;/span&gt;&lt;span&gt;구분&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자열은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하위&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;앞에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위치한다&lt;/span&gt;&lt;span&gt;. MySQL &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상황을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;소문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구분&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기호와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보장하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디스크와&lt;/span&gt;&lt;span&gt; &lt;span&gt;Data Dirctionray&lt;/span&gt;&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관련&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사전의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메타데이터이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관련&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;통계&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가져오기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디스크의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구분&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기호와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파티션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.21&lt;/span&gt;&lt;span&gt;부터는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발견되면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경고가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기록된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;알려진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리는&lt;/span&gt;&lt;span&gt; datadir, innodb_data_home_dir &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; innodb_directories &lt;/span&gt;&lt;span&gt;변수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;디렉터리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알리려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리를&lt;/span&gt;&lt;span&gt; innodb_directories &lt;/span&gt;&lt;span&gt;설정에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;디렉터리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알리면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복구&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;찾을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;자세한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내용은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Tablespace Discovery During Crash Recovery : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-recovery.html#innodb-recovery-tablespace-discovery&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/innodb-recovery.html#innodb-recovery-tablespace-discovery&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.30&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; innodb_redo_log_capacity &lt;/span&gt;&lt;span&gt;변수는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;차지하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디스크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;양을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제어한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위치도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. MySQL 8.0.30&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; InnoDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉토리의&lt;/span&gt;&lt;span&gt; #innodb_redo &lt;/span&gt;&lt;span&gt;디렉토리에&lt;/span&gt;&lt;span&gt; 32&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유지한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전에&lt;/span&gt;&lt;span&gt; InnoDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성했으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;리두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기는&lt;/span&gt;&lt;span&gt; innodb_log_files_in_group &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; innodb_log_file_size &lt;/span&gt;&lt;span&gt;변수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제어되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_redo_log_capacity &lt;/span&gt;&lt;span&gt;설정이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의되면&lt;/span&gt;&lt;span&gt; innodb_log_files_in_group &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; innodb_log_file_size &lt;/span&gt;&lt;span&gt;설정이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무시된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않으면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정은&lt;/span&gt;&lt;span&gt; innodb_redo_log_capacity &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;span&gt;(innodb_log_files_in_group * innodb_log_file_size = innodb_redo_log_capacity)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계산하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;용량은&lt;/span&gt;&lt;span&gt; innodb_redo_log_capacity &lt;/span&gt;&lt;span&gt;기본값인&lt;/span&gt;&lt;span&gt; 104857600&lt;/span&gt;&lt;span&gt;바이트&lt;/span&gt;&lt;span&gt;(100MB)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.7.35 &lt;/span&gt;&lt;span&gt;이전에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중복&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;압축&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;형식이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제한이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없었다&lt;/span&gt;&lt;span&gt;. MySQL 5.7.35&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제한은&lt;/span&gt;&lt;span&gt; 767&lt;/span&gt;&lt;span&gt;바이트이며&lt;/span&gt;&lt;span&gt;, 5.7.35 &lt;/span&gt;&lt;span&gt;이전의&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;버전에서&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;액세스할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;중복&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;압축&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;형식의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; 767&lt;/span&gt;&lt;span&gt;바이트보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;삭제하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부분에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메시지가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나타난다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #a67f59;&quot;&gt;mysql&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #000000;&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #555555;&quot;&gt;&lt;span&gt;ERROR 1709 (HY000)&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #999999;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #555555;&quot;&gt; Index column size too large. The maximum column size is 767 bytes.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[SQL Changes]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.13&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; GROUP BY &lt;/span&gt;&lt;span&gt;절에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; ASC &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; DESC &lt;/span&gt;&lt;span&gt;한정자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전에&lt;/span&gt;&lt;span&gt; GROUP BY &lt;/span&gt;&lt;span&gt;정렬에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의존했던&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;버전과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;지정된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성하려면&lt;/span&gt;&lt;span&gt; ORDER BY &lt;/span&gt;&lt;span&gt;절을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. GROUP BY &lt;/span&gt;&lt;span&gt;절에&lt;/span&gt;&lt;span&gt; ASC &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; DESC &lt;/span&gt;&lt;span&gt;한정자를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; MySQL 8.0.12 &lt;/span&gt;&lt;span&gt;이하에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;형식의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않으면&lt;/span&gt;&lt;span&gt; MySQL 8.0.13 &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버로의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;마찬가지로&lt;/span&gt;&lt;span&gt; MySQL 8.0.13 &lt;/span&gt;&lt;span&gt;이상으로의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실패할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.7&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예약되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않았던&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;키워드가&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예약어로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;식별자로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;단어가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불법이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;변경된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예약어는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Keywords and Reserved Words : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/keywords.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/keywords.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;업그레이드한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;애플리케이션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코드에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;힌트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테스트하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전략을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;달성하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;힌트가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여전히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;향상으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;힌트가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불필요해질&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;어떤&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;힌트가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;역효과를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;낳을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; CONSTRAINT &lt;/span&gt;&lt;span&gt;기호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;절&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없이&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; FOREIGN KEY &lt;/span&gt;&lt;span&gt;정의를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정하거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없이&lt;/span&gt;&lt;span&gt; CONSTRAINT &lt;/span&gt;&lt;span&gt;키워드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정하면&lt;/span&gt;&lt;span&gt; InnoDB&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제약&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대신&lt;/span&gt;&lt;span&gt; FOREIGN KEY index_name &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; InnoDB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; MySQL 8.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;제약&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;별로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;고유해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마별로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;고유하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;외래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;키&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제약&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명명&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작은&lt;/span&gt;&lt;span&gt; MySQL 8.0.16&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되돌려졌으며&lt;/span&gt;&lt;span&gt; InnoDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한번&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제약&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. InnoDB&lt;/span&gt;&lt;span&gt;와의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일관성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; MySQL 8.0.16 &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반의&lt;/span&gt;&lt;span&gt; NDB &lt;/span&gt;&lt;span&gt;릴리스는&lt;/span&gt;&lt;span&gt; CONSTRAINT &lt;/span&gt;&lt;span&gt;기호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;절이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기호&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없이&lt;/span&gt;&lt;span&gt; CONSTRAINT &lt;/span&gt;&lt;span&gt;키워드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제약&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. MySQL 5.7 &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;릴리스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; NDB &lt;/span&gt;&lt;span&gt;릴리스는&lt;/span&gt;&lt;span&gt; FOREIGN KEY index_name &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용했다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;외래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;키&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제약&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명명&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의존하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;응용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비호환성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;IFNULL() &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; CASE()&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;흐름&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리는&lt;/span&gt;&lt;span&gt; MySQL 8.0.22&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상수가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아닌&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동일한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성공했던&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함께&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나중에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘못된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;혼합으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;거부될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;올바른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;캐스팅해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 8.0.28&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;릴리스에서&lt;/span&gt;&lt;span&gt; CONVERT() &lt;/span&gt;&lt;span&gt;함수가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때때로&lt;/span&gt;&lt;span&gt; BINARY &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이진이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아닌&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘못&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변환하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정했다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의존할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;응용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특히&lt;/span&gt;&lt;span&gt; CONVERT()&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;열에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;표현식의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일부로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; MySQL 8.0.28&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;손상될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예방하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목록을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;볼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;입력&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유효성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검사할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; MySQL 8.0.28&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때까지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성하거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작성해서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;업그레이드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘못된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;입력&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;인덱스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;삭제한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다음&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ALTER TABLE &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; FORCE&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;강제로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;재구축&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;소프트웨어를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Changed Server Defaults]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래표는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt;&lt;span&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요약되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #ffffff; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Option/Parameter&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Old Default&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;New Default&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;i&gt;&lt;span&gt;Server changes&lt;/span&gt;&lt;/i&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_server&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;character_set_server&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;latin1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;utf8mb4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_collation_server&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;collation_server&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;latin1_swedish_ci&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;utf8mb4_0900_ai_ci&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_explicit_defaults_for_timestamp&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;explicit_defaults_for_timestamp&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_trace_max_mem_size&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;optimizer_trace_max_mem_size&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;16KB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;1MB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html#sysvar_validate_password_check_user_name&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;validate_password_check_user_name&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_back_log&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;back_log&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;-1 (autosize) changed from : back_log = 50 + (max_connections / 5)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;-1 (autosize) changed to : back_log = max_connections&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_allowed_packet&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;max_allowed_packet&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;4194304 (4MB)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;67108864 (64MB)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_error_count&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;max_error_count&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;64&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;1024&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_event_scheduler&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;event_scheduler&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_open_cache&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;table_open_cache&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;2000&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;4000&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_verbosity&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;log_error_verbosity&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;3 (Notes)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;2 (Warning)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;local_infile&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON (5.7)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;i&gt;&lt;span&gt;InnoDB changes&lt;/span&gt;&lt;/i&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_undo_tablespaces&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;innodb_undo_tablespaces&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_undo_log_truncate&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;innodb_undo_log_truncate&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_method&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;innodb_flush_method&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;fsync (Unix), unbuffered (Windows)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_autoinc_lock_mode&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;innodb_autoinc_lock_mode&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;1 (consecutive)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;2 (interleaved)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_neighbors&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;innodb_flush_neighbors&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;1 (enable)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;0 (disable)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct_lwm&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;innodb_max_dirty_pages_pct_lwm&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;0 (%)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;10 (%)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;innodb_max_dirty_pages_pct&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;75 (%)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;90 (%)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;i&gt;&lt;span&gt;Performance Schema changes&lt;/span&gt;&lt;/i&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;performance-schema-instrument='wait/lock/metadata/sql/%=ON'&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;performance-schema-instrument='memory/%=COUNTED'&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;COUNTED&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;performance-schema-consumer-events-transactions-current=ON&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;performance-schema-consumer-events-transactions-history=ON&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;performance-schema-instrument='transaction%=ON'&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;i&gt;&lt;span&gt;Replication changes&lt;/span&gt;&lt;/i&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_bin&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;log_bin&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options.html#sysvar_server_id&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;server_id&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_slave_updates&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;log-slave-updates&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_expire_logs_days&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;expire_logs_days&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;30&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_master_info_repository&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;master-info-repository&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;FILE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;TABLE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_relay_log_info_repository&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;relay-log-info-repository&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;FILE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;TABLE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_transaction_write_set_extraction&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;transaction-write-set-extraction&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;XXHASH64&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_slave_rows_search_algorithms&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;slave_rows_search_algorithms&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;INDEX_SCAN, TABLE_SCAN&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;INDEX_SCAN, HASH_SCAN&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_slave_pending_jobs_size_max&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;slave_pending_jobs_size_max&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;16M&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;128M&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_executed_compression_period&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;gtid_executed_compression_period&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;1000&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;i&gt;&lt;span&gt;Group Replication changes&lt;/span&gt;&lt;/i&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_autorejoin_tries&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;group_replication_autorejoin_tries&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_exit_state_action&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;group_replication_exit_state_action&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;ABORT_SERVER&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;READ_ONLY&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_member_expel_timeout&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;group_replication_member_expel_timeout&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;[Server Defaults]&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Character_set_server &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령줄&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;span&gt; --character-set-server&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; latin1&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; utf8mb4&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;span&gt;MySQL 8.0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드해도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개체의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; Character_set_server&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명시적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값으로&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;새&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; utf8mb4&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;가능하면&lt;/span&gt;&lt;span&gt; utf8mb4&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전환하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;collation_server &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령줄&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인수&lt;/span&gt;&lt;span&gt; --collation-server&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; latin1_swedish_ci&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; utf8mb4_0900_ai_ci&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목록이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공되므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사이에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드해도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개체의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정렬은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개체에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;licit_defaults_for_timestamp &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF(MySQL &lt;/span&gt;&lt;span&gt;레거시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; ON(SQL &lt;/span&gt;&lt;span&gt;표준&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;옵션은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원래&lt;/span&gt;&lt;span&gt; 5.6&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도입되었으며&lt;/span&gt;&lt;span&gt; 5.6 &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; 5.7&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; &lt;span&gt;OFF &lt;/span&gt;&lt;/span&gt;&lt;span&gt;되었다가&lt;/span&gt;&lt;span&gt; &lt;span&gt;8.0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Optimizer_trace_max_mem_size &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 16KB&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 1MB&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중요&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추적이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘렸다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대부분의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유용한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최적화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추적이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보장된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;verify_password_check_user_name &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, verify_password &lt;/span&gt;&lt;span&gt;플러그인이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화되면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일치하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비밀번호를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;거부한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;back_log &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알고리즘이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;자동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기&lt;/span&gt;&lt;span&gt;(-1) &lt;/span&gt;&lt;span&gt;값은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이제&lt;/span&gt;&lt;span&gt; max_connections &lt;/span&gt;&lt;span&gt;값으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정됩니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; 50 + (max_connections / 5)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계산된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크다&lt;/span&gt;&lt;span&gt;. back_log&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어오는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따라잡을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상황에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어오는&lt;/span&gt;&lt;span&gt; IP &lt;/span&gt;&lt;span&gt;연결&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대기열에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;최악의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;동시에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;재연결을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시도하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클라이언트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수가&lt;/span&gt;&lt;span&gt; max_connections&lt;/span&gt;&lt;span&gt;인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버퍼링될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;거부&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;재시도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;루프가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;max_allowed_packet &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 4194304(4M)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 67108864(64M)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주요&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이점은&lt;/span&gt;&lt;span&gt; max_allowed_packet&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;큰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;삽입&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수신할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되돌리려면&lt;/span&gt;&lt;span&gt; max_allowed_packet=4194304&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;max_error_count &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 64&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 1024&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; MySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; 1000&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;닿는&lt;/span&gt;&lt;span&gt; UPDATE &lt;/span&gt;&lt;span&gt;문과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경고를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경고가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변환&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경고를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공하도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보장한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없으므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경고를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소비에만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;영향을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미친다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;event_scheduler &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이벤트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스케줄러는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;span&gt;유휴&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;트랜잭션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;종료&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; SYS&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;table_open_cache &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 2000&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 4000&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;액세스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동시성을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사소한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;log_error_verbosity &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 3(&lt;/span&gt;&lt;span&gt;참고&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 2(&lt;/span&gt;&lt;span&gt;경고&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;목적은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; MySQL 8.0 &lt;/span&gt;&lt;span&gt;오류&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;덜&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;장황하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만드는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[InnoDB Defaults]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_undo_tablespaces &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. InnoDB&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성한다&lt;/span&gt;&lt;span&gt;. MySQL 8.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; innodb_undo_tablespaces&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최소값은&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;이며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;롤백&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세그먼트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; 5.7 &lt;/span&gt;&lt;span&gt;동작으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되돌릴&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;다음&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항목&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참조&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자르고&lt;/span&gt;&lt;span&gt; mysqldump&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;가끔&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;긴&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;트랜잭션에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디스크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;회수할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_undo_log_truncate &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;활성화되면&lt;/span&gt;&lt;span&gt; innodb_max_undo_log_size&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정의된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;임계값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초과하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘림으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;표시된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘라낼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자르기는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지원되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;업그레이드하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;취소&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변환된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블스페이스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용은&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;옵션이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_flush_method &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값은&lt;/span&gt;&lt;span&gt; Unix &lt;/span&gt;&lt;span&gt;계열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템에서는&lt;/span&gt;&lt;span&gt; NULL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; fsync&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt;, Windows &lt;/span&gt;&lt;span&gt;시스템에서는&lt;/span&gt;&lt;span&gt; NULL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; unbuffered&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실질적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;영향을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는것으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;용어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가깝다&lt;/span&gt;&lt;span&gt;. Unix&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; 5.7&lt;/span&gt;&lt;span&gt;에서도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; fsync&lt;/span&gt;&lt;span&gt;였기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뿐이다&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; NULL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; fsync&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의미함&lt;/span&gt;&lt;span&gt;). &lt;/span&gt;&lt;span&gt;마찬가지로&lt;/span&gt;&lt;span&gt; Windows&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; innodb_flush_method &lt;/span&gt;&lt;span&gt;기본값&lt;/span&gt;&lt;span&gt; NULL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; async_unbuffered&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의미했으며&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; unbuffered&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대체되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; innodb_use_native_aio=ON&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결합하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동일한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;효과를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;갖는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;호환되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; innodb_autoinc_lock_mode &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 1(&lt;/span&gt;&lt;span&gt;연속&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 2(&lt;/span&gt;&lt;span&gt;인터리브&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인터리브&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잠금&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모드로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt; MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유형이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령문&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반영한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;명령문&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주어진&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;문&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시퀀스에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;증가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예측&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반복&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당되도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연속&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;증가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잠금&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제는&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;문의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순서에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;민감하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;명령문&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;호환되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알려져&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순차&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;증분에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의존하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;응용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그램이나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테스트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모음을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;손상시킬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. innodb_autoinc_lock_mode=1&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복원할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_flush_neighbors &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값은&lt;/span&gt;&lt;span&gt; 1(&lt;/span&gt;&lt;span&gt;활성화&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 0(&lt;/span&gt;&lt;span&gt;비활성화&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빠른&lt;/span&gt;&lt;span&gt; IO(SSD)&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;배포의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;대부분의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자에게는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성능이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;약간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;향상될&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예상된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;느린&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;드라이브를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;손실을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경험할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으므로&lt;/span&gt;&lt;span&gt; innodb_flush_neighbors=1&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되돌리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_max_dirty_pages_pct_lwm &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 0(%)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 10(%)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. innodb_max_dirty_pages_pct_lwm=10&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; InnoDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버퍼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;풀의&lt;/span&gt;&lt;span&gt; 10% &lt;/span&gt;&lt;span&gt;이상이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정된&lt;/span&gt;&lt;span&gt;('Dirty') &lt;/span&gt;&lt;span&gt;페이지를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포함할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활동을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;증가시킨다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일관된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성능을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대신&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리량을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;약간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;낮추는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_max_dirty_pages_pct &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 75(%)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 90(%)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항은&lt;/span&gt;&lt;span&gt; innodb_max_dirty_pages_pct_lwm&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결합되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원활한&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;플러시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보장하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버스트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되돌리려면&lt;/span&gt;&lt;span&gt; innodb_max_dirty_pages_pct=75 &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; innodb_max_dirty_pages_pct_lwm=0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Performance Schema Defaults]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;성능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt; MDL(&lt;/span&gt;&lt;span&gt;메타&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잠금&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;계측은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;켜져&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. Performance-schema-instrument='wait/lock/metadata/sql/%=ON'&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컴파일된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; SYS&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; MDL &lt;/span&gt;&lt;span&gt;지향&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뷰를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도구이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;성능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계측은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;켜져&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. Performance-schema-instrument='memory/%=COUNTED'&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컴파일된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; COUNTED&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계측이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집계&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;올바르지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;누락되었다가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여유&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확보되면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;마이너스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;성능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;트랜잭션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계측은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;켜져&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있습니다&lt;/span&gt;&lt;span&gt;. Performance-schema-consumer-events-transactions-current=ON, Performance-schema-consumer-events-transactions-history=ON &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; Performance-schema-instrument='transaction%=ON'&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컴파일된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Replication Defaults]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;log_bin &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로깅이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;거의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로덕션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시점&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복구에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;단계가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거되고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나중에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화하려면&lt;/span&gt;&lt;span&gt; mysqld&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테스트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;범위가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공되고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;회귀를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발견할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. server_id&lt;/span&gt;&lt;span&gt;도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. 8.0&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작은&lt;/span&gt;&lt;span&gt; ./mysqld --log-bin --server-id=1&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같다&lt;/span&gt;&lt;span&gt;. 8.0&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있고&lt;/span&gt;&lt;span&gt; 5.7 &lt;/span&gt;&lt;span&gt;동작을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; ./mysqld --skip-log-bin --server-id=0&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;server_id &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;(log_bin=ON&lt;/span&gt;&lt;span&gt;으로의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결합&lt;/span&gt;&lt;span&gt;). &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실제로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중복된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;배포&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인프라에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;log-slave-updates &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제본은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이벤트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자체&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기록한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;옵션은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그룹&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오늘날&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;표준이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다양한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;체인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;올바른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동작을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보장한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;expire_logs_days &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 30&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값&lt;/span&gt;&lt;span&gt; 30&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; mysqld&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; 30&lt;/span&gt;&lt;span&gt;일보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오래된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주기적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거하도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복구&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;목적에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;과도한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;양의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디스크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공간이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;낭비되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도움이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이전&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제거를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비활성화한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;master_info_repository &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; Relay_log_info_repository &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; FILE&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; TABLE&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메타데이터가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; InnoDB&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이렇게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;충돌&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시도하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;달성하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안정성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;향상된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;transaction-write-set-extraction &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; OFF&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; XXHASH64&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;트랜잭션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세트가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;트랜잭션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;약간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작업을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결과는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;충돌&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;감지에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도움이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그룹&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요구&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항이며&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소스에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바이너리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집합&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;병렬화를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;속도를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;slave_rows_search_algorithms &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; INDEX_SCAN, TABLE_SCAN&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; INDEX_SCAN, HASH_SCAN&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;키&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사항을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수행해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검색&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;횟수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;줄여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;속도를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높인다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;slave_pending_jobs_size_max &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 16M&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 128M&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스레드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복제본에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;양이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;늘어난다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;gtid_executed_compression_&lt;/span&gt;&lt;span&gt;기간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 1000&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인해&lt;/span&gt;&lt;span&gt; mysql.gtid_executed &lt;/span&gt;&lt;span&gt;테이블의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;압축은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;암시적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Group Replication Defaults]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;group_replication_autorejoin_tries&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;자동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;재참여가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화되어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있음을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그룹이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추방되거나&lt;/span&gt;&lt;span&gt; group_replication_unreachable_majority_timeout &lt;/span&gt;&lt;span&gt;설정에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도달하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그룹의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대다수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그룹에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참여하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시도하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;횟수를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;group_replication_exit_state_action&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; ABORT_SERVER&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; READ_ONLY&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네트워크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오류가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그룹을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;종료하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인스턴스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;종료되지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;읽기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전용이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;group_replication_member_expel_timeout&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값이&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 5&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그룹과의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연락이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두절된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의심되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성원은&lt;/span&gt;&lt;span&gt; 5&lt;/span&gt;&lt;span&gt;초&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;감지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기간&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이후&lt;/span&gt;&lt;span&gt; 5&lt;/span&gt;&lt;span&gt;초&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제명&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;책임을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;innodb_dedicated_server&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;옵션의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개발&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;랩탑의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;span&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;span&gt;OFF&lt;/span&gt;&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이유는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;랩탑&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일반적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공유&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;환경에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부족&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로덕션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;환경의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; innodb_dedicated_server&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;. ON&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다음&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;명시적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; innodb_buffer_pool_size, innodb_log_file_size &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; innodb_flush_method&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조정된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;작세한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내용은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;링크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Enabling Automatic Configuration for a Dedicated MySQL Server : &lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/innodb-dedicated-server.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/innodb-dedicated-server.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Conclusion&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;대부분의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개발&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로덕션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;환경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모두에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적합하지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;항상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예외는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각자의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;환경에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;맞게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본값을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적절히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수정해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. MySQL 8.0&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;최근에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소스와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;범위를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보여주는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt; Variable_info &lt;/span&gt;&lt;span&gt;테이블이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알아야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;액세스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Changes in MySQL 8.0 : &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html&quot;&gt;https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-13 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, &lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;고려사항&lt;/span&gt;&lt;span&gt;, MySQL8 &lt;/span&gt;&lt;span&gt;변경사항&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>MySQL8 변경사항</category>
      <category>업그레이드 고려사항</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1548</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-MySQL-57%EC%97%90%EC%84%9C-80%EC%9C%BC%EB%A1%9C-%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C%EC%8B%9C-%EB%B3%80%EA%B2%BD%EB%90%98%EB%8A%94-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%98%B5%EC%85%98-%EC%A0%95%EB%A6%AC#entry1548comment</comments>
      <pubDate>Wed, 13 Sep 2023 15:54:51 +0900</pubDate>
    </item>
    <item>
      <title>[Kubernetes] 쿠버네티스에서 POD(파드)란? 그리고 POD 생성하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kubernetes-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4%EC%97%90%EC%84%9C-POD%ED%8C%8C%EB%93%9C%EB%9E%80-%EA%B7%B8%EB%A6%AC%EA%B3%A0-POD-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kubernetes] &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;쿠버네티스에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; POD(&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;파드&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;란&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;? &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;그리고&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;POD &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;생성하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kubernetes&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;파드&lt;/span&gt;&lt;span&gt;(Pod)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;쿠버네티스에서&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt; &lt;span&gt;관리할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;배포&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;작은&lt;/span&gt; &lt;span&gt;컴퓨팅&lt;/span&gt; &lt;span&gt;단위이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;도커가&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;알려진&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;런타임이지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쿠버네티스는&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;외에도&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;런타임을&lt;/span&gt; &lt;span&gt;지원한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;315&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rtXwu/btsts74wlcw/sRjwJN9NpUGqAmNVftn0q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rtXwu/btsts74wlcw/sRjwJN9NpUGqAmNVftn0q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rtXwu/btsts74wlcw/sRjwJN9NpUGqAmNVftn0q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrtXwu%2Fbtsts74wlcw%2FsRjwJN9NpUGqAmNVftn0q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;589&quot; height=&quot;315&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;315&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;파드는&lt;/span&gt; &lt;span&gt;하나&lt;/span&gt; &lt;span&gt;이상의&lt;/span&gt; &lt;span&gt;컨테이너의&lt;/span&gt; &lt;span&gt;그룹이며&lt;/span&gt; &lt;span&gt;스토리지&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;네트워크를&lt;/span&gt; &lt;span&gt;공유하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;구동하는&lt;/span&gt; &lt;span&gt;방식에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;명세를&lt;/span&gt; &lt;span&gt;갖는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파드의&lt;/span&gt; &lt;span&gt;컨텐츠는&lt;/span&gt; &lt;span&gt;항상&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;배치되고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스케줄되며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;공유&lt;/span&gt; &lt;span&gt;컨텍스트에서&lt;/span&gt; &lt;span&gt;실행된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;파드는&lt;/span&gt; &lt;span&gt;공유&lt;/span&gt; &lt;span&gt;네임스페이스와&lt;/span&gt; &lt;span&gt;공유&lt;/span&gt; &lt;span&gt;파일시스템&lt;/span&gt; &lt;span&gt;볼륨이&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;컨테이너들의&lt;/span&gt; &lt;span&gt;집합과&lt;/span&gt; &lt;span&gt;비슷하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;887&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVqhtx/btstnwqP69m/3T6qhHvodoj4bQJKEnMsfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVqhtx/btstnwqP69m/3T6qhHvodoj4bQJKEnMsfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVqhtx/btstnwqP69m/3T6qhHvodoj4bQJKEnMsfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVqhtx%2FbtstnwqP69m%2F3T6qhHvodoj4bQJKEnMsfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;887&quot; height=&quot;323&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;887&quot; data-origin-height=&quot;323&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;파드는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;애플리케이션의&lt;/span&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;span&gt;논리&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;모델링한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기에는&lt;/span&gt; &lt;span&gt;상대적으로&lt;/span&gt; &lt;span&gt;밀접하게&lt;/span&gt; &lt;span&gt;결합된&lt;/span&gt; &lt;span&gt;하나&lt;/span&gt; &lt;span&gt;이상의&lt;/span&gt; &lt;span&gt;애플리케이션&lt;/span&gt; &lt;span&gt;컨테이너가&lt;/span&gt; &lt;span&gt;포함된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;클라우드가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;컨텍스트에서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;물리&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;가상&lt;/span&gt; &lt;span&gt;머신에서&lt;/span&gt; &lt;span&gt;실행되는&lt;/span&gt; &lt;span&gt;애플리케이션은&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;논리&lt;/span&gt; &lt;span&gt;호스트에서&lt;/span&gt; &lt;span&gt;실행되는&lt;/span&gt; &lt;span&gt;클라우드&lt;/span&gt; &lt;span&gt;애플리케이션과&lt;/span&gt; &lt;span&gt;비슷하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;애플리케이션&lt;/span&gt; &lt;span&gt;컨테이너와&lt;/span&gt; &lt;span&gt;마찬가지로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;파드에는&lt;/span&gt; &lt;span&gt;파드&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt; &lt;span&gt;중에&lt;/span&gt; &lt;span&gt;실행되는&lt;/span&gt; &lt;span&gt;초기화&lt;/span&gt; &lt;span&gt;컨테이너가&lt;/span&gt; &lt;span&gt;포함될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;클러스터가&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;디버깅을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;임시&lt;/span&gt; &lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;삽입할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쿠버네티스에서는&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;방법으로&lt;/span&gt; &lt;span&gt;kubectl run, kubectl create, kubectl apply &lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;3&lt;/span&gt;&lt;span&gt;가지가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;각의&lt;/span&gt; &lt;span&gt;특징에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[kubectl run]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;kubectl run&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;kubernetes &lt;/span&gt;&lt;span&gt;클러스터에서&lt;/span&gt; &lt;span&gt;파드나&lt;/span&gt; &lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;생성하는&lt;/span&gt; &lt;span&gt;명령어이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt; &lt;span&gt;간단하게&lt;/span&gt;&lt;span&gt; pod&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;만드는&lt;/span&gt; &lt;span&gt;방식이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt; &lt;span&gt;명령어&lt;/span&gt; &lt;span&gt;뒤에&lt;/span&gt; &lt;span&gt;각종&lt;/span&gt; &lt;span&gt;옵션&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;입력해서&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt; &lt;span&gt;간편한&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;방법인&lt;/span&gt; &lt;span&gt;반면&lt;/span&gt; &lt;span&gt;입력&lt;/span&gt; &lt;span&gt;정보가&lt;/span&gt; &lt;span&gt;남지&lt;/span&gt; &lt;span&gt;않기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;재실행&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;발생했을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;찾거나&lt;/span&gt; &lt;span&gt;해결&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;공유하는&lt;/span&gt; &lt;span&gt;등의&lt;/span&gt; &lt;span&gt;어려움이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적인&lt;/span&gt; &lt;span&gt;개발&lt;/span&gt; &lt;span&gt;단계에서&lt;/span&gt; &lt;span&gt;간편하게&lt;/span&gt;&lt;span&gt; pod&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;유용하지만&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt; &lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;사용해야&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;입력해야하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, yaml&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;작성하여&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;일반적이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;구조는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Kubectl run [&lt;/span&gt;&lt;span&gt;파드이름&lt;/span&gt;&lt;span&gt;] &amp;ndash;image=[&lt;/span&gt;&lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;파드&lt;/span&gt; &lt;span&gt;생성시&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl run nginx --image=nginx&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;파드의&lt;/span&gt; &lt;span&gt;개수를&lt;/span&gt; &lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;. Nginx &lt;/span&gt;&lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;3&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파드가&lt;/span&gt; &lt;span&gt;중간에&lt;/span&gt; &lt;span&gt;삭제되면&lt;/span&gt; &lt;span&gt;지정한&lt;/span&gt; &lt;span&gt;개수만큼&lt;/span&gt; &lt;span&gt;파드가&lt;/span&gt; &lt;span&gt;유지되도록&lt;/span&gt; &lt;span&gt;파드가&lt;/span&gt; &lt;span&gt;자동&lt;/span&gt; &lt;span&gt;생성된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl run nginx --image=nginx --replicas=3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt; &lt;span&gt;번호를&lt;/span&gt; &lt;span&gt;노출시킨다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl run nginx --image=nginx --port=80&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;환경변수를&lt;/span&gt; &lt;span&gt;대입하여&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl run my-proxysql --image=my-proxysql --port=6033 --image-pull-policy=Never --restart=Never --env PROXY_ADMIN_PWD=pwd --env PROXY_ADMIN_ID=id&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[kubectl create]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kubectl create &lt;/span&gt;&lt;span&gt;명령은&lt;/span&gt; &lt;span&gt;kubernetes&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;yaml&lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;생성하지&lt;/span&gt; &lt;span&gt;않고도&lt;/span&gt; &lt;span&gt;명령어&lt;/span&gt; &lt;span&gt;자체에서&lt;/span&gt; &lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본구조는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl create [&lt;/span&gt;&lt;span&gt;리소스&lt;/span&gt; &lt;span&gt;종류&lt;/span&gt;&lt;span&gt;] [&lt;/span&gt;&lt;span&gt;리소스&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;Nginx &lt;/span&gt;&lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;my-nginx&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;pod &lt;/span&gt;&lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl create pod my-nginx --image=nginx&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;Nginx &lt;/span&gt;&lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;my-deployment &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;가진&lt;/span&gt; &lt;span&gt;Deployment &lt;/span&gt;&lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Kubectl create deployment my-deployment --image=nginx&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;80&lt;/span&gt;&lt;span&gt;포트를&lt;/span&gt; &lt;span&gt;8080&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;매핑하는&lt;/span&gt; &lt;span&gt;my-service&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;이름의&lt;/span&gt; &lt;span&gt;ClusterIP &lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Kubectl create service clusterip my-service --tcp=80:8080&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;key1=value1, key2=value2 &lt;/span&gt;&lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;가진&lt;/span&gt; &lt;span&gt;my-config &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;가진&lt;/span&gt; &lt;span&gt;ConfigMap &lt;/span&gt;&lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;password=1234&lt;/span&gt;&lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;가진&lt;/span&gt; &lt;span&gt;my-secret &lt;/span&gt;&lt;span&gt;이름의&lt;/span&gt; &lt;span&gt;secret &lt;/span&gt;&lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Kubectl create secret generic my-secret --from-literal=password=1234&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성하지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt; &lt;span&gt;결과만&lt;/span&gt; &lt;span&gt;미리&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl create deployment my-deployment --image=nginx --dry-run&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt;&lt;span&gt;(yaml &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;json)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl create -f test.yaml&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;리소스가&lt;/span&gt; &lt;span&gt;생성될&lt;/span&gt; &lt;span&gt;네임스페이스를&lt;/span&gt; &lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Kubectl create deployment my-deployment --image=nginx -n my-namespace&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;컨테이너의&lt;/span&gt; &lt;span&gt;재시작&lt;/span&gt; &lt;span&gt;정책을&lt;/span&gt; &lt;span&gt;지정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;상태는&lt;/span&gt; &lt;span&gt;Always, OnFailure, Never &lt;/span&gt;&lt;span&gt;중&lt;/span&gt; &lt;span&gt;하나를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Kubectl create pod my-pod --image=nginx --restart-policy=OnFailure&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[kubectl apply]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;kubectl apply&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;kubectl create&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;동일하지만&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;차이점은&lt;/span&gt; &lt;span&gt;기존에&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;pod&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;없다면&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;pod&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;pod&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;존재하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;기존&lt;/span&gt; &lt;span&gt;config&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;비교하여&lt;/span&gt; &lt;span&gt;수정된&lt;/span&gt; &lt;span&gt;부분만&lt;/span&gt; &lt;span&gt;업데이트&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[kubectl delete]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;파드나&lt;/span&gt; &lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;삭제하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;kubectl delete &lt;/span&gt;&lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;구조는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Kubectl delete [&lt;/span&gt;&lt;span&gt;리소스&lt;/span&gt; &lt;span&gt;유형&lt;/span&gt;&lt;span&gt;] [&lt;/span&gt;&lt;span&gt;리소스&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;nginx&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;삭제한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl delete pod nginx&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;삭제할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;--all : &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;리소스를&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;--force : &lt;/span&gt;&lt;span&gt;강제로&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;---grace-period=&amp;lt;second&amp;gt; : &lt;/span&gt;&lt;span&gt;대기시간&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;초&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;이후&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;--timeout=&amp;lt;second&amp;gt; : &lt;/span&gt;&lt;span&gt;명령이&lt;/span&gt; &lt;span&gt;실행될&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;대기할&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;초&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-08 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kubernetes, &lt;/span&gt;&lt;span&gt;쿠버네티스&lt;/span&gt;&lt;span&gt;, pod, &lt;/span&gt;&lt;span&gt;파드&lt;/span&gt;&lt;span&gt;, kubectl, create, delete, apply, &lt;/span&gt;&lt;span&gt;파드생성&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;리소스&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>apply</category>
      <category>CREATE</category>
      <category>delete</category>
      <category>kubectl</category>
      <category>kubernetes</category>
      <category>POD</category>
      <category>리소스 생성</category>
      <category>쿠버네티스</category>
      <category>파드</category>
      <category>파드생성</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1547</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kubernetes-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4%EC%97%90%EC%84%9C-POD%ED%8C%8C%EB%93%9C%EB%9E%80-%EA%B7%B8%EB%A6%AC%EA%B3%A0-POD-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0#entry1547comment</comments>
      <pubDate>Fri, 8 Sep 2023 15:39:34 +0900</pubDate>
    </item>
    <item>
      <title>[kubernetes] minikube에서 로컬 docker image 사용하기</title>
      <link>https://sqlmvp.tistory.com/entry/kubernetes-minikube%EC%97%90%EC%84%9C-%EB%A1%9C%EC%BB%AC-docker-image-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[kubernetes] minikube&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;로컬&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; docker image &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;사용하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kubernetes, Docker&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;로컬&lt;/span&gt; &lt;span&gt;컴퓨터에서&lt;/span&gt; &lt;span&gt;쿠버네티스&lt;/span&gt;&lt;span&gt;(Kubernetes)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;테스트할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;minikube &lt;/span&gt;&lt;span&gt;환경을&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;데스크탑&lt;/span&gt;&lt;span&gt;(docker desktop)&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;설치된&lt;/span&gt; &lt;span&gt;환경에서도&lt;/span&gt; &lt;span&gt;쿠버네티스를&lt;/span&gt; &lt;span&gt;활성화하면&lt;/span&gt; &lt;span&gt;minikube&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;활성화되어&lt;/span&gt; &lt;span&gt;동작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;kubectl run &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt; &lt;span&gt;yaml&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;로컬의&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;가져올&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다는&lt;/span&gt; &lt;span&gt;오류와&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;파드가&lt;/span&gt; &lt;span&gt;생성된&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;종료된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;minikube &lt;/span&gt;&lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;로컬의&lt;/span&gt; &lt;span&gt;docker image&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성하는&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;로컬의&lt;/span&gt; &lt;span&gt;docker images&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;커스텀&lt;/span&gt; &lt;span&gt;빌드된&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;proxysql&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u4PY3/btsts7bujBt/tZ0YfR3GpZ7BOIoesKDMP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u4PY3/btsts7bujBt/tZ0YfR3GpZ7BOIoesKDMP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u4PY3/btsts7bujBt/tZ0YfR3GpZ7BOIoesKDMP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu4PY3%2Fbtsts7bujBt%2FtZ0YfR3GpZ7BOIoesKDMP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;821&quot; height=&quot;109&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;109&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;로컬의&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성하면&lt;/span&gt; &lt;span&gt;오류가&lt;/span&gt; &lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl run my-proxysql --image=proxysql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JpPDk/btsts7JjFOy/aUZwfWPbzQcNkr0hW2UPrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JpPDk/btsts7JjFOy/aUZwfWPbzQcNkr0hW2UPrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JpPDk/btsts7JjFOy/aUZwfWPbzQcNkr0hW2UPrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJpPDk%2Fbtsts7JjFOy%2FaUZwfWPbzQcNkr0hW2UPrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;757&quot; height=&quot;168&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오류를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;ErrImagePull&lt;/span&gt;&lt;span&gt;이라는&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;자세히&lt;/span&gt; &lt;span&gt;확인하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;kubectl describe &lt;/span&gt;&lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;상세&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl describe pods my-proxysql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;2044&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBGAPd/btstk5GwdOf/nqazokLkQmJAGLihRYHiF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBGAPd/btstk5GwdOf/nqazokLkQmJAGLihRYHiF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBGAPd/btstk5GwdOf/nqazokLkQmJAGLihRYHiF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBGAPd%2Fbtstk5GwdOf%2FnqazokLkQmJAGLihRYHiF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2044&quot; height=&quot;286&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;2044&quot; data-origin-height=&quot;286&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;마지막에&lt;/span&gt; &lt;span&gt;오류&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;가져올&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없어&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;오류라는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Failed to pull image &quot;proxysql&quot;: rpc error: code = Unknown desc = Error response from daemon: pull access denied for proxysql, repository does not exist or may require 'docker login': denied: requested access to the resource is denied&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;생각할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쿠버네티스를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성하면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;로컬의&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;줄&lt;/span&gt; &lt;span&gt;알았는데&lt;/span&gt; &lt;span&gt;그렇지&lt;/span&gt; &lt;span&gt;않다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;minikube&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;로컬의&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;minikube&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;도커를&lt;/span&gt; &lt;span&gt;연결해야해는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다행히&lt;/span&gt; &lt;span&gt;쿠버네티스에서는&lt;/span&gt; &lt;span&gt;공식적으로&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;부분을&lt;/span&gt; &lt;span&gt;지원하고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;minikube&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;host&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;연결할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;알려준다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;결과&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;바탕으로&lt;/span&gt; &lt;span&gt;일일이&lt;/span&gt; &lt;span&gt;등록해도&lt;/span&gt; &lt;span&gt;되지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;마지막줄에서&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;호스트와&lt;/span&gt; &lt;span&gt;한번에&lt;/span&gt; &lt;span&gt;연결할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;제공하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;그대로&lt;/span&gt; &lt;span&gt;복사해서&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;minikube docker-env&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doDqR2/btstqCcgpQx/UN6ZkkLiQ2GhkQEsKqQ78K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doDqR2/btstqCcgpQx/UN6ZkkLiQ2GhkQEsKqQ78K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doDqR2/btstqCcgpQx/UN6ZkkLiQ2GhkQEsKqQ78K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoDqR2%2FbtstqCcgpQx%2FUN6ZkkLiQ2GhkQEsKqQ78K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;752&quot; height=&quot;224&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;마지막&lt;/span&gt; &lt;span&gt;줄의&lt;/span&gt; &lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt; &lt;span&gt;minikube&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;docker host&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;연결한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;eval $(minikube -p minikube docker-env)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;명령어실행&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;도커에서&lt;/span&gt; &lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;조회해&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;쿠버네티스의&lt;/span&gt; &lt;span&gt;컨테이너가&lt;/span&gt; &lt;span&gt;조회되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1486&quot; data-origin-height=&quot;898&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PTCPZ/btstpC4DKed/8gsLnid9Mqlw8oR5iApK50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PTCPZ/btstpC4DKed/8gsLnid9Mqlw8oR5iApK50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PTCPZ/btstpC4DKed/8gsLnid9Mqlw8oR5iApK50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPTCPZ%2FbtstpC4DKed%2F8gsLnid9Mqlw8oR5iApK50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1486&quot; height=&quot;898&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1486&quot; data-origin-height=&quot;898&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금부터는&lt;/span&gt; &lt;span&gt;docker &lt;/span&gt;&lt;span&gt;이미지가&lt;/span&gt;&lt;span&gt; minikube&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;동작하는&lt;/span&gt;&lt;span&gt; driver(docker)&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;연결되었기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;이제부터&lt;/span&gt; &lt;span&gt;생성되는&lt;/span&gt;&lt;span&gt; docker image&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; minikube &lt;/span&gt;&lt;span&gt;위에&lt;/span&gt; &lt;span&gt;생성하게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다시&lt;/span&gt; &lt;span&gt;한번&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;빌드&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번에는&lt;/span&gt; &lt;span&gt;이전과&lt;/span&gt; &lt;span&gt;차별을&lt;/span&gt; &lt;span&gt;두기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;my-proxysql &lt;/span&gt;&lt;span&gt;이라는&lt;/span&gt; &lt;span&gt;이름으로&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;생성하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;docker build -t my-proxysql .&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;minikube &lt;/span&gt;&lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;방금&lt;/span&gt; &lt;span&gt;빌드한&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;minikube image ls --format table&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;415&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAPFKi/btstkUdW8bw/oE6E2g8cQ50KZzjwtK4vQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAPFKi/btstkUdW8bw/oE6E2g8cQ50KZzjwtK4vQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAPFKi/btstkUdW8bw/oE6E2g8cQ50KZzjwtK4vQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAPFKi%2FbtstkUdW8bw%2FoE6E2g8cQ50KZzjwtK4vQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;942&quot; height=&quot;415&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;415&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;로컬의&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용하도록&lt;/span&gt; &lt;span&gt;--image-pull-policy=Never &lt;/span&gt;&lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;파드가&lt;/span&gt; &lt;span&gt;실행중인&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl run my-proxysql1 --image=my-proxysql --image-pull-policy=Never --restart=Never&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kxYEB/btstr4lMS0E/jscDkLD1VGYcYAgEGAgaTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kxYEB/btstr4lMS0E/jscDkLD1VGYcYAgEGAgaTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kxYEB/btstr4lMS0E/jscDkLD1VGYcYAgEGAgaTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkxYEB%2Fbtstr4lMS0E%2FjscDkLD1VGYcYAgEGAgaTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;590&quot; height=&quot;84&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;84&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://minikube.sigs.k8s.io/docs/handbook/pushing/#1-pushing-directly-to-the-in-cluster-docker-daemon-docker-env&quot;&gt;https://minikube.sigs.k8s.io/docs/handbook/pushing/#1-pushing-directly-to-the-in-cluster-docker-daemon-docker-env&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.baeldung.com/docker-local-images-minikube&quot;&gt;https://www.baeldung.com/docker-local-images-minikube&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://egkatzioura.com/2020/03/08/use-local-docker-image-on-minikube/&quot;&gt;https://egkatzioura.com/2020/03/08/use-local-docker-image-on-minikube/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-07 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;도커파일&lt;/span&gt;&lt;span&gt;, dockerfile, minikube, Kubernetes, &lt;/span&gt;&lt;span&gt;로컬이미지&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;파드생성&lt;/span&gt;&lt;span&gt;, pod create, &lt;/span&gt;&lt;span&gt;도커이미지&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>Dockerfile</category>
      <category>kubernetes</category>
      <category>Minikube</category>
      <category>pod create</category>
      <category>도커이미지</category>
      <category>도커파일</category>
      <category>로컬이미지 사용</category>
      <category>파드생성</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1546</guid>
      <comments>https://sqlmvp.tistory.com/entry/kubernetes-minikube%EC%97%90%EC%84%9C-%EB%A1%9C%EC%BB%AC-docker-image-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#entry1546comment</comments>
      <pubDate>Thu, 7 Sep 2023 22:23:28 +0900</pubDate>
    </item>
    <item>
      <title>[Docker] 컨테이너실행시 sh 스크립트 호출과 매개변수 사용</title>
      <link>https://sqlmvp.tistory.com/entry/Docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%8B%A4%ED%96%89%EC%8B%9C-sh-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%98%B8%EC%B6%9C%EA%B3%BC-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-%EC%82%AC%EC%9A%A9</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Docker] &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;컨테이너실행시&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; sh &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;스크립트&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;호출과&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;매개변수&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;사용&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Docerk, Shell script&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Dockerfil&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;제작하면서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;실행시&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트&lt;/span&gt; &lt;span&gt;실행에&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;파라메터&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;받아오지&lt;/span&gt; &lt;span&gt;못하는&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;있었다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;도커의&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;나의&lt;/span&gt; &lt;span&gt;코드&lt;/span&gt; &lt;span&gt;오류&lt;/span&gt; &lt;span&gt;문제&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;단독으로&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행하면&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;실행되는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;유독&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;실행시에만&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;받지&lt;/span&gt; &lt;span&gt;못하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;해결&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;간단하게&lt;/span&gt; &lt;span&gt;Dockerfile&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;사용한&lt;/span&gt; &lt;span&gt;ENV &lt;/span&gt;&lt;span&gt;환경변수를&lt;/span&gt; &lt;span&gt;그대로&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;되는거였다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;너무&lt;/span&gt; &lt;span&gt;어렵게&lt;/span&gt; &lt;span&gt;생각해서&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;해결하지&lt;/span&gt; &lt;span&gt;못한&lt;/span&gt; &lt;span&gt;것이었다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;잘못된&lt;/span&gt; &lt;span&gt;예시&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;abc.sh&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;인풋&lt;/span&gt; &lt;span&gt;변수로&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;read &lt;/span&gt;&lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;사용하였으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;변수로&lt;/span&gt; &lt;span&gt;받은&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;출력하려고&lt;/span&gt; &lt;span&gt;작성&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;abc.sh&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/usr/bin/env bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;read var1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;read var2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo $var1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo $var2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;실행시&lt;/span&gt; &lt;span&gt;ENTRYPOINT&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;abc.sh&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;실행하면서&lt;/span&gt; &lt;span&gt;파라메터를&lt;/span&gt; &lt;span&gt;전달하려고&lt;/span&gt; &lt;span&gt;작성&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Dockerfile&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;FROM ~~~~&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ENV sh_var1 var1_value&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ENV sh_var2 var2_value&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ENTRYPOINT [&amp;ldquo;abc.sh&amp;rdquo;, &amp;ldquo;$sh_var1&amp;rdquo;, &amp;ldquo;$sh_var2&amp;rdquo;]&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;정상&lt;/span&gt; &lt;span&gt;예시&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;abc.sh&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/usr/bin/env bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#read var1 &amp;lt;- &lt;/span&gt;&lt;span&gt;인풋&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#read var2 &amp;lt;- &lt;/span&gt;&lt;span&gt;인풋&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo $sh_var1 #&amp;lt;- dockerfile ENV &lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;그대로&lt;/span&gt; &lt;span&gt;가져다&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo $sh_var2 #&amp;lt;- dockerfile ENV &lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;그대로&lt;/span&gt; &lt;span&gt;가져다&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Dockerfile&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;FROM ~~~~&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ENV sh_var1 var1_value&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ENV sh_var2 var2_value&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;ENTRYPOINT [&amp;ldquo;abc.sh&amp;rdquo;] #&amp;lt;- ENTRYPOINT&lt;/span&gt;&lt;span&gt;호출시&lt;/span&gt; &lt;span&gt;sh &lt;/span&gt;&lt;span&gt;파일만&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;물론&lt;/span&gt; &lt;span&gt;위&lt;/span&gt; &lt;span&gt;방법&lt;/span&gt; &lt;span&gt;외에도&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;사용법이&lt;/span&gt; &lt;span&gt;있을텐데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;우선&lt;/span&gt; &lt;span&gt;나의&lt;/span&gt; &lt;span&gt;코드에서는&lt;/span&gt; &lt;span&gt;각각의&lt;/span&gt; &lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;호출해서&lt;/span&gt; &lt;span&gt;사용하려고&lt;/span&gt; &lt;span&gt;해서&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;문제로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;도커파일과&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트간의&lt;/span&gt; &lt;span&gt;매개변수&lt;/span&gt; &lt;span&gt;전달에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;이해가&lt;/span&gt; &lt;span&gt;부족해서&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;문제였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-07 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;도커파일&lt;/span&gt;&lt;span&gt;, dockerfile, &lt;/span&gt;&lt;span&gt;쉘스크립트&lt;/span&gt;&lt;span&gt;, shell script, &lt;/span&gt;&lt;span&gt;매개변수&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;도커환경변수&lt;/span&gt;&lt;span&gt;, docker env, shell read&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>docker env</category>
      <category>Dockerfile</category>
      <category>shell read</category>
      <category>Shell Script</category>
      <category>도커파일</category>
      <category>도커환경변수</category>
      <category>매개변수</category>
      <category>쉘스크립트</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1545</guid>
      <comments>https://sqlmvp.tistory.com/entry/Docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%8B%A4%ED%96%89%EC%8B%9C-sh-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%98%B8%EC%B6%9C%EA%B3%BC-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-%EC%82%AC%EC%9A%A9#entry1545comment</comments>
      <pubDate>Thu, 7 Sep 2023 10:07:26 +0900</pubDate>
    </item>
    <item>
      <title>[Linux] 쉘(shell) 스크립트 기초</title>
      <link>https://sqlmvp.tistory.com/entry/Linux-%EC%89%98shell-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B8%B0%EC%B4%88</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Linux] &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;쉘&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;(shell) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;스크립트&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;기초&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트&lt;/span&gt;&lt;span&gt;(shell script)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;셸이나&lt;/span&gt; &lt;span&gt;명령줄&lt;/span&gt; &lt;span&gt;인터프리터&lt;/span&gt;&lt;span&gt;(Interpreter)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;실행되도록&lt;/span&gt; &lt;span&gt;작성되었거나&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;운영&lt;/span&gt; &lt;span&gt;체제를&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;쓰인&lt;/span&gt; &lt;span&gt;스크립트이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트가&lt;/span&gt; &lt;span&gt;수행하는&lt;/span&gt; &lt;span&gt;일반&lt;/span&gt; &lt;span&gt;기능으로는&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;이용&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로그램&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;문자열&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt; &lt;span&gt;등이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서는&lt;/span&gt; &lt;span&gt;.sh&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;확장자를&lt;/span&gt; &lt;span&gt;가진&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;종류의&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;가리키는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;보통이지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;대부분의&lt;/span&gt; &lt;span&gt;셸&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;확장자를&lt;/span&gt; &lt;span&gt;지니지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;인터프리터&lt;/span&gt; &lt;span&gt;방식이므로&lt;/span&gt; &lt;span&gt;라인별로&lt;/span&gt; &lt;span&gt;읽어&lt;/span&gt; &lt;span&gt;실행함으로&lt;/span&gt; &lt;span&gt;속도가&lt;/span&gt; &lt;span&gt;다소&lt;/span&gt; &lt;span&gt;느리다는&lt;/span&gt; &lt;span&gt;단점이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트라는&lt;/span&gt; &lt;span&gt;말은&lt;/span&gt; &lt;span&gt;유닉스&lt;/span&gt; &lt;span&gt;쉘을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;쓰인&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;말하는&lt;/span&gt; &lt;span&gt;반면&lt;/span&gt;&lt;span&gt;, command.com(&lt;/span&gt;&lt;span&gt;도스&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; cmd.exe (&lt;/span&gt;&lt;span&gt;윈도우&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;명령&lt;/span&gt; &lt;span&gt;줄&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;보통&lt;/span&gt; &lt;span&gt;배치&lt;/span&gt; &lt;span&gt;파일이라고&lt;/span&gt; &lt;span&gt;불린다&lt;/span&gt;&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최근엔&lt;/span&gt; &lt;span&gt;마이크로소프트가&lt;/span&gt; &lt;span&gt;개발한&lt;/span&gt; &lt;span&gt;CLI&lt;/span&gt;&lt;span&gt;쉘인&lt;/span&gt; &lt;span&gt;파워쉘이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;널리&lt;/span&gt; &lt;span&gt;쓰이는&lt;/span&gt; &lt;span&gt;bash &lt;/span&gt;&lt;span&gt;쉘을&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;설명한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;첫&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;문장의&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;시작&lt;/span&gt; &lt;span&gt;(#!/bin/bash)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트의&lt;/span&gt; &lt;span&gt;첫&lt;/span&gt; &lt;span&gt;번째줄에는&lt;/span&gt; &lt;span&gt;항상&lt;/span&gt; &lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;기입되어&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;쉘이&lt;/span&gt; &lt;span&gt;실행될&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;어떤&lt;/span&gt; &lt;span&gt;쉘로&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행할지&lt;/span&gt; &lt;span&gt;정의하는&lt;/span&gt; &lt;span&gt;곳이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쉘에는&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;버전이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;hello.sh &lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt; &lt;span&gt;실행하는&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;설명한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;hello.sh&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;Hello, Shell Script&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행하면&lt;/span&gt; &lt;span&gt;Hello, Shell Script&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;출력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;스크립트&lt;/span&gt; &lt;span&gt;명령어에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;부분은&lt;/span&gt; &lt;span&gt;아래에서&lt;/span&gt; &lt;span&gt;자세히&lt;/span&gt; &lt;span&gt;설명하도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;실행이&lt;/span&gt; &lt;span&gt;되지&lt;/span&gt; &lt;span&gt;않는다면&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;권한이&lt;/span&gt; &lt;span&gt;없어&lt;/span&gt; &lt;span&gt;발생한것으로&lt;/span&gt; &lt;span&gt;chmod 777 hello.sh&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt; &lt;span&gt;권한&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$sh hello.sh&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;385&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTzBpz/btss3H0j745/InC7VBMSVmwpbHx8gflKSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTzBpz/btss3H0j745/InC7VBMSVmwpbHx8gflKSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTzBpz/btss3H0j745/InC7VBMSVmwpbHx8gflKSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTzBpz%2Fbtss3H0j745%2FInC7VBMSVmwpbHx8gflKSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;385&quot; height=&quot;56&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;385&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;주석&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;처리&lt;/span&gt; &lt;span&gt;(#)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;행&lt;/span&gt; &lt;span&gt;주석은&lt;/span&gt; &lt;span&gt;샵&lt;/span&gt;&lt;span&gt;(#)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;여기는&lt;/span&gt; &lt;span&gt;주석입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;주석은&lt;/span&gt; &lt;span&gt;실행되지&lt;/span&gt; &lt;span&gt;않습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;Hello, Shell Script&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;블록&lt;/span&gt; &lt;span&gt;주석은&lt;/span&gt; &lt;span&gt;: &amp;lt;&amp;lt;&amp;rdquo;END&amp;rdquo; ~ ~ END &lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;1247&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 1.16279%;&quot; colspan=&quot;2&quot; width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;: &amp;lt;&amp;lt; &amp;ldquo;END&amp;rdquo; #&lt;/span&gt;&lt;span&gt;주석&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;여기는&lt;/span&gt; &lt;span&gt;주석입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;주석은&lt;/span&gt; &lt;span&gt;실행되지&lt;/span&gt; &lt;span&gt;않습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;END #&lt;/span&gt;&lt;span&gt;주석&lt;/span&gt; &lt;span&gt;끝&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;Hello, Shell Script&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;입력&lt;/span&gt;&lt;span&gt;(read), &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;출력&lt;/span&gt;&lt;span&gt;(echo)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;echo&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;span&gt;, read&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;입력을&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;위에서&lt;/span&gt; &lt;span&gt;이미&lt;/span&gt; &lt;span&gt;echo&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;사용하였으므로&lt;/span&gt; &lt;span&gt;read&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;입력한&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;출력하도록&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;작성해&lt;/span&gt; &lt;span&gt;본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;입력&lt;/span&gt; &lt;span&gt;받은&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;변수로&lt;/span&gt; &lt;span&gt;사용하려면&lt;/span&gt; &lt;span&gt;$&lt;/span&gt;&lt;span&gt;기호를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;read input_value&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;Hello, $input_value!&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행하면&lt;/span&gt; &lt;span&gt;입력값이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;때까지&lt;/span&gt; &lt;span&gt;실행되지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt; &lt;span&gt;대기한다&lt;/span&gt;&lt;span&gt;. hahaha&lt;/span&gt;&lt;span&gt;라고&lt;/span&gt; &lt;span&gt;입력하면&lt;/span&gt; &lt;span&gt;입력&lt;/span&gt; &lt;span&gt;받은&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt; &lt;span&gt;변수로&lt;/span&gt; &lt;span&gt;사용되어&lt;/span&gt; &lt;span&gt;결과가&lt;/span&gt; &lt;span&gt;출력된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$sh hello.sh&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;hahaha&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;83&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/quybp/btss74A7yrx/b4pSc1GSTP0OTg4T3DW6mK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/quybp/btss74A7yrx/b4pSc1GSTP0OTg4T3DW6mK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/quybp/btss74A7yrx/b4pSc1GSTP0OTg4T3DW6mK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fquybp%2Fbtss74A7yrx%2Fb4pSc1GSTP0OTg4T3DW6mK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;299&quot; height=&quot;83&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;83&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;변수&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;특징&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt; &lt;span&gt;타입에는&lt;/span&gt; &lt;span&gt;로컬변수와&lt;/span&gt; &lt;span&gt;전역변수&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;환경변수&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;예약변수&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;매개변수&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;다양하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수는&lt;/span&gt; &lt;span&gt;대&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;소문자를&lt;/span&gt; &lt;span&gt;구별한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수명에는&lt;/span&gt; &lt;span&gt;영문자&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;숫자&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;언더바&lt;/span&gt;&lt;span&gt;( _ )&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt; &lt;span&gt;이름은&lt;/span&gt; &lt;span&gt;숫자를&lt;/span&gt; &lt;span&gt;포함할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;숫자로&lt;/span&gt; &lt;span&gt;시작할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수에는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;문자열로&lt;/span&gt; &lt;span&gt;저장된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수에는&lt;/span&gt; &lt;span&gt;자료형을&lt;/span&gt; &lt;span&gt;기입하지&lt;/span&gt; &lt;span&gt;않기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;어떠한&lt;/span&gt; &lt;span&gt;값도&lt;/span&gt; &lt;span&gt;입력할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;변수에&lt;/span&gt; &lt;span&gt;타입을&lt;/span&gt; &lt;span&gt;지정할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;값을&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;때는&lt;/span&gt; &lt;span&gt;변수명&lt;/span&gt; &lt;span&gt;앞에&lt;/span&gt; &lt;span&gt;특수문자&lt;/span&gt;&lt;span&gt; &quot;$&quot;&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. (Ex. echo ${data})&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;값을&lt;/span&gt; &lt;span&gt;대입&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;삽입&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;할&lt;/span&gt; &lt;span&gt;때는&lt;/span&gt; &lt;span&gt;특수문자&lt;/span&gt;&lt;span&gt; &quot;$&quot;&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. (Ex. data=mac)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때는&lt;/span&gt;&lt;span&gt; &quot;=&quot; &lt;/span&gt;&lt;span&gt;대입문자&lt;/span&gt; &lt;span&gt;앞뒤로&lt;/span&gt; &lt;span&gt;공백이&lt;/span&gt; &lt;span&gt;없어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. (Ex. data=&quot;abcd&quot;) &lt;/span&gt;&lt;span&gt;문자열인&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;&amp;ldquo; &amp;ldquo;&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;감싼다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;변수에&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;개의&lt;/span&gt; &lt;span&gt;값만&lt;/span&gt; &lt;span&gt;보존된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt; &lt;span&gt;덮어&lt;/span&gt; &lt;span&gt;쓰기되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;방지하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;readonly&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;unset&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;삭제할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. (readonly&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;선언된&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;삭제가&lt;/span&gt; &lt;span&gt;불가능하다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서&lt;/span&gt; &lt;span&gt;시스템이&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;예약어가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;몇&lt;/span&gt; &lt;span&gt;가지&lt;/span&gt; &lt;span&gt;대표적인&lt;/span&gt; &lt;span&gt;예약어이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;HOME&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;홈&lt;/span&gt; &lt;span&gt;디렉토리&lt;/span&gt; &lt;span&gt;의미&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;PATH&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;실행&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;경로&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;LANG&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;프로그램&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;시&lt;/span&gt; &lt;span&gt;지원되는&lt;/span&gt; &lt;span&gt;언어&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;UID&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;사용자의&lt;/span&gt; &lt;span&gt;UID&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;SHELL&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;로그인시&lt;/span&gt; &lt;span&gt;실행되는&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;USER&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;계정&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;FUNCNAME&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;실행되고&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;함수&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;TERM&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;로그인&lt;/span&gt; &lt;span&gt;터미널&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;Set&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;셸&lt;/span&gt; &lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;출력하는&lt;/span&gt; &lt;span&gt;명령어&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;Env&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;환경&lt;/span&gt; &lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;출력하는&lt;/span&gt; &lt;span&gt;명령어&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;Export&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;변수의&lt;/span&gt; &lt;span&gt;범위를&lt;/span&gt; &lt;span&gt;환경&lt;/span&gt; &lt;span&gt;변수의&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;공간으로&lt;/span&gt; &lt;span&gt;전송하여&lt;/span&gt; &lt;span&gt;자식&lt;/span&gt; &lt;span&gt;프로세스에서도&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;가능하게&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;unset&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;선언된&lt;/span&gt; &lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;제거&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;전역변수&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;지역변수&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘에서&lt;/span&gt; &lt;span&gt;선언된&lt;/span&gt; &lt;span&gt;변수는&lt;/span&gt; &lt;span&gt;기본적으로&lt;/span&gt; &lt;span&gt;전역변수&lt;/span&gt;&lt;span&gt;(global variable)&lt;/span&gt;&lt;span&gt;이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;함수안에서&lt;/span&gt; &lt;span&gt;지역변수&lt;/span&gt;&lt;span&gt;(local variable)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이때에는&lt;/span&gt; &lt;span&gt;local&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;붙여서&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;함수안에서&lt;/span&gt; &lt;span&gt;local&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;전역&lt;/span&gt; &lt;span&gt;변수의&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;덮어쓰게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;전역&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt; &lt;span&gt;지정&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;string=&quot;hello shell, global variable&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;function string_test() {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;# local&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;붙여야&lt;/span&gt; &lt;span&gt;지역변수로&lt;/span&gt; &lt;span&gt;인식&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt;&lt;span&gt; local&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;빼면&lt;/span&gt; &lt;span&gt;전역변수에&lt;/span&gt; &lt;span&gt;덮어쓰기로&lt;/span&gt; &lt;span&gt;적용&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;local string=&quot;hello shell, local variable&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo ${string}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;함수&lt;/span&gt; &lt;span&gt;호출&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;string_test # &amp;gt; hello shell, local variable&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo ${string} # &amp;gt; hello shell, global variabl&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt; &lt;span&gt;초기화&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;unset string&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XyqVc/btssYUr8zYV/YfvQZIaz75Rjdp2lvIWhdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XyqVc/btssYUr8zYV/YfvQZIaz75Rjdp2lvIWhdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XyqVc/btssYUr8zYV/YfvQZIaz75Rjdp2lvIWhdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXyqVc%2FbtssYUr8zYV%2FYfvQZIaz75Rjdp2lvIWhdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;364&quot; height=&quot;82&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;변수&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;타입&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;지정&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본적으로&lt;/span&gt; &lt;span&gt;Bash&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;문자열만&lt;/span&gt; &lt;span&gt;저장하지만&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;타입을&lt;/span&gt; &lt;span&gt;지정할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;변수타입&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;529&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;declare -r&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;529&quot;&gt;&lt;span&gt;&lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;전용&lt;/span&gt; &lt;span&gt;타입&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;declare -i&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;529&quot;&gt;&lt;span&gt;&lt;span&gt;정수형&lt;/span&gt; &lt;span&gt;타입&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;declare -a&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;529&quot;&gt;&lt;span&gt;&lt;span&gt;배열&lt;/span&gt; &lt;span&gt;타입&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;declare -A&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;529&quot;&gt;&lt;span&gt;&lt;span&gt;연관배열&lt;/span&gt;&lt;span&gt;(MAP) &lt;/span&gt;&lt;span&gt;타입&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;declare -f&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;529&quot;&gt;&lt;span&gt;&lt;span&gt;함수&lt;/span&gt; &lt;span&gt;타입&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;declare -x&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;529&quot;&gt;&lt;span&gt;&lt;span&gt;환경변수&lt;/span&gt;&lt;span&gt;(export) &lt;/span&gt;&lt;span&gt;지정으로&lt;/span&gt; &lt;span&gt;외부&lt;/span&gt; &lt;span&gt;환경에서도&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;읽기전용&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;변수&lt;/span&gt; &lt;span&gt;(readonly)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;변수에&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;덮어&lt;/span&gt; &lt;span&gt;쓸수&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt; &lt;span&gt;readonly&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;지정한&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;덮어쓸수&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;readonly&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt; &lt;span&gt;덮어쓰기를&lt;/span&gt; &lt;span&gt;시도할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;오류를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;var=&quot;&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;1&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;VaR_2=&quot;&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;2&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;Var_2=$VaR_2&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;VaR_2=&quot;VaR_2&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;변경합니다&lt;/span&gt;&lt;span&gt;.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo ${VaR_2}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;readonly var&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;var=&quot;readonly var &lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;변경해&lt;/span&gt; &lt;span&gt;봅니다&lt;/span&gt;&lt;span&gt;.&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;110&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XvkEK/btssYR3h07U/HVoZoFvQRLWTfdo9YHvupK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XvkEK/btssYR3h07U/HVoZoFvQRLWTfdo9YHvupK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XvkEK/btssYR3h07U/HVoZoFvQRLWTfdo9YHvupK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXvkEK%2FbtssYR3h07U%2FHVoZoFvQRLWTfdo9YHvupK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;110&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;110&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;변수&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;값의&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;치환&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;변수의&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;치환할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;문법을&lt;/span&gt; &lt;span&gt;표로&lt;/span&gt; &lt;span&gt;정리하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;문법&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;${var}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;변수&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;바꿔&lt;/span&gt; &lt;span&gt;넣는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;${var:-word}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;변수가&lt;/span&gt; &lt;span&gt;아직&lt;/span&gt; &lt;span&gt;세팅되지&lt;/span&gt; &lt;span&gt;않거나&lt;/span&gt; &lt;span&gt;공백&lt;/span&gt; &lt;span&gt;문자열의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; word&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;반환한다&lt;/span&gt;&lt;span&gt;. var&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt; &lt;span&gt;저장되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;${var:=word}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;변수가&lt;/span&gt; &lt;span&gt;아직&lt;/span&gt; &lt;span&gt;세팅되지&lt;/span&gt; &lt;span&gt;않거나&lt;/span&gt; &lt;span&gt;공백&lt;/span&gt; &lt;span&gt;문자열의&lt;/span&gt;&lt;span&gt; word&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;반환한다&lt;/span&gt;&lt;span&gt;. var&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;저장된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;${var:?word}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;변수가&lt;/span&gt; &lt;span&gt;아직&lt;/span&gt; &lt;span&gt;세팅되지&lt;/span&gt; &lt;span&gt;않거나&lt;/span&gt; &lt;span&gt;공백&lt;/span&gt; &lt;span&gt;문자열의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;치환에&lt;/span&gt; &lt;span&gt;실패하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스탠다드&lt;/span&gt; &lt;span&gt;에러에&lt;/span&gt; &lt;span&gt;에러가&lt;/span&gt; &lt;span&gt;표시된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;${var:+word}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;변수가&lt;/span&gt; &lt;span&gt;세팅되지&lt;/span&gt; &lt;span&gt;않은&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; word&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;반환된다&lt;/span&gt;&lt;span&gt;. var&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt; &lt;span&gt;저장되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/sh&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;1 - ${var:-wordSetInEcho1}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;2 - var = ${var}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;3 - ${var:=wordSetInEcho3}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;4 - var = ${var}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;unset var&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;5 - ${var:+wordSetInEcho5}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;6 - var = $var&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;var=&quot;newVarValue&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;7 - ${var:+wordSetInEcho7}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;8 - var = $var&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;9 - ${var:?StandardErrorMessage}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;10 - var = ${var}&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4_2.png&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMytGQ/btss9BytchC/m6HCUyizaxK0BUbuxiANz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMytGQ/btss9BytchC/m6HCUyizaxK0BUbuxiANz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMytGQ/btss9BytchC/m6HCUyizaxK0BUbuxiANz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMytGQ%2Fbtss9BytchC%2Fm6HCUyizaxK0BUbuxiANz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;434&quot; height=&quot;307&quot; data-filename=&quot;4_2.png&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문자열&lt;/span&gt; &lt;span&gt;패턴&lt;/span&gt; &lt;span&gt;비교는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;조건을&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;문법&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;${var%pattern}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;끝에서&lt;/span&gt; &lt;span&gt;부터&lt;/span&gt;&lt;span&gt; word&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;패턴이&lt;/span&gt; &lt;span&gt;일치하는&lt;/span&gt;&lt;span&gt; var&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;최소&lt;/span&gt; &lt;span&gt;부분&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;첫번째&lt;/span&gt; &lt;span&gt;일치&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;제거하고&lt;/span&gt; &lt;span&gt;나머지를&lt;/span&gt; &lt;span&gt;반환&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;${var%%pattern}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;끝에서&lt;/span&gt; &lt;span&gt;부터&lt;/span&gt;&lt;span&gt; word&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;패턴이&lt;/span&gt; &lt;span&gt;일치하는&lt;/span&gt;&lt;span&gt; var&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;부분&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;마지막&lt;/span&gt; &lt;span&gt;일치&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;제거하고&lt;/span&gt; &lt;span&gt;나머지를&lt;/span&gt; &lt;span&gt;반환&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;${var#pattern}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;처음&lt;/span&gt; &lt;span&gt;부터&lt;/span&gt;&lt;span&gt; word&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;패턴이&lt;/span&gt; &lt;span&gt;일치하는&lt;/span&gt;&lt;span&gt; var&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;최소&lt;/span&gt; &lt;span&gt;부분&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;첫&lt;/span&gt; &lt;span&gt;번째&lt;/span&gt; &lt;span&gt;일치&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;제거하고&lt;/span&gt; &lt;span&gt;나머지&lt;/span&gt; &lt;span&gt;부분을&lt;/span&gt; &lt;span&gt;반환&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;${var##pattern}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;처음&lt;/span&gt; &lt;span&gt;부터&lt;/span&gt;&lt;span&gt; word&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;패턴이&lt;/span&gt; &lt;span&gt;일치하는&lt;/span&gt;&lt;span&gt; var&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;부분&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;마지막&lt;/span&gt; &lt;span&gt;일치&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;제거하고&lt;/span&gt; &lt;span&gt;나머지&lt;/span&gt; &lt;span&gt;부분을&lt;/span&gt; &lt;span&gt;반환&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;환경&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;변수&lt;/span&gt; &lt;span&gt;(export)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서&lt;/span&gt; &lt;span&gt;변수명&lt;/span&gt; &lt;span&gt;앞에&lt;/span&gt; &lt;span&gt;export&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;붙여&lt;/span&gt; &lt;span&gt;환경변수&lt;/span&gt;&lt;span&gt;(environment variable)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다만&lt;/span&gt; &lt;span&gt;환경변수&lt;/span&gt; &lt;span&gt;사용시&lt;/span&gt; &lt;span&gt;시스템에&lt;/span&gt; &lt;span&gt;미리&lt;/span&gt; &lt;span&gt;정의된&lt;/span&gt; &lt;span&gt;예약변수와&lt;/span&gt; &lt;span&gt;겹치지&lt;/span&gt; &lt;span&gt;않게&lt;/span&gt; &lt;span&gt;주의한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실습을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;두&lt;/span&gt; &lt;span&gt;개의&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;준비한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;shell1.sh&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo ${export_variable}&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;shell2.sh&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;환경변수&lt;/span&gt; &lt;span&gt;선언&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;export export_variable=&quot;export test, hello shell&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;변수값을&lt;/span&gt; &lt;span&gt;받아서&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;스크립트&lt;/span&gt; &lt;span&gt;호출&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;파일&lt;/span&gt; &lt;span&gt;경로&lt;/span&gt;&lt;span&gt;/shell1.sh&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;shell2.sh&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;. Export &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt; &lt;span&gt;값은&lt;/span&gt; &lt;span&gt;shell1.sh&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;호출할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;55&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFaWsl/btsteSe4Pe5/TYziLwdExBqmkk5x6HGu21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFaWsl/btsteSe4Pe5/TYziLwdExBqmkk5x6HGu21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFaWsl/btsteSe4Pe5/TYziLwdExBqmkk5x6HGu21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFaWsl%2FbtsteSe4Pe5%2FTYziLwdExBqmkk5x6HGu21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;391&quot; height=&quot;55&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;55&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;매개변수&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로그램에서&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;인자를&lt;/span&gt; &lt;span&gt;사용하듯&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서도&lt;/span&gt; &lt;span&gt;매개변수를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;규칙이&lt;/span&gt; &lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;실행한&lt;/span&gt; &lt;span&gt;스크립트&lt;/span&gt; &lt;span&gt;이름은&lt;/span&gt; &lt;span&gt;${0}, &lt;/span&gt;&lt;span&gt;이후&lt;/span&gt; &lt;span&gt;인자&lt;/span&gt; &lt;span&gt;값들은&lt;/span&gt; &lt;span&gt;${1}. ${2}&amp;hellip;&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;기능&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;$0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;스크립트명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;$1 ~ $9&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;인수&lt;/span&gt; &lt;span&gt;1 &lt;/span&gt;&lt;span&gt;번째부터&lt;/span&gt; &lt;span&gt;인수&lt;/span&gt; &lt;span&gt;9&lt;/span&gt;&lt;span&gt;번째까지&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;$#&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;스크립트에&lt;/span&gt; &lt;span&gt;전달될&lt;/span&gt; &lt;span&gt;인수의&lt;/span&gt; &lt;span&gt;수&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;$*&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;인수를&lt;/span&gt; &lt;span&gt;모아&lt;/span&gt; &lt;span&gt;하나로&lt;/span&gt; &lt;span&gt;처리&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;$@&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;인수를&lt;/span&gt; &lt;span&gt;각각&lt;/span&gt; &lt;span&gt;처리&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;$?&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;직전에&lt;/span&gt; &lt;span&gt;실행한&lt;/span&gt; &lt;span&gt;커멘드의&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt; &lt;span&gt;값&lt;/span&gt;&lt;span&gt;(0 &lt;/span&gt;&lt;span&gt;성공&lt;/span&gt;&lt;span&gt;, 1 &lt;/span&gt;&lt;span&gt;실패&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;$$&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트의&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt;&lt;span&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;123&quot;&gt;&lt;span&gt;&lt;span&gt;$!&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;501&quot;&gt;&lt;span&gt;&lt;span&gt;마지막으로&lt;/span&gt; &lt;span&gt;실행한&lt;/span&gt; &lt;span&gt;백그라운드&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt; &lt;span&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;매개변수를&lt;/span&gt; &lt;span&gt;입력&lt;/span&gt; &lt;span&gt;받아&lt;/span&gt; &lt;span&gt;어떻게&lt;/span&gt; &lt;span&gt;사용되는지&lt;/span&gt; &lt;span&gt;알아보는&lt;/span&gt; &lt;span&gt;예시이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/sh&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;\$0&lt;/span&gt;&lt;span&gt;（&lt;/span&gt;&lt;span&gt;script name&lt;/span&gt;&lt;span&gt;）&lt;/span&gt;&lt;span&gt;: $0&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;\$1&lt;/span&gt;&lt;span&gt;（&lt;/span&gt;&lt;span&gt;1st param&lt;/span&gt;&lt;span&gt;）&lt;/span&gt;&lt;span&gt;: $1&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;\$2&lt;/span&gt;&lt;span&gt;（&lt;/span&gt;&lt;span&gt;2nd param&lt;/span&gt;&lt;span&gt;）&lt;/span&gt;&lt;span&gt;: $2&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;\$#&lt;/span&gt;&lt;span&gt;（&lt;/span&gt;&lt;span&gt;number of param&lt;/span&gt;&lt;span&gt;）&lt;/span&gt;&lt;span&gt;: $#&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;\&quot;\$*\&quot;: \&quot;$*\&quot;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;\&quot;\$@\&quot;: \&quot;$@\&quot;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;VAR=&quot;exit code is&lt;span&gt;&amp;nbsp; &lt;/span&gt;0 &quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo $?&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실행&lt;/span&gt; &lt;span&gt;결과는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;나타난다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBNHMh/btss91wXReh/ar3H2Wl9d2AnWyYsucwKlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBNHMh/btss91wXReh/ar3H2Wl9d2AnWyYsucwKlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBNHMh/btss91wXReh/ar3H2Wl9d2AnWyYsucwKlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBNHMh%2Fbtss91wXReh%2Far3H2Wl9d2AnWyYsucwKlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;223&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;배열&lt;/span&gt; &lt;span&gt;(Array)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서&lt;/span&gt; &lt;span&gt;배열은&lt;/span&gt;&lt;span&gt; 1&lt;/span&gt;&lt;span&gt;차원&lt;/span&gt; &lt;span&gt;배열만&lt;/span&gt; &lt;span&gt;지원하며&lt;/span&gt; &lt;span&gt;중괄호를&lt;/span&gt; &lt;span&gt;사용해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;배열&lt;/span&gt; &lt;span&gt;원소는&lt;/span&gt; &lt;span&gt;소괄호안에&lt;/span&gt; &lt;span&gt;공백으로&lt;/span&gt; &lt;span&gt;구분하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;배열&lt;/span&gt; &lt;span&gt;안&lt;/span&gt; &lt;span&gt;원소는&lt;/span&gt; &lt;span&gt;문자열이든&lt;/span&gt; &lt;span&gt;숫자형이던&lt;/span&gt; &lt;span&gt;상관없이&lt;/span&gt; &lt;span&gt;쓸&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;arr=(&quot;hello&quot; &quot;shell&quot; 1 2 3 4 5)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;배열&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt;&lt;span&gt; : ${arr[@]}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;배열&lt;/span&gt; &lt;span&gt;원소의&lt;/span&gt; &lt;span&gt;갯수&lt;/span&gt;&lt;span&gt; : ${#arr[@]}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;배열&lt;/span&gt; &lt;span&gt;첫번째&lt;/span&gt;&lt;span&gt; : ${arr}, &lt;/span&gt;&lt;span&gt;혹은&lt;/span&gt;&lt;span&gt; ${arr[0]}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;4&lt;/span&gt;&lt;span&gt;번&lt;/span&gt;&lt;span&gt; index&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;갖는&lt;/span&gt; &lt;span&gt;배열의&lt;/span&gt; &lt;span&gt;원소&lt;/span&gt;&lt;span&gt; : ${arr[4]}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;arr[5]=&quot;four&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;4&lt;/span&gt;&lt;span&gt;번째&lt;/span&gt;&lt;span&gt; index&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;갖는&lt;/span&gt; &lt;span&gt;배열의&lt;/span&gt; &lt;span&gt;원소&lt;/span&gt;&lt;span&gt; : ${arr[4]}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# 4&lt;/span&gt;&lt;span&gt;번째&lt;/span&gt; &lt;span&gt;값&lt;/span&gt; &lt;span&gt;해제&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;unset arr[4]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;4&lt;/span&gt;&lt;span&gt;번&lt;/span&gt; &lt;span&gt;배열&lt;/span&gt; &lt;span&gt;값&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt; &lt;span&gt;완료&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;4&lt;/span&gt;&lt;span&gt;번&lt;/span&gt;&lt;span&gt; index&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;갖는&lt;/span&gt; &lt;span&gt;배열의&lt;/span&gt; &lt;span&gt;원소&lt;/span&gt;&lt;span&gt; : ${arr[4]}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;echo &quot;5&lt;/span&gt;&lt;span&gt;번&lt;/span&gt;&lt;span&gt; index&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;갖는&lt;/span&gt; &lt;span&gt;배열의&lt;/span&gt; &lt;span&gt;원소&lt;/span&gt;&lt;span&gt; : ${arr[5]}&quot;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;251&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w3L5C/btstbcruxhQ/FGsVFMIk3kODYPf1ycqIb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w3L5C/btstbcruxhQ/FGsVFMIk3kODYPf1ycqIb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w3L5C/btstbcruxhQ/FGsVFMIk3kODYPf1ycqIb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw3L5C%2FbtstbcruxhQ%2FFGsVFMIk3kODYPf1ycqIb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;474&quot; height=&quot;251&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;251&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;함수&lt;/span&gt;&lt;span&gt;(function)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서도&lt;/span&gt; &lt;span&gt;함수를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;함수의&lt;/span&gt; &lt;span&gt;정의&lt;/span&gt; &lt;span&gt;형식은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;주의할&lt;/span&gt; &lt;span&gt;점은&lt;/span&gt; &lt;span&gt;함수가&lt;/span&gt; &lt;span&gt;호출되기&lt;/span&gt; &lt;span&gt;전에&lt;/span&gt; &lt;span&gt;함수가&lt;/span&gt; &lt;span&gt;정의되어&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;하며&lt;/span&gt; &lt;span&gt;호출할&lt;/span&gt; &lt;span&gt;때는&lt;/span&gt; &lt;span&gt;괄호를&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt; &lt;span&gt;호출한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;function func(){&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;func()&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;함수&lt;/span&gt; &lt;span&gt;호출&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;func&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;비교문&lt;/span&gt;&lt;span&gt;(if..fi)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘에서는&lt;/span&gt; &lt;span&gt;비교문이&lt;/span&gt; &lt;span&gt;약간&lt;/span&gt; &lt;span&gt;특이하다&lt;/span&gt;&lt;span&gt;. bash&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; if&lt;/span&gt;&lt;span&gt;문의&lt;/span&gt; &lt;span&gt;특이한&lt;/span&gt; &lt;span&gt;점은&lt;/span&gt;&lt;span&gt; fi &lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;대괄호&lt;/span&gt;&lt;span&gt;([ ]) &lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt; &lt;span&gt;언어와&lt;/span&gt; &lt;span&gt;달리&lt;/span&gt; &lt;span&gt;중괄호를&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; fi&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; if&lt;/span&gt;&lt;span&gt;문의&lt;/span&gt; &lt;span&gt;끝을&lt;/span&gt; &lt;span&gt;알려주어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;주의해야&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;점은&lt;/span&gt;&lt;span&gt; if&lt;/span&gt;&lt;span&gt;문&lt;/span&gt; &lt;span&gt;뒤에&lt;/span&gt; &lt;span&gt;나오는&lt;/span&gt; &lt;span&gt;대괄호&lt;/span&gt;&lt;span&gt; [ ] &lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;조건식&lt;/span&gt; &lt;span&gt;사이에는&lt;/span&gt; &lt;span&gt;반드시&lt;/span&gt; &lt;span&gt;공백이&lt;/span&gt; &lt;span&gt;존재해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;비교문에는&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;연산자를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;연산자&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;397&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1 -eq &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;397&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt; &lt;span&gt;같음&lt;/span&gt;&lt;span&gt;(equal)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1 -ne &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;397&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt; &lt;span&gt;같지&lt;/span&gt; &lt;span&gt;않음&lt;/span&gt;&lt;span&gt;(not equal)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1 -lt &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;397&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;작음&lt;/span&gt;&lt;span&gt;(less than)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1 -le &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;397&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;작거나&lt;/span&gt; &lt;span&gt;같음&lt;/span&gt;&lt;span&gt;(less or equal)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1 -gt &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;397&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;큼&lt;/span&gt;&lt;span&gt;(greater than)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1 -ge &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;397&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;값&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;크거나&lt;/span&gt; &lt;span&gt;같음&lt;/span&gt;&lt;span&gt;(greater or equal)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문자열&lt;/span&gt; &lt;span&gt;비교&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;연산자&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;1 = &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;1 &lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;문자&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;일치&lt;/span&gt;&lt;span&gt; (sql&lt;/span&gt;&lt;span&gt;같이&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;하나만&lt;/span&gt; &lt;span&gt;써도&lt;/span&gt; &lt;span&gt;일치로&lt;/span&gt; &lt;span&gt;인식&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;1 == &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;1 &lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;문자&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;일치&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;1 != &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;1 &lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;문자&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;일치하지&lt;/span&gt; &lt;span&gt;않음&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;-z &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;문자가&lt;/span&gt;&lt;span&gt; null &lt;/span&gt;&lt;span&gt;이면&lt;/span&gt; &lt;span&gt;참&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;-n &lt;/span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;문자가&lt;/span&gt;&lt;span&gt; null &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;아니면&lt;/span&gt; &lt;span&gt;참&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; == &lt;/span&gt;&lt;span&gt;패턴&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;문자열이&lt;/span&gt; &lt;span&gt;패턴과&lt;/span&gt; &lt;span&gt;일치&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;문자&lt;/span&gt;&lt;span&gt; != &lt;/span&gt;&lt;span&gt;패턴&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;491&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;문자열이&lt;/span&gt; &lt;span&gt;패턴과&lt;/span&gt; &lt;span&gt;일치하지&lt;/span&gt; &lt;span&gt;않음&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;논리&lt;/span&gt; &lt;span&gt;연산자&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;연산자&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;1 -a &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;# AND&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;1 -o &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;# OR&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;1 &amp;amp;&amp;amp; &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;양쪽&lt;/span&gt; &lt;span&gt;다&lt;/span&gt; &lt;span&gt;성립&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;1 || &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;한쪽&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;양쪽다&lt;/span&gt; &lt;span&gt;성립&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;조건이&lt;/span&gt; &lt;span&gt;성립하지&lt;/span&gt; &lt;span&gt;않음&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;조건이&lt;/span&gt; &lt;span&gt;언제나&lt;/span&gt; &lt;span&gt;성립&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;조건이&lt;/span&gt; &lt;span&gt;언제나&lt;/span&gt; &lt;span&gt;성립하지&lt;/span&gt; &lt;span&gt;않음&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;산술연산자&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;&lt;span&gt;쉘에서는&lt;/span&gt; &lt;span&gt;expr &lt;/span&gt;&lt;span&gt;숫자&lt;/span&gt; &lt;span&gt;연산자&lt;/span&gt; &lt;span&gt;숫자&lt;/span&gt;&lt;span&gt;&amp;rsquo; &lt;/span&gt;&lt;span&gt;형식으로&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;연산자&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;의미&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;예시&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;덧셈&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;echo `expr 10 + 20` =&amp;gt; 30&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;뺄셈&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;echo `expr 20 - 10` =&amp;gt; 10&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;\*&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;제곱&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;echo `expr 11 \* 11` =&amp;gt; 121&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;나눗셈&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;echo `expr 10 / 2` =&amp;gt; 5&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;나머지&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;echo `expr 10 % 4` =&amp;gt; 2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;저장&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;a=$b b&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;값은&lt;/span&gt;&lt;span&gt; a&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;저장&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;==&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;동일&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;[ &quot;$a&quot; == &quot;$b&quot; ] $a&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; $b&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;동일하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; TRUE&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;반환&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;85&quot;&gt;&lt;span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;104&quot;&gt;&lt;span&gt;&lt;span&gt;다름&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;[ &quot;$a&quot; != &quot;$b&quot; ] $a&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; $b&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;동일하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; TRUE&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;반환&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;예제로&lt;/span&gt; &lt;span&gt;살펴본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;function func(){&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;a=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;b=5&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if [ ${a} -eq ${b} ]; then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;a&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; b&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if [ ${a} -ne ${b} ]; then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;a&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; b&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;같지&lt;/span&gt; &lt;span&gt;않다&lt;/span&gt;&lt;span&gt;.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if [ ${a} -gt ${b} ]; then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;a&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; b&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;크다&lt;/span&gt;&lt;span&gt;.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if [ ${a} -ge ${b} ]; then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;a&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; b&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;크거나&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;if [ ${a} -lt ${b} ]; then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;a&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; b&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;작다&lt;/span&gt;&lt;span&gt;.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if [ ${a} -le ${b} ]; then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;a&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; b&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;작거나&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;함수&lt;/span&gt; &lt;span&gt;호출&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;func&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/80fK4/btss72J8vpu/QmGNFZ7PZxglEKmB4jtzpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/80fK4/btss72J8vpu/QmGNFZ7PZxglEKmB4jtzpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/80fK4/btss72J8vpu/QmGNFZ7PZxglEKmB4jtzpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F80fK4%2Fbtss72J8vpu%2FQmGNFZ7PZxglEKmB4jtzpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;112&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여러&lt;/span&gt; &lt;span&gt;조건을&lt;/span&gt; &lt;span&gt;사용할때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt; &lt;span&gt;언어에서는&lt;/span&gt;&lt;span&gt; else if&lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트에서는&lt;/span&gt;&lt;span&gt; elif&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; else if&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. elif[ &lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; ]; then &lt;/span&gt;&lt;span&gt;형식으로&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;반복문에서&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;조건이&lt;/span&gt; &lt;span&gt;참일때&lt;/span&gt; &lt;span&gt;반복문을&lt;/span&gt; &lt;span&gt;멈추고&lt;/span&gt; &lt;span&gt;싶을때&lt;/span&gt;&lt;span&gt; break&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;키워드를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;반복문을&lt;/span&gt; &lt;span&gt;멈출&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;case ${1} in&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;linux&quot;) echo &quot;&lt;/span&gt;&lt;span&gt;리눅스&lt;/span&gt;&lt;span&gt;&quot; ;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;unix&quot;) echo &quot;&lt;/span&gt;&lt;span&gt;유닉스&lt;/span&gt;&lt;span&gt;&quot; ;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;windows&quot;) echo &quot;&lt;/span&gt;&lt;span&gt;윈도우즈&lt;/span&gt;&lt;span&gt;&quot; ;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;MacOS&quot;) echo &quot;&lt;/span&gt;&lt;span&gt;맥&lt;/span&gt;&lt;span&gt;OS&quot; ;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;*) echo &quot;&lt;/span&gt;&lt;span&gt;해당없음&lt;/span&gt;&lt;span&gt;&quot; ;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;esac&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;파일&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;관련&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;조건문&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;다루는&lt;/span&gt; &lt;span&gt;스크립트이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;존재하는지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;디렉토리가&lt;/span&gt; &lt;span&gt;존재하는지&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;파일과&lt;/span&gt; &lt;span&gt;관련된&lt;/span&gt; &lt;span&gt;조건&lt;/span&gt; &lt;span&gt;여부도&lt;/span&gt; &lt;span&gt;조건문을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;알&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;표는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;조건을&lt;/span&gt; &lt;span&gt;정리한&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;참&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;거짓을&lt;/span&gt; &lt;span&gt;판단할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;느낌표&lt;/span&gt;&lt;span&gt;(!)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;반대로&lt;/span&gt; &lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;출력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -d ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;디렉토리가&lt;/span&gt; &lt;span&gt;존재하면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ ! -d ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;디렉토리가&lt;/span&gt; &lt;span&gt;존재하지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -e ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;존재하면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ ! -e ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;존재하지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -L ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;파일이&lt;/span&gt;&lt;span&gt; symbolic link&lt;/span&gt;&lt;span&gt;이면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -s ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;크기가&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;크면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -S ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;파일&lt;/span&gt; &lt;span&gt;타입이&lt;/span&gt; &lt;span&gt;소켓이면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -r ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;읽을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -w ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;쓸&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -x ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -f ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;정규&lt;/span&gt; &lt;span&gt;파일이면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ -c ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;} ]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;문자&lt;/span&gt; &lt;span&gt;장치이면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;1} -nt ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;2}]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;파일보다&lt;/span&gt; &lt;span&gt;최신&lt;/span&gt; &lt;span&gt;파일이면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;1} -ot ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;2}]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;파일보다&lt;/span&gt; &lt;span&gt;최신이&lt;/span&gt; &lt;span&gt;아니면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;236&quot;&gt;&lt;span&gt;&lt;span&gt;if [ ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;1} -ef ${&lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;2}]; then&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;387&quot;&gt;&lt;span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;파일과&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;동일하면&lt;/span&gt; &lt;span&gt;true.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;CASE&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;문&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;일반적인&lt;/span&gt; &lt;span&gt;CASE &lt;/span&gt;&lt;span&gt;사용법과&lt;/span&gt; &lt;span&gt;비슷하지만&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;CASE &lt;/span&gt;&lt;span&gt;끝에&lt;/span&gt; &lt;span&gt;세미콜론을&lt;/span&gt; &lt;span&gt;2&lt;/span&gt;&lt;span&gt;개씩&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;특징이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;CASE &lt;/span&gt;&lt;span&gt;끝은&lt;/span&gt; &lt;span&gt;ESAC&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;닫아준다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;DRINK=&quot;coffee&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;case &quot;$DRINK&quot; in&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;beer&quot;) echo &quot;&lt;/span&gt;&lt;span&gt;맥주입니다&lt;/span&gt;&lt;span&gt;&quot; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;juice&quot;) echo &quot;&lt;/span&gt;&lt;span&gt;주스입니다&lt;/span&gt;&lt;span&gt;&quot; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;coffee&quot;) echo &quot;&lt;/span&gt;&lt;span&gt;개발자에겐&lt;/span&gt; &lt;span&gt;카페인&lt;/span&gt; &lt;span&gt;필수&lt;/span&gt;&lt;span&gt;!&quot; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;esac&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo9ugP/btss71j9yyw/9I4txBMBJbyd7h78jtB7Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo9ugP/btss71j9yyw/9I4txBMBJbyd7h78jtB7Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo9ugP/btss71j9yyw/9I4txBMBJbyd7h78jtB7Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo9ugP%2Fbtss71j9yyw%2F9I4txBMBJbyd7h78jtB7Vk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;304&quot; height=&quot;57&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;CASE&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;OR &lt;/span&gt;&lt;span&gt;연산도&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;COUNTRY=korea&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;case $COUNTRY in&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;korea&quot;|&quot;japan&quot;|&quot;china&quot;) # or &lt;/span&gt;&lt;span&gt;연산도&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;$COUNTRY is Asia&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;USA&quot;|&quot;Canada&quot;|&quot;Mexico&quot;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;$COUNTRY is Ameria&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;* )&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;I don't know where is $COUNTRY&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;esac&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;반복문&lt;/span&gt;&lt;span&gt;(for)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;반복문을&lt;/span&gt; &lt;span&gt;빠져나갈때에는&lt;/span&gt; &lt;span&gt;break&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;반복분이나&lt;/span&gt; &lt;span&gt;조건을&lt;/span&gt; &lt;span&gt;건너뛸때에는&lt;/span&gt; &lt;span&gt;continue&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;# &lt;/span&gt;&lt;span&gt;초기값&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;조건값&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;증가값을&lt;/span&gt; &lt;span&gt;사용한&lt;/span&gt; &lt;span&gt;정통적인&lt;/span&gt;&lt;span&gt; for&lt;/span&gt;&lt;span&gt;문&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;for ((i=1; i&amp;lt;=4; i++)); do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo $i&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9_2.png&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;139&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RIJDm/btss9Cc56Fh/66q9guKRRmAHouskZ8L9r0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RIJDm/btss9Cc56Fh/66q9guKRRmAHouskZ8L9r0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RIJDm/btss9Cc56Fh/66q9guKRRmAHouskZ8L9r0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRIJDm%2Fbtss9Cc56Fh%2F66q9guKRRmAHouskZ8L9r0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;139&quot; data-filename=&quot;9_2.png&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;139&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;반복문&lt;/span&gt;&lt;span&gt;(for in)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;function func(){&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;사용예&lt;/span&gt;&lt;span&gt;1&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;for i in 1 2 3 4 5&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;${i}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;사용예&lt;/span&gt;&lt;span&gt;2&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;list=&quot;1 2 3 4 5&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;for i in ${list}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;${i}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;사용예&lt;/span&gt;&lt;span&gt;3&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;for i in {1..5}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;${i}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;사용예&lt;/span&gt;&lt;span&gt;4: &lt;/span&gt;&lt;span&gt;크기를&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;만큼&lt;/span&gt; &lt;span&gt;증가시키면서&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;for i in {1..5..2}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;${i}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;사용예&lt;/span&gt;&lt;span&gt;5: &lt;/span&gt;&lt;span&gt;배열을&lt;/span&gt; &lt;span&gt;이용&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;arr=(1 2 3 4 5)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;for i in &quot;${arr[@]}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;${i}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;echo &quot;&lt;/span&gt;&lt;span&gt;사용예&lt;/span&gt;&lt;span&gt;6: C&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;유사한&lt;/span&gt; &lt;span&gt;형식의&lt;/span&gt;&lt;span&gt; for&lt;/span&gt;&lt;span&gt;문&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;for ((i=0; i&amp;lt;5; i++)); do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo &quot;${i}&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;#&lt;/span&gt;&lt;span&gt;함수&lt;/span&gt; &lt;span&gt;호출&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;func&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.png&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;926&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpJy2Q/btstggGv5Bi/rYJxjaKhsL0d2bjeQPJDG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpJy2Q/btstggGv5Bi/rYJxjaKhsL0d2bjeQPJDG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpJy2Q/btstggGv5Bi/rYJxjaKhsL0d2bjeQPJDG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpJy2Q%2FbtstggGv5Bi%2FrYJxjaKhsL0d2bjeQPJDG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;926&quot; data-filename=&quot;10.png&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;926&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;반복문&lt;/span&gt; &lt;span&gt;(while)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;수행&lt;/span&gt; &lt;span&gt;조건이&lt;/span&gt; &lt;span&gt;true&lt;/span&gt;&lt;span&gt;일때&lt;/span&gt; &lt;span&gt;실행되는&lt;/span&gt; &lt;span&gt;반복문이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;count=0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;while [ ${count} -le 5 ]; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo ${count}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;count=$(( ${count}+1 ))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11.png&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bp1IpB/btsteSsBN5n/YFCj6EOyoQHnmUnkWtUgT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bp1IpB/btsteSsBN5n/YFCj6EOyoQHnmUnkWtUgT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bp1IpB/btsteSsBN5n/YFCj6EOyoQHnmUnkWtUgT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbp1IpB%2FbtsteSsBN5n%2FYFCj6EOyoQHnmUnkWtUgT0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;444&quot; height=&quot;197&quot; data-filename=&quot;11.png&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이중&lt;/span&gt; &lt;span&gt;괄호를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;논리&lt;/span&gt; &lt;span&gt;기호로도&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;count=0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;while (( ${count} &amp;lt;= 5 ));&lt;span&gt;&amp;nbsp; &lt;/span&gt;# &lt;/span&gt;&lt;span&gt;이중괄호&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;논리기호&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;가능&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo ${count}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;count=$(( ${count}+1 ))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;반복문&lt;/span&gt;&lt;span&gt;(until)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;수행&lt;/span&gt; &lt;span&gt;조건이&lt;/span&gt; &lt;span&gt;false &lt;/span&gt;&lt;span&gt;일때&lt;/span&gt; &lt;span&gt;실행되는&lt;/span&gt; &lt;span&gt;반복문이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;조건이&lt;/span&gt; &lt;span&gt;While&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;반대라고&lt;/span&gt; &lt;span&gt;생각하면&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;count2=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;until [ ${count2} -le 5 ]; do&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;echo ${count2}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;count2=$(( ${count2}-1 ))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;12.png&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vk9Wo/btsteOcHlqI/JljiKFjcbothd0gPOoQ80K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vk9Wo/btsteOcHlqI/JljiKFjcbothd0gPOoQ80K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vk9Wo/btsteOcHlqI/JljiKFjcbothd0gPOoQ80K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVk9Wo%2FbtsteOcHlqI%2FJljiKFjcbothd0gPOoQ80K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;452&quot; height=&quot;167&quot; data-filename=&quot;12.png&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;종료&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;상태&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;명령어가&lt;/span&gt; &lt;span&gt;실패할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;리턴되는&lt;/span&gt; &lt;span&gt;결과에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;동작을&lt;/span&gt; &lt;span&gt;하려면&lt;/span&gt; &lt;span&gt;명령어의&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt; &lt;span&gt;코드를&lt;/span&gt; &lt;span&gt;반환&lt;/span&gt; &lt;span&gt;받아&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;명령어의&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt; &lt;span&gt;코드는&lt;/span&gt;&lt;span&gt; $?&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;최근&lt;/span&gt; &lt;span&gt;실행한&lt;/span&gt; &lt;span&gt;명령어의&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt; &lt;span&gt;코드를&lt;/span&gt; &lt;span&gt;받을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;정상적인&lt;/span&gt; &lt;span&gt;종료는&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;반환되며&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;값은&lt;/span&gt; &lt;span&gt;오류라고&lt;/span&gt; &lt;span&gt;판단할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;표는&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt; &lt;span&gt;코드에&lt;/span&gt; &lt;span&gt;따른&lt;/span&gt; &lt;span&gt;설명을&lt;/span&gt; &lt;span&gt;정리한&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;종료&lt;/span&gt; &lt;span&gt;코드&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;성공&lt;/span&gt; &lt;span&gt;(Success)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;일반적&lt;/span&gt; &lt;span&gt;오류&lt;/span&gt; &lt;span&gt;(Catchall for general errors)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;내장&lt;/span&gt; &lt;span&gt;명령의&lt;/span&gt; &lt;span&gt;틀린&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;(Misuse of shell builtins)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;126&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;가능하지&lt;/span&gt; &lt;span&gt;않음&lt;/span&gt; &lt;span&gt;(Command invoked cannot execute)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;127&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;찾을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없음&lt;/span&gt; &lt;span&gt;(Command not found)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;128&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;종료할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;잘못된&lt;/span&gt; &lt;span&gt;인수&lt;/span&gt; &lt;span&gt;적용&lt;/span&gt; &lt;span&gt;(Invalid argument to exit)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;128+n&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;치명적인&lt;/span&gt; &lt;span&gt;시그널&lt;/span&gt; &lt;span&gt;n &lt;/span&gt;&lt;span&gt;에러&lt;/span&gt; &lt;span&gt;(Fatal error signal &amp;ldquo;n&amp;rdquo;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;160&quot;&gt;&lt;span&gt;&lt;span&gt;130&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;463&quot;&gt;&lt;span&gt;&lt;span&gt;[Ctrl + C]&lt;/span&gt;&lt;span&gt;키&lt;/span&gt; &lt;span&gt;조합에&lt;/span&gt; &lt;span&gt;의한&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt; &lt;span&gt;(Script terminated by Control-C)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;이스케이프&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;문자&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;명령어&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;\f&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;앞&lt;/span&gt; &lt;span&gt;문자열만큼&lt;/span&gt; &lt;span&gt;열을&lt;/span&gt; &lt;span&gt;밀어서&lt;/span&gt; &lt;span&gt;이동한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;줄로&lt;/span&gt; &lt;span&gt;바꾼다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;\r&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;앞&lt;/span&gt; &lt;span&gt;문자열의&lt;/span&gt; &lt;span&gt;앞부분&lt;/span&gt; &lt;span&gt;부터&lt;/span&gt; &lt;span&gt;뒷문자열&lt;/span&gt; &lt;span&gt;만큼&lt;/span&gt; &lt;span&gt;대체하고&lt;/span&gt; &lt;span&gt;반환한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;\t&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;탭&lt;/span&gt; &lt;span&gt;만큼&lt;/span&gt; &lt;span&gt;띄운다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;외에도&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;명령이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;활용하면&lt;/span&gt; &lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;관련&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;정보들을&lt;/span&gt; &lt;span&gt;스크립트로&lt;/span&gt; &lt;span&gt;얻을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%85%B8_%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&quot;&gt;https://ko.wikipedia.org/wiki/%EC%85%B8_%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://reakwon.tistory.com/136&quot;&gt;https://reakwon.tistory.com/136&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/LINUX-%EC%89%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%95%B5%EC%8B%AC-%EB%AC%B8%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC&quot;&gt;https://inpa.tistory.com/entry/LINUX-%EC%89%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%95%B5%EC%8B%AC-%EB%AC%B8%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://engineer-mole.tistory.com/200&quot;&gt;https://engineer-mole.tistory.com/200&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-05 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;리눅스&lt;/span&gt;&lt;span&gt;, Linux, &lt;/span&gt;&lt;span&gt;쉘스크립트&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쉘사용법&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쉘명령어&lt;/span&gt;&lt;span&gt;, shell command, shell script&lt;/span&gt;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>Linux</category>
      <category>shell command</category>
      <category>Shell Script</category>
      <category>리눅스</category>
      <category>쉘명령어</category>
      <category>쉘사용법</category>
      <category>쉘스크립트</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1544</guid>
      <comments>https://sqlmvp.tistory.com/entry/Linux-%EC%89%98shell-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B8%B0%EC%B4%88#entry1544comment</comments>
      <pubDate>Tue, 5 Sep 2023 19:20:47 +0900</pubDate>
    </item>
    <item>
      <title>[Linux] Alpine Linux (알파인 리눅스) 는 무엇일까?</title>
      <link>https://sqlmvp.tistory.com/entry/Linux-Alpine-Linux-%EC%95%8C%ED%8C%8C%EC%9D%B8-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Linux] Alpine Linux (&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;알파인&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;리눅스&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;는&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;무엇일까&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;환경으로&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;빌드하다보니&lt;/span&gt;&lt;span&gt;, DevOps &lt;/span&gt;&lt;span&gt;팀에서&lt;/span&gt; &lt;span&gt;베이스&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;ubuntu&lt;/span&gt;&lt;span&gt;나&lt;/span&gt; &lt;span&gt;centos &lt;/span&gt;&lt;span&gt;대신&lt;/span&gt; &lt;span&gt;alpine(&lt;/span&gt;&lt;span&gt;알파인&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;리눅스를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;어떻겠냐는&lt;/span&gt; &lt;span&gt;제안을&lt;/span&gt; &lt;span&gt;받았다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;리눅스는&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;커널&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;배포판을&lt;/span&gt; &lt;span&gt;가지고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;Alpine Linux (&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;알파인&lt;/span&gt; &lt;span&gt;리눅스&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;개요&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;알파인&lt;/span&gt; &lt;span&gt;리눅스는&lt;/span&gt; &lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;커널&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;배포판&lt;/span&gt; &lt;span&gt;중&lt;/span&gt; &lt;span&gt;하나이며&lt;/span&gt; &lt;span&gt;MIT &lt;/span&gt;&lt;span&gt;라이선스&lt;/span&gt; &lt;span&gt;아래에&lt;/span&gt; &lt;span&gt;배포되었으며&lt;/span&gt; &lt;span&gt;LEAF &lt;/span&gt;&lt;span&gt;리눅스의&lt;/span&gt; &lt;span&gt;포크&lt;/span&gt; &lt;span&gt;버전이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;알파인&lt;/span&gt; &lt;span&gt;리눅스는&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;배포판과&lt;/span&gt; &lt;span&gt;다르게&lt;/span&gt; &lt;span&gt;Musl&lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;BusyBox&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;알파인&lt;/span&gt; &lt;span&gt;리눅스의&lt;/span&gt; &lt;span&gt;컨셉은&lt;/span&gt; &lt;span&gt;LEAF &lt;/span&gt;&lt;span&gt;리눅스와&lt;/span&gt; &lt;span&gt;동일하게&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;작고&lt;/span&gt;&lt;span&gt;&amp;rdquo;, &amp;ldquo;&lt;/span&gt;&lt;span&gt;보안이&lt;/span&gt; &lt;span&gt;뛰어나고&lt;/span&gt;&lt;span&gt;&amp;rdquo;, &amp;ldquo;&lt;/span&gt;&lt;span&gt;간단함&lt;/span&gt;&lt;span&gt;&amp;rdquo;&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt; &lt;span&gt;시간이&lt;/span&gt; &lt;span&gt;지나면서&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;사람들에&lt;/span&gt; &lt;span&gt;의해&lt;/span&gt; &lt;span&gt;알파인&lt;/span&gt; &lt;span&gt;리눅스만의&lt;/span&gt; &lt;span&gt;형태로&lt;/span&gt; &lt;span&gt;발전되고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;특징&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;장점&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;가볍고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;간단하며&lt;/span&gt; &lt;span&gt;보안성을&lt;/span&gt; &lt;span&gt;목적으로&lt;/span&gt; &lt;span&gt;개발한&lt;/span&gt; &lt;span&gt;배포판&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;용량을&lt;/span&gt; &lt;span&gt;줄이기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;시스템의&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;C runtime&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;glibc &lt;/span&gt;&lt;span&gt;대신&lt;/span&gt; &lt;span&gt;musl libc&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;명령어는&lt;/span&gt; &lt;span&gt;GNU util&lt;/span&gt;&lt;span&gt;대신&lt;/span&gt; &lt;span&gt;busybox&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;탑재&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;초경량&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;약&lt;/span&gt; &lt;span&gt;80MB) &lt;/span&gt;&lt;span&gt;배포판으로&lt;/span&gt; &lt;span&gt;임베디드나&lt;/span&gt; &lt;span&gt;네트워크&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;용도에&lt;/span&gt; &lt;span&gt;적합&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;특히&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt;&lt;span&gt;(Docker) &lt;/span&gt;&lt;span&gt;공식&lt;/span&gt; &lt;span&gt;이미지로&lt;/span&gt; &lt;span&gt;채택되어&lt;/span&gt; &lt;span&gt;5MB &lt;/span&gt;&lt;span&gt;크기의&lt;/span&gt; &lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;이미지로&lt;/span&gt; &lt;span&gt;유명함&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;보안에&lt;/span&gt; &lt;span&gt;염두해두고&lt;/span&gt; &lt;span&gt;설계되어&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;바이너리는&lt;/span&gt; &lt;span&gt;독립적인&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt;&lt;span&gt;(PIE)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;컴파일&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;단점&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;표준인&lt;/span&gt; &lt;span&gt;GNU &lt;/span&gt;&lt;span&gt;도구가&lt;/span&gt; &lt;span&gt;없어가나&lt;/span&gt; &lt;span&gt;Busybox&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;대신&lt;/span&gt; &lt;span&gt;들어가&lt;/span&gt; &lt;span&gt;있어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쉘&lt;/span&gt; &lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;주의가&lt;/span&gt; &lt;span&gt;필요&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;라이트한&lt;/span&gt; &lt;span&gt;대신&lt;/span&gt; &lt;span&gt;패키지가&lt;/span&gt; &lt;span&gt;설치되어&lt;/span&gt; &lt;span&gt;있지&lt;/span&gt; &lt;span&gt;않아&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;설치해주어야&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;것들이&lt;/span&gt; &lt;span&gt;많다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;이것저것&lt;/span&gt; &lt;span&gt;설치하다보면&lt;/span&gt; &lt;span&gt;표준&lt;/span&gt; &lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;배포판과&lt;/span&gt; &lt;span&gt;거의&lt;/span&gt; &lt;span&gt;비슷한&lt;/span&gt; &lt;span&gt;용량이&lt;/span&gt; &lt;span&gt;되기도&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;개인적인&lt;/span&gt; &lt;span&gt;생각&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;BusyBox&lt;/span&gt;&lt;span&gt;란&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;BusyBox&lt;/span&gt;&lt;span&gt;란&lt;/span&gt; &lt;span&gt;일종의&lt;/span&gt; &lt;span&gt;명령어&lt;/span&gt; &lt;span&gt;모음집으로&lt;/span&gt; &lt;span&gt;박스안에&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;응용&lt;/span&gt; &lt;span&gt;프로그램들을&lt;/span&gt; &lt;span&gt;담아&lt;/span&gt; &lt;span&gt;놓은&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;리눅스에서&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;명령어들만&lt;/span&gt; &lt;span&gt;모아&lt;/span&gt; &lt;span&gt;놓아도&lt;/span&gt; &lt;span&gt;상당한&lt;/span&gt; &lt;span&gt;크기를&lt;/span&gt; &lt;span&gt;차지할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는데&lt;/span&gt;&lt;span&gt;, BusyBox&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;각각에&lt;/span&gt; &lt;span&gt;함수들을&lt;/span&gt; &lt;span&gt;최소&lt;/span&gt; &lt;span&gt;사이즈로&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;구현하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; Embbeded(&lt;/span&gt;&lt;span&gt;임베디드&lt;/span&gt;&lt;span&gt;), &lt;/span&gt;&lt;span&gt;네트웍&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;용도에&lt;/span&gt; &lt;span&gt;적합하며&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;컨테이너의&lt;/span&gt;&lt;span&gt; OS&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;자주&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;사용되는&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;명령어&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;알파인&lt;/span&gt; &lt;span&gt;리눅스에서는&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;인스톨러가&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;전통적인&lt;/span&gt; &lt;span&gt;yum, apt &lt;/span&gt;&lt;span&gt;대신에&lt;/span&gt; &lt;span&gt;apk&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;쉘이&lt;/span&gt; &lt;span&gt;배시가&lt;/span&gt; &lt;span&gt;아니라&lt;/span&gt; &lt;span&gt;애쉬&lt;/span&gt;&lt;span&gt;(ash)&lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;명령&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk update&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;저장소&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;업데이트&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk search &amp;lt;package&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;저장소&lt;/span&gt; &lt;span&gt;목록에서&lt;/span&gt; &lt;span&gt;패키지를&lt;/span&gt; &lt;span&gt;검색&lt;/span&gt;&lt;span&gt;. v &lt;/span&gt;&lt;span&gt;옵션으로&lt;/span&gt; &lt;span&gt;설명&lt;/span&gt; &lt;span&gt;확인&lt;/span&gt; &lt;span&gt;가능&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk add &amp;lt;package[=version]&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;패키지를&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt; &lt;span&gt;명시하여&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;가능&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk del &amp;lt;package&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;패키지를&lt;/span&gt; &lt;span&gt;제거&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk cache clean&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;캐시를&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;제거&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk cache -v sync&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;캐시를&lt;/span&gt; &lt;span&gt;초기화하고&lt;/span&gt; &lt;span&gt;부족한&lt;/span&gt; &lt;span&gt;패키지를&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;다운로드&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk stats&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;저장소에서&lt;/span&gt; &lt;span&gt;사용가능한&lt;/span&gt; &lt;span&gt;패키지나&lt;/span&gt; &lt;span&gt;설치된&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;등의&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk fix&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;복구가&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;패키지를&lt;/span&gt; &lt;span&gt;복구하거나&lt;/span&gt; &lt;span&gt;종속성을&lt;/span&gt; &lt;span&gt;제외하고&lt;/span&gt; &lt;span&gt;업그레이드&lt;/span&gt; &lt;span&gt;진행&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;189&quot;&gt;&lt;span&gt;&lt;span&gt;apk info&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;435&quot;&gt;&lt;span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;설치된&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;정보&lt;/span&gt; &lt;span&gt;나열&lt;/span&gt;&lt;span&gt;. -L &lt;/span&gt;&lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;패키지내&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;정보&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;왜&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;컨테이너에서&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;알파인&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;리눅스를&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;사용할까&lt;/span&gt;&lt;span&gt;?]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지극히&lt;/span&gt; &lt;span&gt;개인적인&lt;/span&gt; &lt;span&gt;생각이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;만들&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;베이스&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;위에&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;패키지를&lt;/span&gt; &lt;span&gt;설치하게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;당연히&lt;/span&gt; &lt;span&gt;베이스&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;+ &lt;/span&gt;&lt;span&gt;기타&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;크기만큼&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;사이즈가&lt;/span&gt; &lt;span&gt;되므로&lt;/span&gt; &lt;span&gt;빌드&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;용량도&lt;/span&gt; &lt;span&gt;커지게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;이를&lt;/span&gt; &lt;span&gt;보관&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;배포하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;스토리지&lt;/span&gt; &lt;span&gt;비용&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;네트워크&lt;/span&gt; &lt;span&gt;비용이&lt;/span&gt; &lt;span&gt;증가할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사실&lt;/span&gt; &lt;span&gt;스토리지&lt;/span&gt; &lt;span&gt;비용은&lt;/span&gt; &lt;span&gt;컴퓨팅&lt;/span&gt; &lt;span&gt;비용중에&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;저렴한&lt;/span&gt; &lt;span&gt;부분&lt;/span&gt; &lt;span&gt;중&lt;/span&gt; &lt;span&gt;하나이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;요즘은&lt;/span&gt; &lt;span&gt;용량&lt;/span&gt; &lt;span&gt;고민은&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;편이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특히&lt;/span&gt; &lt;span&gt;온프레미스&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;직접적으로&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;운용할&lt;/span&gt; &lt;span&gt;때에는&lt;/span&gt; &lt;span&gt;더더욱&lt;/span&gt; &lt;span&gt;그렇다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt; &lt;span&gt;클라우드&lt;/span&gt; &lt;span&gt;환경에선&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모든것이&lt;/span&gt; &lt;span&gt;비용으로&lt;/span&gt; &lt;span&gt;청구되기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;최소한의&lt;/span&gt; &lt;span&gt;사이즈로&lt;/span&gt; &lt;span&gt;운영하면&lt;/span&gt; &lt;span&gt;비용&lt;/span&gt; &lt;span&gt;최적화에&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt; &lt;span&gt;도움이&lt;/span&gt; &lt;span&gt;될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있을&lt;/span&gt; &lt;span&gt;것이라&lt;/span&gt; &lt;span&gt;생각한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Alpine Linux:Overview : &lt;a href=&quot;https://wiki.alpinelinux.org/wiki/Alpine_Linux:Overview&quot;&gt;https://wiki.alpinelinux.org/wiki/Alpine_Linux:Overview&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Alpine Linux &lt;span&gt;&amp;nbsp;&lt;/span&gt;: &lt;a href=&quot;https://namu.wiki/w/Alpine%20Linux&quot;&gt;https://namu.wiki/w/Alpine%20Linux&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-04 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;리눅스&lt;/span&gt;&lt;span&gt;, Linux, &lt;/span&gt;&lt;span&gt;알파인&lt;/span&gt; &lt;span&gt;리눅스&lt;/span&gt;&lt;span&gt;, Apline Linux, APK &lt;/span&gt;&lt;span&gt;명령어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;리눅스&lt;/span&gt; &lt;span&gt;배포판&lt;/span&gt;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>APK 명령어</category>
      <category>Apline Linux</category>
      <category>Linux</category>
      <category>리눅스</category>
      <category>리눅스 배포판</category>
      <category>알파인 리눅스</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1543</guid>
      <comments>https://sqlmvp.tistory.com/entry/Linux-Alpine-Linux-%EC%95%8C%ED%8C%8C%EC%9D%B8-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C#entry1543comment</comments>
      <pubDate>Mon, 4 Sep 2023 14:30:32 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] 성능 모니터링을 위한 Performance_Schema 개념</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-%EC%84%B1%EB%8A%A5-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81%EC%9D%84-%EC%9C%84%ED%95%9C-PerformanceSchema-%EA%B0%9C%EB%85%90</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;성능&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;모니터링을&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;위한&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;Performance_Schema &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;개념&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL 5.X, 8.X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;성능&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;지표를&lt;/span&gt; &lt;span&gt;얻기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;정보는&lt;/span&gt; &lt;span&gt;performance_schema (&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;성능&lt;/span&gt; &lt;span&gt;스키마&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;information_schema&lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;performance_schema&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;관한&lt;/span&gt; &lt;span&gt;전체적인&lt;/span&gt; &lt;span&gt;개념을&lt;/span&gt; &lt;span&gt;다루며&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;항목에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;세부&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;별도&lt;/span&gt; &lt;span&gt;포스팅&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;MySQL performance_schema&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;로우레벨에&lt;/span&gt; &lt;span&gt;실행되며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;런타임으로&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;내부를&lt;/span&gt; &lt;span&gt;검사한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;자주&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;디폴트로&lt;/span&gt; &lt;span&gt;활성화되어&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;따로&lt;/span&gt; &lt;span&gt;설정하지&lt;/span&gt; &lt;span&gt;않아도&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그&lt;/span&gt; &lt;span&gt;외에는&lt;/span&gt; &lt;span&gt;필요에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;활성화해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. performance_schema&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;수집하는&lt;/span&gt;&lt;span&gt; instruments&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;수집한&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;저장하는&lt;/span&gt;&lt;span&gt; consumers&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;설정하여&lt;/span&gt; &lt;span&gt;이용하는&lt;/span&gt; &lt;span&gt;구조이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Performance_schema : &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;검사에&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Information_schema : &lt;/span&gt;&lt;span&gt;메타데이터&lt;/span&gt; &lt;span&gt;검사에&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;521&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;　&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;performance_schema&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;information_schema&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;주요 목적&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;성능 데이터의 수집&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;메타 데이터의 수집&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;애플리케이션&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;성능 개선&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;감시 도구이자 관리 도구&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;도입된 버전&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;5.5&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;SQL 표준&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;MySQL 전용 기능&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;O&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;설치방법&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;스토리지 엔진으로 설치&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;infomation schema API&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;데이터 수집 방법&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;mysqld 내부에서 런타임 수집&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;information schema 테이블 접근 시&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;통상적인 오버 헤드&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;있음&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;없음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;148&quot;&gt;&lt;span&gt;출력에 의한 오버 헤드&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;163&quot;&gt;&lt;span&gt;적음&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;211&quot;&gt;&lt;span&gt;많음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Information_schema&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;DROP DATABASE &lt;/span&gt;&lt;span&gt;명령으로&lt;/span&gt; &lt;span&gt;삭제할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그&lt;/span&gt; &lt;span&gt;이유는&lt;/span&gt; &lt;span&gt;SYSTEM VIEW &lt;/span&gt;&lt;span&gt;이기&lt;/span&gt; &lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt; &lt;span&gt;일반&lt;/span&gt; &lt;span&gt;사용자에게&lt;/span&gt; &lt;span&gt;all privileges on *.* &lt;/span&gt;&lt;span&gt;권한을&lt;/span&gt; &lt;span&gt;주더라도&lt;/span&gt; &lt;span&gt;삭제할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;스키마의&lt;/span&gt; &lt;span&gt;table_type&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Information_schema : SYSTEM VIEW&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;mysql : BASE TABLE&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;performance_schema : BASE TABLE&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;sys : VIEW or BASE TABLE &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;performance_schema &lt;/span&gt;&lt;span&gt;이벤트는&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;바이너리&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;수정을&lt;/span&gt; &lt;span&gt;설명&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;기록된&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt; &lt;span&gt;스케줄러&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;저장&lt;/span&gt; &lt;span&gt;프로그램&lt;/span&gt; &lt;span&gt;유형&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;다르다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt; &lt;span&gt;스키마&lt;/span&gt; &lt;span&gt;이벤트는&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;인스턴스에만&lt;/span&gt; &lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt; &lt;span&gt;스키마&lt;/span&gt; &lt;span&gt;테이블은&lt;/span&gt; &lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;로컬로&lt;/span&gt; &lt;span&gt;간주되며&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;테이블에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항은&lt;/span&gt; &lt;span&gt;바이너리&lt;/span&gt; &lt;span&gt;로그에&lt;/span&gt; &lt;span&gt;복제되거나&lt;/span&gt; &lt;span&gt;기록되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Performance_Schema &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;스토리지&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;엔진&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;performance_schema &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt; &lt;span&gt;엔진은&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;소스&lt;/span&gt; &lt;span&gt;코드의&lt;/span&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;span&gt;계측&lt;/span&gt; &lt;span&gt;지점&lt;/span&gt;&lt;span&gt;(Instrumentation Point)&quot;&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;수집한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;수집된&lt;/span&gt; &lt;span&gt;이벤트는&lt;/span&gt;&lt;span&gt; Performance_schema &lt;/span&gt;&lt;span&gt;데이터베이스의&lt;/span&gt; &lt;span&gt;테이블에&lt;/span&gt; &lt;span&gt;저장된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;테이블은&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;테이블과&lt;/span&gt; &lt;span&gt;마찬가지로&lt;/span&gt;&lt;span&gt; SELECT &lt;/span&gt;&lt;span&gt;문을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;쿼리할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;성능&lt;/span&gt; &lt;span&gt;스키마의&lt;/span&gt; &lt;span&gt;테이블은&lt;/span&gt; &lt;span&gt;지속적인&lt;/span&gt; &lt;span&gt;온디스크&lt;/span&gt; &lt;span&gt;스토리지를&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;인메모리&lt;/span&gt; &lt;span&gt;테이블이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;수집된&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt; &lt;span&gt;시&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;채워지고&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt; &lt;span&gt;시&lt;/span&gt; &lt;span&gt;삭제된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;performance_schema&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;어떤&lt;/span&gt; &lt;span&gt;스토리지&lt;/span&gt; &lt;span&gt;엔진을&lt;/span&gt; &lt;span&gt;사용하는지&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE = 'PERFORMANCE_SCHEMA';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1045&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpEh6s/btssTqXKudG/W2rOiQZ0CtUbgL4GuOveO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpEh6s/btssTqXKudG/W2rOiQZ0CtUbgL4GuOveO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpEh6s/btssTqXKudG/W2rOiQZ0CtUbgL4GuOveO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpEh6s%2FbtssTqXKudG%2FW2rOiQZ0CtUbgL4GuOveO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1045&quot; height=&quot;275&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1045&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;전용&lt;/span&gt; &lt;span&gt;PERFORMANCE_SCHEMA &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt; &lt;span&gt;엔진을&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, Transactions &lt;/span&gt;&lt;span&gt;항목을&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt; NO &lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있으므로&lt;/span&gt;&lt;span&gt; SQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수는&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt;&lt;span&gt; InnoDB &lt;/span&gt;&lt;span&gt;와는&lt;/span&gt; &lt;span&gt;다르게&lt;/span&gt;&lt;span&gt; Transaction &lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;지원하지&lt;/span&gt; &lt;span&gt;않는다는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;알&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;성능&lt;/span&gt; &lt;span&gt;스키마&lt;/span&gt; &lt;span&gt;구성은&lt;/span&gt;&lt;span&gt; SQL &lt;/span&gt;&lt;span&gt;문을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt;&lt;span&gt;performance_schema &lt;/span&gt;&lt;span&gt;데이터베이스의&lt;/span&gt; &lt;span&gt;테이블을&lt;/span&gt; &lt;span&gt;업데이트하여&lt;/span&gt; &lt;span&gt;동적으로&lt;/span&gt; &lt;span&gt;수정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;변경은&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;수집에&lt;/span&gt; &lt;span&gt;즉시&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;미친다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;수집은&lt;/span&gt; &lt;span&gt;계측을&lt;/span&gt; &lt;span&gt;추가하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;소스&lt;/span&gt; &lt;span&gt;코드를&lt;/span&gt; &lt;span&gt;수정하는&lt;/span&gt; &lt;span&gt;방식으로&lt;/span&gt; &lt;span&gt;구현된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;복제나&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt; &lt;span&gt;스케줄러와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;기능과&lt;/span&gt; &lt;span&gt;달리&lt;/span&gt; &lt;span&gt;성능&lt;/span&gt; &lt;span&gt;스키마와&lt;/span&gt; &lt;span&gt;관련된&lt;/span&gt; &lt;span&gt;별도의&lt;/span&gt; &lt;span&gt;스레드가&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Performance_Schema &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;동작&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;방식&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Performance_schema&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;동작은&lt;/span&gt; &lt;span&gt;두&lt;/span&gt; &lt;span&gt;가지로&lt;/span&gt; &lt;span&gt;나눌&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Instrument(&lt;/span&gt;&lt;span&gt;인스트루먼트&lt;/span&gt;&lt;span&gt;) : &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;얻고자&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;코드를&lt;/span&gt; &lt;span&gt;나타냄&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Consumer(&lt;/span&gt;&lt;span&gt;컨슈머&lt;/span&gt;&lt;span&gt;) : &lt;/span&gt;&lt;span&gt;어떤&lt;/span&gt; &lt;span&gt;코드를&lt;/span&gt; &lt;span&gt;수행하였는지에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;저장&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Instrument(&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;인스트루먼트&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;performance_schema&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; setup_instruments &lt;/span&gt;&lt;span&gt;테이블에는&lt;/span&gt; &lt;span&gt;지원되는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;인스트루먼트&lt;/span&gt; &lt;span&gt;목록이&lt;/span&gt; &lt;span&gt;포함되어&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;인스트루먼트&lt;/span&gt; &lt;span&gt;명은&lt;/span&gt; &lt;span&gt;슬래시로&lt;/span&gt; &lt;span&gt;구분해서&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;몇&lt;/span&gt; &lt;span&gt;가지&lt;/span&gt; &lt;span&gt;예시를&lt;/span&gt; &lt;span&gt;살펴보자&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;statement/sql/select&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;wait/synch/mutex/innodb/autoinc_mutex&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;인스트루먼트&lt;/span&gt; &lt;span&gt;이름의&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;왼쪽이&lt;/span&gt; &lt;span&gt;인스트루먼트의&lt;/span&gt; &lt;span&gt;종류를&lt;/span&gt; &lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt; &lt;span&gt;위의&lt;/span&gt; &lt;span&gt;예시에서&lt;/span&gt;&lt;span&gt; statement&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;인스트루먼트가&lt;/span&gt;&lt;span&gt; sql &lt;/span&gt;&lt;span&gt;문장임을&lt;/span&gt; &lt;span&gt;나태내고&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, wait/ &lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;대기&lt;/span&gt; &lt;span&gt;관련된&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;나타내고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;인스트루먼트에서&lt;/span&gt; &lt;span&gt;수집할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;성능&lt;/span&gt; &lt;span&gt;정보&lt;/span&gt; &lt;span&gt;항목은&lt;/span&gt; &lt;span&gt;performance_schema.setup_instruments &lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;확인&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그룹별로&lt;/span&gt; &lt;span&gt;몇&lt;/span&gt; &lt;span&gt;개의&lt;/span&gt; &lt;span&gt;인스투르먼트가&lt;/span&gt; &lt;span&gt;있는지&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select substring_index(name, '/', 1) as category, count(*) from setup_instruments group by substring_index(name, '/', 1);&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_2.png&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bddoNr/btssTgA3ci2/FB5XkkSnC5Wi95Q8SdoVyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bddoNr/btssTgA3ci2/FB5XkkSnC5Wi95Q8SdoVyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bddoNr/btssTgA3ci2/FB5XkkSnC5Wi95Q8SdoVyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbddoNr%2FbtssTgA3ci2%2FFB5XkkSnC5Wi95Q8SdoVyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;325&quot; height=&quot;314&quot; data-filename=&quot;1_2.png&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;인스트루먼트의&lt;/span&gt; &lt;span&gt;상세&lt;/span&gt; &lt;span&gt;목록은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. MySQL 5.7 &lt;/span&gt;&lt;span&gt;버전에서는&lt;/span&gt; &lt;span&gt;1032&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;인스트루먼트가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from performance_schema.setup_instruments;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEFMUY/btssTnUcZTT/IEh2ctaHDwSrkTWAA66dxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEFMUY/btssTnUcZTT/IEh2ctaHDwSrkTWAA66dxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEFMUY/btssTnUcZTT/IEh2ctaHDwSrkTWAA66dxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEFMUY%2FbtssTnUcZTT%2FIEh2ctaHDwSrkTWAA66dxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;238&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Consumer(&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;컨슈머&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨슈머는&lt;/span&gt; &lt;span&gt;인스트루먼트가&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;보내는&lt;/span&gt; &lt;span&gt;대상을&lt;/span&gt; &lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;. Performance_schema&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;인스트루먼트&lt;/span&gt; &lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;테이블에&lt;/span&gt; &lt;span&gt;저장하게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. performance_schema&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;종류는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;쿼리로&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;테이블의&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;SELECT &lt;/span&gt;&lt;span&gt;구문으로&lt;/span&gt; &lt;span&gt;조회할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;테이블의&lt;/span&gt; &lt;span&gt;기능&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;설명하지는&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. MySQL 5.7 &lt;/span&gt;&lt;span&gt;기준으로&lt;/span&gt; &lt;span&gt;89&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;테이블이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. MySQL 8.0&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;경우에는&lt;/span&gt; &lt;span&gt;110&lt;/span&gt;&lt;span&gt;개&lt;/span&gt; &lt;span&gt;테이블이&lt;/span&gt; &lt;span&gt;존재한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;버전별로&lt;/span&gt; &lt;span&gt;특성이&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;구분해서&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;use performance_schema;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;show tables;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOZ6A2/btssUPQfY9A/jLiEKkKnz72tGowo39Sta0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOZ6A2/btssUPQfY9A/jLiEKkKnz72tGowo39Sta0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOZ6A2/btssUPQfY9A/jLiEKkKnz72tGowo39Sta0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOZ6A2%2FbtssUPQfY9A%2FjLiEKkKnz72tGowo39Sta0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;348&quot; height=&quot;299&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Performance_Schema &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;활성화&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;인스트루먼트를&lt;/span&gt; &lt;span&gt;활성화하거나&lt;/span&gt; &lt;span&gt;비활성화&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;performance_schema&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;수집하는&lt;/span&gt; &lt;span&gt;성능&lt;/span&gt; &lt;span&gt;지표&lt;/span&gt; &lt;span&gt;항목에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;활성&lt;/span&gt; &lt;span&gt;비활성을&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;쿼리로&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;조회하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;ENABLED &lt;/span&gt;&lt;span&gt;컬럼의&lt;/span&gt; &lt;span&gt;결과로&lt;/span&gt; &lt;span&gt;활성화&lt;/span&gt; &lt;span&gt;여부를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from performance_schema.setup_instruments;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLfFEx/btssMEwmkXN/RiSFVVd87Lexv3Yez9HgK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLfFEx/btssMEwmkXN/RiSFVVd87Lexv3Yez9HgK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLfFEx/btssMEwmkXN/RiSFVVd87Lexv3Yez9HgK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLfFEx%2FbtssMEwmkXN%2FRiSFVVd87Lexv3Yez9HgK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;808&quot; height=&quot;223&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;setup_instruments &lt;/span&gt;&lt;span&gt;테이블에서는&lt;/span&gt;&lt;span&gt; ENABLED&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; TIMED &lt;/span&gt;&lt;span&gt;칼럼을&lt;/span&gt; &lt;span&gt;업데이트하여&lt;/span&gt; &lt;span&gt;기능을&lt;/span&gt; &lt;span&gt;활성화할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있습니다&lt;/span&gt;&lt;span&gt;. UPDATE &lt;/span&gt;&lt;span&gt;문으로&lt;/span&gt; &lt;span&gt;이들&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt;&lt;span&gt; 'YES'&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;변경하면&lt;/span&gt; &lt;span&gt;활성화되고&lt;/span&gt;&lt;span&gt;, 'NO'&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;변경하면&lt;/span&gt; &lt;span&gt;비활성화된다&lt;/span&gt;&lt;span&gt;. setup_instruments&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; TIMED &lt;/span&gt;&lt;span&gt;칼럼값을&lt;/span&gt;&lt;span&gt; 'YES'&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;변경하여&lt;/span&gt; &lt;span&gt;활성화하면&lt;/span&gt;&lt;span&gt; instruments&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;타이밍&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;수집할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. memory &lt;/span&gt;&lt;span&gt;카테고리의&lt;/span&gt;&lt;span&gt; instruments&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;계측하는&lt;/span&gt; &lt;span&gt;구조가&lt;/span&gt; &lt;span&gt;없으므로&lt;/span&gt;&lt;span&gt; TIMED &lt;/span&gt;&lt;span&gt;칼럼을&lt;/span&gt;&lt;span&gt; 'YES'&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; UPDATE&lt;/span&gt;&lt;span&gt;해도&lt;/span&gt; &lt;span&gt;쿼리는&lt;/span&gt; &lt;span&gt;성공하지만&lt;/span&gt; &lt;span&gt;카테고리&lt;/span&gt; &lt;span&gt;레코드&lt;/span&gt; &lt;span&gt;값은&lt;/span&gt;&lt;span&gt; 'NO'&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;남아&lt;/span&gt; &lt;span&gt;있어&lt;/span&gt; &lt;span&gt;활성화할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;update performance_schema.setup_instruments set ENABLED='YES', TIMED='YES' where name='statement/sql/select';&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;인스트루먼트의&lt;/span&gt; &lt;span&gt;활성&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;비활성화를&lt;/span&gt; &lt;span&gt;쿼리로&lt;/span&gt; &lt;span&gt;업데이트한&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;영구적이지&lt;/span&gt; &lt;span&gt;않기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;재시작시&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;적용해주어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;영구&lt;/span&gt; &lt;span&gt;적용을&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;my.cnf&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;변수로&lt;/span&gt; &lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql.cnf&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;performance-schema-instrument='wait/synch/mutex/sql/LOCK_status=ON'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;performance-schema-instrument='wait/synch/mutex/innodb/autoinc_mutex=ON'&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨슈머를&lt;/span&gt; &lt;span&gt;활성화하는&lt;/span&gt; &lt;span&gt;방법도&lt;/span&gt; &lt;span&gt;인스트루먼트와&lt;/span&gt; &lt;span&gt;유사하게&lt;/span&gt; &lt;span&gt;performance_schema.setup_consumers &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt; update&lt;/span&gt;&lt;span&gt;하거나&lt;/span&gt; &lt;span&gt;my.cnf &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;변수에&lt;/span&gt; &lt;span&gt;등록한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Chapter 1 MySQL Performance Schema : &lt;a href=&quot;https://dev.mysql.com/doc/mysql-perfschema-excerpt/8.0/en/performance-schema.html&quot;&gt;https://dev.mysql.com/doc/mysql-perfschema-excerpt/8.0/en/performance-schema.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL Performance Schema - &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt; &lt;span&gt;스키마&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://hoing.io/archives/3811&quot;&gt;https://hoing.io/archives/3811&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL performance-schema-instruments &lt;/span&gt;&lt;span&gt;사용에&lt;/span&gt; &lt;span&gt;따른&lt;/span&gt; &lt;span&gt;성능&lt;/span&gt; &lt;span&gt;영향&lt;/span&gt; &lt;span&gt;실험&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://engineering.linecorp.com/ko/blog/mysql-research-performance-schema-instruments#:~:text=performance_schema%EB%8A%94%20%EC%A0%95%EB%B3%B4%EB%A5%BC%20%EC%88%98%EC%A7%91,%EC%84%A4%EC%A0%95%ED%95%98%EC%97%AC%20%EC%9D%B4%EC%9A%A9%ED%95%98%EB%8A%94%20%EA%B5%AC%EC%A1%B0%EC%9E%85%EB%8B%88%EB%8B%A4&quot;&gt;https://engineering.linecorp.com/ko/blog/mysql-research-performance-schema-instruments#:~:text=performance_schema%EB%8A%94%20%EC%A0%95%EB%B3%B4%EB%A5%BC%20%EC%88%98%EC%A7%91,%EC%84%A4%EC%A0%95%ED%95%98%EC%97%AC%20%EC%9D%B4%EC%9A%A9%ED%95%98%EB%8A%94%20%EA%B5%AC%EC%A1%B0%EC%9E%85%EB%8B%88%EB%8B%A4&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-02 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, &lt;/span&gt;&lt;span&gt;성능&lt;/span&gt; &lt;span&gt;모니터&lt;/span&gt;&lt;span&gt;, performance_schema, &lt;/span&gt;&lt;span&gt;성능스키마&lt;/span&gt;&lt;span&gt;, MySQL&lt;/span&gt;&lt;span&gt;모니터링&lt;/span&gt;&lt;span&gt;, MySQL &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;정보&lt;/span&gt; &lt;span&gt;수집&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>MySQL 시스템 정보 수집</category>
      <category>mysql모니터링</category>
      <category>performance_schema</category>
      <category>성능 모니터</category>
      <category>성능스키마</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1542</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-%EC%84%B1%EB%8A%A5-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81%EC%9D%84-%EC%9C%84%ED%95%9C-PerformanceSchema-%EA%B0%9C%EB%85%90#entry1542comment</comments>
      <pubDate>Sat, 2 Sep 2023 06:11:53 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] &amp;ldquo;innodb_table_stats&amp;rdquo; not found 오류와 예상하지 못한 사이드 이펙트</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-%E2%80%9Cinnodbtablestats%E2%80%9D-not-found-%EC%98%A4%EB%A5%98%EC%99%80-%EC%98%88%EC%83%81%ED%95%98%EC%A7%80-%EB%AA%BB%ED%95%9C-%EC%82%AC%EC%9D%B4%EB%93%9C-%EC%9D%B4%ED%8E%99%ED%8A%B8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[MySQL] &amp;ldquo;innodb_table_stats&amp;rdquo; not found &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;오류와&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;예상하지&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;못한&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;사이드&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이펙트&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL 5.7&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.7&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;재시작&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;오류가&lt;/span&gt; &lt;span&gt;로그에&lt;/span&gt; &lt;span&gt;잔뜩&lt;/span&gt; &lt;span&gt;쌓여있다&lt;/span&gt;&lt;span&gt;. MySQL &lt;/span&gt;&lt;span&gt;에러&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;위치는&lt;/span&gt; &lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo cat /var/log/mysql/error.log&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2023-08-31T05:15:56.437819Z 2598 [ERROR] InnoDB: Table `mysql`.`innodb_table_stats` not found.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-08-31T05:15:56.437825Z 2598 [ERROR] InnoDB: Fetch of persistent statistics requested for table `XXXX`.`wp_46549_XXXXX ` but the required system tables mysql.innodb_table_stats and mysql.innodb_index_stats are not present or have unexpected structure. Using transient stats instead.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;재시작&lt;/span&gt; &lt;span&gt;했을&lt;/span&gt; &lt;span&gt;뿐인데&lt;/span&gt; &lt;span&gt;왜&lt;/span&gt; &lt;span&gt;이와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;로그가&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;것일까&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;그&lt;/span&gt; &lt;span&gt;이유를&lt;/span&gt; &lt;span&gt;살펴보니&lt;/span&gt;&lt;span&gt; MySQL 5.6&lt;/span&gt;&lt;span&gt;부터는&lt;/span&gt; &lt;span&gt;mysql database&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;통계정보나&lt;/span&gt; &lt;span&gt;slave &lt;/span&gt;&lt;span&gt;관련&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;저장하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;새롭게&lt;/span&gt; &lt;span&gt;InnoDB &lt;/span&gt;&lt;span&gt;테이블이&lt;/span&gt; &lt;span&gt;추가되었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;innodb_index_stats&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;innodb_table_stats&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;slave_master_info&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;slave_relay_log_info&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;slave_worker_info&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL 5.5&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;MySQL 5.6&lt;/span&gt;&lt;span&gt;이나&lt;/span&gt; &lt;span&gt;MySQL 5.7&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;업그레이드&lt;/span&gt; &lt;span&gt;했을때&lt;/span&gt;&lt;span&gt;, mysql_upgrade &lt;/span&gt;&lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;추가로&lt;/span&gt; &lt;span&gt;해주지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;mysql database &lt;/span&gt;&lt;span&gt;구조는&lt;/span&gt; &lt;span&gt;5.5&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;되돌아간다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;반드시&lt;/span&gt; &lt;span&gt;mysql_upgrade&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;진행해&lt;/span&gt; &lt;span&gt;주어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;오류를&lt;/span&gt; &lt;span&gt;해결하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;관련&lt;/span&gt; &lt;span&gt;테이블&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;USE mysql;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;DROP TABLE innodb_index_stats;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;DROP TABLE innodb_table_stats;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;DROP TABLE slave_master_info;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;DROP TABLE slave_relay_log_info;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;DROP TABLE slave_worker_info;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;중지&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;mysql database&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;존재하는&lt;/span&gt; &lt;span&gt;ibd &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt; &lt;span&gt;삭제&lt;/span&gt; &lt;span&gt;(frm &lt;/span&gt;&lt;span&gt;파일은&lt;/span&gt; &lt;span&gt;DROP TABLE &lt;/span&gt;&lt;span&gt;시&lt;/span&gt; &lt;span&gt;삭제되었음&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /var/lib/mysql/mysql/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;rm -rf innodb_index_stats.ibd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;rm -rf innodb_table_stats.ibd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;rm -rf slave_master_info.ibd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;rm -rf slave_relay_log_info.ibd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;rm -rf slave_worker_info.ibd&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;mysql &lt;/span&gt;&lt;span&gt;강제&lt;/span&gt; &lt;span&gt;업그레이드를&lt;/span&gt; &lt;span&gt;진행한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;통해서&lt;/span&gt; &lt;span&gt;존재하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;5&lt;/span&gt;&lt;span&gt;개&lt;/span&gt; &lt;span&gt;테이블이&lt;/span&gt; &lt;span&gt;새로&lt;/span&gt; &lt;span&gt;생성된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade &amp;ndash;force -uroot &amp;ndash;p&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;업그레이드가&lt;/span&gt; &lt;span&gt;진행되면&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;메시지들이&lt;/span&gt; &lt;span&gt;출력되며&lt;/span&gt; &lt;span&gt;업그레이드를&lt;/span&gt; &lt;span&gt;진행한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;전체&lt;/span&gt; &lt;span&gt;스키마가&lt;/span&gt; &lt;span&gt;진행되는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;로그가&lt;/span&gt; &lt;span&gt;출력되기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;테이블이&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt; &lt;span&gt;데이터베이스라면&lt;/span&gt; &lt;span&gt;시간이&lt;/span&gt; &lt;span&gt;오래&lt;/span&gt; &lt;span&gt;걸린다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;나의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;테이블&lt;/span&gt; &lt;span&gt;갯수가&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;십만개&lt;/span&gt; &lt;span&gt;존재하는&lt;/span&gt; &lt;span&gt;데이터베이스였다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;root@XXXXX:/var/lib/mysql/mysql# mysql_upgrade --force -uroot -p&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Enter password:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Checking server version.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Running queries to upgrade MySQL server.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.plugin' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.servers' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_topic' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_category' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_relation' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_keyword' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone_name' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone_transition' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone_transition_type' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone_leap_second' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.gtid_executed' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1243: Unknown prepared statement handler (stmt) given to EXECUTE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1243: Unknown prepared statement handler (stmt) given to DEALLOCATE PREPARE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.server_cost' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.server_cost' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.engine_cost' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.engine_cost' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.plugin' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.servers' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.gtid_executed' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_category' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_topic' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_topic' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_category' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_relation' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.help_keyword' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.plugin' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.servers' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone_leap_second' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone_name' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone_transition' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.time_zone_transition_type' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_upgrade: [ERROR] 1146: Table 'mysql.servers' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Checking system database.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.columns_priv&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.db&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.engine_cost&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.engine_cost' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.event&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.func&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.general_log&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.gtid_executed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.gtid_executed' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.help_category&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.help_category' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.help_keyword&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.help_keyword' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.help_relation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.help_relation' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.help_topic&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.help_topic' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.innodb_index_stats&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.innodb_table_stats&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.ndb_binlog_index&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.plugin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.plugin' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.proc&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.procs_priv&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.proxies_priv&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.server_cost&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.server_cost' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.servers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.servers' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.slave_master_info&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.slave_relay_log_info&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.slave_worker_info&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.slow_log&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.tables_priv&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone_leap_second&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone_leap_second' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone_name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone_name' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone_transition&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone_transition' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone_transition_type&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone_transition_type' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.user&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Repairing tables&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.engine_cost&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.engine_cost' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.gtid_executed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.gtid_executed' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.help_category&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.help_category' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.help_keyword&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.help_keyword' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.help_relation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.help_relation' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.help_topic&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.help_topic' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.plugin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.plugin' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.server_cost&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.server_cost' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.servers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.servers' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone_leap_second&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone_leap_second' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone_name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone_name' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone_transition&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone_transition' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql.time_zone_transition_type&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Error&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Table 'mysql.time_zone_transition_type' doesn't exist&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;status&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;: Operation failed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;The sys schema is already up to date (version 1.5.2).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Checking databases.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;재시작&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;오류&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;확인하여&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;동작하는지&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Side Effect]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;CASE 1.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql_upgrade &lt;/span&gt;&lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;완료&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;재시작&lt;/span&gt; &lt;span&gt;하였더니&lt;/span&gt; &lt;span&gt;이번엔&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;로그가&lt;/span&gt; &lt;span&gt;기록되고&lt;/span&gt; &lt;span&gt;있었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다행이&lt;/span&gt; &lt;span&gt;오류&lt;/span&gt; &lt;span&gt;수준이&lt;/span&gt; &lt;span&gt;[ERROR]&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;[WARNING]&lt;/span&gt;&lt;span&gt;이었지만&lt;/span&gt; &lt;span&gt;뭔가&lt;/span&gt; &lt;span&gt;이상하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;로그는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;2023-08-31T06:17:51.827559Z 25 [Warning] InnoDB: Cannot open table XXXX/XXXX_XXXX_indexable from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&quot;&gt;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&lt;/a&gt; for how to resolve the issue.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-08-31T06:17:51.827751Z 25 [Warning] InnoDB: Cannot open table XXXX/XXXX_XXXX _indexable_hierarchy from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&quot;&gt;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&lt;/a&gt; for how to resolve the issue.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-08-31T06:17:51.828046Z 25 [Warning] InnoDB: Cannot open table XXXX/XXXX_XXXX _yoast_migrations from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&quot;&gt;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&lt;/a&gt; for how to resolve the issue.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-08-31T06:17:51.828290Z 25 [Warning] InnoDB: Cannot open table XXXX/XXXX_XXXX _primary_term from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&quot;&gt;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&lt;/a&gt; for how to resolve the issue.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-08-31T06:17:51.829080Z 25 [Warning] InnoDB: Cannot open table XXXX/XXXX_XXXX from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&quot;&gt;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&lt;/a&gt; for how to resolve the issue.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;2023-08-31T06:17:51.829516Z 25 [Warning] InnoDB: Cannot open table XXXX/XXXX_XXXX from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&quot;&gt;http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html&lt;/a&gt; for how to resolve the issue.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;로그는&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;복구&lt;/span&gt; &lt;span&gt;과정에서&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;문제는&lt;/span&gt; &lt;span&gt;위와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;에러로그에&lt;/span&gt; &lt;span&gt;기록하면서&lt;/span&gt; &lt;span&gt;CPU&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;메모리를&lt;/span&gt; &lt;span&gt;엄청&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;소비했다는&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;개발&lt;/span&gt; &lt;span&gt;환경이므로&lt;/span&gt; &lt;span&gt;CPU 2Core, Memory 32GB &lt;/span&gt;&lt;span&gt;환경에&lt;/span&gt; &lt;span&gt;MySQL buffer cache&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;3GB&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;세팅&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그런데&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;그래프를&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;CPU 100% &lt;/span&gt;&lt;span&gt;사용에&lt;/span&gt; &lt;span&gt;물리&lt;/span&gt; &lt;span&gt;메모리를&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;소진한&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMpWWr/btssIqjNwUr/GJtxbweFTnjc8GoWEROmc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMpWWr/btssIqjNwUr/GJtxbweFTnjc8GoWEROmc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMpWWr/btssIqjNwUr/GJtxbweFTnjc8GoWEROmc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMpWWr%2FbtssIqjNwUr%2FGJtxbweFTnjc8GoWEROmc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;421&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;850&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DCTw1/btssN3VsYlf/wZQSiZytM7gxwSBrkyedlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DCTw1/btssN3VsYlf/wZQSiZytM7gxwSBrkyedlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DCTw1/btssN3VsYlf/wZQSiZytM7gxwSBrkyedlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDCTw1%2FbtssN3VsYlf%2FwZQSiZytM7gxwSBrkyedlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1198&quot; height=&quot;850&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;850&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그런데&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;버퍼캐시&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;사용은&lt;/span&gt; &lt;span&gt;거의&lt;/span&gt; &lt;span&gt;없었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예상하기는&lt;/span&gt; &lt;span&gt;mysql &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;별도&lt;/span&gt; &lt;span&gt;스레드에서&lt;/span&gt; &lt;span&gt;사용한거&lt;/span&gt; &lt;span&gt;같은데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;중요한건&lt;/span&gt; &lt;span&gt;작업이&lt;/span&gt; &lt;span&gt;완료된&lt;/span&gt; &lt;span&gt;후에도&lt;/span&gt; &lt;span&gt;메모리가&lt;/span&gt; &lt;span&gt;반환되지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;상태로&lt;/span&gt; &lt;span&gt;mysqld &lt;/span&gt;&lt;span&gt;프로세스가&lt;/span&gt; &lt;span&gt;계속&lt;/span&gt; &lt;span&gt;사용중으로&lt;/span&gt; &lt;span&gt;유지되고&lt;/span&gt; &lt;span&gt;있었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;298&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdxtQG/btssOtNjzpk/3KddyolPZy4iJ0xOwJEwyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdxtQG/btssOtNjzpk/3KddyolPZy4iJ0xOwJEwyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdxtQG/btssOtNjzpk/3KddyolPZy4iJ0xOwJEwyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdxtQG%2FbtssOtNjzpk%2F3KddyolPZy4iJ0xOwJEwyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;298&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;298&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;작업이&lt;/span&gt; &lt;span&gt;완료되고&lt;/span&gt;&lt;span&gt;, CPU &lt;/span&gt;&lt;span&gt;사용량이&lt;/span&gt; &lt;span&gt;정상화된&lt;/span&gt; &lt;span&gt;후&lt;/span&gt;&lt;span&gt;, MySQL &lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;재시작으로&lt;/span&gt; &lt;span&gt;메모리를&lt;/span&gt; &lt;span&gt;회수할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있었으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이후&lt;/span&gt; &lt;span&gt;정상적인&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;유지하고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;CASE 2.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;당시&lt;/span&gt; &lt;span&gt;상황을&lt;/span&gt; &lt;span&gt;스크린샷으로&lt;/span&gt; &lt;span&gt;남기지&lt;/span&gt; &lt;span&gt;못했지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;상황에서&lt;/span&gt; &lt;span&gt;평소&lt;/span&gt; &lt;span&gt;1GB &lt;/span&gt;&lt;span&gt;미만의&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;사용량을&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;pmm-agent&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;10GB &lt;/span&gt;&lt;span&gt;이상의&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;사용량을&lt;/span&gt; &lt;span&gt;보이면서&lt;/span&gt; &lt;span&gt;이상현상을&lt;/span&gt; &lt;span&gt;보이고&lt;/span&gt; &lt;span&gt;있었다&lt;/span&gt;&lt;span&gt;. pmm-agent &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;재시작&lt;/span&gt; &lt;span&gt;해보았지만&lt;/span&gt; &lt;span&gt;동일&lt;/span&gt; &lt;span&gt;증상이&lt;/span&gt; &lt;span&gt;계속되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;pmm client&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;완전히&lt;/span&gt; &lt;span&gt;제거&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;재설치&lt;/span&gt; &lt;span&gt;하여&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;해결하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;솔루션이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;문제의&lt;/span&gt; &lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;찾아야&lt;/span&gt; &lt;span&gt;안정적인&lt;/span&gt; &lt;span&gt;라이브&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있을&lt;/span&gt; &lt;span&gt;듯한데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;아직&lt;/span&gt; &lt;span&gt;못찾았다&lt;/span&gt;&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;예상으로는&lt;/span&gt; &lt;span&gt;perfschema&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;하면서&lt;/span&gt; &lt;span&gt;변경된&lt;/span&gt; &lt;span&gt;사항을&lt;/span&gt; &lt;span&gt;추적하느라&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;예상만&lt;/span&gt; &lt;span&gt;하고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;다음에&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;상황이&lt;/span&gt; &lt;span&gt;재현되면&lt;/span&gt; &lt;span&gt;상세히&lt;/span&gt; &lt;span&gt;확인해&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;예정&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;개발&lt;/span&gt; &lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;문제이다&lt;/span&gt; &lt;span&gt;보니&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;미흡하여&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;수집하지&lt;/span&gt; &lt;span&gt;못해&lt;/span&gt; &lt;span&gt;근본적인&lt;/span&gt; &lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;찾지&lt;/span&gt; &lt;span&gt;못하는&lt;/span&gt; &lt;span&gt;아쉬움이&lt;/span&gt; &lt;span&gt;남는&lt;/span&gt; &lt;span&gt;트러블슈팅이었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모니터링은&lt;/span&gt; &lt;span&gt;과하다&lt;/span&gt; &lt;span&gt;싶을&lt;/span&gt; &lt;span&gt;정도로&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;해서&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;발생했을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;빠르고&lt;/span&gt; &lt;span&gt;정확하게&lt;/span&gt; &lt;span&gt;해결할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;정보로&lt;/span&gt; &lt;span&gt;활용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-09-01 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, innodb_index_stats, MySQL&lt;/span&gt;&lt;span&gt;업그레이드&lt;/span&gt;&lt;span&gt;, MySQL &lt;/span&gt;&lt;span&gt;트러블슈팅&lt;/span&gt;&lt;span&gt;, MySQL Error&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>innodb_index_stats</category>
      <category>MySQL</category>
      <category>mysql error</category>
      <category>MySQL 트러블슈팅</category>
      <category>MySQL업그레이드</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1541</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-%E2%80%9Cinnodbtablestats%E2%80%9D-not-found-%EC%98%A4%EB%A5%98%EC%99%80-%EC%98%88%EC%83%81%ED%95%98%EC%A7%80-%EB%AA%BB%ED%95%9C-%EC%82%AC%EC%9D%B4%EB%93%9C-%EC%9D%B4%ED%8E%99%ED%8A%B8#entry1541comment</comments>
      <pubDate>Fri, 1 Sep 2023 11:09:23 +0900</pubDate>
    </item>
    <item>
      <title>[Linux] OOM(Out of Memory)란?</title>
      <link>https://sqlmvp.tistory.com/entry/Linux-OOMOut-of-Memory%EB%9E%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Linux] OOM(Out of Memory)&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;란&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;몇일전부터&lt;/span&gt; &lt;span&gt;개발&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;겪던&lt;/span&gt; &lt;span&gt;문제로&lt;/span&gt; &lt;span&gt;멀쩡하던&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;갑자기&lt;/span&gt; &lt;span&gt;연결이&lt;/span&gt; &lt;span&gt;되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;처음엔&lt;/span&gt; &lt;span&gt;단순히&lt;/span&gt; &lt;span&gt;행&lt;/span&gt; &lt;span&gt;현상인줄&lt;/span&gt; &lt;span&gt;알고&lt;/span&gt;&lt;span&gt;, MySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;재시작&lt;/span&gt; &lt;span&gt;하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그런데&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;상황이&lt;/span&gt; &lt;span&gt;하루에도&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;번&lt;/span&gt; &lt;span&gt;발생하고&lt;/span&gt; &lt;span&gt;있어서&lt;/span&gt; &lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;살펴보기로&lt;/span&gt; &lt;span&gt;했다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;살펴보니&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;로그가&lt;/span&gt; &lt;span&gt;있었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.423131] [18540]&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;111 18540&lt;span&gt;&amp;nbsp; &lt;/span&gt;1930392&lt;span&gt;&amp;nbsp; &lt;/span&gt;1535479 12935168&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 mysqld&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.423132] Out of memory: Kill process 18540 (mysqld) score 512 or sacrifice child&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.424065] Killed process 18540 (mysqld) total-vm:7721568kB, anon-rss:6141916kB, file-rss:0kB, shmem-rss:0kB&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.749286] oom_reaper: reaped process 18540 (mysqld), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;OOM&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;인한&lt;/span&gt; &lt;span&gt;OOM Killer(&lt;/span&gt;&lt;span&gt;강제&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;였다&lt;/span&gt;&lt;span&gt;. OOM&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;무엇이고&lt;/span&gt; &lt;span&gt;왜&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;것일까&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;로그는&lt;/span&gt; &lt;span&gt;어떻게&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있을까&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;OOM (Out of Memory)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;swap &lt;/span&gt;&lt;span&gt;메모리와&lt;/span&gt; &lt;span&gt;물리&lt;/span&gt; &lt;span&gt;메모리를&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;중&lt;/span&gt; &lt;span&gt;일&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로세스에서는&lt;/span&gt; &lt;span&gt;필요에&lt;/span&gt; &lt;span&gt;의해&lt;/span&gt; &lt;span&gt;추가적인&lt;/span&gt; &lt;span&gt;물리&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;할당을&lt;/span&gt; &lt;span&gt;요청하였는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;더&lt;/span&gt; &lt;span&gt;이상&lt;/span&gt; &lt;span&gt;할당할&lt;/span&gt; &lt;span&gt;물리&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;공간이&lt;/span&gt; &lt;span&gt;없어&lt;/span&gt; &lt;span&gt;할당이&lt;/span&gt; &lt;span&gt;불가능한&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;의미한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;Over Commit &lt;/span&gt;&lt;span&gt;상태일&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;현상으로&lt;/span&gt; &lt;span&gt;물리적으로&lt;/span&gt; &lt;span&gt;메모리가&lt;/span&gt; &lt;span&gt;부족하다는&lt;/span&gt; &lt;span&gt;뜻이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;문제는&lt;/span&gt; &lt;span&gt;물리&lt;/span&gt; &lt;span&gt;메모리만&lt;/span&gt; &lt;span&gt;증설하면&lt;/span&gt; &lt;span&gt;사실&lt;/span&gt; &lt;span&gt;간단히&lt;/span&gt; &lt;span&gt;해결된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt; &lt;span&gt;왜&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;현상이&lt;/span&gt; &lt;span&gt;발생하는지&lt;/span&gt; &lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;찾지&lt;/span&gt; &lt;span&gt;못한&lt;/span&gt; &lt;span&gt;상태에서&lt;/span&gt; &lt;span&gt;무한정&lt;/span&gt; &lt;span&gt;메모리를&lt;/span&gt; &lt;span&gt;증설할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;OOM Killer&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;부족으로&lt;/span&gt; &lt;span&gt;OOM&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;발생하였을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;리눅스에서는&lt;/span&gt; &lt;span&gt;메모리를&lt;/span&gt; &lt;span&gt;확보하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;OOM Score&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;기준으로&lt;/span&gt; &lt;span&gt;점수가&lt;/span&gt; &lt;span&gt;높은&lt;/span&gt; &lt;span&gt;프로세스를&lt;/span&gt; &lt;span&gt;강제로&lt;/span&gt; &lt;span&gt;Kill &lt;/span&gt;&lt;span&gt;하여&lt;/span&gt; &lt;span&gt;메모리를&lt;/span&gt; &lt;span&gt;확보하는&lt;/span&gt; &lt;span&gt;Kernel &lt;/span&gt;&lt;span&gt;기능이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;OOM Killer&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;프로세스가&lt;/span&gt; &lt;span&gt;종료되면&lt;/span&gt; &lt;span&gt;내부&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;로그에&lt;/span&gt; &lt;span&gt;기록되어&lt;/span&gt; &lt;span&gt;추후&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;OOM Killer Log &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;OOM Killer&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;프로세스가&lt;/span&gt; &lt;span&gt;종료되었을&lt;/span&gt; &lt;span&gt;때에는&lt;/span&gt; &lt;span&gt;각종&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;로그에서&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;로그에는&lt;/span&gt; &lt;span&gt;OOM Killer&lt;/span&gt;&lt;span&gt;외에도&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;로그가&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;양이&lt;/span&gt; &lt;span&gt;많을&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;필터를&lt;/span&gt; &lt;span&gt;해서&lt;/span&gt; &lt;span&gt;검색을&lt;/span&gt; &lt;span&gt;해야&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;특별히&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;경로를&lt;/span&gt; &lt;span&gt;수정하지&lt;/span&gt; &lt;span&gt;않았다면&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로에서&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;/var/log/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kern.log&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;OOM &lt;/span&gt;&lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cat kern.log&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 XXXXX kernel: [7189052.423131] [18540]&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;111 18540&lt;span&gt;&amp;nbsp; &lt;/span&gt;1930392&lt;span&gt;&amp;nbsp; &lt;/span&gt;1535479 12935168&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 mysqld&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 XXXXX kernel: [7189052.423132] Out of memory: Kill process 18540 (mysqld) score 512 or sacrifice child&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 XXXXX kernel: [7189052.424065] Killed process 18540 (mysqld) total-vm:7721568kB, anon-rss:6141916kB, file-rss:0kB, shmem-rss:0kB&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.749286] oom_reaper: reaped process 18540 (mysqld), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;syslog&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;로그가&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;기록되어&lt;/span&gt; &lt;span&gt;OOM&lt;/span&gt;&lt;span&gt;이라는&lt;/span&gt; &lt;span&gt;필터를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;확인하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cat syslog | grep oom&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Aug 29 23:45:33 xxxxx kernel: [7182478.018455]&lt;span&gt;&amp;nbsp; &lt;/span&gt;oom_kill_process+0x21f/0x420&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 29 23:45:33 xxxxx kernel: [7182478.018529] [ pid ]&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;uid&lt;span&gt;&amp;nbsp; &lt;/span&gt;tgid total_vm&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rss pgtables_bytes swapents oom_score_adj name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 29 23:45:34 xxxxx kernel: [7182478.495925] oom_reaper: reaped process 22648 (mysqld), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.422998] icinga2 invoked oom-killer: gfp_mask=0x14200ca(GFP_HIGHUSER_MOVABLE), nodemask=(null), order=0, oom_score_adj=0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.423021]&lt;span&gt;&amp;nbsp; &lt;/span&gt;oom_kill_process+0x21f/0x420&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.423096] [ pid ]&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;uid&lt;span&gt;&amp;nbsp; &lt;/span&gt;tgid total_vm&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rss pgtables_bytes swapents oom_score_adj name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Aug 30 01:35:08 xxxxx kernel: [7189052.749286] oom_reaper: reaped process 18540 (mysqld), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;message &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt; &lt;span&gt;파일에서도&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;오류&lt;/span&gt; &lt;span&gt;내역을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. Message &lt;/span&gt;&lt;span&gt;로그&lt;/span&gt; &lt;span&gt;파일은&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;미러&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;정말&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;로그가&lt;/span&gt; &lt;span&gt;기록되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;OOM killer &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;우선순위&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;OOM&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;의해&lt;/span&gt; &lt;span&gt;mysqld&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;kill &lt;/span&gt;&lt;span&gt;되었음을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇다면&lt;/span&gt; &lt;span&gt;프로세스를&lt;/span&gt; &lt;span&gt;종료시키는&lt;/span&gt; &lt;span&gt;우선순위는&lt;/span&gt; &lt;span&gt;어떻게&lt;/span&gt; &lt;span&gt;정해질까&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;두&lt;/span&gt; &lt;span&gt;가지&lt;/span&gt; &lt;span&gt;방법이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;oom_badness() &lt;/span&gt;&lt;span&gt;메소드에서&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;프로세스별&lt;/span&gt; &lt;span&gt;점수를&lt;/span&gt; &lt;span&gt;계산하여&lt;/span&gt; &lt;span&gt;종료시킬&lt;/span&gt; &lt;span&gt;프로세스를&lt;/span&gt; &lt;span&gt;선택한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;특별히&lt;/span&gt; &lt;span&gt;지정하여&lt;/span&gt; &lt;span&gt;순위를&lt;/span&gt; &lt;span&gt;변동시킬&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;oom_badness()&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;우선순위&lt;/span&gt; &lt;span&gt;선정&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;프로세스를&lt;/span&gt; &lt;span&gt;킬&lt;/span&gt; &lt;span&gt;함으로써&lt;/span&gt; &lt;span&gt;최소한의&lt;/span&gt; &lt;span&gt;프로세스만&lt;/span&gt; &lt;span&gt;잃을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;많은&lt;/span&gt; &lt;span&gt;메모리를&lt;/span&gt; &lt;span&gt;회수할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;사용량이&lt;/span&gt; &lt;span&gt;작으면&lt;/span&gt; &lt;span&gt;킬&lt;/span&gt; &lt;span&gt;되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로세스중&lt;/span&gt; &lt;span&gt;Leak&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;발생하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;&lt;span&gt;릭이&lt;/span&gt; &lt;span&gt;발생하면&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt; &lt;span&gt;Kill&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;의미가&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;특별히&lt;/span&gt; &lt;span&gt;지정한&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;외에도&lt;/span&gt; &lt;span&gt;nice&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;score &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;우선순위를&lt;/span&gt; &lt;span&gt;선정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;OOM Killer score &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;OOM score &lt;/span&gt;&lt;span&gt;확인&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;/proc/${pid}/oom_score &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;조회할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. PID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;확인하는&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;ps &lt;/span&gt;&lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ps : shell&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;실행중인&lt;/span&gt; &lt;span&gt;프로세스만&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ps -e : &lt;/span&gt;&lt;span&gt;실행&lt;/span&gt; &lt;span&gt;중인&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ps -f : &lt;/span&gt;&lt;span&gt;실행중인&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;프로세스의&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt; &lt;span&gt;정보&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ps -ef | grep mysql : grep&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt;&lt;span&gt;(mysql) PID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;확인&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;ps -e | grep mywql &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qNa46/btsswjMj2SF/4ICEw081Qg3mqBqxRat7u1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qNa46/btsswjMj2SF/4ICEw081Qg3mqBqxRat7u1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qNa46/btsswjMj2SF/4ICEw081Qg3mqBqxRat7u1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqNa46%2FbtsswjMj2SF%2F4ICEw081Qg3mqBqxRat7u1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;100&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cat /proc/15368/oom_score&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;60&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1cS2Q/btssALarQDF/tP4KvVbK57BJArNztV7Ks0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1cS2Q/btssALarQDF/tP4KvVbK57BJArNztV7Ks0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1cS2Q/btssALarQDF/tP4KvVbK57BJArNztV7Ks0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1cS2Q%2FbtssALarQDF%2FtP4KvVbK57BJArNztV7Ks0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;526&quot; height=&quot;60&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;60&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;OOM Killer &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;순위&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;설정&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;프로세스의&lt;/span&gt; &lt;span&gt;PID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;조회&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;/proc/PID/oom_adj &lt;/span&gt;&lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;-17&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;입력&lt;/span&gt;&lt;span&gt;. oom_adj&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;-17 ~ 15&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;가지며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;낮은&lt;/span&gt; &lt;span&gt;값&lt;/span&gt; &lt;span&gt;일수록&lt;/span&gt; &lt;span&gt;후순위&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;/proc_PID/oom_scroe_adj &lt;/span&gt;&lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;-1000&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;입력&lt;/span&gt;&lt;span&gt;. oom_score_adj&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;-1000 ~ 1000&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;가지며&lt;/span&gt; &lt;span&gt;낮은&lt;/span&gt; &lt;span&gt;값일수록&lt;/span&gt; &lt;span&gt;후순위&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;oom_adj &lt;/span&gt;&lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;-17&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;변경하는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;PID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;변경하여&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo echo -17 &amp;gt; /proc/${pid}/oom_ajd&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예시는&lt;/span&gt; &lt;span&gt;oom_score_adj&lt;/span&gt;&lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;-1000&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;변경하는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;PID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;변경하여&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo echo -1000 &amp;gt; /proc/${pid}/oom_score_adj&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;누수로&lt;/span&gt; &lt;span&gt;인한&lt;/span&gt; &lt;span&gt;System hang &lt;/span&gt;&lt;span&gt;현상을&lt;/span&gt; &lt;span&gt;방지하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;리눅서&lt;/span&gt; &lt;span&gt;커널에서는&lt;/span&gt; &lt;span&gt;OOM killer &lt;/span&gt;&lt;span&gt;자체는&lt;/span&gt; &lt;span&gt;비활성화&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;위&lt;/span&gt; &lt;span&gt;순위&lt;/span&gt; &lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;참고하여&lt;/span&gt; &lt;span&gt;중요한&lt;/span&gt; &lt;span&gt;프로세스는&lt;/span&gt; &lt;span&gt;Kill &lt;/span&gt;&lt;span&gt;되지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-08-30 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;리눅스&lt;/span&gt;&lt;span&gt;, Linux, OOM, OutOfMemory, &lt;/span&gt;&lt;span&gt;메모리부족현상&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;강제킬&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로세스확인&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;메모리압박&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;아웃오브메모리&lt;/span&gt;&lt;span&gt;, OOMKiller, oom_score&lt;/span&gt;&lt;/p&gt;</description>
      <category>Linux</category>
      <category>Linux</category>
      <category>OOM</category>
      <category>OOMKiller</category>
      <category>OutOfMemory</category>
      <category>강제킬</category>
      <category>리눅스</category>
      <category>메모리부족현상</category>
      <category>메모리압박</category>
      <category>아웃오브메모리</category>
      <category>프로세스확인</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1540</guid>
      <comments>https://sqlmvp.tistory.com/entry/Linux-OOMOut-of-Memory%EB%9E%80#entry1540comment</comments>
      <pubDate>Wed, 30 Aug 2023 14:49:17 +0900</pubDate>
    </item>
    <item>
      <title>MySQL PMM(Percona Monitoring and Management) 소개 및 설치</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-PMMPercona-Monitoring-and-Management-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;MySQL PMM(Percona Monitoring and Management) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;소개&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설치&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL, MariaDB, PMM&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PMM&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;Percona Monitoring and Management&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;약자로&lt;/span&gt; &lt;span&gt;PostgreSQL &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;MySQL, MongoDB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;오픈소스&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;솔루션이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;시스템의&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;관찰하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;동작의&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;패턴을&lt;/span&gt; &lt;span&gt;탐색하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;해결하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;온프레미스나&lt;/span&gt; &lt;span&gt;클라우드&lt;/span&gt; &lt;span&gt;어디에&lt;/span&gt; &lt;span&gt;있든&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;작업을&lt;/span&gt; &lt;span&gt;수행할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. PMM&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;데이터베이스와&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;호스트로부터&lt;/span&gt; &lt;span&gt;수천&lt;/span&gt; &lt;span&gt;개의&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;성능&lt;/span&gt; &lt;span&gt;지표를&lt;/span&gt; &lt;span&gt;수집한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;웹&lt;/span&gt;&lt;span&gt; UI &lt;/span&gt;&lt;span&gt;대시보드를&lt;/span&gt; &lt;span&gt;제공하여&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;시각화&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;추가&lt;/span&gt; &lt;span&gt;기능에는&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt; &lt;span&gt;평가를&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;조언을&lt;/span&gt; &lt;span&gt;제공하기도&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;767&quot; data-origin-height=&quot;762&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EpjwJ/btsrRQ4Kwtn/29vuFtG6i8iFZ8jIc6cLj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EpjwJ/btsrRQ4Kwtn/29vuFtG6i8iFZ8jIc6cLj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EpjwJ/btsrRQ4Kwtn/29vuFtG6i8iFZ8jIc6cLj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEpjwJ%2FbtsrRQ4Kwtn%2F29vuFtG6i8iFZ8jIc6cLj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;767&quot; height=&quot;762&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;767&quot; data-origin-height=&quot;762&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PMM&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;클라이언트&lt;/span&gt; &lt;span&gt;구조로&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드들에&lt;/span&gt; &lt;span&gt;PMM Client&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;설치하여&lt;/span&gt; &lt;span&gt;중앙의&lt;/span&gt; &lt;span&gt;PMM &lt;/span&gt;&lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;전송하는&lt;/span&gt; &lt;span&gt;방식이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;화면을&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;그라파나&lt;/span&gt;&lt;span&gt;(Grafana) &lt;/span&gt;&lt;span&gt;대시보드를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;알&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;수집하는&lt;/span&gt; &lt;span&gt;에이전트는&lt;/span&gt; &lt;span&gt;프로메테우스&lt;/span&gt;&lt;span&gt;(Prometheus)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uxhaY/btsrExLGGZr/56riO6KOEl74OaGh7Ao0mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uxhaY/btsrExLGGZr/56riO6KOEl74OaGh7Ao0mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uxhaY/btsrExLGGZr/56riO6KOEl74OaGh7Ao0mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuxhaY%2FbtsrExLGGZr%2F56riO6KOEl74OaGh7Ao0mk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;501&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;PMM Client&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;pmm-admin : &lt;/span&gt;&lt;span&gt;각종&lt;/span&gt;&lt;span&gt; exporter&lt;/span&gt;&lt;span&gt;들을&lt;/span&gt; &lt;span&gt;구동&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;제어한다&lt;/span&gt;&lt;span&gt;. pmm-admin&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;관리를&lt;/span&gt; &lt;span&gt;효과적으로&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt;&lt;span&gt;, PMM&lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;포함된&lt;/span&gt;&lt;span&gt; Consul &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt;&lt;span&gt; exporter &lt;/span&gt;&lt;span&gt;에이전트&lt;/span&gt; &lt;span&gt;접속&lt;/span&gt; &lt;span&gt;정보&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;아이피와&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;등록한다&lt;/span&gt;&lt;span&gt;. Prometheus&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;수집주기마다&lt;/span&gt;&lt;span&gt;, Consul&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;등록된&lt;/span&gt; &lt;span&gt;에이전트&lt;/span&gt; &lt;span&gt;리스트를&lt;/span&gt; &lt;span&gt;가져와서&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;메트릭을&lt;/span&gt; &lt;span&gt;수집한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;node_expoter, mysql_expoter : &lt;/span&gt;&lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;대상&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;서버&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;데몬&lt;/span&gt; &lt;span&gt;형태로&lt;/span&gt; &lt;span&gt;구동되는&lt;/span&gt; &lt;span&gt;에이전트로&lt;/span&gt;&lt;span&gt;, Prometheus&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;에이전트&lt;/span&gt; &lt;span&gt;포트로&lt;/span&gt; &lt;span&gt;메트릭&lt;/span&gt; &lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;하면&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;전송하는&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;PMM Server&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;QNAP : DB&lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;시스템의&lt;/span&gt; &lt;span&gt;메트릭&lt;/span&gt; &lt;span&gt;뿐만&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;슬로우&lt;/span&gt; &lt;span&gt;쿼리나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각종&lt;/span&gt; &lt;span&gt;이벤트&lt;/span&gt; &lt;span&gt;정보들을&lt;/span&gt;&lt;span&gt; pmm-server&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;전달해야&lt;/span&gt; &lt;span&gt;하는데&lt;/span&gt;&lt;span&gt;, Prometeus&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;받아들이지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;받기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt;&lt;span&gt; QAN API&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. expoter&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; pmm-server&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; 80&lt;/span&gt;&lt;span&gt;포트를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; /qan-api&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;전송하면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;내부의&lt;/span&gt;&lt;span&gt; nginx &lt;/span&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;전달한&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;받아서&lt;/span&gt;&lt;span&gt;, 127.0.0.1:9001&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;리다이렉션하여&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;저장한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Prometheus : &lt;/span&gt;&lt;span&gt;타임시리즈&lt;/span&gt; &lt;span&gt;기반의&lt;/span&gt; &lt;span&gt;저장소로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;수집을&lt;/span&gt; &lt;span&gt;비롯해서&lt;/span&gt; &lt;span&gt;저장&lt;/span&gt; &lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;질의&lt;/span&gt;&lt;span&gt;, Alert&lt;/span&gt;&lt;span&gt;등&lt;/span&gt; &lt;span&gt;에이전트의&lt;/span&gt; &lt;span&gt;포트에&lt;/span&gt; &lt;span&gt;접근해서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;시스템의&lt;/span&gt; &lt;span&gt;메트릭을&lt;/span&gt;&lt;span&gt; Pull &lt;/span&gt;&lt;span&gt;방식으로&lt;/span&gt; &lt;span&gt;끌어오는&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;수행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Consul : pmm-admin&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; pmm&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; consul&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;모니터링이&lt;/span&gt; &lt;span&gt;될&lt;/span&gt; &lt;span&gt;대상들의&lt;/span&gt; &lt;span&gt;아이피와&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt; &lt;span&gt;번호를&lt;/span&gt; &lt;span&gt;넣어주면&lt;/span&gt;&lt;span&gt;, Prometheus&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;바탕으로&lt;/span&gt; &lt;span&gt;등록된&lt;/span&gt;&lt;span&gt; scrape_interval&lt;/span&gt;&lt;span&gt;마다&lt;/span&gt; &lt;span&gt;각&lt;/span&gt;&lt;span&gt; DB&lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;에이전트에&lt;/span&gt; &lt;span&gt;접근하여&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;지표를&lt;/span&gt; &lt;span&gt;수집한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Grafana : &lt;/span&gt;&lt;span&gt;수집된&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;Web UI&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PMM&lt;/span&gt;&lt;span&gt;설치의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;컨테이너로&lt;/span&gt; &lt;span&gt;제공되며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;클라이언트는&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;전용&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;파일로&lt;/span&gt; &lt;span&gt;제공된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;Docker&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;PMM &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;실행하고&lt;/span&gt;&lt;span&gt;, Client&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;패키지로&lt;/span&gt; &lt;span&gt;설치한&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;등록하는&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;살펴본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[PMM &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;서버&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;이지지를&lt;/span&gt; &lt;span&gt;다운로드&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;docker pull percona/pmm-server:2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;저장할&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;볼륨을&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;docker volume create pmm-data&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt; &lt;span&gt;PMM &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;관리를&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;443 &lt;/span&gt;&lt;span&gt;포트와&lt;/span&gt; &lt;span&gt;웹&lt;/span&gt;&lt;span&gt;UI&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;제공하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;80&lt;/span&gt;&lt;span&gt;포트를&lt;/span&gt; &lt;span&gt;사용하는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;포트가&lt;/span&gt; &lt;span&gt;충돌나지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;적절히&lt;/span&gt; &lt;span&gt;포트를&lt;/span&gt; &lt;span&gt;포워딩하여사용한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;사용법을&lt;/span&gt; &lt;span&gt;다루지는&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;docker run --detach --restart always \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--publish 443:443 --publish 80:80 \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-v pmm-data:/srv \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--name pmm-server \&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;percona/pmm-server:2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;실행되었으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;웹브라우저에서&lt;/span&gt; &lt;span&gt;PMM &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;설치된&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;입력하여&lt;/span&gt; &lt;span&gt;UI &lt;/span&gt;&lt;span&gt;대시보드에&lt;/span&gt; &lt;span&gt;접속한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;필자의&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, 8080&lt;/span&gt;&lt;span&gt;포트를&lt;/span&gt; &lt;span&gt;사용하도록&lt;/span&gt; &lt;span&gt;매핑하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;ID &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;패스워드는&lt;/span&gt; &lt;span&gt;admin / admin &lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;접속이&lt;/span&gt; &lt;span&gt;되면&lt;/span&gt; &lt;span&gt;우선&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;설치는&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;완료되었다고&lt;/span&gt; &lt;span&gt;판단하면&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;http://172.30.1.49:8080&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;1074&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U2NEf/btsrYVqbXbv/k4EkAL03stB5aNIEAp0WtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U2NEf/btsrYVqbXbv/k4EkAL03stB5aNIEAp0WtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U2NEf/btsrYVqbXbv/k4EkAL03stB5aNIEAp0WtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU2NEf%2FbtsrYVqbXbv%2Fk4EkAL03stB5aNIEAp0WtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1800&quot; height=&quot;1074&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;1074&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;1079&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l7neZ/btsrVrQzUZC/6brGjtJKhlybN71Ldq38nK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l7neZ/btsrVrQzUZC/6brGjtJKhlybN71Ldq38nK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l7neZ/btsrVrQzUZC/6brGjtJKhlybN71Ldq38nK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl7neZ%2FbtsrVrQzUZC%2F6brGjtJKhlybN71Ldq38nK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1800&quot; height=&quot;1079&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;1079&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[PMM Client &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모니터링할&lt;/span&gt; &lt;span&gt;대상&lt;/span&gt; &lt;span&gt;서버에는&lt;/span&gt; &lt;span&gt;PMM Client&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;설치한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;운영체제에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;전용&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;다운로드하여&lt;/span&gt; &lt;span&gt;설치할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실습&lt;/span&gt; &lt;span&gt;환경은&lt;/span&gt; &lt;span&gt;우분투이며&lt;/span&gt; &lt;span&gt;편의상&lt;/span&gt; &lt;span&gt;패키지로&lt;/span&gt; &lt;span&gt;설치하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;환경에&lt;/span&gt; &lt;span&gt;따른&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Set up PMM Client &lt;span&gt;&amp;nbsp;&lt;/span&gt;: &lt;a href=&quot;https://docs.percona.com/percona-monitoring-and-management/setting-up/client/index.html&quot;&gt;https://docs.percona.com/percona-monitoring-and-management/setting-up/client/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;apt update&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;apt-get install -y pmm2-client&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Client &lt;/span&gt;&lt;span&gt;설치가&lt;/span&gt; &lt;span&gt;설치가&lt;/span&gt; &lt;span&gt;완료되었으면&lt;/span&gt; &lt;span&gt;PMM &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;수집할&lt;/span&gt; &lt;span&gt;클라이언트&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;등록해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령어로&lt;/span&gt; &lt;span&gt;등록할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;pmm-admin config --server-insecure-tls --server-url=https://admin:admin@X.X.X.X:443&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;X.X.X.X : PMM &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;443 : &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt; &lt;span&gt;번호&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;실행시&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt; &lt;span&gt;번호를&lt;/span&gt; &lt;span&gt;다르게&lt;/span&gt; &lt;span&gt;매핑하였다면&lt;/span&gt; &lt;span&gt;수정해야한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Admin/admin : PMM &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;접속&lt;/span&gt; &lt;span&gt;정보이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;이전&lt;/span&gt; &lt;span&gt;웹&lt;/span&gt;&lt;span&gt;UI&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;통해서&lt;/span&gt; &lt;span&gt;수정하였다면&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;부분도&lt;/span&gt; &lt;span&gt;수정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여기까지&lt;/span&gt; &lt;span&gt;진행되었으면&lt;/span&gt; &lt;span&gt;PMM &lt;/span&gt;&lt;span&gt;대시보드에서&lt;/span&gt; &lt;span&gt;모니터링의&lt;/span&gt; &lt;span&gt;대상&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;추가된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;홈&lt;/span&gt; &lt;span&gt;대시보드에서는&lt;/span&gt; &lt;span&gt;Node Names&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;정보가&lt;/span&gt; &lt;span&gt;업데이트&lt;/span&gt; &lt;span&gt;되기까지&lt;/span&gt; &lt;span&gt;약간의&lt;/span&gt; &lt;span&gt;시간이&lt;/span&gt; &lt;span&gt;걸릴수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCxQ3B/btsrYyvek5K/OdXeMmW0lMmR0iMPL8ALe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCxQ3B/btsrYyvek5K/OdXeMmW0lMmR0iMPL8ALe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCxQ3B/btsrYyvek5K/OdXeMmW0lMmR0iMPL8ALe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCxQ3B%2FbtsrYyvek5K%2FOdXeMmW0lMmR0iMPL8ALe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;792&quot; height=&quot;326&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;실습에서는&lt;/span&gt; &lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;모니터링을&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;모니터링을&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;도&lt;/span&gt; &lt;span&gt;등록한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;환경에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;등록한다&lt;/span&gt;&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;지원되는&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;목록은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL (and variants Percona Server for MySQL, Percona XtraDB Cluster, MariaDB)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MongoDB&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;PostgreSQL&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Amazon RDS&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Microsoft Azure&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Google Cloud Platform (MySQL and PostgreSQL)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;External services&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;HAProxy&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Remote instances&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;수집할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;PMM Client&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;계정&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;환경을&lt;/span&gt; &lt;span&gt;설정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;공식&lt;/span&gt; &lt;span&gt;문서를&lt;/span&gt; &lt;span&gt;참고할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://docs.percona.com/percona-monitoring-and-management/setting-up/client/mysql.html&quot;&gt;https://docs.percona.com/percona-monitoring-and-management/setting-up/client/mysql.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;슬로우&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;등록하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;pmm-admin add mysql --query-source=slowlog --username=pmm --password=pass&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;대시보드를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;등록되었으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;관련&lt;/span&gt; &lt;span&gt;지표를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;1078&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FvdgA/btsrR0e7329/8HVNDrgKLo00YkYcSb5KP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FvdgA/btsrR0e7329/8HVNDrgKLo00YkYcSb5KP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FvdgA/btsrR0e7329/8HVNDrgKLo00YkYcSb5KP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFvdgA%2FbtsrR0e7329%2F8HVNDrgKLo00YkYcSb5KP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1800&quot; height=&quot;1078&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;1078&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;PMM&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;내부&lt;/span&gt; &lt;span&gt;적으로&lt;/span&gt; &lt;span&gt;알림&lt;/span&gt; &lt;span&gt;시스템&lt;/span&gt;&lt;span&gt;(alert-manager)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;가지고&lt;/span&gt; &lt;span&gt;있어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;임계치를&lt;/span&gt; &lt;span&gt;설정하였을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그&lt;/span&gt; &lt;span&gt;임계치를&lt;/span&gt; &lt;span&gt;넘으면&lt;/span&gt; &lt;span&gt;알림을&lt;/span&gt; &lt;span&gt;받을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;다루지&lt;/span&gt; &lt;span&gt;않지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;알림&lt;/span&gt; &lt;span&gt;시스템까지&lt;/span&gt; &lt;span&gt;설정하여&lt;/span&gt; &lt;span&gt;활용하면&lt;/span&gt; &lt;span&gt;시스템에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;매번&lt;/span&gt; &lt;span&gt;지켜보지&lt;/span&gt; &lt;span&gt;않아도&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;발생하였을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;메신저&lt;/span&gt; &lt;span&gt;등으로&lt;/span&gt; &lt;span&gt;알림을&lt;/span&gt; &lt;span&gt;받을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있어&lt;/span&gt; &lt;span&gt;빠르게&lt;/span&gt; &lt;span&gt;문제&lt;/span&gt; &lt;span&gt;인지&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;원인을&lt;/span&gt; &lt;span&gt;파악할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://prometheus.io/docs/introduction/overview/&quot;&gt;https://prometheus.io/docs/introduction/overview/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://docs.percona.com/percona-monitoring-and-management/setting-up/server/docker.html&quot;&gt;https://docs.percona.com/percona-monitoring-and-management/setting-up/server/docker.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://docs.percona.com/percona-monitoring-and-management/setting-up/client/mysql.html&quot;&gt;https://docs.percona.com/percona-monitoring-and-management/setting-up/client/mysql.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://prometheus.io/docs/introduction/overview/&quot;&gt;https://prometheus.io/docs/introduction/overview/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-08-22 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, MariaDB, Percona, DB&lt;/span&gt;&lt;span&gt;모니터링&lt;/span&gt;&lt;span&gt;, PMM, MySQL&lt;/span&gt;&lt;span&gt;모니터링&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;퍼코나&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt;&lt;span&gt;, Grafana, Promethus, &lt;/span&gt;&lt;span&gt;슬로우쿼리모니터링&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>DB모니터링</category>
      <category>grafana</category>
      <category>mariadb</category>
      <category>MySQL</category>
      <category>mysql모니터링</category>
      <category>percona</category>
      <category>PMM</category>
      <category>Promethus</category>
      <category>슬로우쿼리모니터링</category>
      <category>퍼코나 모니터링</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1539</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-PMMPercona-Monitoring-and-Management-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98#entry1539comment</comments>
      <pubDate>Tue, 22 Aug 2023 15:09:48 +0900</pubDate>
    </item>
    <item>
      <title>MySQL Galera Cluster + ProxySQL에서 Galera Cluster 특성을 고려한 R/W 호스트 그룹 설정 하기</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-Galera-Cluster-ProxySQL%EC%97%90%EC%84%9C-Galera-Cluster-%ED%8A%B9%EC%84%B1%EC%9D%84-%EA%B3%A0%EB%A0%A4%ED%95%9C-RW-%ED%98%B8%EC%8A%A4%ED%8A%B8-%EA%B7%B8%EB%A3%B9-%EC%84%A4%EC%A0%95-%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;MySQL Galera Cluster + ProxySQL&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;Galera Cluster &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;특성을&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;고려한&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;R/W &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;호스트&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;그룹&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL, MariaDB, Galera Cluster, ProxySQL 2.X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster (&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;동기&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;솔루션으로&lt;/span&gt; &lt;span&gt;DB &lt;/span&gt;&lt;span&gt;간의&lt;/span&gt; &lt;span&gt;직접적인&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;공유가&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;형태의&lt;/span&gt; &lt;span&gt;오픈소스&lt;/span&gt; &lt;span&gt;고가용성&lt;/span&gt; &lt;span&gt;솔루션이다&lt;/span&gt;&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;동기&lt;/span&gt; &lt;span&gt;방식의&lt;/span&gt; &lt;span&gt;복제구조를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;멀티마스터&lt;/span&gt; &lt;span&gt;RDB &lt;/span&gt;&lt;span&gt;클러스터로&lt;/span&gt; &lt;span&gt;제공된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;커넥션을&lt;/span&gt; &lt;span&gt;재사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;멀티&lt;/span&gt; &lt;span&gt;플렉싱&lt;/span&gt; &lt;span&gt;기능과&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;분석하여&lt;/span&gt; &lt;span&gt;Write/Read&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;분산하는&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;기능을&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;솔루션이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;이란&lt;/span&gt; &lt;span&gt;무엇인가&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://sungwookkang.com/1528&quot;&gt;https://sungwookkang.com/1528&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL/MariaDB &lt;/span&gt;&lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;지원하는&lt;/span&gt;&lt;span&gt; Galera Cluster &lt;/span&gt;&lt;span&gt;알아보기&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://sungwookkang.com/1536&quot;&gt;https://sungwookkang.com/1536&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL 2.x &lt;/span&gt;&lt;span&gt;부터는&lt;/span&gt; &lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;좀더&lt;/span&gt; &lt;span&gt;유연하게&lt;/span&gt; &lt;span&gt;지원한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포트스에서는&lt;/span&gt; &lt;span&gt;MySQL Galera cluster + ProxySQL&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;구성된&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;Galera Cluster &lt;/span&gt;&lt;span&gt;특성을&lt;/span&gt; &lt;span&gt;고려한&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;Write, Read &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;전략에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[mysql_galera_hostgroups]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;Write, Read&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;정의한다&lt;/span&gt;&lt;span&gt;. Galera Cluster &lt;/span&gt;&lt;span&gt;환경에서는&lt;/span&gt; &lt;span&gt;mysql_galera_hostgroups&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;정의할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행하면&lt;/span&gt; &lt;span&gt;mysql_galera_hostgroups &lt;/span&gt;&lt;span&gt;테이블의&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from mysql_galera_hostgroups\G&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select * from mysql_galera_hostgroupsG&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;*************************** 1. row ***************************&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;writer_hostgroup: 10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;backup_writer_hostgroup: 20&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;reader_hostgroup: 30&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;offline_hostgroup: 9999&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;active: 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;max_writers: 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;writer_is_also_reader: 2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;max_transactions_behind: 20&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;comment:&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;writer_hostgroup : &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;(read_only=0) &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;구성원을&lt;/span&gt; &lt;span&gt;포함할&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹의&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;backup_writer_hostgroup : &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;백업&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;ID. &lt;/span&gt;&lt;span&gt;클러스터가&lt;/span&gt; &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;모드&lt;/span&gt;&lt;span&gt;(read_only=0&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;중이고&lt;/span&gt;&lt;span&gt; max_writers&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;수보다&lt;/span&gt; &lt;span&gt;작은&lt;/span&gt; &lt;span&gt;수로&lt;/span&gt; &lt;span&gt;설정된&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt; &lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;backup_writer_hostgroup &lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;reader_hostgroup : &lt;/span&gt;&lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;(read_only=1&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;구성원을&lt;/span&gt; &lt;span&gt;포함할&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹의&lt;/span&gt;&lt;span&gt; ID&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;offline_hostgroup : &lt;/span&gt;&lt;span&gt;클러스터에서&lt;/span&gt; &lt;span&gt;참여하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;노드들에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt;ID. ProxySQL &lt;/span&gt;&lt;span&gt;모니터링에서&lt;/span&gt; &lt;span&gt;호스트가&lt;/span&gt;&lt;span&gt; OFFLINE&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;확인되면&lt;/span&gt; &lt;span&gt;호스트가&lt;/span&gt;&lt;span&gt; offline_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Active : &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;활성화하는&lt;/span&gt; &lt;span&gt;부울&lt;/span&gt; &lt;span&gt;값&lt;/span&gt; &lt;span&gt;(0 &lt;/span&gt;&lt;span&gt;또는&lt;/span&gt;&lt;span&gt; 1)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;max_writers : writer &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹에서&lt;/span&gt; &lt;span&gt;허용되는&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;수를&lt;/span&gt; &lt;span&gt;제어한다&lt;/span&gt;&lt;span&gt;. Writer_hostgroup &lt;/span&gt;&lt;span&gt;노드&lt;/span&gt; &lt;span&gt;수가&lt;/span&gt; &lt;span&gt;max_writers &lt;/span&gt;&lt;span&gt;수보다&lt;/span&gt; &lt;span&gt;클&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt; &lt;span&gt;노드는&lt;/span&gt;&lt;span&gt; backup_writer_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;writer_is_also_reader : 1&lt;/span&gt;&lt;span&gt;이면&lt;/span&gt;&lt;span&gt; writer_hostgroup&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt;&lt;span&gt; reader_hostgroup&lt;/span&gt;&lt;span&gt;에도&lt;/span&gt; &lt;span&gt;배치되어&lt;/span&gt; &lt;span&gt;읽기에&lt;/span&gt; &lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. 2&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정하면&lt;/span&gt;&lt;span&gt; backup_writer_hostgroup&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt;&lt;span&gt; writer_hostgroup&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;대신&lt;/span&gt;&lt;span&gt; reader_hostgroup&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;배치된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;max_transactions_behind : &lt;/span&gt;&lt;span&gt;오래된&lt;/span&gt; &lt;span&gt;읽기를&lt;/span&gt; &lt;span&gt;방지하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt;&lt;span&gt; SHUNNED&lt;/span&gt;&lt;span&gt;되기&lt;/span&gt; &lt;span&gt;전에&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;대기할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;세트&lt;/span&gt; &lt;span&gt;수를&lt;/span&gt; &lt;span&gt;결정한다&lt;/span&gt;&lt;span&gt;. (wsrep_local_recv_queue Galera &lt;/span&gt;&lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;쿼리하여&lt;/span&gt; &lt;span&gt;결정됨&lt;/span&gt;&lt;span&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Comment : &lt;/span&gt;&lt;span&gt;사용자가&lt;/span&gt; &lt;span&gt;정의한&lt;/span&gt; &lt;span&gt;목적에&lt;/span&gt; &lt;span&gt;맞게&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;텍스트&lt;/span&gt; &lt;span&gt;필드&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;변수를&lt;/span&gt; &lt;span&gt;모니터링하여&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt; &lt;span&gt;확인을&lt;/span&gt; &lt;span&gt;수행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;read_only : &lt;/span&gt;&lt;span&gt;설정값이&lt;/span&gt; &lt;span&gt;ON&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, writer_is_also_reader&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; 1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;아니면&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;정의된&lt;/span&gt; &lt;span&gt;호스트를&lt;/span&gt;&lt;span&gt; reader_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;그룹화한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;wsrep_desync : &lt;/span&gt;&lt;span&gt;설정값이&lt;/span&gt; &lt;span&gt;ON&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;표시하여&lt;/span&gt;&lt;span&gt; offline_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;wsrep_reject_queries : &lt;/span&gt;&lt;span&gt;설정값이&lt;/span&gt; &lt;span&gt;ON&lt;/span&gt;&lt;span&gt;이면&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;표시하고&lt;/span&gt; &lt;span&gt;이를&lt;/span&gt;&lt;span&gt; offline_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;유지&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;상황에서&lt;/span&gt; &lt;span&gt;유용함&lt;/span&gt;&lt;span&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;wsrep_sst_donor_rejects_queries : &lt;/span&gt;&lt;span&gt;설정값이&lt;/span&gt;&lt;span&gt; ON&lt;/span&gt;&lt;span&gt;이면&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;노드가&lt;/span&gt;&lt;span&gt; SST &lt;/span&gt;&lt;span&gt;기증자&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;동안&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;불가로&lt;/span&gt; &lt;span&gt;표시하여&lt;/span&gt;&lt;span&gt; offline_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;wsrep_local_state : &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt; &lt;span&gt;동기화를&lt;/span&gt; &lt;span&gt;의미하는&lt;/span&gt;&lt;span&gt; 4 &lt;/span&gt;&lt;span&gt;이외의&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;반환하면&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;표시하고&lt;/span&gt; &lt;span&gt;offline_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;wsrep_local_recv_queue : &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;값이&lt;/span&gt; &lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;max_transactions_behind&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;높으면&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;회피된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;wsrep_cluster_status : &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;상태가&lt;/span&gt; &lt;span&gt;기본이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;상태로&lt;/span&gt; &lt;span&gt;반환되면&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;표시하고&lt;/span&gt; &lt;span&gt;offline_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL 2.x&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; mysql_galera_hostgroups&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;매개변수와&lt;/span&gt;&lt;span&gt; mysql_query_rules &lt;/span&gt;&lt;span&gt;정책을&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;결합함으로써&lt;/span&gt; &lt;span&gt;훨씬&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt;&lt;span&gt; Galera Cluster &lt;/span&gt;&lt;span&gt;구성에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;유연성을&lt;/span&gt; &lt;span&gt;갖게&lt;/span&gt; &lt;span&gt;되었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt; &lt;span&gt;들어&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;규칙의&lt;/span&gt; &lt;span&gt;대상&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹으로&lt;/span&gt; &lt;span&gt;정의된&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;다중&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;가질&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;수를&lt;/span&gt; &lt;span&gt;제한하고&lt;/span&gt; &lt;span&gt;오래된&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;동작을&lt;/span&gt; &lt;span&gt;보다&lt;/span&gt; &lt;span&gt;세밀하게&lt;/span&gt; &lt;span&gt;제어할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;max_writers &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; writer_is_also_reader &lt;/span&gt;&lt;span&gt;변수는&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;백엔드&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;동적으로&lt;/span&gt; &lt;span&gt;그룹화하는&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;결정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt; &lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;분산&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;라우팅에&lt;/span&gt; &lt;span&gt;직접적인&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;끼친다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt; &lt;span&gt;들어&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;백엔드&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;노드&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;등록되어&lt;/span&gt; &lt;span&gt;있다고&lt;/span&gt; &lt;span&gt;가정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;등록된&lt;/span&gt; &lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트로&lt;/span&gt; &lt;span&gt;확인&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select hostgroup_id, hostname, status, weight from mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select hostgroup_id, hostname, status, weight from mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+--------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| hostgroup_id | hostname&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| status | weight |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+--------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 10&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| DB1&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| ONLINE | 1&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 10&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| DB2&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| ONLINE | 1&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 10&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| DB3&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| ONLINE | 1&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+--------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;mysql_galera_hostgroup&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;설정도&lt;/span&gt; &lt;span&gt;살펴본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select * from mysql_galera_hostgroups\G&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select * from mysql_galera_hostgroups\G&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;*************************** 1. row ***************************&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;writer_hostgroup: 10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;backup_writer_hostgroup: 20&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;reader_hostgroup: 30&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;offline_hostgroup: 9999&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;active: 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;max_writers: 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;writer_is_also_reader: 2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;max_transactions_behind: 20&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;comment:&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;설정에서&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;호스트가&lt;/span&gt; &lt;span&gt;가동되어&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;중임을&lt;/span&gt; &lt;span&gt;고려하면&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;호스트를&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;시나리오로&lt;/span&gt; &lt;span&gt;그룹화할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3nSo1/btsqSbt3jaa/DTOslEESsSiAJrcQ1kmDB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3nSo1/btsqSbt3jaa/DTOslEESsSiAJrcQ1kmDB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3nSo1/btsqSbt3jaa/DTOslEESsSiAJrcQ1kmDB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3nSo1%2FbtsqSbt3jaa%2FDTOslEESsSiAJrcQ1kmDB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;853&quot; height=&quot;237&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;그림에&lt;/span&gt; &lt;span&gt;따른&lt;/span&gt; &lt;span&gt;3&lt;/span&gt;&lt;span&gt;가지&lt;/span&gt; &lt;span&gt;케이스의&lt;/span&gt; &lt;span&gt;특징을&lt;/span&gt; &lt;span&gt;한번&lt;/span&gt; &lt;span&gt;살펴본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;Configuration&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;writer_is_also_reader=0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;호스트를&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt;(writer &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; backup_writer)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;그룹화한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Writer&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; backup_writer&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;일부이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Write&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;Reader&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;아니므로&lt;/span&gt; &lt;span&gt;read_only=1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정된&lt;/span&gt; &lt;span&gt;호스트가&lt;/span&gt; &lt;span&gt;없기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt; 30(Reader)&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt; &lt;span&gt;아무것도&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;전용&lt;/span&gt; &lt;span&gt;플래그를&lt;/span&gt; &lt;span&gt;활성화하는&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt;&lt;span&gt; Galera&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;일반적인&lt;/span&gt; &lt;span&gt;관행이&lt;/span&gt; &lt;span&gt;아니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;writer_is_also_reader=1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;호스트를&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt;(writer, backup_writer &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;reader)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;그룹화한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Galera&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt;&lt;span&gt; read_only=0&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;미치지&lt;/span&gt; &lt;span&gt;않으므로&lt;/span&gt; &lt;span&gt;writer&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt; 30(reader)&lt;/span&gt;&lt;span&gt;에도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;writer&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; backup_writer&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;일부가&lt;/span&gt; &lt;span&gt;아니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;141&quot;&gt;&lt;span&gt;&lt;span&gt;writer_is_also_reader=2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;482&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;writer_is_also_reader=1&lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;유사하지만&lt;/span&gt;&lt;span&gt; writer&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; backup_writer&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;일부이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;구성에&lt;/span&gt; &lt;span&gt;따른&lt;/span&gt; &lt;span&gt;특성을&lt;/span&gt; &lt;span&gt;활용하면&lt;/span&gt; &lt;span&gt;사용자는&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;워크로드에&lt;/span&gt; &lt;span&gt;맞는&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;대상을&lt;/span&gt; &lt;span&gt;다양하게&lt;/span&gt; &lt;span&gt;선택할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &quot;&lt;/span&gt;&lt;span&gt;핫스팟&lt;/span&gt;&lt;span&gt;&quot; &lt;/span&gt;&lt;span&gt;쓰기는&lt;/span&gt; &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;충돌을&lt;/span&gt; &lt;span&gt;줄이기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;서버로만&lt;/span&gt; &lt;span&gt;이동하도록&lt;/span&gt; &lt;span&gt;구성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;충돌하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;쓰기는&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;마스터에&lt;/span&gt; &lt;span&gt;균등하게&lt;/span&gt; &lt;span&gt;분배될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쓰기는&lt;/span&gt; &lt;span&gt;최신&lt;/span&gt; &lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;전달될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt; &lt;span&gt;분석&lt;/span&gt; &lt;span&gt;읽기는&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;복제본으로&lt;/span&gt; &lt;span&gt;전달될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Galera &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;클러스터용&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;배포&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;그림과&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt;&lt;span&gt; ClusterControl&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;의해&lt;/span&gt; &lt;span&gt;배포된&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;노드&lt;/span&gt;&lt;span&gt; Galera Cluster&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있다고&lt;/span&gt; &lt;span&gt;가정하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;시나리오를&lt;/span&gt; &lt;span&gt;만족하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;세팅하는&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;다루어&lt;/span&gt; &lt;span&gt;본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ec0kx4/btsqRg3yEd6/pSAMUBaKq6dCg27dc9mSh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ec0kx4/btsqRg3yEd6/pSAMUBaKq6dCg27dc9mSh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ec0kx4/btsqRg3yEd6/pSAMUBaKq6dCg27dc9mSh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fec0kx4%2FbtsqRg3yEd6%2FpSAMUBaKq6dCg27dc9mSh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;423&quot; height=&quot;307&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;시나리오는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;WordPress &lt;/span&gt;&lt;span&gt;애플리케이션은&lt;/span&gt;&lt;span&gt; Docker&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;실행되고&lt;/span&gt;&lt;span&gt; WordPress &lt;/span&gt;&lt;span&gt;데이터베이스는&lt;/span&gt; &lt;span&gt;베어메탈&lt;/span&gt; &lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;실행되는&lt;/span&gt;&lt;span&gt; Galera Cluster&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;호스팅&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;우리는&lt;/span&gt;&lt;span&gt; WordPress &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;라우팅을&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;제어하고&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;인프라를&lt;/span&gt; &lt;span&gt;완전히&lt;/span&gt; &lt;span&gt;활용하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt;&lt;span&gt; WordPress &lt;/span&gt;&lt;span&gt;컨테이너와&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;실행하기로&lt;/span&gt; &lt;span&gt;결정했다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;읽기&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;비율이&lt;/span&gt; &lt;span&gt;약&lt;/span&gt;&lt;span&gt; 80%-20%&lt;/span&gt;&lt;span&gt;이므로&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;다음과&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;구성하려고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;쓰기를&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;노드로&lt;/span&gt; &lt;span&gt;전달&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;충돌&lt;/span&gt; &lt;span&gt;감소&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쓰기에&lt;/span&gt; &lt;span&gt;집중&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다른&lt;/span&gt; &lt;span&gt;두&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;읽기의&lt;/span&gt; &lt;span&gt;균형을&lt;/span&gt; &lt;span&gt;분배&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;&lt;span&gt;대부분의&lt;/span&gt; &lt;span&gt;워크로드에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;더&lt;/span&gt; &lt;span&gt;나은&lt;/span&gt; &lt;span&gt;분배&lt;/span&gt;&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;시나리오를&lt;/span&gt; &lt;span&gt;만족할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;구성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt; &lt;span&gt;컨테이너에&lt;/span&gt; &lt;span&gt;매핑할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt;&lt;span&gt; Docker &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;내부에&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;만든다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ mkdir /root/proxysql-docker&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;$ vim /root/proxysql-docker/proxysql.cnf&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;설정값을&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;코드에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;설명은&lt;/span&gt; &lt;span&gt;아래부분에서&lt;/span&gt; &lt;span&gt;하나씩&lt;/span&gt; &lt;span&gt;설명한다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;datadir=&quot;/var/lib/proxysql&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;admin_variables=&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;admin_credentials=&quot;admin:admin&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mysql_ifaces=&quot;0.0.0.0:6032&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;refresh_interval=2000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;web_enabled=true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;web_port=6080&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;stats_credentials=&quot;stats:admin&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_variables=&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;threads=4&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;max_connections=2048&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;default_query_delay=0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;default_query_timeout=36000000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;have_compress=true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;poll_timeout=2000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;interfaces=&quot;0.0.0.0:6033;/tmp/proxysql.sock&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;default_schema=&quot;information_schema&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;stacksize=1048576&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;server_version=&quot;5.1.30&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;connect_timeout_server=10000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;monitor_history=60000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;monitor_connect_interval=200000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;monitor_ping_interval=200000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ping_interval_server_msec=10000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ping_timeout_server=200&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;commands_stats=true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sessions_sort=true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;monitor_username=&quot;proxysql&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;monitor_password=&quot;proxysqlpassword&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;monitor_galera_healthcheck_interval=2000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;monitor_galera_healthcheck_timeout=800&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_galera_hostgroups =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer_hostgroup=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;backup_writer_hostgroup=20&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader_hostgroup=30&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;offline_hostgroup=9999&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;max_writers=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer_is_also_reader=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;max_transactions_behind=30&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;active=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_servers =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ address=&quot;db1.cluster.local&quot; , port=3306 , hostgroup=10, max_connections=100 },&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ address=&quot;db2.cluster.local&quot; , port=3306 , hostgroup=10, max_connections=100 },&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ address=&quot;db3.cluster.local&quot; , port=3306 , hostgroup=10, max_connections=100 }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_query_rules =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rule_id=100&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;active=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match_pattern=&quot;^SELECT .* FOR UPDATE&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;destination_hostgroup=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;apply=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;},&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rule_id=200&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;active=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match_pattern=&quot;^SELECT .*&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;destination_hostgroup=30&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;apply=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;},&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rule_id=300&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;active=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match_pattern=&quot;.*&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;destination_hostgroup=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;apply=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;mysql_users =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ username = &quot;wordpress&quot;, password = &quot;passw0rd&quot;, default_hostgroup = 10, transaction_persistent = 0, active = 1 },&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ username = &quot;sbtest&quot;, password = &quot;passw0rd&quot;, default_hostgroup = 10, transaction_persistent = 0, active = 1 }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;코드에서&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;mysql_galera_hostgroups &lt;/span&gt;&lt;span&gt;구성은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;정의되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql_galera_hostgroups =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer_hostgroup=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;backup_writer_hostgroup=20&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader_hostgroup=30&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;offline_hostgroup=9999&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;max_writers=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer_is_also_reader=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;max_transactions_behind=30&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;active=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;writer &lt;/span&gt;&lt;span&gt;그룹은&lt;/span&gt; &lt;span&gt;10, backup &lt;/span&gt;&lt;span&gt;그룹은&lt;/span&gt;&lt;span&gt; 20, reader &lt;/span&gt;&lt;span&gt;그룹은&lt;/span&gt;&lt;span&gt; 30&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;정의&lt;/span&gt; &lt;span&gt;되어있다&lt;/span&gt;&lt;span&gt;. max_writers&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정하여&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;쓰기가&lt;/span&gt; &lt;span&gt;전송되어야&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt; 10&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;쓰기로&lt;/span&gt; &lt;span&gt;작동하도록&lt;/span&gt; &lt;span&gt;하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그런&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt;&lt;span&gt; writer_is_also_reader&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;정의하여&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;참여할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;하면&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;요청은&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;균등하게&lt;/span&gt; &lt;span&gt;배포할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. Offline &lt;/span&gt;&lt;span&gt;그룹은&lt;/span&gt; &lt;span&gt;9999&lt;/span&gt;&lt;span&gt;이며&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;작동하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;감지한&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; offline_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동시킨다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql_servers&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;클러스터에&lt;/span&gt; &lt;span&gt;참여하는&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;정의한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;시나리오에서는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹인&lt;/span&gt;&lt;span&gt; 10&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;구성하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql_servers =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ address=&quot;db1.cluster.local&quot; , port=3306 , hostgroup=10, max_connections=100 },&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ address=&quot;db2.cluster.local&quot; , port=3306 , hostgroup=10, max_connections=100 },&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ address=&quot;db3.cluster.local&quot; , port=3306 , hostgroup=10, max_connections=100 }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위의&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;그림으로&lt;/span&gt; &lt;span&gt;표현하면&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;구성하고&lt;/span&gt; &lt;span&gt;인식한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGDvpD/btsqLvmVi4D/xE4ysM8116DXAwlnuK5BOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGDvpD/btsqLvmVi4D/xE4ysM8116DXAwlnuK5BOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGDvpD/btsqLvmVi4D/xE4ysM8116DXAwlnuK5BOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGDvpD%2FbtsqLvmVi4D%2FxE4ysM8116DXAwlnuK5BOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;199&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;199&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql_query_rules &lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;라우팅을&lt;/span&gt; &lt;span&gt;정의한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;요구&lt;/span&gt; &lt;span&gt;사항에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;읽기는&lt;/span&gt; &lt;span&gt;작성자&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt; 20)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;제외한&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;노드로&lt;/span&gt; &lt;span&gt;전송되어야&lt;/span&gt; &lt;span&gt;하며&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;작성자의&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt; 10&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;전달된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql_query_rules =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rule_id=100&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;active=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match_pattern=&quot;^SELECT .* FOR UPDATE&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;destination_hostgroup=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;apply=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;},&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rule_id=200&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;active=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match_pattern=&quot;^SELECT .*&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;destination_hostgroup=20&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;apply=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;},&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rule_id=300&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;active=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;match_pattern=&quot;.*&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;destination_hostgroup=10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;apply=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;마지막으로&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;전달될&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;사용자를&lt;/span&gt; &lt;span&gt;정의한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql_users =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ username = &quot;wordpress&quot;, password = &quot;passw0rd&quot;, default_hostgroup = 10, transaction_persistent = 0, active = 1 },&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ username = &quot;sbtest&quot;, password = &quot;passw0rd&quot;, default_hostgroup = 10, transaction_persistent = 0, active = 1 }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;우리는&lt;/span&gt;&lt;span&gt; transaction_persistent&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;설정하여&lt;/span&gt; &lt;span&gt;사용자로부터&lt;/span&gt; &lt;span&gt;오는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;연결이&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;라우팅에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;규칙을&lt;/span&gt; &lt;span&gt;준수하도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;연결이&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹에&lt;/span&gt; &lt;span&gt;도달하게&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;로드&lt;/span&gt; &lt;span&gt;밸런싱의&lt;/span&gt; &lt;span&gt;목적이&lt;/span&gt; &lt;span&gt;상실하기&lt;/span&gt; &lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;사용자를&lt;/span&gt; &lt;span&gt;먼저&lt;/span&gt; &lt;span&gt;생성하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;잊지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. ClusterControl&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;활용해서&lt;/span&gt; &lt;span&gt;사용자를&lt;/span&gt; &lt;span&gt;추가하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;[&lt;/span&gt;&lt;span&gt;관리&lt;/span&gt;&lt;span&gt;] -&amp;gt; [&lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;기능&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;사용자를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;생성이&lt;/span&gt; &lt;span&gt;완료되었으면&lt;/span&gt; &lt;span&gt;이제&lt;/span&gt; &lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;. ProxySQL &lt;/span&gt;&lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;시작할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;바인드&lt;/span&gt; &lt;span&gt;마운트로&lt;/span&gt; &lt;span&gt;매핑하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;명령어로&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ docker run -d &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--name proxysql2 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--hostname proxysql2 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--publish 6033:6033 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--publish 6032:6032 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--publish 6080:6080 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--restart=unless-stopped &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-v /root/proxysql/proxysql.cnf:/etc/proxysql.cnf &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;severalnines/proxysql:2.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;마지막으로&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt;&lt;span&gt; 6033&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;가리키도록&lt;/span&gt;&lt;span&gt; WordPress&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;연결&lt;/span&gt; &lt;span&gt;포트를&lt;/span&gt; &lt;span&gt;변경한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ docker run -d &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--name wordpress &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--publish 80:80 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--restart=unless-stopped &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e WORDPRESS_DB_HOST=proxysql2:6033 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e WORDPRESS_DB_USER=wordpress &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-e WORDPRESS_DB_HOST=passw0rd &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wordpress&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금까지의&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;그림으로&lt;/span&gt; &lt;span&gt;표현하면&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;아키텍처와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byBq5p/btsqJgYFaxD/xmVh7msHB22PG4aGe1gtC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byBq5p/btsqJgYFaxD/xmVh7msHB22PG4aGe1gtC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byBq5p/btsqJgYFaxD/xmVh7msHB22PG4aGe1gtC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyBq5p%2FbtsqJgYFaxD%2FxmVh7msHB22PG4aGe1gtC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;695&quot; height=&quot;293&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;293&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;영구적으로&lt;/span&gt; &lt;span&gt;유지하려면&lt;/span&gt;&lt;span&gt; /var/lib/proxysql/&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; Docker &lt;/span&gt;&lt;span&gt;볼륨에&lt;/span&gt; &lt;span&gt;매핑하거나&lt;/span&gt; &lt;span&gt;바인드를&lt;/span&gt; &lt;span&gt;마운트&lt;/span&gt; &lt;span&gt;해야한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;실행시&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;영구&lt;/span&gt; &lt;span&gt;저장소로&lt;/span&gt; &lt;span&gt;바인드하는&lt;/span&gt; &lt;span&gt;예제이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ docker run -d &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--name proxysql2 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--hostname proxysql2 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--publish 6033:6033 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--publish 6032:6032 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--publish 6080:6080 &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--restart=unless-stopped &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-v /root/proxysql/proxysql.cnf:/etc/proxysql.cnf &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;-v proxysql-volume:/var/lib/proxysql &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;severalnines/proxysql:2.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;영구&lt;/span&gt; &lt;span&gt;저장소로&lt;/span&gt; &lt;span&gt;실행하면&lt;/span&gt; &lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt; &lt;span&gt;시&lt;/span&gt;&lt;span&gt; /root/proxysql/proxysql.cnf&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;다는&lt;/span&gt; &lt;span&gt;것에&lt;/span&gt; &lt;span&gt;주의한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; /var/lib/proxysql/proxysql.db&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;존재하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일에서&lt;/span&gt; &lt;span&gt;로드&lt;/span&gt; &lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;건너뛰고&lt;/span&gt; &lt;span&gt;대신&lt;/span&gt;&lt;span&gt; SQLite &lt;/span&gt;&lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;항목을&lt;/span&gt; &lt;span&gt;로드하는&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;다중&lt;/span&gt; &lt;span&gt;계층&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;&amp;ndash;&lt;/span&gt;&lt;span&gt;initial &lt;/span&gt;&lt;span&gt;플래그로&lt;/span&gt;&lt;span&gt; proxysql &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;시작하면&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;값으로&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;.) &lt;span&gt;&amp;nbsp;&lt;/span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;관리는&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;대신&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt;&lt;span&gt; 6032&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt; &lt;span&gt;콘솔을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;수행해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt; &lt;span&gt;시&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;구성파일에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;정보는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;글을&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;설정값을&lt;/span&gt; &lt;span&gt;어디에&lt;/span&gt; &lt;span&gt;저장하고&lt;/span&gt; &lt;span&gt;재사용할까&lt;/span&gt;&lt;span&gt;? : &lt;a href=&quot;https://sungwookkang.com/1535&quot;&gt;https://sungwookkang.com/1535&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Monitoring]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;프로세스&lt;/span&gt; &lt;span&gt;로그는&lt;/span&gt; &lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; syslog&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;기록되며&lt;/span&gt; &lt;span&gt;표준&lt;/span&gt;&lt;span&gt; docker &lt;/span&gt;&lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ docker ps&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;$ docker logs proxysql2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;운영중인&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;확인하려면&lt;/span&gt;&lt;span&gt; runtime_mysql_servers &lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt; &lt;span&gt;쿼리한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;컨테이너의&lt;/span&gt; &lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt; &lt;span&gt;콘솔에&lt;/span&gt; &lt;span&gt;접속한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ docker exec -it proxysql2 mysql -uadmin -padmin -h127.0.0.1 -P6032 --prompt='Admin&amp;gt; '&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;$ docker exec -it proxysql2 mysql -uadmin -padmin -h127.0.0.1 -P6032 --prompt='Admin&amp;gt; '&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select hostgroup_id,hostname,status from runtime_mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| hostgroup_id | hostname&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| status |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 10&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.21 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 30&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.21 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 30&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.22 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 30&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.23 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 20&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;| 192.168.0.22 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 20&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.23 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;다운되면&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;offline_hostgroup (HID 9999)&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;이동된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예제에서는&lt;/span&gt; &lt;span&gt;192.168.0.21 &lt;/span&gt;&lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;다운되어&lt;/span&gt; &lt;span&gt;9999 &lt;/span&gt;&lt;span&gt;그룹으로&lt;/span&gt; &lt;span&gt;이동되었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select hostgroup_id,hostname,status from runtime_mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| hostgroup_id | hostname&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| status |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 10&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.22 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 9999&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.21 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 30&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.22 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 30&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.23 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 20&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.23 | ONLINE |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+--------------+--------------+--------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위의&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;그림과&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;201&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nwErn/btsqMhaTxNc/1eMDMNAlcXU7U6aHxl0QBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nwErn/btsqMhaTxNc/1eMDMNAlcXU7U6aHxl0QBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nwErn/btsqMhaTxNc/1eMDMNAlcXU7U6aHxl0QBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnwErn%2FbtsqMhaTxNc%2F1eMDMNAlcXU7U6aHxl0QBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;356&quot; height=&quot;201&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;201&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;admin-web_enabled=true&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;설정할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;웹&lt;/span&gt; &lt;span&gt;통계&lt;/span&gt;&lt;span&gt; UI&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;웹&lt;/span&gt;&lt;span&gt; UI&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;액세스하려면&lt;/span&gt; &lt;span&gt;포트&lt;/span&gt; &lt;span&gt;웹브라우저로&lt;/span&gt; &lt;span&gt;Docker &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt;&lt;span&gt;6080 &lt;/span&gt;&lt;span&gt;포트로&lt;/span&gt; &lt;span&gt;접속한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;예&lt;/span&gt;&lt;span&gt;, http://192.168.0.200:8060) &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;묻는&lt;/span&gt; &lt;span&gt;메시지가&lt;/span&gt; &lt;span&gt;표시되면&lt;/span&gt;&lt;span&gt; admin-stats_credentials&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;정의된&lt;/span&gt; &lt;span&gt;자격&lt;/span&gt; &lt;span&gt;증명을&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;로그인하면&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;통계&lt;/span&gt; &lt;span&gt;화면을&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ptgYm/btsqRFIW3U7/wZXiAlNmLcmkQuDnKUErI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ptgYm/btsqRFIW3U7/wZXiAlNmLcmkQuDnKUErI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ptgYm/btsqRFIW3U7/wZXiAlNmLcmkQuDnKUErI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FptgYm%2FbtsqRFIW3U7%2FwZXiAlNmLcmkQuDnKUErI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;604&quot; height=&quot;720&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;연결&lt;/span&gt; &lt;span&gt;풀&lt;/span&gt; &lt;span&gt;테이블을&lt;/span&gt; &lt;span&gt;모니터링하면&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;연결&lt;/span&gt; &lt;span&gt;분포&lt;/span&gt; &lt;span&gt;개요를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select hostgroup, srv_host, status, ConnUsed, MaxConnUsed, Queries from stats.stats_mysql_connection_pool order by srv_host;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt; select hostgroup, srv_host, status, ConnUsed, MaxConnUsed, Queries from stats.stats_mysql_connection_pool order by srv_host;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+-----------+--------------+--------+----------+-------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| hostgroup | srv_host&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| status | ConnUsed | MaxConnUsed | Queries |&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+-----------+--------------+--------+----------+-------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 20&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.23 | ONLINE | 5&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 24&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 11458&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 30&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.23 | ONLINE | 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 20&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.22 | ONLINE | 2&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 24&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 11485&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 30&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.22 | ONLINE | 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 10&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.21 | ONLINE | 32&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 32&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 9746&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;| 30&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 192.168.0.21 | ONLINE | 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;|&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;+-----------+--------------+--------+----------+-------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위의&lt;/span&gt; &lt;span&gt;출력&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;규칙에&lt;/span&gt; &lt;span&gt;의해&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt;&lt;span&gt; 30&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;아무&lt;/span&gt; &lt;span&gt;것도&lt;/span&gt; &lt;span&gt;처리하지&lt;/span&gt; &lt;span&gt;않음을&lt;/span&gt; &lt;span&gt;알&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera &lt;/span&gt;&lt;span&gt;노드와&lt;/span&gt; &lt;span&gt;관련된&lt;/span&gt; &lt;span&gt;통계는&lt;/span&gt;&lt;span&gt; mysql_server_galera_log &lt;/span&gt;&lt;span&gt;테이블에서&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;select * from mysql_server_galera_log order by time_start_us desc limit 3 \G&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;Admin&amp;gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;select * from mysql_server_galera_log order by time_start_us desc limit 3 \G&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;*************************** 1. row ***************************&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;hostname: 192.168.0.23&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;port: 3306&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;time_start_us: 1552992553332489&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;success_time_us: 2045&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;primary_partition: YES&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;read_only: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_local_recv_queue: 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_local_state: 4&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_desync: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_reject_queries: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_sst_donor_rejects_queries: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;error: NULL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;*************************** 2. row ***************************&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;hostname: 192.168.0.22&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;port: 3306&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;time_start_us: 1552992553329653&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;success_time_us: 2799&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;primary_partition: YES&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;read_only: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_local_recv_queue: 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_local_state: 4&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_desync: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_reject_queries: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_sst_donor_rejects_queries: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;error: NULL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;*************************** 3. row ***************************&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;hostname: 192.168.0.21&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;port: 3306&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;time_start_us: 1552992553329013&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;success_time_us: 2715&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;primary_partition: YES&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;read_only: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_local_recv_queue: 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_local_state: 4&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_desync: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wsrep_reject_queries: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;wsrep_sst_donor_rejects_queries: NO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;error: NULL&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;결과&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;타임스탬프에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;관련&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;상태&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;반환한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;구성에서는&lt;/span&gt;&lt;span&gt; Galera &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt; &lt;span&gt;확인이&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;초마다&lt;/span&gt; &lt;span&gt;실행되도록&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. (monitor_galera_healthcheck_interval=2000). &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt; &lt;span&gt;클러스터에&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;변경이&lt;/span&gt; &lt;span&gt;발생하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;최대&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;조치&lt;/span&gt; &lt;span&gt;시간은&lt;/span&gt; &lt;span&gt;약&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;초이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금까지&lt;/span&gt; &lt;span&gt;MySQL Galera &lt;/span&gt;&lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;조합하여&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;그룹에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;정의와&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;컨테이너로&lt;/span&gt; &lt;span&gt;구성하는&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;다루었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실제&lt;/span&gt; &lt;span&gt;운영환경에서는&lt;/span&gt; &lt;span&gt;각자의&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;구성과&lt;/span&gt; &lt;span&gt;SLA&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;다르기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;위&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;이해하고&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;활용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;How to Run and Configure ProxySQL 2.0 for MySQL Galera Cluster on Docker : &lt;a href=&quot;https://severalnines.com/blog/how-run-and-configure-proxysql-20-mysql-galera-cluster-docker/&quot;&gt;https://severalnines.com/blog/how-run-and-configure-proxysql-20-mysql-galera-cluster-docker/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;이란&lt;/span&gt; &lt;span&gt;무엇인가&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://sungwookkang.com/1528&quot;&gt;https://sungwookkang.com/1528&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL/MariaDB &lt;/span&gt;&lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;지원하는&lt;/span&gt;&lt;span&gt; Galera Cluster &lt;/span&gt;&lt;span&gt;알아보기&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://sungwookkang.com/1536&quot;&gt;https://sungwookkang.com/1536&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;설정값을&lt;/span&gt; &lt;span&gt;어디에&lt;/span&gt; &lt;span&gt;저장하고&lt;/span&gt; &lt;span&gt;재사용할까&lt;/span&gt;&lt;span&gt;? : &lt;a href=&quot;https://sungwookkang.com/1535&quot;&gt;https://sungwookkang.com/1535&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-08-10 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, MariaDB, Galera Cluster, &lt;/span&gt;&lt;span&gt;마리아디비&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;마이에스큐엘&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt;&lt;span&gt;, MariaDB &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt;, MariaDB Cluster, MySQL Cluster, MariaDB Replication, MySQL, ProxySQL, ProxySQL&lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;구성관리&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;span&gt;, Proxy Container&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>Galera Cluster</category>
      <category>mariadb</category>
      <category>MariaDB cluster</category>
      <category>MariaDB Replication</category>
      <category>MariaDB 복제</category>
      <category>MySQL</category>
      <category>mysql cluster</category>
      <category>갈레라 클러스터</category>
      <category>마리아디비</category>
      <category>마이에스큐엘</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1538</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-Galera-Cluster-ProxySQL%EC%97%90%EC%84%9C-Galera-Cluster-%ED%8A%B9%EC%84%B1%EC%9D%84-%EA%B3%A0%EB%A0%A4%ED%95%9C-RW-%ED%98%B8%EC%8A%A4%ED%8A%B8-%EA%B7%B8%EB%A3%B9-%EC%84%A4%EC%A0%95-%ED%95%98%EA%B8%B0#entry1538comment</comments>
      <pubDate>Thu, 10 Aug 2023 15:55:44 +0900</pubDate>
    </item>
    <item>
      <title>[Kubernetes] 쿠버네티스에서 파드 생성시 프라이빗 레지스트리 이미지 사용하기</title>
      <link>https://sqlmvp.tistory.com/entry/Kubernetes-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4%EC%97%90%EC%84%9C-%ED%8C%8C%EB%93%9C-%EC%83%9D%EC%84%B1%EC%8B%9C-%ED%94%84%EB%9D%BC%EC%9D%B4%EB%B9%97-%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Kubernetes] &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;쿠버네티스에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;파드&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;생성시&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;프라이빗&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;레지스트리&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이미지&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;사용하기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Kubernetes&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Kubernetes &lt;/span&gt;&lt;span&gt;환경에서&lt;/span&gt;&lt;span&gt; pod&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;생성할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;Private Registry&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;다운받아&lt;/span&gt; &lt;span&gt;실행하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;실습&lt;/span&gt; &lt;span&gt;환경은&lt;/span&gt; &lt;span&gt;MAC OS + PODMAN + MINIKUBE&lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;docker &lt;/span&gt;&lt;span&gt;환경은&lt;/span&gt; &lt;span&gt;아니지만&lt;/span&gt; &lt;span&gt;사용법이&lt;/span&gt; &lt;span&gt;거의&lt;/span&gt; &lt;span&gt;유사하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;따라하는데&lt;/span&gt; &lt;span&gt;크게&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;없으리라&lt;/span&gt; &lt;span&gt;생각한다&lt;/span&gt;&lt;span&gt;. Minikube &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;Podman &lt;/span&gt;&lt;span&gt;설치는&lt;/span&gt; &lt;span&gt;공식&lt;/span&gt; &lt;span&gt;문서에&lt;/span&gt; &lt;span&gt;쉽게&lt;/span&gt; &lt;span&gt;설명되어&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;여기에서는&lt;/span&gt; &lt;span&gt;다루지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Podman Installation Instructions : &lt;a href=&quot;https://podman.io/docs/installation&quot;&gt;https://podman.io/docs/installation&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;minikube start : &lt;a href=&quot;https://minikube.sigs.k8s.io/docs/start/&quot;&gt;https://minikube.sigs.k8s.io/docs/start/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실습&lt;/span&gt; &lt;span&gt;시나리오는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Dockerfile &lt;/span&gt;&lt;span&gt;작성&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;빌드&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Docker Hub&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;개인&lt;/span&gt; &lt;span&gt;저장소에&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;푸시&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;쿠버네티스에서&lt;/span&gt; &lt;span&gt;프라이빗&lt;/span&gt; &lt;span&gt;시크릿키&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;YAML &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt; &lt;span&gt;작성&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;6.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Pod &lt;/span&gt;&lt;span&gt;생성&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;커스텀&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;만들기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;Dockerfile&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;작성한다&lt;/span&gt;&lt;span&gt;. Dockerfile &lt;/span&gt;&lt;span&gt;작성에&lt;/span&gt; &lt;span&gt;관한&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;문서를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;허브의&lt;/span&gt; &lt;span&gt;공식&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;저장소에서는&lt;/span&gt; &lt;span&gt;Dockerfile&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;샘플코드를&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래는&lt;/span&gt; &lt;span&gt;proxysql&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;공식&lt;/span&gt; &lt;span&gt;저장소이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://hub.docker.com/r/proxysql/proxysql&quot;&gt;https://hub.docker.com/r/proxysql/proxysql&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;592&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7O0Y5/btsqJTOpSjX/bovVwUpUKITT2JAu6SL5Sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7O0Y5/btsqJTOpSjX/bovVwUpUKITT2JAu6SL5Sk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7O0Y5/btsqJTOpSjX/bovVwUpUKITT2JAu6SL5Sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7O0Y5%2FbtsqJTOpSjX%2FbovVwUpUKITT2JAu6SL5Sk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;792&quot; height=&quot;592&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;592&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Dockerfile &lt;/span&gt;&lt;span&gt;작성이&lt;/span&gt; &lt;span&gt;완료되었으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;빌드&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. Podman &lt;/span&gt;&lt;span&gt;명령어는&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;명령어와&lt;/span&gt; &lt;span&gt;거의&lt;/span&gt; &lt;span&gt;유사하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;어려움&lt;/span&gt; &lt;span&gt;없이&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt;&lt;span&gt; Dockerfile&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;빌드하여&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;생성하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;생성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;podman build -t proxysql-sw:1.0.0 .&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;podman images&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;115&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cafLo6/btsqLRvDL6k/3HekccPYh7r3nvltlE1dR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cafLo6/btsqLRvDL6k/3HekccPYh7r3nvltlE1dR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cafLo6/btsqLRvDL6k/3HekccPYh7r3nvltlE1dR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcafLo6%2FbtsqLRvDL6k%2F3HekccPYh7r3nvltlE1dR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;906&quot; height=&quot;115&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;115&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;podman&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;레지스트리에&lt;/span&gt; &lt;span&gt;push&lt;/span&gt;&lt;span&gt;하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;로그인&lt;/span&gt; &lt;span&gt;과정이&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;허브의&lt;/span&gt; &lt;span&gt;로그인은&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;로그인은&lt;/span&gt; &lt;span&gt;ID, &lt;/span&gt;&lt;span&gt;패스워드로&lt;/span&gt; &lt;span&gt;인증한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;podman login docker.io&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K4hdT/btsqKhV9ix7/aSzcFME35Oa7JIVDtIgjo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K4hdT/btsqKhV9ix7/aSzcFME35Oa7JIVDtIgjo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K4hdT/btsqKhV9ix7/aSzcFME35Oa7JIVDtIgjo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK4hdT%2FbtsqKhV9ix7%2FaSzcFME35Oa7JIVDtIgjo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;319&quot; height=&quot;111&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;111&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;푸시&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;ID&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. Podman images&lt;/span&gt;&lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;확인한&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt;&lt;span&gt;ID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;허브의&lt;/span&gt; &lt;span&gt;프라이빗&lt;/span&gt; &lt;span&gt;레지스트리로&lt;/span&gt; &lt;span&gt;푸시&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;podman push 561f3e4999fddocker.io/&amp;lt;&lt;/span&gt;&lt;span&gt;개인저장소&lt;/span&gt; &lt;span&gt;경로&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쿠버네티스에서&lt;/span&gt; &lt;span&gt;파드&lt;/span&gt; &lt;span&gt;생성시&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;프라이빗&lt;/span&gt; &lt;span&gt;레지스트리에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;시크릿&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;시크릿&lt;/span&gt; &lt;span&gt;키에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;생성은&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;방법이&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt; &lt;span&gt;여기에서는&lt;/span&gt; &lt;span&gt;커맨드&lt;/span&gt; &lt;span&gt;라인에서&lt;/span&gt; &lt;span&gt;자격증명을&lt;/span&gt; &lt;span&gt;통한&lt;/span&gt; &lt;span&gt;시크릿&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;예제에서는&lt;/span&gt; &lt;span&gt;시크릿&lt;/span&gt; &lt;span&gt;키&lt;/span&gt; &lt;span&gt;이름은&lt;/span&gt; &lt;span&gt;regcred&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl create secret docker-registry regcred --docker-server=&amp;lt;your-registry-server&amp;gt; --docker-username=&amp;lt;your-name&amp;gt; --docker-password=&amp;lt;your-pword&amp;gt; --docker-email=&amp;lt;your-email&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;your-registry-server&amp;gt; : &lt;/span&gt;&lt;span&gt;프라이빗&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;저장소의&lt;/span&gt;&lt;span&gt; FQDN &lt;/span&gt;&lt;span&gt;주소로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;도커허브&lt;/span&gt;&lt;span&gt;(DockerHub)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;a href=&quot;https://index.docker.io/v1/&quot;&gt;https://index.docker.io/v1/&lt;/a&gt; &lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;your-name&amp;gt; : &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;사용자의&lt;/span&gt; &lt;span&gt;계정&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;your-pword&amp;gt; : &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;사용자의&lt;/span&gt; &lt;span&gt;비밀번호&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;your-email&amp;gt; : &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;사용자의&lt;/span&gt; &lt;span&gt;이메일&lt;/span&gt; &lt;span&gt;주소&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;키가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;생성되었는지는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;명령으로&lt;/span&gt; &lt;span&gt;확인&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;명령을&lt;/span&gt; &lt;span&gt;실행하면&lt;/span&gt; &lt;span&gt;키에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl get secret regcred --output=yaml&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3Ncic/btsqJdfW9Vc/rLmnzu1OYd2MDESgSSLLQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3Ncic/btsqJdfW9Vc/rLmnzu1OYd2MDESgSSLLQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3Ncic/btsqJdfW9Vc/rLmnzu1OYd2MDESgSSLLQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3Ncic%2FbtsqJdfW9Vc%2FrLmnzu1OYd2MDESgSSLLQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;813&quot; height=&quot;336&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쿠버네티스에서&lt;/span&gt; &lt;span&gt;파드&lt;/span&gt; &lt;span&gt;생성시&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;YAML &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;작성한다&lt;/span&gt;&lt;span&gt;. YAML&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;시크릿&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;imagePullSecrets &lt;/span&gt;&lt;span&gt;항목에서&lt;/span&gt; &lt;span&gt;시크릿키&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;apiVersion: v1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;kind: Pod&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;metadata:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;name: private-reg&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;spec:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;containers:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;- name: private-reg-container&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;image: &amp;lt;your-private-image&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;imagePullSecrets:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;- name: regcred&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;YAML&lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;쿠버네티스&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl apply -f my-private-reg-pod.yaml&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;도커허브의&lt;/span&gt; &lt;span&gt;개인&lt;/span&gt; &lt;span&gt;저장소&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;파드가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;생성된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;kubectl get pod&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KlgfM/btsqIMbtVUe/MatQPKsZovNCiAiJ14Szmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KlgfM/btsqIMbtVUe/MatQPKsZovNCiAiJ14Szmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KlgfM/btsqIMbtVUe/MatQPKsZovNCiAiJ14Szmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKlgfM%2FbtsqIMbtVUe%2FMatQPKsZovNCiAiJ14Szmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;85&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금까지&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;허브의&lt;/span&gt; &lt;span&gt;프라이빗&lt;/span&gt; &lt;span&gt;레지스트리에서&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;받아&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아보았다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;원래&lt;/span&gt; &lt;span&gt;나의&lt;/span&gt; &lt;span&gt;목적은&lt;/span&gt; &lt;span&gt;로컬&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;내&lt;/span&gt; &lt;span&gt;컴퓨터&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;빌드한&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;로컬&lt;/span&gt; &lt;span&gt;저장소의&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;쿠버네티스&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성하려고&lt;/span&gt; &lt;span&gt;하였는데&lt;/span&gt;&lt;span&gt;, podman&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;생성한&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;minikube&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;찾지&lt;/span&gt; &lt;span&gt;못하여&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;&lt;span&gt;정확히는&lt;/span&gt; &lt;span&gt;내가&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;줄&lt;/span&gt; &lt;span&gt;모르는&lt;/span&gt; &lt;span&gt;것&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;허브를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;방향으로&lt;/span&gt; &lt;span&gt;실습하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이후&lt;/span&gt; &lt;span&gt;작업으로&lt;/span&gt; &lt;span&gt;로컬&lt;/span&gt; &lt;span&gt;저장소에서&lt;/span&gt; &lt;span&gt;파드를&lt;/span&gt; &lt;span&gt;생성하는&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;추가적으로&lt;/span&gt; &lt;span&gt;알아볼&lt;/span&gt; &lt;span&gt;예정이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Podman Installation Instructions : &lt;a href=&quot;https://podman.io/docs/installation&quot;&gt;https://podman.io/docs/installation&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;minikube start : &lt;a href=&quot;https://minikube.sigs.k8s.io/docs/start/&quot;&gt;https://minikube.sigs.k8s.io/docs/start/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;docker hub : &lt;a href=&quot;https://hub.docker.com/&quot;&gt;https://hub.docker.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프라이빗&lt;/span&gt; &lt;span&gt;레지스트리에서&lt;/span&gt; &lt;span&gt;이미지&lt;/span&gt; &lt;span&gt;받아오기&lt;/span&gt; &lt;span&gt;: &lt;a href=&quot;https://kubernetes.io/ko/docs/tasks/configure-pod-container/pull-image-private-registry/&quot;&gt;https://kubernetes.io/ko/docs/tasks/configure-pod-container/pull-image-private-registry/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-08-09 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://sungwookkang.com&quot;&gt;https://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;쿠버네티스&lt;/span&gt;&lt;span&gt;, Kubernetes, &lt;/span&gt;&lt;span&gt;미니쿠베&lt;/span&gt;&lt;span&gt;, minikube, &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;도커허브&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨테이너&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;도커파일&lt;/span&gt;&lt;span&gt;, dockerfile, yaml, &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;레지스트리&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프라이빗&lt;/span&gt; &lt;span&gt;레지스트리&lt;/span&gt;&lt;span&gt;, podman, &lt;/span&gt;&lt;span&gt;파드맨&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;도커빌드&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이미지빌드&lt;/span&gt;&lt;/p&gt;</description>
      <category>SW Engineering/DevOps, SRE</category>
      <category>Dockerfile</category>
      <category>kubernetes</category>
      <category>Minikube</category>
      <category>yaml</category>
      <category>도커</category>
      <category>도커파일</category>
      <category>도커허브</category>
      <category>미니쿠베</category>
      <category>컨테이너</category>
      <category>쿠버네티스</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1537</guid>
      <comments>https://sqlmvp.tistory.com/entry/Kubernetes-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4%EC%97%90%EC%84%9C-%ED%8C%8C%EB%93%9C-%EC%83%9D%EC%84%B1%EC%8B%9C-%ED%94%84%EB%9D%BC%EC%9D%B4%EB%B9%97-%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#entry1537comment</comments>
      <pubDate>Wed, 9 Aug 2023 18:54:41 +0900</pubDate>
    </item>
    <item>
      <title>MySQL/MariaDB 환경에서 다중 마스터 복제를 지원하는 Galera Cluster 알아보기</title>
      <link>https://sqlmvp.tistory.com/entry/MySQLMariaDB-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EB%8B%A4%EC%A4%91-%EB%A7%88%EC%8A%A4%ED%84%B0-%EB%B3%B5%EC%A0%9C%EB%A5%BC-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-Galera-Cluster-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;MySQL/MariaDB &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;환경에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;다중&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;마스터&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;복제를&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;지원하는&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;span&gt;Galera Cluster &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;알아보기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL, MariaDB, Galera Cluster&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster (&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt;&lt;span&gt;&amp;rdquo;)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;동기&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;솔루션으로&lt;/span&gt; &lt;span&gt;DB &lt;/span&gt;&lt;span&gt;간의&lt;/span&gt; &lt;span&gt;직접적인&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;공유가&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;형태의&lt;/span&gt; &lt;span&gt;오픈소스&lt;/span&gt; &lt;span&gt;고가용성&lt;/span&gt; &lt;span&gt;솔루션이다&lt;/span&gt;&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;MySQL Percona Xtradb &lt;/span&gt;&lt;span&gt;클러스터와&lt;/span&gt; &lt;span&gt;MariaDB &lt;/span&gt;&lt;span&gt;두&lt;/span&gt; &lt;span&gt;가지&lt;/span&gt; &lt;span&gt;버전을&lt;/span&gt; &lt;span&gt;지원한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특히&lt;/span&gt; &lt;span&gt;MariaDB&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;공식적으로&lt;/span&gt; &lt;span&gt;지원한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;개념과&lt;/span&gt; &lt;span&gt;장단점에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;동기&lt;/span&gt; &lt;span&gt;방식의&lt;/span&gt; &lt;span&gt;복제구조를&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;멀티마스터&lt;/span&gt; &lt;span&gt;RDB &lt;/span&gt;&lt;span&gt;클러스터로&lt;/span&gt; &lt;span&gt;제공된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;인증&lt;/span&gt; &lt;span&gt;기반&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;제공하며&lt;/span&gt; &lt;span&gt;노드간&lt;/span&gt; &lt;span&gt;통신을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;wsrep API&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;복제는&lt;/span&gt; &lt;span&gt;논리적으로는&lt;/span&gt; &lt;span&gt;완전&lt;/span&gt; &lt;span&gt;동기이지만&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;write&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;tablespace&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;commit&lt;/span&gt;&lt;span&gt;하는&lt;/span&gt; &lt;span&gt;과정은&lt;/span&gt; &lt;span&gt;별개이고&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드간에는&lt;/span&gt; &lt;span&gt;비동기로&lt;/span&gt; &lt;span&gt;동작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터에서는&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;방식을&lt;/span&gt; &lt;span&gt;virtually synchronous replication&lt;/span&gt;&lt;span&gt;이라&lt;/span&gt; &lt;span&gt;부른다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xunDM/btsqrDSNKH6/N6CR9oDZuuB6oCNczdpRF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xunDM/btsqrDSNKH6/N6CR9oDZuuB6oCNczdpRF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xunDM/btsqrDSNKH6/N6CR9oDZuuB6oCNczdpRF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxunDM%2FbtsqrDSNKH6%2FN6CR9oDZuuB6oCNczdpRF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;333&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Galera Cluster &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;특징&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다중&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt;&lt;span&gt; : Active-Active &lt;/span&gt;&lt;span&gt;방식의&lt;/span&gt; &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;Master &lt;/span&gt;&lt;span&gt;구조이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;Read/Write &lt;/span&gt;&lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;동기&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;: &lt;/span&gt;&lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;지연이&lt;/span&gt; &lt;span&gt;없고&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;충돌시&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;손실이&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;일관적&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;유지&lt;/span&gt; &lt;span&gt;: &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;항상&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;유지&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;: &lt;/span&gt;&lt;span&gt;노드&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하였을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;빠르게&lt;/span&gt; &lt;span&gt;모니터링&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;전환되므로&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;중단이&lt;/span&gt; &lt;span&gt;최소화&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;멀티&lt;/span&gt; &lt;span&gt;포인트&lt;/span&gt; &lt;span&gt;쓰기를&lt;/span&gt; &lt;span&gt;지원하므로&lt;/span&gt; &lt;span&gt;전환이&lt;/span&gt; &lt;span&gt;쉽다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특정&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;미치지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이론적으로&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;가능하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;다운되기&lt;/span&gt; &lt;span&gt;전까지는&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;유지가&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;자동&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;: &lt;/span&gt;&lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;추가하거나&lt;/span&gt; &lt;span&gt;관리를&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;종료&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;제거&lt;/span&gt; &lt;span&gt;해야&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;증분&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;수동으로&lt;/span&gt; &lt;span&gt;백업할&lt;/span&gt; &lt;span&gt;필요가&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;추가할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;온라인&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;가져오고&lt;/span&gt; &lt;span&gt;일관성을&lt;/span&gt; &lt;span&gt;유지한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Galera Cluster &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;단점&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;동기&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;특성상&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;성능은&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;성능이&lt;/span&gt; &lt;span&gt;낮은&lt;/span&gt; &lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;의해&lt;/span&gt; &lt;span&gt;결정된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;최대한&lt;/span&gt; &lt;span&gt;동일한&lt;/span&gt; &lt;span&gt;성능의&lt;/span&gt; &lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;구성하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;좋다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;동기&lt;/span&gt; &lt;span&gt;복제이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;쓰기가&lt;/span&gt; &lt;span&gt;많이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;아키텍처&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;비동기&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;등&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;상대적으로&lt;/span&gt; &lt;span&gt;성능이&lt;/span&gt; &lt;span&gt;저하되며&lt;/span&gt; &lt;span&gt;스케일&lt;/span&gt; &lt;span&gt;아웃에&lt;/span&gt; &lt;span&gt;한계가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;신규&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;조인되거나&lt;/span&gt; &lt;span&gt;대규모&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;조인시&lt;/span&gt; &lt;span&gt;지연이&lt;/span&gt; &lt;span&gt;발생하면&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;전체를&lt;/span&gt; &lt;span&gt;복사&lt;/span&gt;&lt;span&gt;(SST, &lt;/span&gt;&lt;span&gt;상태&lt;/span&gt; &lt;span&gt;스냅샷&lt;/span&gt; &lt;span&gt;전동&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;제공하는&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;Donor&lt;/span&gt;&lt;span&gt;라고&lt;/span&gt; &lt;span&gt;하는데&lt;/span&gt; &lt;span&gt;Donor &lt;/span&gt;&lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;전송하는&lt;/span&gt; &lt;span&gt;동안&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;중단된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;인증&lt;/span&gt; &lt;span&gt;기반&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;사용하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;인증이&lt;/span&gt; &lt;span&gt;실패할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;데드락이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;가능성이&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[Galera Cluster &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;제약사항&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MyISAM &lt;/span&gt;&lt;span&gt;일부와&lt;/span&gt; &lt;span&gt;InnoDB &lt;/span&gt;&lt;span&gt;스토리지&lt;/span&gt; &lt;span&gt;엔진&lt;/span&gt; &lt;span&gt;테이블만&lt;/span&gt; &lt;span&gt;지원한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;노드&lt;/span&gt; &lt;span&gt;간의&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;피하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;테이블에서&lt;/span&gt; &lt;span&gt;기본키를&lt;/span&gt; &lt;span&gt;필수적으로&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;n&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;키가&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;테이블에서는&lt;/span&gt;&lt;span&gt; DELETE &lt;/span&gt;&lt;span&gt;작업이&lt;/span&gt; &lt;span&gt;지원되지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;n&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;키가&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;테이블의&lt;/span&gt; &lt;span&gt;행은&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;순서로&lt;/span&gt; &lt;span&gt;나타날&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Query Cache&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;비활성화한다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;XA &lt;/span&gt;&lt;span&gt;트랜잭션&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;전역&lt;/span&gt; &lt;span&gt;트랜잭션&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;지원하지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;일반&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;로그와&lt;/span&gt; &lt;span&gt;슬로우&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;로그는&lt;/span&gt; &lt;span&gt;테이블로&lt;/span&gt; &lt;span&gt;보낼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;활성화하는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; log_output=FILE&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;설정하여&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;파일로&lt;/span&gt; &lt;span&gt;전달해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;wsrep(Write-Set Replication) API&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드와&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;동기화&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기서&lt;/span&gt; &lt;span&gt;wsrep API&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;DBMS&lt;/span&gt;&lt;span&gt;간&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;인터페이스이며&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;동기화&lt;/span&gt; &lt;span&gt;구현은&lt;/span&gt; &lt;span&gt;Galera Replication Plugin&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;이루어&lt;/span&gt; &lt;span&gt;진다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2_1.png&quot; data-origin-width=&quot;1984&quot; data-origin-height=&quot;1194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sXD7S/btsp9ZW4raB/ckQDbk9uRSPeycBTjLDU5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sXD7S/btsp9ZW4raB/ckQDbk9uRSPeycBTjLDU5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sXD7S/btsp9ZW4raB/ckQDbk9uRSPeycBTjLDU5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsXD7S%2Fbtsp9ZW4raB%2FckQDbk9uRSPeycBTjLDU5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1984&quot; height=&quot;1194&quot; data-filename=&quot;2_1.png&quot; data-origin-width=&quot;1984&quot; data-origin-height=&quot;1194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;쓰기나&lt;/span&gt; &lt;span&gt;업데이트가&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;노드간에&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;복제하고&lt;/span&gt; &lt;span&gt;업데이트&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;GCache &lt;/span&gt;&lt;span&gt;영역에&lt;/span&gt; &lt;span&gt;저장한다&lt;/span&gt;&lt;span&gt;. GCache&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;복제된&lt;/span&gt; &lt;span&gt;트랜잭션을&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;임시&lt;/span&gt; &lt;span&gt;저장소&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Hjsye/btsqd44N4PX/lgzvTo6rSjBNxyUHxUJTY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hjsye/btsqd44N4PX/lgzvTo6rSjBNxyUHxUJTY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hjsye/btsqd44N4PX/lgzvTo6rSjBNxyUHxUJTY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHjsye%2Fbtsqd44N4PX%2FlgzvTo6rSjBNxyUHxUJTY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;644&quot; height=&quot;357&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;357&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;인증기반&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;인증&lt;/span&gt; &lt;span&gt;기반&lt;/span&gt; &lt;span&gt;복제의&lt;/span&gt; &lt;span&gt;주요&lt;/span&gt; &lt;span&gt;컨셉은&lt;/span&gt; &lt;span&gt;트랜잭션이&lt;/span&gt; &lt;span&gt;충돌이&lt;/span&gt; &lt;span&gt;없다고&lt;/span&gt; &lt;span&gt;가정하고&lt;/span&gt; &lt;span&gt;커밋&lt;/span&gt; &lt;span&gt;지점에&lt;/span&gt; &lt;span&gt;도달할&lt;/span&gt; &lt;span&gt;때까지&lt;/span&gt; &lt;span&gt;관례적으로&lt;/span&gt; &lt;span&gt;실행된다는&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt; &lt;span&gt;낙관적&lt;/span&gt; &lt;span&gt;실행이라고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;인증&lt;/span&gt; &lt;span&gt;기반&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;구현은&lt;/span&gt; &lt;span&gt;트랜잭션의&lt;/span&gt; &lt;span&gt;전역&lt;/span&gt; &lt;span&gt;순서에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;다르다&lt;/span&gt;&lt;span&gt;. Galera Cluster&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;중에&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;트랜잭션에&lt;/span&gt; &lt;span&gt;전역&lt;/span&gt; &lt;span&gt;시퀀스&lt;/span&gt; &lt;span&gt;번호&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt;&lt;span&gt; seqno&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;할당한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;트랜잭션이&lt;/span&gt; &lt;span&gt;커밋&lt;/span&gt; &lt;span&gt;지점에&lt;/span&gt; &lt;span&gt;도달하면&lt;/span&gt; &lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;마지막으로&lt;/span&gt; &lt;span&gt;성공한&lt;/span&gt; &lt;span&gt;트랜잭션의&lt;/span&gt; &lt;span&gt;시퀀스&lt;/span&gt; &lt;span&gt;번호와&lt;/span&gt; &lt;span&gt;시퀀스&lt;/span&gt; &lt;span&gt;번호를&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;둘&lt;/span&gt; &lt;span&gt;사이의&lt;/span&gt; &lt;span&gt;간격을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;트랜잭션은&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;트랜잭션과&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;키&lt;/span&gt; &lt;span&gt;충돌이&lt;/span&gt; &lt;span&gt;있는지&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;충돌이&lt;/span&gt; &lt;span&gt;감지되면&lt;/span&gt; &lt;span&gt;인증&lt;/span&gt; &lt;span&gt;테스트에&lt;/span&gt; &lt;span&gt;실패한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;438&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2CEB7/btsqd5ingFn/fVEVwrs3ZBXxp5saP3TLz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2CEB7/btsqd5ingFn/fVEVwrs3ZBXxp5saP3TLz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2CEB7/btsqd5ingFn/fVEVwrs3ZBXxp5saP3TLz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2CEB7%2Fbtsqd5ingFn%2FfVEVwrs3ZBXxp5saP3TLz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;723&quot; height=&quot;438&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;438&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;그림에서&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;변경되고&lt;/span&gt; &lt;span&gt;커밋되기&lt;/span&gt; &lt;span&gt;까지의&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;나타내면&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;클라이언트가&lt;/span&gt; &lt;span&gt;데이터를&lt;/span&gt; &lt;span&gt;수정하고&lt;/span&gt; &lt;span&gt;커밋&lt;/span&gt; &lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;요청한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;커밋&lt;/span&gt; &lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;받으면&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;커밋을&lt;/span&gt; &lt;span&gt;실행하기&lt;/span&gt; &lt;span&gt;전에&lt;/span&gt; &lt;span&gt;트랜잭션&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;변경된&lt;/span&gt; &lt;span&gt;행의&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;키에&lt;/span&gt; &lt;span&gt;의해&lt;/span&gt; &lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항이&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;세트로&lt;/span&gt; &lt;span&gt;수집된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터베이스는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;세트를&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드로&lt;/span&gt; &lt;span&gt;전송한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;세트는&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;키를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;결정적&lt;/span&gt; &lt;span&gt;인증&lt;/span&gt; &lt;span&gt;테스트를&lt;/span&gt; &lt;span&gt;거친다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;작업은&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;세트를&lt;/span&gt; &lt;span&gt;생성한&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;포함하여&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;수행된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;세트를&lt;/span&gt; &lt;span&gt;적용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는지&lt;/span&gt; &lt;span&gt;여부를&lt;/span&gt; &lt;span&gt;결정한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;6.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;인증&lt;/span&gt; &lt;span&gt;테스트에&lt;/span&gt; &lt;span&gt;실패하면&lt;/span&gt; &lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;세트를&lt;/span&gt; &lt;span&gt;삭제하고&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;원래&lt;/span&gt; &lt;span&gt;트랜잭션을&lt;/span&gt; &lt;span&gt;롤백한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그러나&lt;/span&gt; &lt;span&gt;테스트가&lt;/span&gt; &lt;span&gt;성공하면&lt;/span&gt; &lt;span&gt;트랜잭션이&lt;/span&gt; &lt;span&gt;커밋되고&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;세트가&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;나머지&lt;/span&gt; &lt;span&gt;부분에&lt;/span&gt; &lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster Replication&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;Write &lt;/span&gt;&lt;span&gt;정책은&lt;/span&gt; &lt;span&gt;First Committer Win&lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;트랜잭션이&lt;/span&gt; &lt;span&gt;커밋되는&lt;/span&gt; &lt;span&gt;시점에&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;유효한&lt;/span&gt; &lt;span&gt;트랜잭션인지&lt;/span&gt; &lt;span&gt;여부를&lt;/span&gt; &lt;span&gt;체크하는&lt;/span&gt; &lt;span&gt;방식으로&lt;/span&gt; &lt;span&gt;동작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;내에서&lt;/span&gt; &lt;span&gt;트랜잭션은&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;동시에&lt;/span&gt; &lt;span&gt;반영되거나&lt;/span&gt; &lt;span&gt;전부&lt;/span&gt; &lt;span&gt;반영되지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;둘&lt;/span&gt; &lt;span&gt;중&lt;/span&gt; &lt;span&gt;하나로&lt;/span&gt; &lt;span&gt;동작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;이유로&lt;/span&gt; &lt;span&gt;Write &lt;/span&gt;&lt;span&gt;트랜잭션은&lt;/span&gt; &lt;span&gt;하나의&lt;/span&gt; &lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;권장한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;트랜잭션을&lt;/span&gt; &lt;span&gt;시작하는&lt;/span&gt; &lt;span&gt;시점&lt;/span&gt;&lt;span&gt;(BEGIN)&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt; &lt;span&gt;자신의&lt;/span&gt; &lt;span&gt;노드에서는&lt;/span&gt;&lt;span&gt; Pessimistic Locking&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;동작하나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;노드&lt;/span&gt; &lt;span&gt;사이에서는&lt;/span&gt;&lt;span&gt; Optimistic Locking Model&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;동작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt; &lt;span&gt;트랜잭션을&lt;/span&gt; &lt;span&gt;자신의&lt;/span&gt; &lt;span&gt;노드에&lt;/span&gt; &lt;span&gt;수행을&lt;/span&gt; &lt;span&gt;하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;커밋을&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;시점에&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;노드로부터&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;트랜잭션에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;유효성을&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;InnoDB&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;트랜잭션을&lt;/span&gt; &lt;span&gt;지원하는&lt;/span&gt; &lt;span&gt;시스템인&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; SQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;시작되는&lt;/span&gt; &lt;span&gt;시점에서&lt;/span&gt;&lt;span&gt; Lock&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터에서는&lt;/span&gt; &lt;span&gt;커밋되는&lt;/span&gt; &lt;span&gt;시점에&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;간&lt;/span&gt; &lt;span&gt;트랜잭션&lt;/span&gt; &lt;span&gt;유효성&lt;/span&gt; &lt;span&gt;체크한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;345&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJ34CY/btsquCrX5mg/5mltM6Fpp6vFZnGyFxosNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJ34CY/btsquCrX5mg/5mltM6Fpp6vFZnGyFxosNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJ34CY/btsquCrX5mg/5mltM6Fpp6vFZnGyFxosNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ34CY%2FbtsquCrX5mg%2F5mltM6Fpp6vFZnGyFxosNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;601&quot; height=&quot;345&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;345&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;트랜잭션&lt;/span&gt; &lt;span&gt;커밋&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;롤백&lt;/span&gt; &lt;span&gt;결정은&lt;/span&gt; &lt;span&gt;네트워크를&lt;/span&gt; &lt;span&gt;통한&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;노드와&lt;/span&gt; &lt;span&gt;통신에서&lt;/span&gt; &lt;span&gt;결정된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;결정&lt;/span&gt; &lt;span&gt;요소에는&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;항목들의&lt;/span&gt; &lt;span&gt;상태가&lt;/span&gt; &lt;span&gt;포함된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;네트워크&lt;/span&gt; &lt;span&gt;왕복&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;타&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;유효성&lt;/span&gt; &lt;span&gt;체크&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드에서&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;반영&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;최소&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;수는&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그러나&lt;/span&gt; &lt;span&gt;최소&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;권장된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;최대&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;제한은&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그러나&lt;/span&gt;&lt;span&gt; 10&lt;/span&gt;&lt;span&gt;개&lt;/span&gt; &lt;span&gt;이상의&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;클러스터는&lt;/span&gt; &lt;span&gt;네트워크&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;인터넷에서&lt;/span&gt; &lt;span&gt;너무&lt;/span&gt; &lt;span&gt;많은&lt;/span&gt; &lt;span&gt;노드를&lt;/span&gt; &lt;span&gt;동기화하는&lt;/span&gt; &lt;span&gt;데&lt;/span&gt; &lt;span&gt;지연이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;최대&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;구성은&lt;/span&gt; &lt;span&gt;네트워크&lt;/span&gt; &lt;span&gt;구성에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;달라지므로&lt;/span&gt; &lt;span&gt;각자의&lt;/span&gt; &lt;span&gt;환경에&lt;/span&gt; &lt;span&gt;맞게&lt;/span&gt; &lt;span&gt;구성하도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;트랜잭션&lt;/span&gt; &lt;span&gt;크기를&lt;/span&gt; &lt;span&gt;명시적으로&lt;/span&gt; &lt;span&gt;제한하지&lt;/span&gt; &lt;span&gt;않지만&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;집합은&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;상주&lt;/span&gt; &lt;span&gt;버퍼로&lt;/span&gt; &lt;span&gt;처리되므로&lt;/span&gt; &lt;span&gt;결과적으로&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;트랜잭션&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;예&lt;/span&gt;&lt;span&gt;: LOAD DATA)&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;성능에&lt;/span&gt; &lt;span&gt;부정적인&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;미칠&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt; &lt;span&gt;방지하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt;&lt;span&gt; wsrep_max_ws_rows &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; wsrep_max_ws_size &lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;변수는&lt;/span&gt; &lt;span&gt;기본적으로&lt;/span&gt; &lt;span&gt;트랜잭션&lt;/span&gt; &lt;span&gt;행을&lt;/span&gt;&lt;span&gt; 128K&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;트랜잭션&lt;/span&gt; &lt;span&gt;크기를&lt;/span&gt;&lt;span&gt; 2Gb&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;제한한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;사용자는&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;제한을&lt;/span&gt; &lt;span&gt;늘릴&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;향후&lt;/span&gt; &lt;span&gt;버전에서는&lt;/span&gt; &lt;span&gt;트랜잭션&lt;/span&gt; &lt;span&gt;조각화에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;지원을&lt;/span&gt; &lt;span&gt;추가할&lt;/span&gt; &lt;span&gt;예정이라고&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; MariaDB&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;고가용성을&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;솔루션으로&lt;/span&gt; &lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;살펴보았다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;솔루션이&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt; &lt;span&gt;Galera Cluster&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;특징은&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;역할로&lt;/span&gt; &lt;span&gt;클러스터에&lt;/span&gt; &lt;span&gt;참여하는&lt;/span&gt; &lt;span&gt;구조로&lt;/span&gt; &lt;span&gt;운영되며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;사이의&lt;/span&gt; &lt;span&gt;연결이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;외부&lt;/span&gt; &lt;span&gt;wsrep API&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;통한&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;복제가&lt;/span&gt; &lt;span&gt;이루어진다는&lt;/span&gt; &lt;span&gt;점에서&lt;/span&gt; &lt;span&gt;흥미로웠다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이후&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;방법과&lt;/span&gt; &lt;span&gt;장애조치시&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;선정&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;옵션에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;포스트에서&lt;/span&gt; &lt;span&gt;다뤄볼&lt;/span&gt; &lt;span&gt;예정이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://galeracluster.com/library/documentation/&quot;&gt;https://galeracluster.com/library/documentation/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;http://galeracluster.com/documentation-webpages/galera-documentation.pdf&quot;&gt;http://galeracluster.com/documentation-webpages/galera-documentation.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;http://galeracluster.com/documentation-webpages/index.html&quot;&gt;http://galeracluster.com/documentation-webpages/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html&quot;&gt;https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://mariadb.com/kb/en/library/getting-started-with-mariadb-galera-cluster/&quot;&gt;https://mariadb.com/kb/en/library/getting-started-with-mariadb-galera-cluster/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://severalnines.com/resources/whitepapers/galera-cluster-mysql-tutorial/&quot;&gt;https://severalnines.com/resources/whitepapers/galera-cluster-mysql-tutorial/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.slideshare.net/marcotusa/galera-explained-3&quot;&gt;https://www.slideshare.net/marcotusa/galera-explained-3&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MariaDB Galera Cluster - Known Limitations : &lt;a href=&quot;https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/&quot;&gt;https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://galeracluster.com/library/faq.html&quot;&gt;https://galeracluster.com/library/faq.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.slideshare.net/AbdulManaf19/mariadb-galera-cluster-63088921&quot;&gt;https://www.slideshare.net/AbdulManaf19/mariadb-galera-cluster-63088921&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-08-07 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, MariaDB, Galera Cluster, &lt;/span&gt;&lt;span&gt;마리아디비&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;마이에스큐엘&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;갈레라&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt;&lt;span&gt;, MariaDB &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt;, MariaDB Cluster, MySQL Cluster, MariaDB Replication&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>Galera Cluster</category>
      <category>mariadb</category>
      <category>MariaDB cluster</category>
      <category>MariaDB Replication</category>
      <category>MariaDB 복제</category>
      <category>MySQL</category>
      <category>mysql cluster</category>
      <category>갈레라 클러스터</category>
      <category>마리아디비</category>
      <category>마이에스큐엘</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1536</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQLMariaDB-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EB%8B%A4%EC%A4%91-%EB%A7%88%EC%8A%A4%ED%84%B0-%EB%B3%B5%EC%A0%9C%EB%A5%BC-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-Galera-Cluster-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0#entry1536comment</comments>
      <pubDate>Mon, 7 Aug 2023 16:23:35 +0900</pubDate>
    </item>
    <item>
      <title>ProxySQL 은 서비스에 필요한 설정값을 어디에 저장하고 재사용할까?</title>
      <link>https://sqlmvp.tistory.com/entry/ProxySQL-%EC%9D%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%A4%EC%A0%95%EA%B0%92%EC%9D%84-%EC%96%B4%EB%94%94%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B3%A0-%EC%9E%AC%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;은&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;서비스에&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설정값을&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;어디에&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;저장하고&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;재사용할까&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL, ProxySQL&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;추가하거나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;사용자를&lt;/span&gt; &lt;span&gt;등록하는&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;변경하고&lt;/span&gt; &lt;span&gt;적용하려면&lt;/span&gt; &lt;span&gt;관리자&lt;/span&gt; &lt;span&gt;모드&lt;/span&gt; &lt;span&gt;접속을&lt;/span&gt; &lt;span&gt;통해서&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;수정하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;수정한&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;중단&lt;/span&gt; &lt;span&gt;없이&lt;/span&gt; &lt;span&gt;runtime&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;적용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;재시작시&lt;/span&gt; &lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;유지하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;디스크로&lt;/span&gt; &lt;span&gt;저장하여&lt;/span&gt; &lt;span&gt;재사용&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;그림을&lt;/span&gt; &lt;span&gt;참고하여&lt;/span&gt; &lt;span&gt;설명하면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;관리자&lt;/span&gt; &lt;span&gt;모드에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;수정하는&lt;/span&gt; &lt;span&gt;부분은&lt;/span&gt; &lt;span&gt;MEMORY&lt;/span&gt;&lt;span&gt;영역이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;관리자에서&lt;/span&gt; &lt;span&gt;수정하였을&lt;/span&gt; &lt;span&gt;경우에는&lt;/span&gt; &lt;span&gt;아직&lt;/span&gt; &lt;span&gt;메모리에서만&lt;/span&gt; &lt;span&gt;적용된&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;적용되지&lt;/span&gt; &lt;span&gt;않은&lt;/span&gt; &lt;span&gt;상태이다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;아마도&lt;/span&gt; &lt;span&gt;실수가&lt;/span&gt; &lt;span&gt;발생하였을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;보호를&lt;/span&gt; &lt;span&gt;위해서&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항을&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;적용시키지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;모델로&lt;/span&gt; &lt;span&gt;디자인한&lt;/span&gt; &lt;span&gt;것&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.) &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;LOAD &lt;/span&gt;&lt;span&gt;명령어를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;RUNTIME&lt;/span&gt;&lt;span&gt;영역에&lt;/span&gt; &lt;span&gt;적용을&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. RUNTIME&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;적용되면&lt;/span&gt; &lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;반영되어&lt;/span&gt; &lt;span&gt;운영된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;수정하였더라도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;런타임&lt;/span&gt; &lt;span&gt;기준으로&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;값&lt;/span&gt; &lt;span&gt;롤백이&lt;/span&gt; &lt;span&gt;필요할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;런타임의&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;메모리로&lt;/span&gt; &lt;span&gt;SAVE&lt;/span&gt;&lt;span&gt;하여&lt;/span&gt; &lt;span&gt;RUNTIME&lt;/span&gt;&lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;메모리로&lt;/span&gt; &lt;span&gt;저장할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;영역별로&lt;/span&gt; &lt;span&gt;LOAD &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;SAVE&lt;/span&gt;&lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lcz7u/btsp0Q6f0gE/fudaDUIRVJboyktgpGORY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lcz7u/btsp0Q6f0gE/fudaDUIRVJboyktgpGORY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lcz7u/btsp0Q6f0gE/fudaDUIRVJboyktgpGORY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flcz7u%2Fbtsp0Q6f0gE%2FfudaDUIRVJboyktgpGORY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;456&quot; height=&quot;352&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;시작할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt; config &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;읽어들여&lt;/span&gt;&lt;span&gt; datadir&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;위치를&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그&lt;/span&gt; &lt;span&gt;다음에&lt;/span&gt;&lt;span&gt; datadir &lt;/span&gt;&lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;위치한&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;있는지&lt;/span&gt; &lt;span&gt;여부를&lt;/span&gt; &lt;span&gt;확인하여&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;읽어&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;값으로&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적인&lt;/span&gt; &lt;span&gt;설치를&lt;/span&gt; &lt;span&gt;진행하였다면&lt;/span&gt; &lt;span&gt;config &lt;/span&gt;&lt;span&gt;파일은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;존재한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/etc/proxysql.cnf&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIOElY/btspTLdHZpk/gw6Zmgcvsaxat49zXZY611/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIOElY/btspTLdHZpk/gw6Zmgcvsaxat49zXZY611/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIOElY/btspTLdHZpk/gw6Zmgcvsaxat49zXZY611/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIOElY%2FbtspTLdHZpk%2Fgw6Zmgcvsaxat49zXZY611%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;763&quot; height=&quot;256&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;datadir &lt;/span&gt;&lt;span&gt;경로에서&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;발견되면&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;지속형&lt;/span&gt; &lt;span&gt;온디스크&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt;&lt;span&gt;(proxysql.db)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;읽어&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;초기화한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt; &lt;span&gt;디스크는&lt;/span&gt; &lt;span&gt;메모리에&lt;/span&gt; &lt;span&gt;로드된&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;런타임&lt;/span&gt; &lt;span&gt;구성으로&lt;/span&gt; &lt;span&gt;전파된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;경우에는&lt;/span&gt; &lt;span&gt;config &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;읽어&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;내&lt;/span&gt; &lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;적용한&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;온디스크&lt;/span&gt; &lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;저장되고&lt;/span&gt; &lt;span&gt;런타임에&lt;/span&gt; &lt;span&gt;적용한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAYXBt/btsp3mXBMTl/wNXzQ2UzJm9ua7IlP8nXKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAYXBt/btsp3mXBMTl/wNXzQ2UzJm9ua7IlP8nXKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAYXBt/btsp3mXBMTl/wNXzQ2UzJm9ua7IlP8nXKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAYXBt%2Fbtsp3mXBMTl%2FwNXzQ2UzJm9ua7IlP8nXKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;589&quot; height=&quot;192&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;설정&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;발견되면&lt;/span&gt; &lt;span&gt;config &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;값은&lt;/span&gt; &lt;span&gt;사용되지&lt;/span&gt; &lt;span&gt;않는다는&lt;/span&gt; &lt;span&gt;점에&lt;/span&gt; &lt;span&gt;유의해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;정상적인&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt; &lt;span&gt;중에&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;지속형&lt;/span&gt; &lt;span&gt;온디스크&lt;/span&gt; &lt;span&gt;데이터베이스에서만&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;내&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;초기화&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;시작할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;config &lt;/span&gt;&lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;설정값을&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;런타임에&lt;/span&gt; &lt;span&gt;사용하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;순서를&lt;/span&gt; &lt;span&gt;적용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최신의&lt;/span&gt; &lt;span&gt;Config &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;배포한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반적인&lt;/span&gt; &lt;span&gt;설치를&lt;/span&gt; &lt;span&gt;진행하였다면&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일이&lt;/span&gt; &lt;span&gt;위치한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/etc/proxysql.cnf&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;배포한&lt;/span&gt; &lt;span&gt;Config &lt;/span&gt;&lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;적절한&lt;/span&gt; &lt;span&gt;권한&lt;/span&gt; &lt;span&gt;부여한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실습에서는&lt;/span&gt; &lt;span&gt;775 &lt;/span&gt;&lt;span&gt;권한을&lt;/span&gt; &lt;span&gt;부여하였다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo chmod 775 proxysql.cnf &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;실행중인&lt;/span&gt; &lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;중지한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;중지전에&lt;/span&gt; &lt;span&gt;유입되는&lt;/span&gt; &lt;span&gt;트래픽은&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;곳으로&lt;/span&gt; &lt;span&gt;라우팅&lt;/span&gt; &lt;span&gt;되도록&lt;/span&gt; &lt;span&gt;하여&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;주의한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo service proxysql stop&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;설정이&lt;/span&gt; &lt;span&gt;사용되지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;삭제한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo rm -rf /var/lib/proxysql/proxy*&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;initial &lt;/span&gt;&lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo service proxysql start initial&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실제&lt;/span&gt; &lt;span&gt;현업에서&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;운영한다고&lt;/span&gt; &lt;span&gt;하면&lt;/span&gt; &lt;span&gt;필요에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;다수의&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;운영하는&lt;/span&gt; &lt;span&gt;환경이&lt;/span&gt; &lt;span&gt;발생한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;환경에서는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;수정하고&lt;/span&gt; &lt;span&gt;이력을&lt;/span&gt; &lt;span&gt;관리하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;수정하는&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;이력이&lt;/span&gt; &lt;span&gt;남지&lt;/span&gt; &lt;span&gt;않아&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;불편하면서도&lt;/span&gt; &lt;span&gt;위험한&lt;/span&gt; &lt;span&gt;상황이&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래서&lt;/span&gt; &lt;span&gt;정책적으로&lt;/span&gt; &lt;span&gt;config&lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;기준으로&lt;/span&gt; &lt;span&gt;수정하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이력&lt;/span&gt; &lt;span&gt;관리는&lt;/span&gt; &lt;span&gt;Git &lt;/span&gt;&lt;span&gt;등을&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;안전한&lt;/span&gt; &lt;span&gt;이력&lt;/span&gt; &lt;span&gt;관리를&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;시작&lt;/span&gt; &lt;span&gt;시&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;정보가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;config &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;혼란없이&lt;/span&gt; &lt;span&gt;다수의&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;안전한&lt;/span&gt; &lt;span&gt;관리가&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Configuration system : &lt;a href=&quot;https://github.com/sysown/proxysql/blob/master/doc/configuration_system.md&quot;&gt;https://github.com/sysown/proxysql/blob/master/doc/configuration_system.md&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-08-04 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, ProxySQL, ProxySQL&lt;/span&gt;&lt;span&gt;설정&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;구성관리&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;시작&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>proxysql</category>
      <category>ProxySQL 구성관리</category>
      <category>ProxySQL 시작</category>
      <category>ProxySQL설정</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1535</guid>
      <comments>https://sqlmvp.tistory.com/entry/ProxySQL-%EC%9D%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%A4%EC%A0%95%EA%B0%92%EC%9D%84-%EC%96%B4%EB%94%94%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B3%A0-%EC%9E%AC%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C#entry1535comment</comments>
      <pubDate>Fri, 4 Aug 2023 10:49:43 +0900</pubDate>
    </item>
    <item>
      <title>MySQL HA + ProxySQL 환경에서 서비스 장애조치 구성</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-HA-ProxySQL-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%9E%A5%EC%95%A0%EC%A1%B0%EC%B9%98-%EA%B5%AC%EC%84%B1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;MySQL HA + ProxySQL &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;환경에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;서비스&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;장애조치&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;구성&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL, ProxySQL&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL HA + ProxySQL &lt;/span&gt;&lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;장애조치가&lt;/span&gt; &lt;span&gt;어떻게&lt;/span&gt; &lt;span&gt;동작하는지&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실습&lt;/span&gt; &lt;span&gt;환경은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;포스트를&lt;/span&gt; &lt;span&gt;참고하여&lt;/span&gt; &lt;span&gt;구성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt; (MySQL &lt;/span&gt;&lt;span&gt;설치부터&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;설정까지&lt;/span&gt; &lt;span&gt;한번에&lt;/span&gt;&lt;span&gt;) : &lt;a href=&quot;https://sungwookkang.com/1529&quot;&gt;https://sungwookkang.com/1529&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;MySQL HA &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;환경에서&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Orchestrator&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;활용한&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;리팩토링&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;및&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;자동&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;장애조치&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;구성&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; : &lt;a href=&quot;https://sungwookkang.com/1533&quot;&gt;https://sungwookkang.com/1533&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실습에&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;구성이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Server Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;OS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;Service Version&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;proxy-sql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.49&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;ProxySQL version 2.4.2-0-g70336d4, codename Truls&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-master&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.97&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-slave1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.10&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-slave2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.13&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;proxy-orchestrator&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.24&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33, container.d&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL HA &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;구성으로&lt;/span&gt; &lt;span&gt;1&lt;/span&gt;&lt;span&gt;대의&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;서버와&lt;/span&gt;&lt;span&gt;, 2&lt;/span&gt;&lt;span&gt;대의&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;GTID &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;장애시&lt;/span&gt; &lt;span&gt;역할&lt;/span&gt; &lt;span&gt;변경을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;오케스트레이터로&lt;/span&gt; &lt;span&gt;자동&lt;/span&gt; &lt;span&gt;failover&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;구성해&lt;/span&gt; &lt;span&gt;놓은&lt;/span&gt; &lt;span&gt;상태이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;0.png&quot; data-origin-width=&quot;1034&quot; data-origin-height=&quot;458&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ozy98/btspK36LmXm/tmz03z4fj2EW2kDH8MJRX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ozy98/btspK36LmXm/tmz03z4fj2EW2kDH8MJRX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ozy98/btspK36LmXm/tmz03z4fj2EW2kDH8MJRX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fozy98%2FbtspK36LmXm%2Ftmz03z4fj2EW2kDH8MJRX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1034&quot; height=&quot;458&quot; data-filename=&quot;0.png&quot; data-origin-width=&quot;1034&quot; data-origin-height=&quot;458&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;헬스&lt;/span&gt; &lt;span&gt;체크하여&lt;/span&gt; &lt;span&gt;서비스에&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;판단한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래는&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;체크하는&lt;/span&gt; &lt;span&gt;모듈이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;connect : &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;백엔드&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;연결하고&lt;/span&gt; &lt;span&gt;성공&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;실패를&lt;/span&gt; &lt;span&gt;mysql_server_connect_log &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt; &lt;span&gt;기록한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ping : &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt; &lt;span&gt;(&lt;/span&gt;&lt;span&gt;백엔드&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; ping&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;보내고&lt;/span&gt; &lt;span&gt;성공&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;실패를&lt;/span&gt; &lt;span&gt;mysql_server_ping_log &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt; &lt;span&gt;기록한다&lt;/span&gt;&lt;span&gt;. mysql-monitor_ping_max_failures&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;하트비트가&lt;/span&gt; &lt;span&gt;없으면&lt;/span&gt;&lt;span&gt; MySQL_Hostgroups_Manager&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;신호를&lt;/span&gt; &lt;span&gt;보내&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;연결을&lt;/span&gt; &lt;span&gt;끊는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;replication lag : max_replication_lag&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; 0&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;값으로&lt;/span&gt; &lt;span&gt;구성된&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;노드&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;백엔드&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;Seconds_Behind_Master&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;확인하고&lt;/span&gt;&lt;span&gt; mysql_server_replication_lag_log &lt;/span&gt;&lt;span&gt;테이블에&lt;/span&gt; &lt;span&gt;확인을&lt;/span&gt; &lt;span&gt;기록한다&lt;/span&gt;&lt;span&gt;. Seconds_Behind_Master &amp;gt; max_replication_lag&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt; Seconds_Behind_Master &amp;lt; max_replication_lag&lt;/span&gt;&lt;span&gt;까지&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;회피한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;read only : mysql_replication_hostgroup &lt;/span&gt;&lt;span&gt;테이블의&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹에&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;호스트에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;전용을&lt;/span&gt; &lt;span&gt;확인하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;상태값은&lt;/span&gt; &lt;span&gt;mysql_server_read_only_log&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;기록된다&lt;/span&gt;&lt;span&gt;. read_only=1&lt;/span&gt;&lt;span&gt;이면&lt;/span&gt; &lt;span&gt;호스트가&lt;/span&gt;&lt;span&gt; reader_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;복사&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;이동되고&lt;/span&gt;&lt;span&gt;, read_only=0&lt;/span&gt;&lt;span&gt;이면&lt;/span&gt; &lt;span&gt;호스트가&lt;/span&gt;&lt;span&gt; writer_hostgroup&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;복사&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;이동된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서&lt;/span&gt; &lt;span&gt;다루는&lt;/span&gt; &lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;시나리오는&lt;/span&gt; &lt;span&gt;두&lt;/span&gt; &lt;span&gt;가지이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;시나리오&lt;/span&gt; &lt;span&gt;1 : slave &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하여&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;서버로는&lt;/span&gt; &lt;span&gt;read &lt;/span&gt;&lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;요청하지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;2 : master &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하여&lt;/span&gt; &lt;span&gt;slave &lt;/span&gt;&lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나가&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;승격되고&lt;/span&gt;&lt;span&gt;, ProxySQL&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹에서&lt;/span&gt; &lt;span&gt;Write&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;변경한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;시나리오에&lt;/span&gt; &lt;span&gt;따른&lt;/span&gt; &lt;span&gt;실습을&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;전에&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;현재의&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;살펴본다&lt;/span&gt;&lt;span&gt;. proxy-sql &lt;/span&gt;&lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt; &lt;span&gt;모드로&lt;/span&gt; &lt;span&gt;접속한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql -uadmin -padmin -h 127.0.0.1 -P6032 --prompt='admin&amp;gt; '&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹에&lt;/span&gt; &lt;span&gt;등록된&lt;/span&gt; &lt;span&gt;서버들의&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. hostgroup_id = 1 &lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;write&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;그룹이며&lt;/span&gt;&lt;span&gt;, hostgroup_id = 2&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;읽기가&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;그룹이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;0_1.png&quot; data-origin-width=&quot;971&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1wj1U/btspMJmDuqy/Fef5d0gD5paHHGnCiymYvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1wj1U/btspMJmDuqy/Fef5d0gD5paHHGnCiymYvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1wj1U/btspMJmDuqy/Fef5d0gD5paHHGnCiymYvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1wj1U%2FbtspMJmDuqy%2FFef5d0gD5paHHGnCiymYvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;971&quot; height=&quot;171&quot; data-filename=&quot;0_1.png&quot; data-origin-width=&quot;971&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;등록된&lt;/span&gt; &lt;span&gt;서버들의&lt;/span&gt; &lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;여기서&lt;/span&gt; &lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;오류로그가&lt;/span&gt; &lt;span&gt;있다면&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;서버와의&lt;/span&gt; &lt;span&gt;통신에&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * FROM monitor.mysql_server_connect_log order by time_start_us desc limit 10;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/08mWj/btspMJ728U5/ko2NQUVO9loQsQiADzyyKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/08mWj/btspMJ728U5/ko2NQUVO9loQsQiADzyyKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/08mWj/btspMJ728U5/ko2NQUVO9loQsQiADzyyKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F08mWj%2FbtspMJ728U5%2Fko2NQUVO9loQsQiADzyyKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;762&quot; height=&quot;296&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위의&lt;/span&gt; &lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;로그가&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;쿼리가&lt;/span&gt; &lt;span&gt;호출될&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;확인된다면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;아래는&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;헬스&lt;/span&gt; &lt;span&gt;체크를&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;핑&lt;/span&gt; &lt;span&gt;로그이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from monitor.mysql_server_ping_log order by time_start_us desc limit 10;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;292&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGheBI/btspXlK3x2u/LRvYrkkeDYuxDiwMn56YPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGheBI/btspXlK3x2u/LRvYrkkeDYuxDiwMn56YPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGheBI/btspXlK3x2u/LRvYrkkeDYuxDiwMn56YPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGheBI%2FbtspXlK3x2u%2FLRvYrkkeDYuxDiwMn56YPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;713&quot; height=&quot;292&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;292&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;클라이언트용&lt;/span&gt; &lt;span&gt;포트로&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;상태에서&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;응답하는지&lt;/span&gt; &lt;span&gt;테스트한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql -uubuntu -p123456 -h127.0.0.1 -P6033 -e &quot;SELECT @@hostname&quot;;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lfNrS/btspOCArpA0/0p0PAx2oJImNtkKAw93l40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lfNrS/btspOCArpA0/0p0PAx2oJImNtkKAw93l40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lfNrS/btspOCArpA0/0p0PAx2oJImNtkKAw93l40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlfNrS%2FbtspOCArpA0%2F0p0PAx2oJImNtkKAw93l40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;762&quot; height=&quot;338&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트에서는&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;연결된&lt;/span&gt; &lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;풀에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실제&lt;/span&gt; &lt;span&gt;연결에&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;stats_mysql_connection_pool&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;status &lt;/span&gt;&lt;span&gt;컬럼에&lt;/span&gt; &lt;span&gt;상태가&lt;/span&gt; &lt;span&gt;변경되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from stats_mysql_connection_pool;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3BHmb/btspTImH6WP/MkDCLFiAoaCR4jU0NRwAtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3BHmb/btspTImH6WP/MkDCLFiAoaCR4jU0NRwAtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3BHmb/btspTImH6WP/MkDCLFiAoaCR4jU0NRwAtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3BHmb%2FbtspTImH6WP%2FMkDCLFiAoaCR4jU0NRwAtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;822&quot; height=&quot;166&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;1. &lt;span&gt;&amp;nbsp;&lt;/span&gt;slave &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;장애&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;slave &lt;/span&gt;&lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나에&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;상황으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;서버로는&lt;/span&gt; &lt;span&gt;읽기&lt;/span&gt; &lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;하지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;하여&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;장애를&lt;/span&gt; &lt;span&gt;예방한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-slave2 &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt;&lt;span&gt;, MySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;중지한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo systemctl stop mysql&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo systemctl status mysql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2mQ2P/btspTIUwRDd/A6KZ3aHlfK2kemk1ckGuA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2mQ2P/btspTIUwRDd/A6KZ3aHlfK2kemk1ckGuA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2mQ2P/btspTIUwRDd/A6KZ3aHlfK2kemk1ckGuA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2mQ2P%2FbtspTIUwRDd%2FA6KZ3aHlfK2kemk1ckGuA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;302&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;종료된&lt;/span&gt; &lt;span&gt;상태에서&lt;/span&gt; &lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;관리자의&lt;/span&gt; &lt;span&gt;mysql_servers &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;여전히&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt;&lt;span&gt; ONLINE &lt;/span&gt;&lt;span&gt;상태로&lt;/span&gt; &lt;span&gt;보이는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사실&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;테이블은&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;관리하는&lt;/span&gt; &lt;span&gt;것이지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;나타내지는&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다만&lt;/span&gt; &lt;span&gt;수동으로&lt;/span&gt; &lt;span&gt;status &lt;/span&gt;&lt;span&gt;값을&lt;/span&gt; &lt;span&gt;OFFLINE&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;변경하면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;활성화&lt;/span&gt; &lt;span&gt;상태여도&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;보내지&lt;/span&gt; &lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5_0.png&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PZbTa/btspTLczTGg/Wl999mnwEASPCKCHRpbUt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PZbTa/btspTLczTGg/Wl999mnwEASPCKCHRpbUt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PZbTa/btspTLczTGg/Wl999mnwEASPCKCHRpbUt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPZbTa%2FbtspTLczTGg%2FWl999mnwEASPCKCHRpbUt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;172&quot; data-filename=&quot;5_0.png&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;실시간의&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;확인하려면&lt;/span&gt; &lt;span&gt;runtime_mysql_servers &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블의&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;중지된&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;상태가&lt;/span&gt; &lt;span&gt;SHUNNED&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;표시된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from runtime_mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5_1.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dnuLR7/btspUgwHWur/yctcBkKJsMofCA9Le1K240/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dnuLR7/btspUgwHWur/yctcBkKJsMofCA9Le1K240/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dnuLR7/btspUgwHWur/yctcBkKJsMofCA9Le1K240/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdnuLR7%2FbtspUgwHWur%2FyctcBkKJsMofCA9Le1K240%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;799&quot; height=&quot;166&quot; data-filename=&quot;5_1.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;풀&lt;/span&gt; &lt;span&gt;상태에서도&lt;/span&gt; &lt;span&gt;동일하게&lt;/span&gt; &lt;span&gt;SHUNNED&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt; &lt;span&gt;나타나는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from stats_mysql_connection_pool;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wqjiH/btspK36LmYI/RpEB3ypzkzEwDWOqBFOwzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wqjiH/btspK36LmYI/RpEB3ypzkzEwDWOqBFOwzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wqjiH/btspK36LmYI/RpEB3ypzkzEwDWOqBFOwzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwqjiH%2FbtspK36LmYI%2FRpEB3ypzkzEwDWOqBFOwzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;167&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;확인해보면&lt;/span&gt; &lt;span&gt;중지된&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt;&lt;span&gt;(mysql-slave2)&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;실패&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * FROM monitor.mysql_server_connect_log order by time_start_us desc limit 10;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;263&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brLWNz/btspTIfWolZ/POh1ck0mnvDaE1GDBTnvXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brLWNz/btspTIfWolZ/POh1ck0mnvDaE1GDBTnvXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brLWNz/btspTIfWolZ/POh1ck0mnvDaE1GDBTnvXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrLWNz%2FbtspTIfWolZ%2FPOh1ck0mnvDaE1GDBTnvXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;990&quot; height=&quot;263&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;263&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;핑&lt;/span&gt; &lt;span&gt;로그에서도&lt;/span&gt; &lt;span&gt;오류를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from monitor.mysql_server_ping_log order by time_start_us desc limit 10;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSu5RZ/btspNQeLmqH/GK8YVcpQMlCC4Fyp9ZcX61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSu5RZ/btspNQeLmqH/GK8YVcpQMlCC4Fyp9ZcX61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSu5RZ/btspNQeLmqH/GK8YVcpQMlCC4Fyp9ZcX61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSu5RZ%2FbtspNQeLmqH%2FGK8YVcpQMlCC4Fyp9ZcX61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;966&quot; height=&quot;259&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;259&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-slave2 &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;중지된&lt;/span&gt; &lt;span&gt;상태로&lt;/span&gt;&lt;span&gt;, ProxySQL&lt;/span&gt;&lt;span&gt;에서도&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;문제점을&lt;/span&gt; &lt;span&gt;인지한&lt;/span&gt; &lt;span&gt;상태이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이제&lt;/span&gt; &lt;span&gt;클라이언트&lt;/span&gt; &lt;span&gt;연결을&lt;/span&gt; &lt;span&gt;통해서&lt;/span&gt; &lt;span&gt;실제&lt;/span&gt; &lt;span&gt;운영중인&lt;/span&gt; &lt;span&gt;서버로만&lt;/span&gt; &lt;span&gt;트래픽이&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;라우팅&lt;/span&gt; &lt;span&gt;되는지&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;테스트를&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;proxy-sql &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;콘솔에서&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;번&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql -uubuntu -p123456 -h127.0.0.1 -P6033 -e &quot;SELECT @@hostname&quot;;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tUwIY/btspVNVgbIw/z87us6qUaaFGCQAEEdnsEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tUwIY/btspVNVgbIw/z87us6qUaaFGCQAEEdnsEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tUwIY/btspVNVgbIw/z87us6qUaaFGCQAEEdnsEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtUwIY%2FbtspVNVgbIw%2Fz87us6qUaaFGCQAEEdnsEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;748&quot; height=&quot;221&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제의&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;제외하고&lt;/span&gt; &lt;span&gt;정상적인&lt;/span&gt; &lt;span&gt;서버로만&lt;/span&gt; &lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;라우팅하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. ProxySQL&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;문제의&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;감지하여&lt;/span&gt; &lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;보내지&lt;/span&gt; &lt;span&gt;않음으로써&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;장애를&lt;/span&gt; &lt;span&gt;예방할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다른&lt;/span&gt; &lt;span&gt;시나리오&lt;/span&gt; &lt;span&gt;테스트를&lt;/span&gt; &lt;span&gt;진행하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;중지된&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;시작하여&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;원상&lt;/span&gt; &lt;span&gt;복구한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;2. master &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;서버&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;장애&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;시나리오는&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하여&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;다운되고&lt;/span&gt;&lt;span&gt;, slave &lt;/span&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;중&lt;/span&gt; &lt;span&gt;하나가&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;승격되어&lt;/span&gt; &lt;span&gt;운영되는&lt;/span&gt; &lt;span&gt;환경이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;장애를&lt;/span&gt; &lt;span&gt;감지하고&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;승격시키는&lt;/span&gt; &lt;span&gt;역할은&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;오케스트레이터가&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-master &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;중지한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오케스트레이터에서는&lt;/span&gt; &lt;span&gt;master &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;장애를&lt;/span&gt; &lt;span&gt;감지하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;중지된&lt;/span&gt; &lt;span&gt;master &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;클러스터에서&lt;/span&gt; &lt;span&gt;격리한&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;slave &lt;/span&gt;&lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나를&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;승격여&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;토폴로지를&lt;/span&gt; &lt;span&gt;재구성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.png&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUFFIP/btspGLZGX65/T5IjiUx0UZaXSyaJp3gex1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUFFIP/btspGLZGX65/T5IjiUx0UZaXSyaJp3gex1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUFFIP/btspGLZGX65/T5IjiUx0UZaXSyaJp3gex1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUFFIP%2FbtspGLZGX65%2FT5IjiUx0UZaXSyaJp3gex1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;596&quot; height=&quot;140&quot; data-filename=&quot;10.png&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;새로&lt;/span&gt; &lt;span&gt;구성된&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt; &lt;span&gt;이전&lt;/span&gt; &lt;span&gt;slave&lt;/span&gt;&lt;span&gt;역할이었던&lt;/span&gt; &lt;span&gt;mysql-slave2(172.30.1.13)&lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;승격된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;나머지&lt;/span&gt; &lt;span&gt;slave &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;복제하고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11.png&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/naqT7/btspNhi0U1R/hVWaWowLv5jDrZdx9qtjuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/naqT7/btspNhi0U1R/hVWaWowLv5jDrZdx9qtjuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/naqT7/btspNhi0U1R/hVWaWowLv5jDrZdx9qtjuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnaqT7%2FbtspNhi0U1R%2FhVWaWowLv5jDrZdx9qtjuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;671&quot; height=&quot;144&quot; data-filename=&quot;11.png&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서도&lt;/span&gt; &lt;span&gt;커넥션&lt;/span&gt; &lt;span&gt;풀&lt;/span&gt; &lt;span&gt;로그를&lt;/span&gt; &lt;span&gt;확인해보면&lt;/span&gt; &lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하던&lt;/span&gt; &lt;span&gt;mysql-master(172.30.1.97)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;있음을&lt;/span&gt; &lt;span&gt;인지한&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from stats_mysql_connection_pool;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;12.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YDoiU/btspNQ0ciZ5/KKniKvIwZdPyvMPJGfH4jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YDoiU/btspNQ0ciZ5/KKniKvIwZdPyvMPJGfH4jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YDoiU/btspNQ0ciZ5/KKniKvIwZdPyvMPJGfH4jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYDoiU%2FbtspNQ0ciZ5%2FKKniKvIwZdPyvMPJGfH4jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;711&quot; height=&quot;167&quot; data-filename=&quot;12.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실행중인&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;확인해봐도&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;인지한&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select * from runtime_mysql_servers;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;13.png&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5ILYc/btspOA3JHsI/AOtlAirrS99zPSRkNJq9A1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5ILYc/btspOA3JHsI/AOtlAirrS99zPSRkNJq9A1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5ILYc/btspOA3JHsI/AOtlAirrS99zPSRkNJq9A1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5ILYc%2FbtspOA3JHsI%2FAOtlAirrS99zPSRkNJq9A1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;168&quot; data-filename=&quot;13.png&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;proxy-sql&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;노드가&lt;/span&gt; &lt;span&gt;제외되고&lt;/span&gt; &lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;되는지&lt;/span&gt; &lt;span&gt;확인한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;검색하는&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;실행해보면&lt;/span&gt; &lt;span&gt;문제없이&lt;/span&gt; &lt;span&gt;잘&lt;/span&gt; &lt;span&gt;작동한다&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;mysql -uubuntu -p123456 -h127.0.0.1 -P6033 -e &quot;SELECT @@hostname&quot;;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;14.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CrshN/btspFM5hu6T/haLCNGRfADJecIiweticyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CrshN/btspFM5hu6T/haLCNGRfADJecIiweticyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CrshN/btspFM5hu6T/haLCNGRfADJecIiweticyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCrshN%2FbtspFM5hu6T%2FhaLCNGRfADJecIiweticyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;730&quot; height=&quot;221&quot; data-filename=&quot;14.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하지만&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;상태는&lt;/span&gt; &lt;span&gt;정상적인&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;문제가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;상태는&lt;/span&gt; &lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;mysql-master (&lt;/span&gt;&lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;역할&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;중지되고&lt;/span&gt; &lt;span&gt;mysql-slave2&lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;master &lt;/span&gt;&lt;span&gt;역할로&lt;/span&gt; &lt;span&gt;승격된&lt;/span&gt; &lt;span&gt;상태인데&lt;/span&gt;&lt;span&gt;, mysql_servers &lt;/span&gt;&lt;span&gt;테이블의&lt;/span&gt; &lt;span&gt;정보에는&lt;/span&gt; &lt;span&gt;여전히&lt;/span&gt; &lt;span&gt;이전의&lt;/span&gt; &lt;span&gt;mysql-master &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;hostgroup_id=1&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;등록되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실질적으로&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;Write&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;잘못&lt;/span&gt; &lt;span&gt;인식하고&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;상태이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;업데이트하지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;write&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대해서는&lt;/span&gt; &lt;span&gt;계속해서&lt;/span&gt; &lt;span&gt;실패가&lt;/span&gt; &lt;span&gt;발생하게&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;장애시&lt;/span&gt; &lt;span&gt;hostgroup_id&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;변경하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹으로&lt;/span&gt; &lt;span&gt;관리할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;단&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;역할에&lt;/span&gt; &lt;span&gt;따른&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;Read only &lt;/span&gt;&lt;span&gt;속성값이&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;. master &lt;/span&gt;&lt;span&gt;역할&lt;/span&gt; &lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;read_only =false&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt;, slave &lt;/span&gt;&lt;span&gt;역할의&lt;/span&gt; &lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;read_only=true &lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇지&lt;/span&gt; &lt;span&gt;않으면&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;read_only=false &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;write&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;인식하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;master-master&lt;/span&gt;&lt;span&gt;구조로&lt;/span&gt; &lt;span&gt;인식되어&lt;/span&gt; &lt;span&gt;의도하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;write &lt;/span&gt;&lt;span&gt;오류가&lt;/span&gt; &lt;span&gt;발생할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;15.png&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k4e1v/btspK27PBeX/Dm8HaEBmHDy2HJTIEhluC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k4e1v/btspK27PBeX/Dm8HaEBmHDy2HJTIEhluC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k4e1v/btspK27PBeX/Dm8HaEBmHDy2HJTIEhluC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk4e1v%2FbtspK27PBeX%2FDm8HaEBmHDy2HJTIEhluC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;915&quot; height=&quot;385&quot; data-filename=&quot;15.png&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;write&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;호스트들은&lt;/span&gt; &lt;span&gt;1 &lt;/span&gt;&lt;span&gt;그룹으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;읽기가&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;호스트들은&lt;/span&gt; &lt;span&gt;2 &lt;/span&gt;&lt;span&gt;그룹으로&lt;/span&gt; &lt;span&gt;할당한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;변경하였기에&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항이&lt;/span&gt; &lt;span&gt;런타임으로&lt;/span&gt; &lt;span&gt;적용될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;LOAD &lt;/span&gt;&lt;span&gt;명령어도&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;INSERT INTO mysql_replication_hostgroups VALUES (1,2,'read_only','1=write, 2=read');&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;LOAD MYSQL SERVERS TO RUNTIME;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;SAVE MYSQL SERVERS TO DISK;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;16.png&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIzxDg/btspPaRAfBz/zQolZoyhXYPoeYZx3KpLXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIzxDg/btspPaRAfBz/zQolZoyhXYPoeYZx3KpLXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIzxDg/btspPaRAfBz/zQolZoyhXYPoeYZx3KpLXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIzxDg%2FbtspPaRAfBz%2FzQolZoyhXYPoeYZx3KpLXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;739&quot; height=&quot;171&quot; data-filename=&quot;16.png&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;구성으로&lt;/span&gt; &lt;span&gt;원상&lt;/span&gt; &lt;span&gt;복구하고&lt;/span&gt;&lt;span&gt;, mysql-master (&lt;/span&gt;&lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;역할&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;중지하였을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;오케스트레이터에서&lt;/span&gt; &lt;span&gt;자동&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;조치가&lt;/span&gt; &lt;span&gt;활성화되어&lt;/span&gt; &lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;중지된&lt;/span&gt; &lt;span&gt;master &lt;/span&gt;&lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;클러스터에서&lt;/span&gt; &lt;span&gt;분리하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;정상적인&lt;/span&gt; &lt;span&gt;slave &lt;/span&gt;&lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나를&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;승격한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;slave&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;승격된&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;houstgroup_id=1&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;자동&lt;/span&gt; &lt;span&gt;할당되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;20.png&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgnp8q/btspXkZF838/aRerVnV6lxXSDKR6xZGYxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgnp8q/btspXkZF838/aRerVnV6lxXSDKR6xZGYxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgnp8q/btspXkZF838/aRerVnV6lxXSDKR6xZGYxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbgnp8q%2FbtspXkZF838%2FaRerVnV6lxXSDKR6xZGYxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;385&quot; data-filename=&quot;20.png&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;런타임&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt; &lt;span&gt;테이블에서도&lt;/span&gt; &lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;SHUNNED&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;변경되어&lt;/span&gt; &lt;span&gt;서비스에서&lt;/span&gt; &lt;span&gt;제외된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;master &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;hostgroup_id=1 &lt;/span&gt;&lt;span&gt;변경된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;21.png&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ygBnG/btspUig0HXO/USK0HkNtmbk3oGNXmAJ11k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ygBnG/btspUig0HXO/USK0HkNtmbk3oGNXmAJ11k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ygBnG/btspUig0HXO/USK0HkNtmbk3oGNXmAJ11k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FygBnG%2FbtspUig0HXO%2FUSK0HkNtmbk3oGNXmAJ11k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;546&quot; height=&quot;174&quot; data-filename=&quot;21.png&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;실습을&lt;/span&gt; &lt;span&gt;통해서&lt;/span&gt; &lt;span&gt;mysql_servers&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;테이블은&lt;/span&gt; &lt;span&gt;호스트의&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;관리하는&lt;/span&gt; &lt;span&gt;테이블이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;관리하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;목록&lt;/span&gt; &lt;span&gt;용도로&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;알&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있었으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;실제&lt;/span&gt; &lt;span&gt;서비스들의&lt;/span&gt; &lt;span&gt;상태나&lt;/span&gt; &lt;span&gt;운영가능한&lt;/span&gt; &lt;span&gt;호스트들이&lt;/span&gt; &lt;span&gt;목록은&lt;/span&gt; &lt;span&gt;runtime_mysql_servers &lt;/span&gt;&lt;span&gt;테이블에서&lt;/span&gt; &lt;span&gt;확인&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;알&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있었다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;오케스트레이터와&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;조합하여&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;오케스트레이터에서는&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;장애를&lt;/span&gt; &lt;span&gt;감지하고&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;재구성으로&lt;/span&gt; &lt;span&gt;빠르게&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;승격하여&lt;/span&gt; &lt;span&gt;안정적인&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;유지할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있고&lt;/span&gt;&lt;span&gt;, ProxySQL&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt; &lt;span&gt;오케스트레이션에서&lt;/span&gt; &lt;span&gt;승격시킨&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;확인하여&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹의&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;변경함으로써&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;만약의&lt;/span&gt; &lt;span&gt;상태에도&lt;/span&gt; &lt;span&gt;안정적인&lt;/span&gt; &lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;만들&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator : &lt;a href=&quot;https://github.com/openark/orchestrator&quot;&gt;https://github.com/openark/orchestrator&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Failure detection : &lt;a href=&quot;https://github.com/openark/orchestrator/blob/master/docs/failure-detection.md&quot;&gt;https://github.com/openark/orchestrator/blob/master/docs/failure-detection.md&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL Orchestrator - HA(High Availability) - 2 - &lt;/span&gt;&lt;span&gt;리팩토링&lt;/span&gt;&lt;span&gt; Failover Automated Recovery : &lt;a href=&quot;https://hoing.io/archives/91&quot;&gt;https://hoing.io/archives/91&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Configuration: failure detection : &lt;a href=&quot;https://github.com/openark/orchestrator/blob/master/docs/configuration-failure-detection.md&quot;&gt;https://github.com/openark/orchestrator/blob/master/docs/configuration-failure-detection.md&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&quot;&gt;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&lt;/a&gt; : &lt;a href=&quot;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&quot;&gt;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator: MySQL Replication Topology Manager : &lt;a href=&quot;https://www.percona.com/blog/orchestrator-mysql-replication-topology-manager/&quot;&gt;https://www.percona.com/blog/orchestrator-mysql-replication-topology-manager/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator and ProxySQL : &lt;a href=&quot;https://www.percona.com/blog/orchestrator-and-proxysql/&quot;&gt;https://www.percona.com/blog/orchestrator-and-proxysql/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-08-02 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, ProxySQL, MySQL Replication, MySQL HA, MySQL&lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;오케스트레이션&lt;/span&gt;&lt;span&gt;, MySQL&lt;/span&gt;&lt;span&gt;복제설치&lt;/span&gt;&lt;span&gt;, MySQL MHA, MySQL Orchestrator , MySQL&lt;/span&gt;&lt;span&gt;장애조치&lt;/span&gt;&lt;span&gt;, MySQL&lt;/span&gt;&lt;span&gt;고가용성&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>mysql ha</category>
      <category>MySQL MHA</category>
      <category>MySQL Orchestrator</category>
      <category>MySQL Replication</category>
      <category>MySQL고가용성</category>
      <category>MySQL복제 오케스트레이션</category>
      <category>MySQL복제설치</category>
      <category>MySQL장애조치</category>
      <category>proxysql</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1534</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-HA-ProxySQL-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%9E%A5%EC%95%A0%EC%A1%B0%EC%B9%98-%EA%B5%AC%EC%84%B1#entry1534comment</comments>
      <pubDate>Thu, 3 Aug 2023 01:19:10 +0900</pubDate>
    </item>
    <item>
      <title>MySQL HA 환경에서 Orchestrator를 활용한 클러스터 리팩토링 및 자동 장애조치 구성</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-HA-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-Orchestrator%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81-%EB%B0%8F-%EC%9E%90%EB%8F%99-%EC%9E%A5%EC%95%A0%EC%A1%B0%EC%B9%98-%EA%B5%AC%EC%84%B1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;MySQL HA &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;환경에서&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; Orchestrator&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;를&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;활용한&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;클러스터&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;리팩토링&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;자동&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;장애조치&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;구성&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL, Orchestrator&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL HA &lt;/span&gt;&lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;Orchestrator(&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;lsquo;&lt;/span&gt;&lt;span&gt;오케스트레이터&lt;/span&gt;&lt;span&gt;&amp;rsquo;)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;활용하여&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;리팩토링&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;실습을&lt;/span&gt; &lt;span&gt;진행하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;MySQL HA &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;Orchestrator &lt;/span&gt;&lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;완료되어&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고하여&lt;/span&gt; &lt;span&gt;HA&lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;Orchestrator&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;구성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt; (MySQL &lt;/span&gt;&lt;span&gt;설치부터&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;설정까지&lt;/span&gt; &lt;span&gt;한번에&lt;/span&gt;&lt;span&gt;) : &lt;a href=&quot;https://sungwookkang.com/1529&quot;&gt;https://sungwookkang.com/1529&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;고가용성&lt;/span&gt; &lt;span&gt;운영을&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt;&lt;span&gt; Orchestrator &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://sungwookkang.com/1532&quot;&gt;https://sungwookkang.com/1532&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실습에&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;구성이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Server Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;OS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;Service Version&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;proxy-sql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.49&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;ProxySQL version 2.4.2-0-g70336d4, codename Truls&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-master&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.97&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-slave1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.10&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-slave2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.13&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;proxy-orchestrator&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.24&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33, container.d&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL HA &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;구성으로&lt;/span&gt; &lt;span&gt;1&lt;/span&gt;&lt;span&gt;대의&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;서버와&lt;/span&gt;&lt;span&gt;, 2&lt;/span&gt;&lt;span&gt;대의&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;GTID &lt;/span&gt;&lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo9foK/btso7SknQmZ/ykMm7MdMXziEnfBKcIP2e0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo9foK/btso7SknQmZ/ykMm7MdMXziEnfBKcIP2e0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo9foK/btso7SknQmZ/ykMm7MdMXziEnfBKcIP2e0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo9foK%2Fbtso7SknQmZ%2FykMm7MdMXziEnfBKcIP2e0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;188&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;188&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서&lt;/span&gt; &lt;span&gt;4&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;시나리오를&lt;/span&gt; &lt;span&gt;구성해&lt;/span&gt; &lt;span&gt;보았으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;시나리오별로&lt;/span&gt; &lt;span&gt;실습&lt;/span&gt; &lt;span&gt;과정을&lt;/span&gt; &lt;span&gt;다루었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;1. Slave Refactoring&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Slave&lt;/span&gt;&lt;span&gt;간에&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;리팩토링으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;1, &lt;/span&gt;&lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;마스터에서&lt;/span&gt; &lt;span&gt;싱크하던&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;싱크할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;토폴로지를&lt;/span&gt; &lt;span&gt;변경한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chX7Z3/btspgnbP15Z/iwNukU7T2KXVgBcHZppkGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chX7Z3/btspgnbP15Z/iwNukU7T2KXVgBcHZppkGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chX7Z3/btspgnbP15Z/iwNukU7T2KXVgBcHZppkGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchX7Z3%2FbtspgnbP15Z%2FiwNukU7T2KXVgBcHZppkGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;799&quot; height=&quot;101&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;101&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;2. Master Refactoring (Promote)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;마스터로&lt;/span&gt; &lt;span&gt;승격시키고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;마스터를&lt;/span&gt; &lt;span&gt;슬레이브로&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;전환한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2_1.png&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NAbKZ/btspgoIBdxT/4VvwdVmDktFhbjgdrymJc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NAbKZ/btspgoIBdxT/4VvwdVmDktFhbjgdrymJc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NAbKZ/btspgoIBdxT/4VvwdVmDktFhbjgdrymJc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNAbKZ%2FbtspgoIBdxT%2F4VvwdVmDktFhbjgdrymJc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;585&quot; height=&quot;185&quot; data-filename=&quot;2_1.png&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;3. Master &amp;ndash; Master Refactoring &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나를&lt;/span&gt; &lt;span&gt;마스터로&lt;/span&gt; &lt;span&gt;승격시켜&lt;/span&gt; &lt;span&gt;두&lt;/span&gt; &lt;span&gt;대의&lt;/span&gt; &lt;span&gt;마스터로&lt;/span&gt; &lt;span&gt;구성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/esLEfv/btspcvWnTCW/Ye7046Mmh4Qi8bZvWPhHuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/esLEfv/btspcvWnTCW/Ye7046Mmh4Qi8bZvWPhHuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/esLEfv/btspcvWnTCW/Ye7046Mmh4Qi8bZvWPhHuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FesLEfv%2FbtspcvWnTCW%2FYe7046Mmh4Qi8bZvWPhHuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;227&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;4. Master Failover&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;운영중이던&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;강제로&lt;/span&gt; &lt;span&gt;중지하여&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;상황을&lt;/span&gt; &lt;span&gt;구현한&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;슬레이브로&lt;/span&gt; &lt;span&gt;운영되던&lt;/span&gt; &lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나가&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;마스터가&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;나머지&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;서버와&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;싱크를&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Tm5LF/btspdK6MIUT/HteUvVkBpF7TyVXhLjC8jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Tm5LF/btspdK6MIUT/HteUvVkBpF7TyVXhLjC8jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Tm5LF/btspdK6MIUT/HteUvVkBpF7TyVXhLjC8jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTm5LF%2FbtspdK6MIUT%2FHteUvVkBpF7TyVXhLjC8jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;227&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;실습환경&lt;/span&gt; &lt;/b&gt;&lt;b&gt;&lt;span&gt;살펴보기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;대시보드에&lt;/span&gt; &lt;span&gt;접속하면&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기에서&lt;/span&gt; &lt;span&gt;숫자&lt;/span&gt; &lt;span&gt;3&lt;/span&gt;&lt;span&gt;과&lt;/span&gt; &lt;span&gt;1&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;보이는데&lt;/span&gt;&lt;span&gt;, 3&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성된&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;개수이며&lt;/span&gt;&lt;span&gt;, 2&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;개수이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/27fQt/btso6SZkYhg/dwWUwOKjDoEBuzPETUA48k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/27fQt/btso6SZkYhg/dwWUwOKjDoEBuzPETUA48k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/27fQt/btso6SZkYhg/dwWUwOKjDoEBuzPETUA48k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F27fQt%2Fbtso6SZkYhg%2FdwWUwOKjDoEBuzPETUA48k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;825&quot; height=&quot;297&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;297&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;클릭해보면&lt;/span&gt; &lt;span&gt;현구&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;토폴로지를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;시나리오에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;역할이&lt;/span&gt; &lt;span&gt;변경되기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;서버이름과&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;혼돈하지&lt;/span&gt; &lt;span&gt;않도록&lt;/span&gt; &lt;span&gt;주의한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;754&quot; data-origin-height=&quot;348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdy88m/btspd3rw1ey/JlKn9xEQqiw7cLv6LpwUCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdy88m/btspd3rw1ey/JlKn9xEQqiw7cLv6LpwUCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdy88m/btspd3rw1ey/JlKn9xEQqiw7cLv6LpwUCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbdy88m%2Fbtspd3rw1ey%2FJlKn9xEQqiw7cLv6LpwUCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;754&quot; height=&quot;348&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;754&quot; data-origin-height=&quot;348&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;1. Slave Refactoring&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Slave&lt;/span&gt;&lt;span&gt;간에&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;리팩토링으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;1, &lt;/span&gt;&lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;마스터에서&lt;/span&gt; &lt;span&gt;싱크하던&lt;/span&gt; &lt;span&gt;환경에서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;싱크&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;토폴로지를&lt;/span&gt; &lt;span&gt;변경한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chX7Z3/btspgnbP15Z/iwNukU7T2KXVgBcHZppkGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chX7Z3/btspgnbP15Z/iwNukU7T2KXVgBcHZppkGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chX7Z3/btspgnbP15Z/iwNukU7T2KXVgBcHZppkGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchX7Z3%2FbtspgnbP15Z%2FiwNukU7T2KXVgBcHZppkGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;799&quot; height=&quot;101&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;101&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-slave2(172.30.1.13)&lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;드래그하여&lt;/span&gt;&lt;span&gt; mysql-slave1(172.30.1.10) &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;드롭한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;드롭&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;위치가&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;중간쯤으로&lt;/span&gt; &lt;span&gt;이동하면&lt;/span&gt; &lt;span&gt;드롭하는&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;정보에&lt;/span&gt; &lt;span&gt;relocate&lt;/span&gt;&lt;span&gt;라고&lt;/span&gt; &lt;span&gt;표시가&lt;/span&gt; &lt;span&gt;되는데&lt;/span&gt; &lt;span&gt;이때&lt;/span&gt; &lt;span&gt;드롭한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tXo1y/btso6TKCq4C/KLk1IoCoGfvv1gCN5A40PK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tXo1y/btso6TKCq4C/KLk1IoCoGfvv1gCN5A40PK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tXo1y/btso6TKCq4C/KLk1IoCoGfvv1gCN5A40PK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtXo1y%2Fbtso6TKCq4C%2FKLk1IoCoGfvv1gCN5A40PK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;799&quot; height=&quot;229&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Relocate&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;경고&lt;/span&gt; &lt;span&gt;팝업이&lt;/span&gt; &lt;span&gt;나타나고&lt;/span&gt; &lt;span&gt;OK&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭하면&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항이&lt;/span&gt; &lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PsjAA/btspfleiqMy/pYqRizvktFeL9cksIqKYF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PsjAA/btspfleiqMy/pYqRizvktFeL9cksIqKYF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PsjAA/btspfleiqMy/pYqRizvktFeL9cksIqKYF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPsjAA%2FbtspfleiqMy%2FpYqRizvktFeL9cksIqKYF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;623&quot; height=&quot;303&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;구조가&lt;/span&gt; &lt;span&gt;변경된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;153&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buFdhY/btspg2rQCeG/Oyyk6gzxpi0c4o8kP0QZY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buFdhY/btspg2rQCeG/Oyyk6gzxpi0c4o8kP0QZY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buFdhY/btspg2rQCeG/Oyyk6gzxpi0c4o8kP0QZY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuFdhY%2Fbtspg2rQCeG%2FOyyk6gzxpi0c4o8kP0QZY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;980&quot; height=&quot;153&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;153&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-slave2(172.30.1.13) &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;조회해&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;mysql-slave1(172.30.1.10) &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;호스트로&lt;/span&gt; &lt;span&gt;연결되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;select @@host;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;show slave status\G;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XiVmZ/btspcvIN0RZ/Enh1dQgy7VfP3fykDqcRe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XiVmZ/btspcvIN0RZ/Enh1dQgy7VfP3fykDqcRe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XiVmZ/btspcvIN0RZ/Enh1dQgy7VfP3fykDqcRe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXiVmZ%2FbtspcvIN0RZ%2FEnh1dQgy7VfP3fykDqcRe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;523&quot; height=&quot;367&quot; data-filename=&quot;10.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;시나리오를&lt;/span&gt; &lt;span&gt;처음&lt;/span&gt; &lt;span&gt;상태로&lt;/span&gt; &lt;span&gt;원상복구하려면&lt;/span&gt; &lt;span&gt;mysql-slave2(172.30.1.13)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;드래그하여&lt;/span&gt;&lt;span&gt; mysql-master(172.30.1.97)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;드롭&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11.png&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuYKJr/btso7QUn0e5/8p36mwZsDHKTRnhOMODC11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuYKJr/btso7QUn0e5/8p36mwZsDHKTRnhOMODC11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuYKJr/btso7QUn0e5/8p36mwZsDHKTRnhOMODC11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuYKJr%2Fbtso7QUn0e5%2F8p36mwZsDHKTRnhOMODC11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;973&quot; height=&quot;159&quot; data-filename=&quot;11.png&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Relocate&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;경고&lt;/span&gt; &lt;span&gt;팝업이&lt;/span&gt; &lt;span&gt;나타나고&lt;/span&gt; &lt;span&gt;OK&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭하면&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항이&lt;/span&gt; &lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;12.png&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PE9OQ/btspeHBLEn4/ldIzAE7JDdfuVWh7NKhcV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PE9OQ/btspeHBLEn4/ldIzAE7JDdfuVWh7NKhcV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PE9OQ/btspeHBLEn4/ldIzAE7JDdfuVWh7NKhcV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPE9OQ%2FbtspeHBLEn4%2FldIzAE7JDdfuVWh7NKhcV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;610&quot; height=&quot;286&quot; data-filename=&quot;12.png&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;286&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;구조가&lt;/span&gt; &lt;span&gt;변경된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;12_1.png&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lcyyb/btspdKMtwvx/pKbjO8MxqCkymKB5Opfnvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lcyyb/btspdKMtwvx/pKbjO8MxqCkymKB5Opfnvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lcyyb/btspdKMtwvx/pKbjO8MxqCkymKB5Opfnvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLcyyb%2FbtspdKMtwvx%2FpKbjO8MxqCkymKB5Opfnvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;689&quot; height=&quot;247&quot; data-filename=&quot;12_1.png&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;247&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-slave2(172.30.1.13) &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;조회해&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;호스트로&lt;/span&gt; &lt;span&gt;연결되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;13.png&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w38nC/btso8zkByPK/onaLAFsvnwRDVO5fQKhZQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w38nC/btso8zkByPK/onaLAFsvnwRDVO5fQKhZQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w38nC/btso8zkByPK/onaLAFsvnwRDVO5fQKhZQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw38nC%2Fbtso8zkByPK%2FonaLAFsvnwRDVO5fQKhZQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;529&quot; height=&quot;405&quot; data-filename=&quot;13.png&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;2. Master Refactoring (Promote)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;마스터로&lt;/span&gt; &lt;span&gt;승격시키고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;마스터를&lt;/span&gt; &lt;span&gt;슬레이브로&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;전환한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2_1.png&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NAbKZ/btspgoIBdxT/4VvwdVmDktFhbjgdrymJc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NAbKZ/btspgoIBdxT/4VvwdVmDktFhbjgdrymJc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NAbKZ/btspgoIBdxT/4VvwdVmDktFhbjgdrymJc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNAbKZ%2FbtspgoIBdxT%2F4VvwdVmDktFhbjgdrymJc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;585&quot; height=&quot;185&quot; data-filename=&quot;2_1.png&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-slave1(172.30.1.10)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;드래그&lt;/span&gt; &lt;span&gt;하여&lt;/span&gt; &lt;span&gt;mysql-master(172.30.1.97)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;드롭&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;드롭하는&lt;/span&gt; &lt;span&gt;위치를&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;마스터보다&lt;/span&gt; &lt;span&gt;조금&lt;/span&gt; &lt;span&gt;앞으로&lt;/span&gt; &lt;span&gt;위치하여&lt;/span&gt; &lt;span&gt;PROMOTE AS MASTER&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;표시될&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;드롭&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. (&lt;/span&gt;&lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;보다&lt;/span&gt; &lt;span&gt;뒤에&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;relocate&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;표시된다&lt;/span&gt;&lt;span&gt;.) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;14.png&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beESU4/btspepusKIX/ZD7s9s59ljeaOapcHphFUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beESU4/btspepusKIX/ZD7s9s59ljeaOapcHphFUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beESU4/btspepusKIX/ZD7s9s59ljeaOapcHphFUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeESU4%2FbtspepusKIX%2FZD7s9s59ljeaOapcHphFUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;643&quot; height=&quot;220&quot; data-filename=&quot;14.png&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Takeover&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;경고&lt;/span&gt; &lt;span&gt;팝업이&lt;/span&gt; &lt;span&gt;나타나고&lt;/span&gt; &lt;span&gt;OK&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭하면&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항이&lt;/span&gt; &lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;15.png&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFymAg/btspdtxlCny/fLgx7OhCE4Kr8kVAxfjrAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFymAg/btspdtxlCny/fLgx7OhCE4Kr8kVAxfjrAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFymAg/btspdtxlCny/fLgx7OhCE4Kr8kVAxfjrAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFymAg%2FbtspdtxlCny%2FfLgx7OhCE4Kr8kVAxfjrAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;616&quot; height=&quot;230&quot; data-filename=&quot;15.png&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;변경사항을&lt;/span&gt; &lt;span&gt;적용하였을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;대시보드&lt;/span&gt; &lt;span&gt;화면이&lt;/span&gt; &lt;span&gt;바로&lt;/span&gt; &lt;span&gt;갱신이&lt;/span&gt; &lt;span&gt;안되는&lt;/span&gt; &lt;span&gt;경우가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;새로고침을&lt;/span&gt; &lt;span&gt;하면&lt;/span&gt; &lt;span&gt;변경사항이&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;나타난다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt;, mysql-slave1(172.30.1.10) &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;master &lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하며&lt;/span&gt;&lt;span&gt;, mysql-master(172.30.1.97)&lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;slave &lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;것으로&lt;/span&gt; &lt;span&gt;역할&lt;/span&gt; &lt;span&gt;체인지가&lt;/span&gt; &lt;span&gt;된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt; &lt;span&gt;역할&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;마스터에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;되지&lt;/span&gt; &lt;span&gt;않아서&lt;/span&gt; &lt;span&gt;오류로&lt;/span&gt; &lt;span&gt;표시되고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;16.png&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D7YxR/btspcvWnTE1/nE2YCkJgfPirXWbNzUa2a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D7YxR/btspcvWnTE1/nE2YCkJgfPirXWbNzUa2a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D7YxR/btspcvWnTE1/nE2YCkJgfPirXWbNzUa2a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD7YxR%2FbtspcvWnTE1%2FnE2YCkJgfPirXWbNzUa2a1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;676&quot; height=&quot;234&quot; data-filename=&quot;16.png&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;234&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;시작을&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;slave&lt;/span&gt;&lt;span&gt;역할의&lt;/span&gt; &lt;span&gt;mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;메뉴&lt;/span&gt; &lt;span&gt;아이콘을&lt;/span&gt; &lt;span&gt;클릭하면&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;팝업이&lt;/span&gt; &lt;span&gt;나타나는데&lt;/span&gt;&lt;span&gt;, [Start replication]&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;클릭한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;17.png&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DuarR/btso93scmxz/YCcsKeCKAdlDYQvnQHG33K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DuarR/btso93scmxz/YCcsKeCKAdlDYQvnQHG33K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DuarR/btso93scmxz/YCcsKeCKAdlDYQvnQHG33K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDuarR%2Fbtso93scmxz%2FYCcsKeCKAdlDYQvnQHG33K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1012&quot; height=&quot;364&quot; data-filename=&quot;17.png&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;복제가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;구성되고&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;클러스터가&lt;/span&gt; &lt;span&gt;정상으로&lt;/span&gt; &lt;span&gt;표시되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;18.png&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgRfuA/btso8et8Z9k/eIDFBwqTxewUEd31ZHBmdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgRfuA/btso8et8Z9k/eIDFBwqTxewUEd31ZHBmdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgRfuA/btso8et8Z9k/eIDFBwqTxewUEd31ZHBmdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgRfuA%2Fbtso8et8Z9k%2FeIDFBwqTxewUEd31ZHBmdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;970&quot; height=&quot;306&quot; data-filename=&quot;18.png&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;다음&lt;/span&gt; &lt;span&gt;실습을&lt;/span&gt; &lt;span&gt;준비하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;원래&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;구조로&lt;/span&gt; &lt;span&gt;원상복구를&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;원상복구&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;앞에서&lt;/span&gt; &lt;span&gt;했던&lt;/span&gt; &lt;span&gt;방법과&lt;/span&gt; &lt;span&gt;동일하게&lt;/span&gt; &lt;span&gt;진행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;3. Master &amp;ndash; Master Refactoring &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나를&lt;/span&gt; &lt;span&gt;마스터로&lt;/span&gt; &lt;span&gt;승격시켜&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;두&lt;/span&gt; &lt;span&gt;대의&lt;/span&gt; &lt;span&gt;마스터로&lt;/span&gt; &lt;span&gt;구성한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/esLEfv/btspcvWnTCW/Ye7046Mmh4Qi8bZvWPhHuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/esLEfv/btspcvWnTCW/Ye7046Mmh4Qi8bZvWPhHuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/esLEfv/btspcvWnTCW/Ye7046Mmh4Qi8bZvWPhHuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FesLEfv%2FbtspcvWnTCW%2FYe7046Mmh4Qi8bZvWPhHuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;227&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;드래그&lt;/span&gt; &lt;span&gt;하여&lt;/span&gt; &lt;span&gt;mysql-slave1(172.30.1.10)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;드롭&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt; &lt;span&gt;MAKE CO MASTER&lt;/span&gt;&lt;span&gt;가&lt;/span&gt; &lt;span&gt;표시되면&lt;/span&gt; &lt;span&gt;드롭&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;19.png&quot; data-origin-width=&quot;761&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRKHKo/btspd442kJU/kyKRPqb4idFJZL4kZk0dBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRKHKo/btspd442kJU/kyKRPqb4idFJZL4kZk0dBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRKHKo/btspd442kJU/kyKRPqb4idFJZL4kZk0dBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRKHKo%2Fbtspd442kJU%2FkyKRPqb4idFJZL4kZk0dBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;761&quot; height=&quot;240&quot; data-filename=&quot;19.png&quot; data-origin-width=&quot;761&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;make-co-master&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;경고&lt;/span&gt; &lt;span&gt;팝업이&lt;/span&gt; &lt;span&gt;나타나고&lt;/span&gt; &lt;span&gt;OK&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭하면&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항이&lt;/span&gt; &lt;span&gt;적용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;20.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PniIE/btspfjOjoln/eDz3Rbu6onO7HNyeFnQka0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PniIE/btspfjOjoln/eDz3Rbu6onO7HNyeFnQka0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PniIE/btspfjOjoln/eDz3Rbu6onO7HNyeFnQka0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPniIE%2FbtspfjOjoln%2FeDz3Rbu6onO7HNyeFnQka0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;611&quot; height=&quot;166&quot; data-filename=&quot;20.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;실행이&lt;/span&gt; &lt;span&gt;완료되면&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;master &amp;ndash; master &lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;변경된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;21.png&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;319&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3pZuB/btspgou3GoJ/dKNn6C6l8g9nmLpkkS8I80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3pZuB/btspgou3GoJ/dKNn6C6l8g9nmLpkkS8I80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3pZuB/btspgou3GoJ/dKNn6C6l8g9nmLpkkS8I80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3pZuB%2Fbtspgou3GoJ%2FdKNn6C6l8g9nmLpkkS8I80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;319&quot; data-filename=&quot;21.png&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;319&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;정확히는&lt;/span&gt; &lt;span&gt;master-master &lt;/span&gt;&lt;span&gt;구조만&lt;/span&gt; &lt;span&gt;만들어진&lt;/span&gt; &lt;span&gt;상황으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;완벽한&lt;/span&gt; &lt;span&gt;master-master &lt;/span&gt;&lt;span&gt;작동을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;아니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;환경은&lt;/span&gt; &lt;span&gt;구성되었지만&lt;/span&gt; &lt;span&gt;mysql-slave(172.30.1.10) &lt;/span&gt;&lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;Read Only &lt;/span&gt;&lt;span&gt;상태이다&lt;/span&gt;&lt;span&gt;. [Set writeable]&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭하여&lt;/span&gt; &lt;span&gt;쓰기&lt;/span&gt; &lt;span&gt;상태로&lt;/span&gt; &lt;span&gt;변경해야&lt;/span&gt; &lt;span&gt;사용가능한&lt;/span&gt; &lt;span&gt;master-master &lt;/span&gt;&lt;span&gt;환경이&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;22.png&quot; data-origin-width=&quot;1283&quot; data-origin-height=&quot;571&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vIWAq/btspeHhrytm/W7hKd3ZvaVtJr0cTSIwvB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vIWAq/btspeHhrytm/W7hKd3ZvaVtJr0cTSIwvB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vIWAq/btspeHhrytm/W7hKd3ZvaVtJr0cTSIwvB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvIWAq%2FbtspeHhrytm%2FW7hKd3ZvaVtJr0cTSIwvB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1283&quot; height=&quot;571&quot; data-filename=&quot;22.png&quot; data-origin-width=&quot;1283&quot; data-origin-height=&quot;571&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;master-master &lt;/span&gt;&lt;span&gt;구조에서&lt;/span&gt; &lt;span&gt;master-salve&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;원복하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;아이콘을&lt;/span&gt; &lt;span&gt;클릭한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;팝업이&lt;/span&gt; &lt;span&gt;나타나면&lt;/span&gt; &lt;span&gt;Master &lt;/span&gt;&lt;span&gt;항목에서&lt;/span&gt; &lt;span&gt;[Reset replica]&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;23.png&quot; data-origin-width=&quot;1311&quot; data-origin-height=&quot;433&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8NmEo/btspd442kKk/t2DmoGXNzBUimGTtomMik0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8NmEo/btspd442kKk/t2DmoGXNzBUimGTtomMik0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8NmEo/btspd442kKk/t2DmoGXNzBUimGTtomMik0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8NmEo%2Fbtspd442kKk%2Ft2DmoGXNzBUimGTtomMik0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1311&quot; height=&quot;433&quot; data-filename=&quot;23.png&quot; data-origin-width=&quot;1311&quot; data-origin-height=&quot;433&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이전과&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;상태로&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;토폴로지가&lt;/span&gt; &lt;span&gt;구성된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;24.png&quot; data-origin-width=&quot;657&quot; data-origin-height=&quot;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfBCV5/btspcvB4GxJ/EnNv2mn87KSkw0IjCgJmC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfBCV5/btspcvB4GxJ/EnNv2mn87KSkw0IjCgJmC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfBCV5/btspcvB4GxJ/EnNv2mn87KSkw0IjCgJmC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfBCV5%2FbtspcvB4GxJ%2FEnNv2mn87KSkw0IjCgJmC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;657&quot; height=&quot;234&quot; data-filename=&quot;24.png&quot; data-origin-width=&quot;657&quot; data-origin-height=&quot;234&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;시나리오&lt;/span&gt;&lt;span&gt;4. Master Failover&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;운영중이던&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;강제로&lt;/span&gt; &lt;span&gt;중지하여&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;상황을&lt;/span&gt; &lt;span&gt;구현한&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;슬레이브로&lt;/span&gt; &lt;span&gt;운영되던&lt;/span&gt; &lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나가&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;마스터가&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;나머지&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;서버와&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;싱크를&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Tm5LF/btspdK6MIUT/HteUvVkBpF7TyVXhLjC8jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Tm5LF/btspdK6MIUT/HteUvVkBpF7TyVXhLjC8jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Tm5LF/btspdK6MIUT/HteUvVkBpF7TyVXhLjC8jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTm5LF%2FbtspdK6MIUT%2FHteUvVkBpF7TyVXhLjC8jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;227&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하고&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;강제로&lt;/span&gt; &lt;span&gt;중지한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;hostname&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo systemctl stop mysql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;25.png&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oOCwu/btspdXrq9TM/7yJ4c2wLjmSksVkUtyf4lK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oOCwu/btspdXrq9TM/7yJ4c2wLjmSksVkUtyf4lK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oOCwu/btspdXrq9TM/7yJ4c2wLjmSksVkUtyf4lK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoOCwu%2FbtspdXrq9TM%2F7yJ4c2wLjmSksVkUtyf4lK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;739&quot; height=&quot;332&quot; data-filename=&quot;25.png&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;중지되고&lt;/span&gt; &lt;span&gt;오케스트레이터가&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;상황을&lt;/span&gt; &lt;span&gt;인지하면&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;대시보드&lt;/span&gt; &lt;span&gt;상태가&lt;/span&gt; &lt;span&gt;변경된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;파란색&lt;/span&gt; &lt;span&gt;숫자&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;개수이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;빨간색&lt;/span&gt; &lt;span&gt;숫자&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt; &lt;span&gt;개수이며&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;불가능을&lt;/span&gt; &lt;span&gt;표시하고&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;검은색&lt;/span&gt; &lt;span&gt;1&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;응답&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;개수를&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;26.png&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vOGCX/btso9hqBZan/EkoYKK7E5CukmBaykcKj10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vOGCX/btso9hqBZan/EkoYKK7E5CukmBaykcKj10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vOGCX/btso9hqBZan/EkoYKK7E5CukmBaykcKj10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvOGCX%2Fbtso9hqBZan%2FEkoYKK7E5CukmBaykcKj10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;291&quot; height=&quot;111&quot; data-filename=&quot;26.png&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;111&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;클릭해서&lt;/span&gt; &lt;span&gt;상세&lt;/span&gt; &lt;span&gt;대시보드를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;응답&lt;/span&gt; &lt;span&gt;없음을&lt;/span&gt; &lt;span&gt;나타내고&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;슬레이브는&lt;/span&gt; &lt;span&gt;복제가&lt;/span&gt; &lt;span&gt;되지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;우측의&lt;/span&gt; &lt;span&gt;느낌표를&lt;/span&gt; &lt;span&gt;클릭하면&lt;/span&gt; &lt;span&gt;각&lt;/span&gt; &lt;span&gt;노드의&lt;/span&gt; &lt;span&gt;에러&lt;/span&gt; &lt;span&gt;메시지를&lt;/span&gt; &lt;span&gt;상세하게&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;27.png&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eHvwt5/btspeKyrK4K/z7aQERP03xU4LbklyM0N7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eHvwt5/btspeKyrK4K/z7aQERP03xU4LbklyM0N7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eHvwt5/btspeKyrK4K/z7aQERP03xU4LbklyM0N7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeHvwt5%2FbtspeKyrK4K%2Fz7aQERP03xU4LbklyM0N7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;991&quot; height=&quot;356&quot; data-filename=&quot;27.png&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오류&lt;/span&gt; &lt;span&gt;메시지는&lt;/span&gt; &lt;span&gt;오케스트레이터의&lt;/span&gt; &lt;span&gt;로그&lt;/span&gt; &lt;span&gt;파일에서도&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특별히&lt;/span&gt; &lt;span&gt;경로를&lt;/span&gt; &lt;span&gt;변경하지&lt;/span&gt; &lt;span&gt;않았으면&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로에서&lt;/span&gt; &lt;span&gt;확인&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;만약&lt;/span&gt; &lt;span&gt;경로&lt;/span&gt; &lt;span&gt;확인이&lt;/span&gt; &lt;span&gt;필요하면&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일에서&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/tmp/recovery.log&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;수동&lt;/span&gt; &lt;span&gt;Failover]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오케스트레이터의&lt;/span&gt; &lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;모드&lt;/span&gt; &lt;span&gt;기본값은&lt;/span&gt; &lt;span&gt;수동이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;수동으로&lt;/span&gt; &lt;span&gt;장애조치는&lt;/span&gt; &lt;span&gt;관리자가&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;인지하고&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;조치를&lt;/span&gt; &lt;span&gt;진행해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;응답이&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버에서&lt;/span&gt; &lt;span&gt;[Recover]&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭한다&lt;/span&gt;&lt;span&gt;. Failover &lt;/span&gt;&lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;목록에서&lt;/span&gt;&lt;span&gt;, mysql-salve1(172.30.1.10)&lt;/span&gt;&lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;장애조치를&lt;/span&gt; &lt;span&gt;진행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;28.png&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjdghS/btso7Ry23Wc/Ahh4BwullWL8HkP2YQzrT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjdghS/btso7Ry23Wc/Ahh4BwullWL8HkP2YQzrT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjdghS/btso7Ry23Wc/Ahh4BwullWL8HkP2YQzrT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjdghS%2Fbtso7Ry23Wc%2FAhh4BwullWL8HkP2YQzrT0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;714&quot; height=&quot;323&quot; data-filename=&quot;28.png&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;323&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;장애조치를&lt;/span&gt; &lt;span&gt;실행하게&lt;/span&gt; &lt;span&gt;되면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;응답&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;클러스터에&lt;/span&gt; &lt;span&gt;분리된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기존&lt;/span&gt; &lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;중지된&lt;/span&gt; &lt;span&gt;mysql-master &lt;/span&gt;&lt;span&gt;노드는&lt;/span&gt; &lt;span&gt;기존&lt;/span&gt; &lt;span&gt;클러스터에서&lt;/span&gt; &lt;span&gt;분리된&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;29.png&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;125&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmuV94/btso7jWKHqG/9CSs4nv80rH5ksahp418x0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmuV94/btso7jWKHqG/9CSs4nv80rH5ksahp418x0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmuV94/btso7jWKHqG/9CSs4nv80rH5ksahp418x0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmuV94%2Fbtso7jWKHqG%2F9CSs4nv80rH5ksahp418x0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;606&quot; height=&quot;125&quot; data-filename=&quot;29.png&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;125&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;클릭하여&lt;/span&gt; &lt;span&gt;상세&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;보면&lt;/span&gt;&lt;span&gt; mysql-slave1(172.30.1.10) &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하고&lt;/span&gt;&lt;span&gt;, mysql-slave2(172.30.1.13) &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt;&lt;span&gt; slave&lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;30.png&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dwCin0/btspg0U8sH4/4v4sRFfzGfM0Ho41VrHJ80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dwCin0/btspg0U8sH4/4v4sRFfzGfM0Ho41VrHJ80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dwCin0/btspg0U8sH4/4v4sRFfzGfM0Ho41VrHJ80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdwCin0%2Fbtspg0U8sH4%2F4v4sRFfzGfM0Ho41VrHJ80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;676&quot; height=&quot;155&quot; data-filename=&quot;30.png&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;복구했다는&lt;/span&gt; &lt;span&gt;가정하에&lt;/span&gt;&lt;span&gt; mysql-master(172.30.1.97) &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;31.png&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btiz7R/btso8zZa4kD/69TJP0AwflzUVMfWI7TKO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btiz7R/btso8zZa4kD/69TJP0AwflzUVMfWI7TKO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btiz7R/btso8zZa4kD/69TJP0AwflzUVMfWI7TKO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtiz7R%2Fbtso8zZa4kD%2F69TJP0AwflzUVMfWI7TKO1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;836&quot; height=&quot;313&quot; data-filename=&quot;31.png&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;실행되었으며&lt;/span&gt; &lt;span&gt;현재는&lt;/span&gt; &lt;span&gt;독립적으로&lt;/span&gt; &lt;span&gt;실행되고&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;클러스터에&lt;/span&gt; &lt;span&gt;조인하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt;&lt;span&gt; master &lt;/span&gt;&lt;span&gt;역할로&lt;/span&gt; &lt;span&gt;운영중인&lt;/span&gt; &lt;span&gt;mysql-slave1(172.30.1.10) &lt;/span&gt;&lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;복제를&lt;/span&gt; &lt;span&gt;연결한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;32.png&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b65KcJ/btso6K79zZ7/QukYK8XkWuYgq13nbsmbYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b65KcJ/btso6K79zZ7/QukYK8XkWuYgq13nbsmbYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b65KcJ/btso6K79zZ7/QukYK8XkWuYgq13nbsmbYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb65KcJ%2Fbtso6K79zZ7%2FQukYK8XkWuYgq13nbsmbYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;253&quot; data-filename=&quot;32.png&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;복제가&lt;/span&gt; &lt;span&gt;성공적으로&lt;/span&gt; &lt;span&gt;연결되고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;싱크가&lt;/span&gt; &lt;span&gt;완료되면&lt;/span&gt; &lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;대시보드에서도&lt;/span&gt; &lt;span&gt;클러스터가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;연결되어&lt;/span&gt; &lt;span&gt;운영되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;33.png&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJLzW8/btso8d212tc/FwEvpvhFp9NPkDG82kybEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJLzW8/btso8d212tc/FwEvpvhFp9NPkDG82kybEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJLzW8/btso8d212tc/FwEvpvhFp9NPkDG82kybEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJLzW8%2Fbtso8d212tc%2FFwEvpvhFp9NPkDG82kybEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;235&quot; data-filename=&quot;33.png&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;235&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;자동&lt;/span&gt; &lt;span&gt;failover]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;모드가&lt;/span&gt; &lt;span&gt;수종이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;장애조치를&lt;/span&gt; &lt;span&gt;하기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;파라메터&lt;/span&gt; &lt;span&gt;수정이&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로의&lt;/span&gt; &lt;span&gt;설정파일에서&lt;/span&gt; &lt;span&gt;수정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파라메터의&lt;/span&gt; &lt;span&gt;종류가&lt;/span&gt; &lt;span&gt;많기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;주의해서&lt;/span&gt; &lt;span&gt;살펴본다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;vi /usr/local/orchestrator/orchestrator.conf.json&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;34.png&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;134&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSBpzb/btso6MY950p/IvX105kuWpzmj67kwmn2D1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSBpzb/btso6MY950p/IvX105kuWpzmj67kwmn2D1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSBpzb/btso6MY950p/IvX105kuWpzmj67kwmn2D1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSBpzb%2Fbtso6MY950p%2FIvX105kuWpzmj67kwmn2D1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;386&quot; height=&quot;134&quot; data-filename=&quot;34.png&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;134&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;변경전&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;변경후&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;&quot;RecoveryPeriodBlockSeconds&quot;: 3600,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;RecoveryIgnoreHostnameFilters&quot;: [],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;RecoverMasterClusterFilters&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;_master_pattern_&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;RecoverIntermediateMasterClusterFilters&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;_intermediate_master_pattern_&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;312&quot;&gt;&lt;span&gt;&lt;span&gt;&quot;RecoveryPeriodBlockSeconds&quot;: 10,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;RecoveryIgnoreHostnameFilters&quot;: [],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;RecoverMasterClusterFilters&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;*&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&quot;RecoverIntermediateMasterClusterFilters&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&quot;*&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;설정&lt;/span&gt; &lt;span&gt;변경을&lt;/span&gt; &lt;span&gt;완료하였으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;오케스트레이터는&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;변경사항을&lt;/span&gt; &lt;span&gt;런타임중에&lt;/span&gt; &lt;span&gt;적용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;대시보드&lt;/span&gt; &lt;span&gt;상단&lt;/span&gt; &lt;span&gt;메뉴에서&lt;/span&gt; &lt;span&gt;[Home] - [Status]&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭한다&lt;/span&gt;&lt;span&gt;. Status&lt;/span&gt;&lt;span&gt;페이지에서&lt;/span&gt; &lt;span&gt;[Reload congifuration]&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;클릭하여&lt;/span&gt; &lt;span&gt;설정을&lt;/span&gt; &lt;span&gt;로드&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;35.png&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sDVWO/btspep83t16/mFPVhywX01AKZC43KNG5Rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sDVWO/btspep83t16/mFPVhywX01AKZC43KNG5Rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sDVWO/btspep83t16/mFPVhywX01AKZC43KNG5Rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsDVWO%2Fbtspep83t16%2FmFPVhywX01AKZC43KNG5Rk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;854&quot; height=&quot;400&quot; data-filename=&quot;35.png&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;자동&lt;/span&gt; &lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;테스트를&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;운영중인&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;강제로&lt;/span&gt; &lt;span&gt;중지한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;36.png&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EvIoD/btspdJNDepZ/BjEbP7IA0Vt4lF31phbYD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EvIoD/btspdJNDepZ/BjEbP7IA0Vt4lF31phbYD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EvIoD/btspdJNDepZ/BjEbP7IA0Vt4lF31phbYD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEvIoD%2FbtspdJNDepZ%2FBjEbP7IA0Vt4lF31phbYD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1145&quot; height=&quot;391&quot; data-filename=&quot;36.png&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Master&lt;/span&gt;&lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;중지되고&lt;/span&gt; &lt;span&gt;오케스트레이터에서&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;상황을&lt;/span&gt; &lt;span&gt;인지한&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; &lt;span&gt;장애조치가&lt;/span&gt; &lt;span&gt;완료되면&lt;/span&gt; &lt;span&gt;대시보드에서&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;두&lt;/span&gt; &lt;span&gt;개의&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생한&lt;/span&gt; &lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;기존&lt;/span&gt; &lt;span&gt;클러스터에서&lt;/span&gt; &lt;span&gt;분리가&lt;/span&gt; &lt;span&gt;되었다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;37.png&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mJFfu/btspdK6MIU9/CKyjhKOMuvTi6xTSjoRcRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mJFfu/btspdK6MIU9/CKyjhKOMuvTi6xTSjoRcRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mJFfu/btspdK6MIU9/CKyjhKOMuvTi6xTSjoRcRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmJFfu%2FbtspdK6MIU9%2FCKyjhKOMuvTi6xTSjoRcRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;594&quot; height=&quot;132&quot; data-filename=&quot;37.png&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;클릭해서&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;살펴보면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기존의&lt;/span&gt; &lt;span&gt;slave &lt;/span&gt;&lt;span&gt;서버중에&lt;/span&gt; &lt;span&gt;하나가&lt;/span&gt; &lt;span&gt;master&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;승격되고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;나머지&lt;/span&gt; &lt;span&gt;슬레이브가&lt;/span&gt; &lt;span&gt;새로운&lt;/span&gt; &lt;span&gt;마스터에&lt;/span&gt; &lt;span&gt;조인되어&lt;/span&gt; &lt;span&gt;싱크되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;38.png&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xmsTW/btso9gZuy7S/edaiXCk3ukpBskAaZVYaik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xmsTW/btso9gZuy7S/edaiXCk3ukpBskAaZVYaik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xmsTW/btso9gZuy7S/edaiXCk3ukpBskAaZVYaik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxmsTW%2Fbtso9gZuy7S%2FedaiXCk3ukpBskAaZVYaik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;684&quot; height=&quot;148&quot; data-filename=&quot;38.png&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;분리된&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;서버에서는&lt;/span&gt; &lt;span&gt;Recover&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;클릭해도&lt;/span&gt; &lt;span&gt;클러스터에서&lt;/span&gt; &lt;span&gt;분리된&lt;/span&gt; &lt;span&gt;상태이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;failover&lt;/span&gt;&lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;찾을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다고&lt;/span&gt; &lt;span&gt;표시된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;39.png&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mJ285/btspepHZpoj/uMl1kTVT6K3NCSGszK8HE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mJ285/btspepHZpoj/uMl1kTVT6K3NCSGszK8HE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mJ285/btspepHZpoj/uMl1kTVT6K3NCSGszK8HE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmJ285%2FbtspepHZpoj%2FuMl1kTVT6K3NCSGszK8HE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;684&quot; height=&quot;209&quot; data-filename=&quot;39.png&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;209&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;지금까지&lt;/span&gt;&lt;span&gt; MySQL HA&lt;/span&gt;&lt;span&gt;환경에서&lt;/span&gt; &lt;span&gt;오케스터레이터를&lt;/span&gt; &lt;span&gt;활용하여&lt;/span&gt; &lt;span&gt;토포로지&lt;/span&gt; &lt;span&gt;리팩토링&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;장애조치&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;방법에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;살펴보았다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;장애조치를&lt;/span&gt; &lt;span&gt;진행할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;운영중인&lt;/span&gt; &lt;span&gt;서버중&lt;/span&gt; &lt;span&gt;하나가&lt;/span&gt; &lt;span&gt;랜덤하게&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;정확히는&lt;/span&gt; &lt;span&gt;씽크가&lt;/span&gt; &lt;span&gt;가장&lt;/span&gt; &lt;span&gt;빠른&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;마스터로&lt;/span&gt; &lt;span&gt;승격되는&lt;/span&gt; &lt;span&gt;것을&lt;/span&gt; &lt;span&gt;확인하였는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;또한&lt;/span&gt; &lt;span&gt;파라메터를&lt;/span&gt; &lt;span&gt;수정하여&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;조건을&lt;/span&gt; &lt;span&gt;부여하여&lt;/span&gt; &lt;span&gt;우선순위조건을&lt;/span&gt; &lt;span&gt;조정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;앞애서도&lt;/span&gt; &lt;span&gt;살펴보았듯이&lt;/span&gt; &lt;span&gt;파라메터의&lt;/span&gt; &lt;span&gt;종류가&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;많다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;상세한&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;포스트에서&lt;/span&gt; &lt;span&gt;하나씩&lt;/span&gt; &lt;span&gt;살펴볼&lt;/span&gt; &lt;span&gt;예정이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator : &lt;a href=&quot;https://github.com/openark/orchestrator&quot;&gt;https://github.com/openark/orchestrator&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Failure detection : &lt;a href=&quot;https://github.com/openark/orchestrator/blob/master/docs/failure-detection.md&quot;&gt;https://github.com/openark/orchestrator/blob/master/docs/failure-detection.md&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL Orchestrator - HA(High Availability) - 2 - &lt;/span&gt;&lt;span&gt;리팩토링&lt;/span&gt;&lt;span&gt; Failover Automated Recovery : &lt;a href=&quot;https://hoing.io/archives/91&quot;&gt;https://hoing.io/archives/91&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Configuration: failure detection : &lt;a href=&quot;https://github.com/openark/orchestrator/blob/master/docs/configuration-failure-detection.md&quot;&gt;https://github.com/openark/orchestrator/blob/master/docs/configuration-failure-detection.md&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&quot;&gt;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&lt;/a&gt; : &lt;a href=&quot;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&quot;&gt;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator: MySQL Replication Topology Manager : &lt;a href=&quot;https://www.percona.com/blog/orchestrator-mysql-replication-topology-manager/&quot;&gt;https://www.percona.com/blog/orchestrator-mysql-replication-topology-manager/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator and ProxySQL : &lt;a href=&quot;https://www.percona.com/blog/orchestrator-and-proxysql/&quot;&gt;https://www.percona.com/blog/orchestrator-and-proxysql/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-07-27 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, ProxySQL, MySQL Replication, MySQL HA, MySQL&lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;오케스트레이션&lt;/span&gt;&lt;span&gt;, MySQL&lt;/span&gt;&lt;span&gt;복제설치&lt;/span&gt;&lt;span&gt;, MySQL MHA, MySQL Orchestrator,&amp;nbsp;MySQL장애조치,&amp;nbsp;MySQL고가용성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>mysql ha</category>
      <category>MySQL MHA</category>
      <category>MySQL Orchestrator</category>
      <category>MySQL Replication</category>
      <category>MySQL고가용성</category>
      <category>MySQL복제 오케스트레이션</category>
      <category>MySQL복제설치</category>
      <category>MySQL장애조치</category>
      <category>proxysql</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1533</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-HA-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-Orchestrator%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81-%EB%B0%8F-%EC%9E%90%EB%8F%99-%EC%9E%A5%EC%95%A0%EC%A1%B0%EC%B9%98-%EA%B5%AC%EC%84%B1#entry1533comment</comments>
      <pubDate>Thu, 27 Jul 2023 23:09:46 +0900</pubDate>
    </item>
    <item>
      <title>MySQL 고가용성 운영을 위한 Orchestrator 설치</title>
      <link>https://sqlmvp.tistory.com/entry/MySQL-%EA%B3%A0%EA%B0%80%EC%9A%A9%EC%84%B1-%EC%9A%B4%EC%98%81%EC%9D%84-%EC%9C%84%ED%95%9C-Orchestrator-%EC%84%A4%EC%B9%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;MySQL &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;고가용성&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;운영을&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;위한&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; Orchestrator &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;설치&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : MySQL, Orchestrator&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;데이터베이스를&lt;/span&gt; &lt;span&gt;운영할&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;단일&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;포인트&lt;/span&gt;&lt;span&gt;(SPOF, Single Point Of Failure)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;예방하기&lt;/span&gt; &lt;span&gt;위해서&lt;/span&gt; &lt;span&gt;고가용성&lt;/span&gt;&lt;span&gt;(HA, High-Available)&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;중요한&lt;/span&gt; &lt;span&gt;부분이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그렇기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;클러스터링&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;등&lt;/span&gt; &lt;span&gt;고가용성으로&lt;/span&gt; &lt;span&gt;구성된&lt;/span&gt; &lt;span&gt;다수의&lt;/span&gt; &lt;span&gt;데이터베이스를&lt;/span&gt; &lt;span&gt;효율적으로&lt;/span&gt; &lt;span&gt;관리하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;솔루션들이&lt;/span&gt; &lt;span&gt;존재한다&lt;/span&gt;&lt;span&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트는&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;MariaDB&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;고가용성을&lt;/span&gt; &lt;span&gt;효율적으로&lt;/span&gt; &lt;span&gt;운영하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;솔루션인&lt;/span&gt; &lt;span&gt;Orchestrator(&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt; &lt;span&gt;&amp;lsquo;&lt;/span&gt;&lt;span&gt;오케스트레이터&lt;/span&gt;&lt;span&gt;&amp;rsquo;)&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;알아본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오케스트레이터는&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;고가용성&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;도구로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;서비스로&lt;/span&gt; &lt;span&gt;실행되며&lt;/span&gt; &lt;span&gt;명령줄&lt;/span&gt; &lt;span&gt;액세스&lt;/span&gt;&lt;span&gt;, HTTP API &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;웹&lt;/span&gt; &lt;span&gt;인터페이스를&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;0.png&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;257&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8onBS/btso226DE96/J1EPG946lCga44SEqVjAXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8onBS/btso226DE96/J1EPG946lCga44SEqVjAXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8onBS/btso226DE96/J1EPG946lCga44SEqVjAXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8onBS%2Fbtso226DE96%2FJ1EPG946lCga44SEqVjAXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;905&quot; height=&quot;257&quot; data-filename=&quot;0.png&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;257&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator : &lt;a href=&quot;https://github.com/openark/orchestrator&quot;&gt;https://github.com/openark/orchestrator&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오케스트레이터의&lt;/span&gt; &lt;span&gt;주요&lt;/span&gt; &lt;span&gt;기능으로는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Discovery : &lt;/span&gt;&lt;/b&gt;&lt;span&gt;토폴로지를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;지속적으로&lt;/span&gt; &lt;span&gt;클러스터의&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;구성과&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;읽어&lt;/span&gt; &lt;span&gt;오케스트레이션에&lt;/span&gt; &lt;span&gt;매핑한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;발생하였을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;포함하여&lt;/span&gt; &lt;span&gt;토폴로지의&lt;/span&gt; &lt;span&gt;자세한&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;시각화로&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Refactoring : &lt;/span&gt;&lt;/b&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;Binlog file:position, GTID, Pseudo GTID&lt;/span&gt;&lt;span&gt;등&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;수집한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;토폴로지에서&lt;/span&gt; &lt;span&gt;리팩토링은&lt;/span&gt; &lt;span&gt;GUI&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;복제본을&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;아래로&lt;/span&gt; &lt;span&gt;끌어서&lt;/span&gt; &lt;span&gt;놓는&lt;/span&gt; &lt;span&gt;방식으로&lt;/span&gt; &lt;span&gt;안전하게&lt;/span&gt; &lt;span&gt;진행할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오케스트레이터는&lt;/span&gt; &lt;span&gt;비정상적인&lt;/span&gt; &lt;span&gt;리팩토링&lt;/span&gt; &lt;span&gt;시도를&lt;/span&gt; &lt;span&gt;거부하며&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;명령줄&lt;/span&gt; &lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;세밀한&lt;/span&gt; &lt;span&gt;제어가&lt;/span&gt; &lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Recovery : &lt;/span&gt;&lt;/b&gt;&lt;span&gt;전체적인&lt;/span&gt; &lt;span&gt;접근&lt;/span&gt; &lt;span&gt;방식을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;중간&lt;/span&gt; &lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;오류를&lt;/span&gt; &lt;span&gt;감지한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;자체에서&lt;/span&gt; &lt;span&gt;얻은&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;장애&lt;/span&gt; &lt;span&gt;시나리오를&lt;/span&gt; &lt;span&gt;인식한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;장애가&lt;/span&gt; &lt;span&gt;인식되면&lt;/span&gt; &lt;span&gt;자동&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;수동&lt;/span&gt; &lt;span&gt;복구를&lt;/span&gt; &lt;span&gt;수행하도록&lt;/span&gt; &lt;span&gt;구성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;복구&lt;/span&gt; &lt;span&gt;프로세스는&lt;/span&gt; &lt;span&gt;오케스트레이터의&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;이해와&lt;/span&gt; &lt;span&gt;리팩토링&lt;/span&gt; &lt;span&gt;수행&lt;/span&gt; &lt;span&gt;능력을&lt;/span&gt; &lt;span&gt;활용하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오케스트레이터는&lt;/span&gt; &lt;span&gt;자체&lt;/span&gt; &lt;span&gt;복구시&lt;/span&gt; &lt;span&gt;토폴로지를&lt;/span&gt; &lt;span&gt;조사&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;평가하여&lt;/span&gt; &lt;span&gt;최상의&lt;/span&gt; &lt;span&gt;복구&lt;/span&gt; &lt;span&gt;방법을&lt;/span&gt; &lt;span&gt;선택한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오케스트레이터는&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;인터페이스를&lt;/span&gt; &lt;span&gt;지원하는데&lt;/span&gt; &lt;span&gt;명령줄&lt;/span&gt; &lt;span&gt;인터페이스&lt;/span&gt;&lt;span&gt;(CLI, Command Line Interface)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;활용하여&lt;/span&gt; &lt;span&gt;디버그&lt;/span&gt; &lt;span&gt;메시지&lt;/span&gt; &lt;span&gt;등을&lt;/span&gt; &lt;span&gt;수집하고&lt;/span&gt; &lt;span&gt;자동화된&lt;/span&gt; &lt;span&gt;스크립팅을&lt;/span&gt; &lt;span&gt;제어할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그&lt;/span&gt; &lt;span&gt;외에도&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;Web API (HTTP Get access) &lt;/span&gt;&lt;span&gt;및&lt;/span&gt; &lt;span&gt;웹&lt;/span&gt; &lt;span&gt;인터페이스를&lt;/span&gt; &lt;span&gt;제공한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Highly available&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Controlled master takeovers&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Manual failovers&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Failover auditing&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Audited operations&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Pseudo-GTID&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Datacenter/physical location awareness&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL-Pool association&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;HTTP security/authentication methods&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;0_1.png&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/okK7Q/btso22euPgC/boKgUiUjI5nEm7NigEVAKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/okK7Q/btso22euPgC/boKgUiUjI5nEm7NigEVAKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/okK7Q/btso22euPgC/boKgUiUjI5nEm7NigEVAKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FokK7Q%2Fbtso22euPgC%2FboKgUiUjI5nEm7NigEVAKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1071&quot; height=&quot;514&quot; data-filename=&quot;0_1.png&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Orchestrator&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하려면&lt;/span&gt; &lt;span&gt;우선&lt;/span&gt; &lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;환경이&lt;/span&gt; &lt;span&gt;구성되어&lt;/span&gt; &lt;span&gt;있어야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;구성에서&lt;/span&gt; &lt;span&gt;GTID &lt;/span&gt;&lt;span&gt;사용을&lt;/span&gt; &lt;span&gt;권장하고&lt;/span&gt; &lt;span&gt;있으나&lt;/span&gt;&lt;span&gt;, Binlog position &lt;/span&gt;&lt;span&gt;사용시&lt;/span&gt; &lt;span&gt;Pseudo GTID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하면&lt;/span&gt; &lt;span&gt;된다&lt;/span&gt;&lt;span&gt;. MySQL &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;구성은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt; (MySQL &lt;/span&gt;&lt;span&gt;설치부터&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;설정까지&lt;/span&gt; &lt;span&gt;한번에&lt;/span&gt;&lt;span&gt;) : &lt;a href=&quot;https://sungwookkang.com/1529&quot;&gt;https://sungwookkang.com/1529&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오케스트레이터를&lt;/span&gt; &lt;span&gt;구성할&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;정보들이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;위&lt;/span&gt; &lt;span&gt;링크에서&lt;/span&gt; &lt;span&gt;구성한&lt;/span&gt; &lt;span&gt;환경을&lt;/span&gt; &lt;span&gt;기반으로&lt;/span&gt; &lt;span&gt;진행한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;Server Name&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;OS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;Service Version&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;proxy-sql&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.49&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;ProxySQL version 2.4.2-0-g70336d4, codename Truls&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-master&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.97&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-slave1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.10&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;mysql-slave2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.13&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&lt;span&gt;&lt;span&gt;proxy-orchestrator&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;94&quot;&gt;&lt;span&gt;&lt;span&gt;172.30.1.24&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;142&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu 22.04.2 LTS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;246&quot;&gt;&lt;span&gt;&lt;span&gt;mysql&lt;span&gt;&amp;nbsp; &lt;/span&gt;Ver 8.0.33, container.d&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;proxy-orcherator&lt;/span&gt;&lt;span&gt;서버에는&lt;/span&gt; &lt;span&gt;오케스트레이터가&lt;/span&gt; &lt;span&gt;설치되어&lt;/span&gt; &lt;span&gt;운영된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오케스트레이터에서&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;저장하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;오케스트레이터용&lt;/span&gt; &lt;span&gt;리포지토리&lt;/span&gt; &lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;설치한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo apt-get install mysql-server&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL&lt;/span&gt;&lt;span&gt;설치가&lt;/span&gt; &lt;span&gt;완료되면&lt;/span&gt; &lt;span&gt;오케스트레이터가&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;계정&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;베이스를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;테스트&lt;/span&gt; &lt;span&gt;용도이기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;편의상&lt;/span&gt; &lt;span&gt;전체&lt;/span&gt; &lt;span&gt;권한을&lt;/span&gt; &lt;span&gt;부여한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실제&lt;/span&gt; &lt;span&gt;업무에서&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;때에는&lt;/span&gt; &lt;span&gt;보안&lt;/span&gt; &lt;span&gt;정책에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;오케스트레이터에&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;권한만&lt;/span&gt; &lt;span&gt;할당한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;--&lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;CREATE DATABASE IF NOT EXISTS orchestrator;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--&lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;CREATE USER 'orchestrator'@'%' IDENTIFIED BY 'orchestrator';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO 'orchestrator'@'%';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--GRANT SELECT ON mysql.slave_master_info TO 'orchestrator'@'%';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;GRANT ALL PRIVILEGES ON *.* TO 'orchestrator'@'%' WITH GRANT OPTION;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;FLUSH PRIVILEGES;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;컨테이너로&lt;/span&gt; &lt;span&gt;빌드된&lt;/span&gt; &lt;span&gt;오케스트레이터를&lt;/span&gt; &lt;span&gt;설치하기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;실행할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;패키지를&lt;/span&gt; &lt;span&gt;설치한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;--&lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;업데이트&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo apt-get update&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--&lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--Docker&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;공식&lt;/span&gt;&lt;span&gt; GPG&lt;/span&gt;&lt;span&gt;키를&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;curl -fsSL &lt;a href=&quot;https://download.docker.com/linux/ubuntu/gpg&quot;&gt;https://download.docker.com/linux/ubuntu/gpg&lt;/a&gt; | sudo apt-key add -&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--Docker&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;공식&lt;/span&gt;&lt;span&gt; apt &lt;/span&gt;&lt;span&gt;저장소를&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo add-apt-repository &quot;deb [arch=amd64] &lt;a href=&quot;https://download.docker.com/linux/ubuntu&quot;&gt;https://download.docker.com/linux/ubuntu&lt;/a&gt; $(lsb_release -cs) stable&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--&lt;/span&gt;&lt;span&gt;시스템&lt;/span&gt; &lt;span&gt;패키지&lt;/span&gt; &lt;span&gt;업데이트&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo apt-get update&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--Docker &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;--Docker &lt;/span&gt;&lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;확인&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo systemctl status docker&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTMiDz/btsoZdOZDA1/DiZRmZfo1Nzv9zTEpBIOnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTMiDz/btsoZdOZDA1/DiZRmZfo1Nzv9zTEpBIOnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTMiDz/btsoZdOZDA1/DiZRmZfo1Nzv9zTEpBIOnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTMiDz%2FbtsoZdOZDA1%2FDiZRmZfo1Nzv9zTEpBIOnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;746&quot; height=&quot;372&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;372&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;설치가&lt;/span&gt; &lt;span&gt;완료되었으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;도커&lt;/span&gt; &lt;span&gt;허브에서&lt;/span&gt; &lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;컨테이너를&lt;/span&gt; &lt;span&gt;다운로드&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;uuml;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://hub.docker.com/r/openarkcode/orchestrator&quot;&gt;https://hub.docker.com/r/openarkcode/orchestrator&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_2.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;316&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZwSvx/btsoYhj2qko/L39JSgxhFCSHzM9AuE9kWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZwSvx/btsoYhj2qko/L39JSgxhFCSHzM9AuE9kWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZwSvx/btsoYhj2qko/L39JSgxhFCSHzM9AuE9kWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZwSvx%2FbtsoYhj2qko%2FL39JSgxhFCSHzM9AuE9kWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;316&quot; data-filename=&quot;1_2.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;316&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;실행하면&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;이미지가&lt;/span&gt; &lt;span&gt;다운로드&lt;/span&gt; &lt;span&gt;되며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재&lt;/span&gt; &lt;span&gt;호스트에&lt;/span&gt; &lt;span&gt;저장되어&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;도커&lt;/span&gt; &lt;span&gt;이미지를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo docker pull openarkcode/orchestrator&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo docker images&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Weskh/btsoZMwNNiV/2npN42MrOGg1IYKhooN9kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Weskh/btsoZMwNNiV/2npN42MrOGg1IYKhooN9kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Weskh/btsoZMwNNiV/2npN42MrOGg1IYKhooN9kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWeskh%2FbtsoZMwNNiV%2F2npN42MrOGg1IYKhooN9kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;816&quot; height=&quot;275&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;도커를&lt;/span&gt; &lt;span&gt;실행한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo docker run -d --name orchestrator -p 3000:3000 openarkcode/orchestrator&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1311&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKXYhu/btsoU7hFcVy/hoybg52qP5j2utnK4QEXl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKXYhu/btsoU7hFcVy/hoybg52qP5j2utnK4QEXl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKXYhu/btsoU7hFcVy/hoybg52qP5j2utnK4QEXl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKXYhu%2FbtsoU7hFcVy%2Fhoybg52qP5j2utnK4QEXl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1311&quot; height=&quot;99&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1311&quot; data-origin-height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;서비스가&lt;/span&gt; &lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;실행되었으면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;웹&lt;/span&gt; &lt;span&gt;브라우저를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;대시보드로&lt;/span&gt; &lt;span&gt;접속한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;http://172.30.1.24:3000/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3_0.png&quot; data-origin-width=&quot;859&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccjA7q/btsoY7nPJJK/IkrB2omurxTnNjlrSWoDH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccjA7q/btsoY7nPJJK/IkrB2omurxTnNjlrSWoDH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccjA7q/btsoY7nPJJK/IkrB2omurxTnNjlrSWoDH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccjA7q%2FbtsoY7nPJJK%2FIkrB2omurxTnNjlrSWoDH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;859&quot; height=&quot;500&quot; data-filename=&quot;3_0.png&quot; data-origin-width=&quot;859&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;상단의&lt;/span&gt; &lt;span&gt;[Cluster] &amp;ndash; [Discover]&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;클러스터를&lt;/span&gt; &lt;span&gt;등록할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본값으로&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;이름으로&lt;/span&gt; &lt;span&gt;등록하게&lt;/span&gt; &lt;span&gt;되어&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;이름으로&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;서버들을&lt;/span&gt; &lt;span&gt;검색하려면&lt;/span&gt;&lt;span&gt; proxy-orchstrator (&lt;/span&gt;&lt;span&gt;오케스트레이터의&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt; &lt;span&gt;/etc/hosts &lt;/span&gt;&lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;등록한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3_1.png&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;425&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sgzYz/btsoZ09y7xU/ffqkQ2mT0k6kIl0tdqu0JK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sgzYz/btsoZ09y7xU/ffqkQ2mT0k6kIl0tdqu0JK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sgzYz/btsoZ09y7xU/ffqkQ2mT0k6kIl0tdqu0JK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsgzYz%2FbtsoZ09y7xU%2FffqkQ2mT0k6kIl0tdqu0JK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;890&quot; height=&quot;425&quot; data-filename=&quot;3_1.png&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;425&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서버&lt;/span&gt; &lt;span&gt;이름이&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;찾기&lt;/span&gt; &lt;span&gt;위해서는&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;수정하여&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;/usr/local/orchestrator/&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;환경에서는&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;내부에서&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;수정을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;좋은&lt;/span&gt; &lt;span&gt;방법은&lt;/span&gt; &lt;span&gt;아니지만&lt;/span&gt; &lt;span&gt;실습&lt;/span&gt; &lt;span&gt;편의상&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;내부&lt;/span&gt; &lt;span&gt;쉘로&lt;/span&gt; &lt;span&gt;접근해서&lt;/span&gt; &lt;span&gt;수정하였다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;실제&lt;/span&gt; &lt;span&gt;서비스&lt;/span&gt; &lt;span&gt;환경에서는&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;특성상&lt;/span&gt; &lt;span&gt;데이터가&lt;/span&gt; &lt;span&gt;휘발되기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;반드시&lt;/span&gt; &lt;span&gt;설정파일&lt;/span&gt; &lt;span&gt;따로&lt;/span&gt; &lt;span&gt;보관할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;스크립트는&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;중인&lt;/span&gt; &lt;span&gt;컨테이너의&lt;/span&gt; &lt;span&gt;ID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;확인하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;컨테이너&lt;/span&gt; &lt;span&gt;쉘로&lt;/span&gt; &lt;span&gt;접근한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;sudo docker ps -a&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo docker exec -it 93c5bfafa537 /bin/bash&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;110&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIpMqm/btsoYhj2qli/ahTqkmK4N3QGOO0ks0o5Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIpMqm/btsoYhj2qli/ahTqkmK4N3QGOO0ks0o5Ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIpMqm/btsoYhj2qli/ahTqkmK4N3QGOO0ks0o5Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIpMqm%2FbtsoYhj2qli%2FahTqkmK4N3QGOO0ks0o5Ck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;844&quot; height=&quot;110&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;110&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;설정파일이&lt;/span&gt; &lt;span&gt;위치한&lt;/span&gt; &lt;span&gt;경로로&lt;/span&gt; &lt;span&gt;이동하여&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;수정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;cd /usr/local/orchestrator/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;sudo cp orchestrator-sample.conf.json orchestrator.conf.json&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;vi orchestrator.conf.json&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;521&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m6fSS/btsoZK6L8jc/jUFROEG27OL7lTA1HGwgQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m6fSS/btsoZK6L8jc/jUFROEG27OL7lTA1HGwgQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m6fSS/btsoZK6L8jc/jUFROEG27OL7lTA1HGwgQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm6fSS%2FbtsoZK6L8jc%2FjUFROEG27OL7lTA1HGwgQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;546&quot; height=&quot;521&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;521&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;클러스터&lt;/span&gt; &lt;span&gt;서버들에게&lt;/span&gt; &lt;span&gt;접속할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;계정과&lt;/span&gt; &lt;span&gt;비밀번호를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;환경에&lt;/span&gt; &lt;span&gt;맞게&lt;/span&gt; &lt;span&gt;수정하여&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLTopologyUser&quot;: &quot;orc_client_user&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLTopologyPassword&quot;: &quot;orc_client_password&quot;,&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;orchester &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;접속할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;계정과&lt;/span&gt; &lt;span&gt;비밀번호를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오케스트레이터용&lt;/span&gt; &lt;span&gt;리포지토리&lt;/span&gt; &lt;span&gt;MySQL &lt;/span&gt;&lt;span&gt;설치&lt;/span&gt; &lt;span&gt;단계에서&lt;/span&gt; &lt;span&gt;생성한&lt;/span&gt; &lt;span&gt;계정을&lt;/span&gt; &lt;span&gt;입력하도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLOrchestratorHost&quot;: &quot;127.0.0.1&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLOrchestratorPort&quot;: 3306,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLOrchestratorDatabase&quot;: &quot;orchestrator&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLOrchestratorUser&quot;: &quot; orchestrator &quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLOrchestratorPassword&quot;: &quot; orchestrator &quot;,&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;이름&lt;/span&gt; &lt;span&gt;대신&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;검색할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;옵션을&lt;/span&gt; &lt;span&gt;수정한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;변경&lt;/span&gt; &lt;span&gt;전&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;&quot;HostnameResolveMethod&quot;: &quot;default&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLHostnameResolveMethod&quot;: &quot;@@hostname&quot;,&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;151&quot;&gt;&lt;span&gt;&lt;span&gt;변경&lt;/span&gt; &lt;span&gt;후&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;472&quot;&gt;&lt;span&gt;&lt;span&gt;&quot;HostnameResolveMethod&quot;: &quot;none&quot;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;MySQLHostnameResolveMethod&quot;: &quot;&quot;,&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;GTID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;사용하지&lt;/span&gt; &lt;span&gt;않고&lt;/span&gt; &lt;span&gt;binlog position&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;failover&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;위해서&lt;/span&gt; &lt;span&gt;PeseudoGTID&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;활성화&lt;/span&gt; &lt;span&gt;하기위해&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;파리메터를&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;파라메터는&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;없으므로&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;추가해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&quot;AutoPseudoGTID&quot;: true,&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각종&lt;/span&gt; &lt;span&gt;로그파일은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;경로에서&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;필요시&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;맞게&lt;/span&gt; &lt;span&gt;수정하여&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;623&quot;&gt;&lt;span&gt;&lt;span&gt;&quot;OnFailureDetectionProcesses&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;echo 'Detected {failureType} on {failureCluster}. Affected replicas: {countSlaves}' &amp;gt;&amp;gt; /tmp/recovery.log&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;PreGracefulTakeoverProcesses&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;echo 'Planned takeover about to take place on {failureCluster}. Master will switch to read_only' &amp;gt;&amp;gt; /tmp/recovery.log&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;PreFailoverProcesses&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;echo 'Will recover from {failureType} on {failureCluster}' &amp;gt;&amp;gt; /tmp/recovery.log&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;PostFailoverProcesses&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;echo '(for all types) Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' &amp;gt;&amp;gt; /tmp/recovery.log&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;PostUnsuccessfulFailoverProcesses&quot;: [],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;PostMasterFailoverProcesses&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Promoted: {successorHost}:{successorPort}' &amp;gt;&amp;gt; /tmp/recovery.log&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;PostIntermediateMasterFailoverProcesses&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' &amp;gt;&amp;gt; /tmp/recovery.log&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;PostGracefulTakeoverProcesses&quot;: [&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&quot;echo 'Planned takeover complete' &amp;gt;&amp;gt; /tmp/recovery.log&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;설정값&lt;/span&gt; &lt;span&gt;변경이&lt;/span&gt; &lt;span&gt;완료되었으면&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;사항을&lt;/span&gt; &lt;span&gt;저장하고&lt;/span&gt; &lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;재시작한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;오케스트레이터&lt;/span&gt; &lt;span&gt;대시보드에&lt;/span&gt; &lt;span&gt;접속하여&lt;/span&gt; &lt;span&gt;IP&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;Discover&lt;/span&gt;&lt;span&gt;를&lt;/span&gt; &lt;span&gt;등록할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서버는&lt;/span&gt; &lt;span&gt;master &lt;/span&gt;&lt;span&gt;역할&lt;/span&gt; &lt;span&gt;서버만&lt;/span&gt; &lt;span&gt;입력한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TdyyI/btso09E2i2P/nRMBYRWqBJVapAHjuUsfm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TdyyI/btso09E2i2P/nRMBYRWqBJVapAHjuUsfm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TdyyI/btso09E2i2P/nRMBYRWqBJVapAHjuUsfm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTdyyI%2Fbtso09E2i2P%2FnRMBYRWqBJVapAHjuUsfm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;824&quot; height=&quot;254&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;824&quot; data-origin-height=&quot;254&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;정상적으로&lt;/span&gt; &lt;span&gt;등록이&lt;/span&gt; &lt;span&gt;완료되면&lt;/span&gt; &lt;span&gt;아래와&lt;/span&gt; &lt;span&gt;같이&lt;/span&gt; &lt;span&gt;등록된&lt;/span&gt; &lt;span&gt;서버가&lt;/span&gt; &lt;span&gt;나타난다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wi4wP/btsoSkaMc0T/hxiGUG8pk7IwEYJoszp2Qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wi4wP/btsoSkaMc0T/hxiGUG8pk7IwEYJoszp2Qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wi4wP/btsoSkaMc0T/hxiGUG8pk7IwEYJoszp2Qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwi4wP%2FbtsoSkaMc0T%2FhxiGUG8pk7IwEYJoszp2Qk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;747&quot; height=&quot;254&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;254&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;클릭하면&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;구성된&lt;/span&gt; &lt;span&gt;토폴로지&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;나타내는&lt;/span&gt; &lt;span&gt;대시보드를&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;363&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcinLv/btso0srjnEn/Az9EMko7NLz2oMyVjXWG70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcinLv/btso0srjnEn/Az9EMko7NLz2oMyVjXWG70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcinLv/btso0srjnEn/Az9EMko7NLz2oMyVjXWG70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcinLv%2Fbtso0srjnEn%2FAz9EMko7NLz2oMyVjXWG70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;788&quot; height=&quot;363&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;363&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;대시보드에&lt;/span&gt; &lt;span&gt;나타난&lt;/span&gt; &lt;span&gt;서버들을&lt;/span&gt; &lt;span&gt;클릭해보면&lt;/span&gt; &lt;span&gt;현재&lt;/span&gt; &lt;span&gt;상태의&lt;/span&gt; &lt;span&gt;상세&lt;/span&gt; &lt;span&gt;정보를&lt;/span&gt; &lt;span&gt;확인할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;일부&lt;/span&gt; &lt;span&gt;제어를&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;메뉴가&lt;/span&gt; &lt;span&gt;나타난다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;636&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JS58J/btsoU6XsBx5/1VSI4bRnVAjEEkDt6vXirk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JS58J/btsoU6XsBx5/1VSI4bRnVAjEEkDt6vXirk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JS58J/btsoU6XsBx5/1VSI4bRnVAjEEkDt6vXirk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJS58J%2FbtsoU6XsBx5%2F1VSI4bRnVAjEEkDt6vXirk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;892&quot; height=&quot;636&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;636&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator : &lt;a href=&quot;https://github.com/openark/orchestrator&quot;&gt;https://github.com/openark/orchestrator&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MySQL Orchestrator - HA(High Availability) - 1 - &lt;/span&gt;&lt;span&gt;기능&lt;/span&gt; &lt;span&gt;설명&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt;&lt;span&gt; : &lt;a href=&quot;https://hoing.io/archives/72&quot;&gt;https://hoing.io/archives/72&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&quot;&gt;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&lt;/a&gt; : &lt;a href=&quot;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&quot;&gt;https://code.openark.org/blog/mysql/what-makes-a-mysql-server-failurerecovery-case&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator: MySQL Replication Topology Manager : &lt;a href=&quot;https://www.percona.com/blog/orchestrator-mysql-replication-topology-manager/&quot;&gt;https://www.percona.com/blog/orchestrator-mysql-replication-topology-manager/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Orchestrator and ProxySQL : &lt;a href=&quot;https://www.percona.com/blog/orchestrator-and-proxysql/&quot;&gt;https://www.percona.com/blog/orchestrator-and-proxysql/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-07-25 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, ProxySQL, MySQL Replication, MySQL HA, MySQL&lt;/span&gt;&lt;span&gt;복제&lt;/span&gt; &lt;span&gt;오케스트레이션&lt;/span&gt;&lt;span&gt;, MySQL&lt;/span&gt;&lt;span&gt;복제설치&lt;/span&gt;&lt;span&gt;, MySQL MHA, MySQL Orchestrator&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>mysql ha</category>
      <category>MySQL MHA</category>
      <category>MySQL Orchestrator</category>
      <category>MySQL Replication</category>
      <category>MySQL복제 오케스트레이션</category>
      <category>MySQL복제설치</category>
      <category>proxysql</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1532</guid>
      <comments>https://sqlmvp.tistory.com/entry/MySQL-%EA%B3%A0%EA%B0%80%EC%9A%A9%EC%84%B1-%EC%9A%B4%EC%98%81%EC%9D%84-%EC%9C%84%ED%95%9C-Orchestrator-%EC%84%A4%EC%B9%98#entry1532comment</comments>
      <pubDate>Tue, 25 Jul 2023 23:48:42 +0900</pubDate>
    </item>
    <item>
      <title>ProxySQL Internals 및 시스템 구성 둘러보기</title>
      <link>https://sqlmvp.tistory.com/entry/ProxySQL-Internals-%EB%B0%8F-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%84%B1-%EB%91%98%EB%9F%AC%EB%B3%B4%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;ProxySQL Internals &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;및&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;시스템&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;구성&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;둘러보기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;Version : ProxySQL&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이번&lt;/span&gt; &lt;span&gt;포스트에서는&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;인터널&lt;/span&gt; &lt;span&gt;구조와&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;구조에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;살펴본다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;상세한&lt;/span&gt; &lt;span&gt;인터널&lt;/span&gt; &lt;span&gt;구조를&lt;/span&gt; &lt;span&gt;모두&lt;/span&gt; &lt;span&gt;설명하지는&lt;/span&gt; &lt;span&gt;않으며&lt;/span&gt; &lt;span&gt;전체적인&lt;/span&gt; &lt;span&gt;구조&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;특징만&lt;/span&gt; &lt;span&gt;소개하도록&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;세부적인&lt;/span&gt; &lt;span&gt;내용은&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;포스트에서&lt;/span&gt; &lt;span&gt;하나씩&lt;/span&gt; &lt;span&gt;다뤄볼&lt;/span&gt; &lt;span&gt;예정이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;시작되면&lt;/span&gt; &lt;span&gt;즉시&lt;/span&gt; &lt;span&gt;새&lt;/span&gt; &lt;span&gt;프로세스를&lt;/span&gt; &lt;span&gt;생성한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;상위&lt;/span&gt; &lt;span&gt;프로세스는&lt;/span&gt; &lt;span&gt;엔젤&lt;/span&gt; &lt;span&gt;프로세스&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;와치독과&lt;/span&gt; &lt;span&gt;비슷한&lt;/span&gt; &lt;span&gt;의미로&lt;/span&gt; &lt;span&gt;해석됨&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;작동하고&lt;/span&gt; &lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;크래시&lt;/span&gt; &lt;span&gt;되었을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;밀리초&lt;/span&gt; &lt;span&gt;내에&lt;/span&gt; &lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;시작한다&lt;/span&gt;&lt;span&gt;. MySQL&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;비유하면&lt;/span&gt; &lt;span&gt;mysqld_safe&lt;/span&gt;&lt;span&gt;와&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;유사하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;에는&lt;/span&gt; &lt;span&gt;기본적으로&lt;/span&gt; &lt;span&gt;두&lt;/span&gt; &lt;span&gt;개의&lt;/span&gt; &lt;span&gt;포트가&lt;/span&gt; &lt;span&gt;필요하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;수신하는&lt;/span&gt;&lt;span&gt; 6033 &lt;/span&gt;&lt;span&gt;포트와&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;관리하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;게이트웨이&lt;/span&gt; &lt;span&gt;역할을&lt;/span&gt; &lt;span&gt;하는&lt;/span&gt;&lt;span&gt; 6032&lt;/span&gt;&lt;span&gt;포트이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;명령줄&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;인터페이스&lt;/span&gt;&lt;span&gt;(CLI)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;클라이언트에서&lt;/span&gt; &lt;span&gt;액세스할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;대부분의&lt;/span&gt; &lt;span&gt;구성은&lt;/span&gt;&lt;span&gt; SQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;수행된다&lt;/span&gt;&lt;span&gt;. ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;저장하는&lt;/span&gt; &lt;span&gt;데&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;데이터베이스는&lt;/span&gt;&lt;span&gt; SQLite&lt;/span&gt;&lt;span&gt;이지만&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; &lt;span&gt;한&lt;/span&gt;&lt;span&gt; MySQL&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;가까운&lt;/span&gt; &lt;span&gt;환경을&lt;/span&gt; &lt;span&gt;만들기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;노력한&lt;/span&gt; &lt;span&gt;흔적을&lt;/span&gt; &lt;span&gt;볼&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그&lt;/span&gt; &lt;span&gt;예로&lt;/span&gt; &lt;span&gt;일부&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;구문을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;확인하거나&lt;/span&gt;&lt;span&gt;(SHOW GLOBAL VARIABLES) &lt;/span&gt;&lt;span&gt;새&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;(SET GLOBAL variable_name = value) &lt;/span&gt;&lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;백엔드&lt;/span&gt; &lt;span&gt;구성은&lt;/span&gt; &lt;span&gt;테이블에&lt;/span&gt; &lt;span&gt;저장된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt; &lt;span&gt;변경&lt;/span&gt; &lt;span&gt;사항은&lt;/span&gt;&lt;span&gt; SQL(INSERT, UPDATE, DELETE)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;이루어진다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;593&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2iKhw/btsoSlFMenG/dZaVGkChy2O544lkGyhPKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2iKhw/btsoSlFMenG/dZaVGkChy2O544lkGyhPKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2iKhw/btsoSlFMenG/dZaVGkChy2O544lkGyhPKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2iKhw%2FbtsoSlFMenG%2FdZaVGkChy2O544lkGyhPKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;593&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;593&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Query processor/rules engine : ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;프로토콜&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;해석한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;규칙&lt;/span&gt; &lt;span&gt;엔진은&lt;/span&gt; &lt;span&gt;들어오는&lt;/span&gt; &lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;일치시키고&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;캐시할지&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹&lt;/span&gt; &lt;span&gt;대상에&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;차단&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;경로&lt;/span&gt; &lt;span&gt;재지정&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;재작성&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;미러링&lt;/span&gt; &lt;span&gt;할지&lt;/span&gt; &lt;span&gt;여부를&lt;/span&gt; &lt;span&gt;정의한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;User authentication : &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt; &lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;자격&lt;/span&gt; &lt;span&gt;증명이&lt;/span&gt; &lt;span&gt;해시되어&lt;/span&gt; &lt;span&gt;프록시에&lt;/span&gt; &lt;span&gt;저장된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Hostgroup manager : &lt;/span&gt;&lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;보낼&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;그룹을&lt;/span&gt; &lt;span&gt;관리하고&lt;/span&gt; &lt;span&gt;해당&lt;/span&gt; &lt;span&gt;상태를&lt;/span&gt; &lt;span&gt;추적한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Connection pool : &lt;/span&gt;&lt;span&gt;백엔드&lt;/span&gt; &lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;대한&lt;/span&gt; &lt;span&gt;연결을&lt;/span&gt; &lt;span&gt;관리한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;연결&lt;/span&gt; &lt;span&gt;풀은&lt;/span&gt; &lt;span&gt;백엔드를&lt;/span&gt; &lt;span&gt;향해&lt;/span&gt; &lt;span&gt;설정되며&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;애플리케이션에서&lt;/span&gt; &lt;span&gt;공유&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;재사용된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Monitoring : &lt;/span&gt;&lt;span&gt;백엔드를&lt;/span&gt; &lt;span&gt;모니터링하고&lt;/span&gt; &lt;span&gt;지표를&lt;/span&gt; &lt;span&gt;수집한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모니터링을&lt;/span&gt; &lt;span&gt;하면서&lt;/span&gt; &lt;span&gt;응답하지&lt;/span&gt; &lt;span&gt;않는&lt;/span&gt; &lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;복제&lt;/span&gt; &lt;span&gt;지연에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;필요에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;제어한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Query Processor&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;SQL &lt;/span&gt;&lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;분석하고&lt;/span&gt; &lt;span&gt;이해할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으므로&lt;/span&gt; &lt;span&gt;광범위한&lt;/span&gt; &lt;span&gt;라우팅을&lt;/span&gt; &lt;span&gt;수행할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;스키마&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;포트&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;정규&lt;/span&gt; &lt;span&gt;표현식과&lt;/span&gt; &lt;span&gt;같은&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;속성으로&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;일치시킬&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이렇게&lt;/span&gt; &lt;span&gt;하면&lt;/span&gt; &lt;span&gt;변경하려는&lt;/span&gt; &lt;span&gt;쿼리와&lt;/span&gt; &lt;span&gt;관련하여&lt;/span&gt; &lt;span&gt;상당한&lt;/span&gt; &lt;span&gt;유연성을&lt;/span&gt; &lt;span&gt;얻을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를들어&lt;/span&gt; &lt;span&gt;쿼리캐시는&lt;/span&gt; &lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;대기&lt;/span&gt; &lt;span&gt;시간을&lt;/span&gt; &lt;span&gt;줄일&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있도록&lt;/span&gt; &lt;span&gt;정의된&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt;&lt;span&gt;(TTL) &lt;/span&gt;&lt;span&gt;동안&lt;/span&gt; &lt;span&gt;캐시할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;기능은&lt;/span&gt; &lt;span&gt;일반적으로&lt;/span&gt; &lt;span&gt;응용&lt;/span&gt; &lt;span&gt;프로그램에&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt; &lt;span&gt;복잡성을&lt;/span&gt; &lt;span&gt;도입하는&lt;/span&gt; &lt;span&gt;외부&lt;/span&gt; &lt;span&gt;캐싱&lt;/span&gt; &lt;span&gt;계층의&lt;/span&gt; &lt;span&gt;필요성을&lt;/span&gt; &lt;span&gt;제거할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;또한&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;캐시&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;결국&lt;/span&gt;&lt;span&gt; 8.0&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;제거됨&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;보다&lt;/span&gt; &lt;span&gt;훨씬&lt;/span&gt; &lt;span&gt;나은&lt;/span&gt; &lt;span&gt;솔루션일&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;정의에&lt;/span&gt; &lt;span&gt;따라&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;제한할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를들어&lt;/span&gt; &lt;span&gt;성능에&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;미치는&lt;/span&gt; &lt;span&gt;무거운&lt;/span&gt; &lt;span&gt;쿼리들을&lt;/span&gt; &lt;span&gt;초당&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;번&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;분당&lt;/span&gt; &lt;span&gt;한&lt;/span&gt; &lt;span&gt;번만&lt;/span&gt; &lt;span&gt;실행되도록&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;커스텀하게&lt;/span&gt; &lt;span&gt;설정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;미러링기능도&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt; &lt;span&gt;아직은&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;트래픽이&lt;/span&gt; &lt;span&gt;미러되는&lt;/span&gt; &lt;span&gt;것은&lt;/span&gt; &lt;span&gt;아니기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; &lt;span&gt;큰&lt;/span&gt; &lt;span&gt;기대를&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;정도는&lt;/span&gt; &lt;span&gt;아니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그러나&lt;/span&gt; &lt;span&gt;특정&lt;/span&gt; &lt;span&gt;상황에서&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;유용하게&lt;/span&gt; &lt;span&gt;활용하&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;주어진&lt;/span&gt; &lt;span&gt;쿼리에&lt;/span&gt; &lt;span&gt;대해&lt;/span&gt; &lt;span&gt;프로덕션&lt;/span&gt; &lt;span&gt;호스트뿐만&lt;/span&gt; &lt;span&gt;아니라&lt;/span&gt; &lt;span&gt;별도의&lt;/span&gt; &lt;span&gt;위치로&lt;/span&gt; &lt;span&gt;보내서&lt;/span&gt; &lt;span&gt;슬로우&lt;/span&gt; &lt;span&gt;로그에서&lt;/span&gt; &lt;span&gt;캡처하거나&lt;/span&gt; &lt;span&gt;일부&lt;/span&gt; &lt;span&gt;디버깅을&lt;/span&gt; &lt;span&gt;수행할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt; &lt;span&gt;재작성을&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;즉석에서&lt;/span&gt; &lt;span&gt;재작성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;간단한&lt;/span&gt;&lt;span&gt; FORCE INDEX&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;해결할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있지만&lt;/span&gt; &lt;span&gt;앱&lt;/span&gt; &lt;span&gt;수정&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;테스트&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;새&lt;/span&gt; &lt;span&gt;코드&lt;/span&gt; &lt;span&gt;롤&lt;/span&gt; &lt;span&gt;등의&lt;/span&gt; &lt;span&gt;시간&lt;/span&gt; &lt;span&gt;소모적인&lt;/span&gt; &lt;span&gt;프로세스를&lt;/span&gt; &lt;span&gt;거치지&lt;/span&gt; &lt;span&gt;않고는&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;추가할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;상황에서&lt;/span&gt;&lt;span&gt;, ProxySQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;작성하면서&lt;/span&gt; &lt;span&gt;인덱스&lt;/span&gt; &lt;span&gt;힌트&lt;/span&gt; &lt;span&gt;등을&lt;/span&gt; &lt;span&gt;추가할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;매우&lt;/span&gt; &lt;span&gt;복잡한&lt;/span&gt; &lt;span&gt;구조를&lt;/span&gt; &lt;span&gt;가진것&lt;/span&gt; &lt;span&gt;처럼&lt;/span&gt; &lt;span&gt;보이지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;시스템을&lt;/span&gt; &lt;span&gt;구성하고&lt;/span&gt; &lt;span&gt;사용하는데&lt;/span&gt; &lt;span&gt;있어서는&lt;/span&gt; &lt;span&gt;4&lt;/span&gt;&lt;span&gt;개의&lt;/span&gt; &lt;span&gt;계층&lt;/span&gt;&lt;span&gt;(Runtime, Memory, Disk, Configuration file)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;제공하여&lt;/span&gt; &lt;span&gt;쉽게&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특징으로는&lt;/span&gt; &lt;span&gt;설정에&lt;/span&gt; &lt;span&gt;대해서&lt;/span&gt; &lt;span&gt;즉시&lt;/span&gt; &lt;span&gt;업데이트가&lt;/span&gt; &lt;span&gt;되고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데몬의&lt;/span&gt; &lt;span&gt;재시작&lt;/span&gt; &lt;span&gt;없이&lt;/span&gt; &lt;span&gt;적용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;또한&lt;/span&gt; &lt;span&gt;잘못&lt;/span&gt; &lt;span&gt;구성되었을&lt;/span&gt; &lt;span&gt;경우에도&lt;/span&gt; &lt;span&gt;쉽게&lt;/span&gt; &lt;span&gt;롤백&lt;/span&gt; &lt;span&gt;할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CSO6y/btsoTpVquEs/0kU04l6vw1RKpmKjMInjok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CSO6y/btsoTpVquEs/0kU04l6vw1RKpmKjMInjok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CSO6y/btsoTpVquEs/0kU04l6vw1RKpmKjMInjok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCSO6y%2FbtsoTpVquEs%2F0kU04l6vw1RKpmKjMInjok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;420&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;RUNTIME &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Runtime&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;ProxySQL &lt;/span&gt;&lt;span&gt;기동&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;운영에&lt;/span&gt; &lt;span&gt;사용된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;요청을&lt;/span&gt; &lt;span&gt;처리하는&lt;/span&gt; &lt;span&gt;스레드에서&lt;/span&gt; &lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;내&lt;/span&gt; &lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;구조를&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기에는&lt;/span&gt; &lt;span&gt;사용된&lt;/span&gt; &lt;span&gt;전역&lt;/span&gt; &lt;span&gt;변수의&lt;/span&gt; &lt;span&gt;값&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;호스트&lt;/span&gt; &lt;span&gt;그룹으로&lt;/span&gt; &lt;span&gt;그룹화된&lt;/span&gt; &lt;span&gt;백엔드&lt;/span&gt; &lt;span&gt;서버&lt;/span&gt; &lt;span&gt;목록&lt;/span&gt; &lt;span&gt;또는&lt;/span&gt; &lt;span&gt;프록시에&lt;/span&gt; &lt;span&gt;연결할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;목록이&lt;/span&gt; &lt;span&gt;포함된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;운영자는&lt;/span&gt;&lt;span&gt; RUNTIME &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;섹션의&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;수정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하위&lt;/span&gt; &lt;span&gt;레이어를&lt;/span&gt; &lt;span&gt;수정하고&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;내용을&lt;/span&gt; &lt;span&gt;적용시킬&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;MEMORY&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MEMORY(&lt;/span&gt;&lt;span&gt;메인이라고도&lt;/span&gt; &lt;span&gt;함&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;호환&lt;/span&gt; &lt;span&gt;인터페이스를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;외부에&lt;/span&gt; &lt;span&gt;노출되는&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;내&lt;/span&gt;&lt;span&gt; SQLite3 &lt;/span&gt;&lt;span&gt;데이터베이스를&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사용자는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; &lt;span&gt;인터페이스에&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;클라이언트를&lt;/span&gt; &lt;span&gt;연결하고&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;테이블과&lt;/span&gt; &lt;span&gt;데이터베이스를&lt;/span&gt; &lt;span&gt;쿼리할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;인터페이스를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;테이블은&lt;/span&gt; &lt;span&gt;다음과&lt;/span&gt; &lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;mysql_servers : ProxySQL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;중계할&lt;/span&gt; &lt;span&gt;서버들의&lt;/span&gt; &lt;span&gt;목록을&lt;/span&gt; &lt;span&gt;관리한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;중계&lt;/span&gt; &lt;span&gt;대상&lt;/span&gt; &lt;span&gt;서버를&lt;/span&gt; &lt;span&gt;백엔드&lt;/span&gt; &lt;span&gt;서버라고&lt;/span&gt; &lt;span&gt;부른다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;mysql_users : ProxySQL&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;연결할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;사용자&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;자격&lt;/span&gt; &lt;span&gt;증명&lt;/span&gt; &lt;span&gt;목록으로&lt;/span&gt;&lt;span&gt;, ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;자격&lt;/span&gt; &lt;span&gt;증명을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;백엔드&lt;/span&gt; &lt;span&gt;서버에도&lt;/span&gt; &lt;span&gt;연결한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;mysql_query_rules : &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt; &lt;span&gt;백엔드&lt;/span&gt; &lt;span&gt;서버로&lt;/span&gt; &lt;span&gt;트래픽을&lt;/span&gt; &lt;span&gt;라우팅하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;규칙&lt;/span&gt; &lt;span&gt;목록으로&lt;/span&gt; &lt;span&gt;이러한&lt;/span&gt; &lt;span&gt;규칙으로&lt;/span&gt; &lt;span&gt;인해&lt;/span&gt; &lt;span&gt;쿼리를&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;작성하거나&lt;/span&gt; &lt;span&gt;결과를&lt;/span&gt; &lt;span&gt;캐싱할&lt;/span&gt; &lt;span&gt;수도&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;global_variables : &lt;/span&gt;&lt;span&gt;런타임에&lt;/span&gt; &lt;span&gt;조정할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;프록시&lt;/span&gt; &lt;span&gt;전체에서&lt;/span&gt; &lt;span&gt;사용되는&lt;/span&gt; &lt;span&gt;전역&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt; &lt;span&gt;목록이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;아래&lt;/span&gt; &lt;span&gt;그림은&lt;/span&gt; &lt;span&gt;글로벌&lt;/span&gt; &lt;span&gt;전역&lt;/span&gt; &lt;span&gt;변수&lt;/span&gt; &lt;span&gt;예시이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1SOt2/btsoRjVZZiK/dZF7xuMGGOnPMkzgxPI821/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1SOt2/btsoRjVZZiK/dZF7xuMGGOnPMkzgxPI821/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1SOt2/btsoRjVZZiK/dZF7xuMGGOnPMkzgxPI821/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1SOt2%2FbtsoRjVZZiK%2FdZF7xuMGGOnPMkzgxPI821%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;457&quot; height=&quot;185&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;mysql_collations : &lt;/span&gt;&lt;span&gt;프록시가&lt;/span&gt; &lt;span&gt;작업할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt; &lt;span&gt;정렬&lt;/span&gt; &lt;span&gt;목록으로&lt;/span&gt; &lt;span&gt;클라이언트&lt;/span&gt; &lt;span&gt;라이브러리에서&lt;/span&gt; &lt;span&gt;직접&lt;/span&gt; &lt;span&gt;추출된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;debug_levels (&lt;/span&gt;&lt;span&gt;디버그&lt;/span&gt; &lt;span&gt;빌드에서만&lt;/span&gt; &lt;span&gt;사용&lt;/span&gt; &lt;span&gt;가능&lt;/span&gt;&lt;span&gt;) : ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;세부&lt;/span&gt; &lt;span&gt;수준과&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;내보내는&lt;/span&gt; &lt;span&gt;디버그&lt;/span&gt; &lt;span&gt;문의&lt;/span&gt; &lt;span&gt;유형&lt;/span&gt; &lt;span&gt;목록이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;문제를&lt;/span&gt; &lt;span&gt;디버깅하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;로그에&lt;/span&gt; &lt;span&gt;어떤&lt;/span&gt; &lt;span&gt;종류의&lt;/span&gt; &lt;span&gt;명령문이&lt;/span&gt; &lt;span&gt;있는지&lt;/span&gt; &lt;span&gt;런타임에&lt;/span&gt; &lt;span&gt;쉽게&lt;/span&gt; &lt;span&gt;구성할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;성능에&lt;/span&gt; &lt;span&gt;영향을&lt;/span&gt; &lt;span&gt;줄&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있으므로&lt;/span&gt; &lt;span&gt;디버그&lt;/span&gt; &lt;span&gt;빌드에서만&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;DISK &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;DISK&lt;/span&gt;&lt;span&gt;는&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt; &lt;span&gt;위치가&lt;/span&gt;&lt;span&gt; $(DATADIR)/proxysql.db&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;온디스크&lt;/span&gt;&lt;span&gt; SQLite3 &lt;/span&gt;&lt;span&gt;데이터베이스를&lt;/span&gt; &lt;span&gt;나타낸다&lt;/span&gt;&lt;span&gt;. ProxySQL &lt;/span&gt;&lt;span&gt;자체&lt;/span&gt; &lt;span&gt;데이터베이스가&lt;/span&gt; &lt;span&gt;실제로&lt;/span&gt; &lt;span&gt;동작하는&lt;/span&gt; &lt;span&gt;곳의&lt;/span&gt; &lt;span&gt;이름이&lt;/span&gt;&lt;span&gt; memory&lt;/span&gt;&lt;span&gt;인&lt;/span&gt; &lt;span&gt;이유는&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;실제로&lt;/span&gt;&lt;span&gt; in-memory &lt;/span&gt;&lt;span&gt;형태의&lt;/span&gt;&lt;span&gt; SQLite3 &lt;/span&gt;&lt;span&gt;데이터베이스가&lt;/span&gt; &lt;span&gt;상주하고&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;. ProxySQL &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;시작하면&lt;/span&gt; &lt;span&gt;유지되지&lt;/span&gt; &lt;span&gt;않은&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;내&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;손실되므로&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt;&lt;span&gt; DISK&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;유지하는&lt;/span&gt; &lt;span&gt;것이&lt;/span&gt; &lt;span&gt;중요하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;CONFIG&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;CONFIG &lt;/span&gt;&lt;span&gt;파일은&lt;/span&gt; &lt;span&gt;전형적인&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일이다&lt;/span&gt;&lt;span&gt;. Memory&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt; &lt;span&gt;운영중인&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;덤프할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt; &lt;span&gt;시작하는&lt;/span&gt; &lt;span&gt;동안&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;있는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;읽어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;지정된&lt;/span&gt; &lt;span&gt;경로에서&lt;/span&gt; &lt;span&gt;내부&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;찾으려고&lt;/span&gt; &lt;span&gt;시도한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;지정된&lt;/span&gt; &lt;span&gt;경로에&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;발견되면&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;은&lt;/span&gt; &lt;span&gt;디스크의&lt;/span&gt; &lt;span&gt;데이터베이스를&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;초기화한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;디스크&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt;&lt;span&gt; MEMORY&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;로드되고&lt;/span&gt;&lt;span&gt; RUNTIME&lt;/span&gt;&lt;span&gt;에도&lt;/span&gt; &lt;span&gt;전파된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;찾을&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;없는&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;예&lt;/span&gt;&lt;span&gt;: ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;처음으로&lt;/span&gt; &lt;span&gt;실행&lt;/span&gt; &lt;span&gt;중이거나&lt;/span&gt; &lt;span&gt;데이터베이스가&lt;/span&gt; &lt;span&gt;삭제된&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;정보가&lt;/span&gt;&lt;span&gt; MEMORY&lt;/span&gt;&lt;span&gt;에&lt;/span&gt; &lt;span&gt;로드되고&lt;/span&gt;&lt;span&gt; DISK &lt;/span&gt;&lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;저장되며&lt;/span&gt;&lt;span&gt; RUNTIME&lt;/span&gt;&lt;span&gt;에도&lt;/span&gt; &lt;span&gt;전파된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Initial startup (&lt;/span&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;span&gt; &amp;ndash;initial) : ProxySQL&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;처음&lt;/span&gt; &lt;span&gt;시작하는&lt;/span&gt; &lt;span&gt;동안&lt;/span&gt; &lt;span&gt;메모리&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;런타임&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일에서&lt;/span&gt; &lt;span&gt;채워지고&lt;/span&gt; &lt;span&gt;그&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;모든&lt;/span&gt; &lt;span&gt;구성이&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;의&lt;/span&gt; &lt;span&gt;내부&lt;/span&gt; &lt;span&gt;데이터베이스에&lt;/span&gt; &lt;span&gt;저장된다&lt;/span&gt;&lt;span&gt;. &amp;ndash;initial &lt;/span&gt;&lt;span&gt;옵션은&lt;/span&gt;&lt;span&gt; SQLite &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;원래&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일에&lt;/span&gt; &lt;span&gt;정의된&lt;/span&gt; &lt;span&gt;상태&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt; &lt;span&gt;재설정하고&lt;/span&gt; &lt;span&gt;기존&lt;/span&gt;&lt;span&gt; SQLite &lt;/span&gt;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;이름을&lt;/span&gt; &lt;span&gt;바꾸는&lt;/span&gt; &lt;span&gt;플래그&lt;/span&gt; &lt;span&gt;와&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt;&lt;span&gt; proxysql&lt;/span&gt;&lt;span&gt;을&lt;/span&gt; &lt;span&gt;실행하여&lt;/span&gt; &lt;span&gt;초기&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;강제로&lt;/span&gt; &lt;span&gt;다시&lt;/span&gt; &lt;span&gt;발생시킬&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;롤백이&lt;/span&gt; &lt;span&gt;필요한&lt;/span&gt; &lt;span&gt;경우&lt;/span&gt; &lt;span&gt;사용한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Reload startup (&lt;/span&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;span&gt; &amp;ndash;reload flag) : ProxySQL &lt;/span&gt;&lt;span&gt;바이너리가&lt;/span&gt;&lt;span&gt; --reload&lt;/span&gt;&lt;span&gt;플래그와&lt;/span&gt; &lt;span&gt;함께&lt;/span&gt; &lt;span&gt;실행되면&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;파일의&lt;/span&gt; &lt;span&gt;내용과&lt;/span&gt; &lt;span&gt;병합하려고&lt;/span&gt; &lt;span&gt;시도한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그런&lt;/span&gt; &lt;span&gt;다음&lt;/span&gt; &lt;span&gt;새로&lt;/span&gt; &lt;span&gt;병합된&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt; &lt;span&gt;시작된다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;충돌이&lt;/span&gt; &lt;span&gt;있을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt;&lt;span&gt; ProxySQL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt; &lt;span&gt;두&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;소스를&lt;/span&gt; &lt;span&gt;성공적으로&lt;/span&gt; &lt;span&gt;병합할&lt;/span&gt; &lt;span&gt;것이라는&lt;/span&gt; &lt;span&gt;보장은&lt;/span&gt; &lt;span&gt;없으며&lt;/span&gt; &lt;span&gt;사용자는&lt;/span&gt; &lt;span&gt;항상&lt;/span&gt; &lt;span&gt;병합이&lt;/span&gt; &lt;span&gt;예상대로&lt;/span&gt; &lt;span&gt;실행되었는지&lt;/span&gt; &lt;span&gt;확인해야&lt;/span&gt; &lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Runtime ProxySQL Configuration : &lt;/span&gt;&lt;span&gt;런타임&lt;/span&gt; &lt;span&gt;시&lt;/span&gt; &lt;span&gt;구성&lt;/span&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;설정은&lt;/span&gt;&lt;span&gt; ProxySQL(&lt;/span&gt;&lt;span&gt;기본적으로&lt;/span&gt;&lt;span&gt; 6032)&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt; &lt;span&gt;포트를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;수행된다&lt;/span&gt;&lt;span&gt;. MySQL &lt;/span&gt;&lt;span&gt;호환&lt;/span&gt; &lt;span&gt;클라이언트로&lt;/span&gt; &lt;span&gt;연결하면&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;기본&lt;/span&gt;&lt;span&gt; ProxySQL &lt;/span&gt;&lt;span&gt;구성&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;통계&lt;/span&gt; &lt;span&gt;테이블을&lt;/span&gt; &lt;span&gt;쿼리하기&lt;/span&gt; &lt;span&gt;위한&lt;/span&gt; &lt;span&gt;표준&lt;/span&gt;&lt;span&gt; MySQL &lt;/span&gt;&lt;span&gt;스타일&lt;/span&gt; &lt;span&gt;인터페이스가&lt;/span&gt; &lt;span&gt;표시된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;계층&lt;/span&gt; &lt;span&gt;간에&lt;/span&gt; &lt;span&gt;구성을&lt;/span&gt; &lt;span&gt;이동하기&lt;/span&gt; &lt;span&gt;위해&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;인터페이스를&lt;/span&gt; &lt;span&gt;통해&lt;/span&gt; &lt;span&gt;사용할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; &lt;span&gt;다양한&lt;/span&gt; &lt;span&gt;관리&lt;/span&gt; &lt;span&gt;명령&lt;/span&gt; &lt;span&gt;세트가&lt;/span&gt; &lt;span&gt;있다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt; &lt;span&gt;레이어간&lt;/span&gt; &lt;span&gt;이동&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;명령어은&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;링크를&lt;/span&gt; &lt;span&gt;참고한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Moving config between layers : &lt;a href=&quot;https://github.com/sysown/proxysql/blob/master/doc/configuration_system.md&quot;&gt;https://github.com/sysown/proxysql/blob/master/doc/configuration_system.md&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;참고자료&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Database load balancing for MySQL and MariaDB with ProxySQL : &lt;a href=&quot;https://severalnines.com/resources/whitepapers/database-load-balancing-for-mysql-and-mariadb-with-proxysql/&quot;&gt;https://severalnines.com/resources/whitepapers/database-load-balancing-for-mysql-and-mariadb-with-proxysql/&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Multi layer configuration system : &lt;a href=&quot;https://proxysql.com/documentation/configuring-proxysql/&quot;&gt;https://proxysql.com/documentation/configuring-proxysql/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;l&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Configuration system : &lt;a href=&quot;https://github.com/sysown/proxysql/blob/master/doc/configuration_system.md&quot;&gt;https://github.com/sysown/proxysql/blob/master/doc/configuration_system.md&lt;/a&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2023-07-24 / Sungwook Kang / &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;http://sungwookkang.com&quot;&gt;http://sungwookkang.com&lt;/a&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MySQL, ProxySQL, MySQL Replication, MySQL HA, Replication, MySQL&lt;/span&gt;&lt;span&gt;복제&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;마스터&lt;/span&gt; &lt;span&gt;슬레이브&lt;/span&gt;&lt;span&gt;, ProxySQL&lt;/span&gt;&lt;span&gt;설치&lt;/span&gt;&lt;span&gt;, MySQL&lt;/span&gt;&lt;span&gt;복제설치&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;쿼리룰설정&lt;/span&gt; &lt;span&gt;,ProxySQL Internals, ProxySQL Architecture, ProxySQL &lt;/span&gt;&lt;span&gt;아키텍처&lt;/span&gt;&lt;span&gt;, ProxySQL &lt;/span&gt;&lt;span&gt;인터널스&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MySQL, MariaDB</category>
      <category>MySQL</category>
      <category>mysql ha</category>
      <category>MySQL Replication</category>
      <category>MySQL복제</category>
      <category>MySQL복제설치</category>
      <category>proxysql</category>
      <category>ProxySQL설치</category>
      <category>replication</category>
      <category>마스터 슬레이브</category>
      <category>쿼리룰설정</category>
      <author>SungWookKang</author>
      <guid isPermaLink="true">https://sqlmvp.tistory.com/1531</guid>
      <comments>https://sqlmvp.tistory.com/entry/ProxySQL-Internals-%EB%B0%8F-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%84%B1-%EB%91%98%EB%9F%AC%EB%B3%B4%EA%B8%B0#entry1531comment</comments>
      <pubDate>Mon, 24 Jul 2023 21:23:09 +0900</pubDate>
    </item>
  </channel>
</rss>