মাইএসকিউএলে শ্লেভ স্ট্যাটাসটি বোঝার চেষ্টা করছেন


11

আমার একটি মাস্টার-স্লেভ রেপ্লিকেশন সেটআপ রয়েছে এবং দেখে মনে হচ্ছে এটি ঠিক চলছে। নীচে SHOW SLAVE STATUSআদেশের ফলাফল :

show slave STATUS\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: *.*.*.*
                  Master_User: repliV1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 10726644
               Relay_Log_File: mysqld-relay-bin.000056
                Relay_Log_Pos: 231871
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: data1
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 10726644
              Relay_Log_Space: 232172
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:

আমি সম্পর্কে আরও বুঝতে চাই Relay_Log_File, Relay_Log_Posএবং Relay_Master_Log_File

আমার প্রশ্নগুলি হ'ল:

  • এটি কি সত্য যে রিলে লগ ফাইলটি এমন একটি যা প্রতিলিপি চালানোর জন্য স্থানীয়ভাবে পড়া এবং সংরক্ষণ করা হচ্ছে?

  • তখন কী হবে relay_master_log_file; এটা কিভাবে পৃথক Master_Log_File?

  • এই মান উভয় কি, যেমন। , Read_Master_Log_Posএবং Relay_Log_Pos? প্রতিলিপি সম্পূর্ণ এবং সিঙ্কে থাকা সত্ত্বেও কেন তারা প্রদর্শিত হচ্ছে?

  • এই ফাইলগুলি বাইনারি ফর্ম্যাটে রয়েছে কি সত্য, এবং তাই আমি সেগুলি দেখতে পারি না?

উত্তর:


8

আমি আরও বুঝতে চাই রিলে_লগ_ফায়াল, রিলে_লগ_পোস এবং রিলে_মাস্টার_লগ_ফাইলে।

থেকে SHOW SLAVE STATUS\G, দুটি মান পেতে

  • Relay_Log_File : বর্তমান রিলে লগ প্রতিরূপের সময় নতুন এন্ট্রি গ্রহণ
  • Relay_Log_Pos : প্রতিলিখনের সময় নতুন এন্ট্রি গ্রহণ করে বর্তমান রিলে লগের বর্তমান অবস্থান
  • Relay_Master_Log_File : স্লেভের উপর মৃত্যুদন্ড কার্যকর করা হয়েছিল এমন মাস্টারটিতে সর্বশেষ সফলভাবে কার্যকর করা এসকিউএল বিবৃতি সম্বলিত রিলে লগ ফাইল।
  • মাস্টার_লগ_ফাইল: মাস্টারটিতে লগ যা বর্তমান রিলে লগ ফাইল এবং বর্তমান রিলে লগ অবস্থানের সাথে সম্পর্কিত

ফাইলগুলি বাইনারি হয় তাই এগুলি সঠিকভাবে দেখতে সক্ষম হয় না

হ্যাঁ, আপনি রিলে লগগুলি দেখতে পারেন। যেহেতু তাদের নিয়মিত বাইনারি লগের মতো কাঠামো রয়েছে তাই কেবল মাইএসকিএলবিনলগ প্রোগ্রামটি চালান । উদাহরণস্বরূপ, আপনার যেকোন রিলে লগের মধ্যে এসকিউএল দেখার জন্য যেমন শেষেরটি, এটি করুন:

mysqlbinlog mysqld-relay-bin.000056 > /root/SQLForCurrentRelayLog.txt
less /root/SQLForCurrentRelayLog.txt

আমি এখন আরও পরিষ্কার করছি যে এক্সিকিউটিমাস্টার_লগ_পোস (এটি কী এক্সিকিউটিভ মাস্টার লগ অবস্থান) এবং অবধি_লগ_পোস কোথায় থামবে?
নবাগত 14

এখানে ছোটখাটো ভুল। Relay_Master_Log_Fileনাম মাস্টার বাইনারি লগ ফাইল সাম্প্রতিকতম ঘটনা এসকিউএল থ্রেড না করে মৃত্যুদন্ড কার্যকর ধারণকারী রিলে লগ ফাইল
crishoj

@ রোল্যান্ডোমাইএসকিউএলডিবিএ আয়ুডাম পুর্বাগরের ডিবি.স্ট্যাকেক্সেঞ্জাওয়েজ / সেকশনস
ইভান মোর

8

Relay_Master_Log_Fileআসলে দাসের উপর সফলভাবে মৃত্যুদন্ড কার্যকর করা শেষ এসকিউএল বিবৃতি সম্বলিত মাস্টারের বাইনগের নাম। এটি ক্রীতদাসে রিলে লগের নাম নয়। দেখুন: http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.html

Exec_Master_Log_Posরিলে_মাস্টার_লগ_ফাইলে যে অবস্থানটি স্লেভ এসকিউএল থ্রেড পর্যন্ত কার্যকর করেছে। সুতরাং আপনার উদাহরণে, দাস ডিবি mysql-bin.000001মাস্টার ডিবিতে বিনলোগ পোস্ট 10726644 অবধি সমস্ত বিবৃতি কার্যকর করেছে ।

until_log_posযদি আপনি আপনার দাসটিকে সিনট্যাক্স দিয়ে শুরু করেন তবে সত্যই ব্যবহৃত হয় START SLAVE UNTIL master_log_pos = $integer। সেই বাক্য গঠনটি সেই অবস্থান পর্যন্ত প্রতিলিপি তৈরি করবে (এটি হবে exec_master_log_pos) এবং তারপরে থামবে। আপনি যদি কেবলমাত্র একটি নির্দিষ্ট পয়েন্টে প্রতিলিপি তৈরি করতে চান তবে আপনি সাধারণত এটি করেন তবে পরবর্তী কোনও বিবরণ নেই (যেমন পরবর্তী বিবৃতিটি দুর্ঘটনাজনিত টেবিলের ড্রপ বা অন্য কিছু হয়)। until_log_posনির্দিষ্ট না করা হলে এর মান 0 হয়, সুতরাং আপনার ক্ষেত্রে এর অর্থ হ'ল প্রতিলিপিটি কেবল এগিয়ে চলতে থাকবে।


ধন্যবাদ আমি এখন আরও পরিষ্কার হয়ে যাচ্ছি। এখন আর কি নিরীক্ষণ করা যায়?
newbie14
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.