Sql_error এর পরে mysql প্রতিলিপি পুনরায় আরম্ভ করুন


8

আমার দুটি মাইএসকিএল সার্ভার রয়েছে, একজন মাস্টার এবং একটি গোলাম।

কেউ ক্রীতদাসের কাছে গিয়ে একটি টেবিল তৈরি করেছিল, পরে পরবর্তীকালে মাস্টারের কাছে গিয়ে একই টেবিলটি তৈরি করে। অবশ্যই এই ডিডিএল বিবৃতিটি দাসের প্রতিলিপি করা হয়েছিল, একটি ত্রুটি সৃষ্টি করেছিল, যার ফলে প্রতিরূপটি ত্রুটির স্থানে থামানো হয়েছিল stop

গোলামের উপর টেবিলটি ফেলে দেওয়ার পরে বা বিবৃতিটির পরে প্রতিলিপি শুরু করার পরে আমি কতটা জোরে প্রতিলিপি প্রক্রিয়া পুনরায় চালু করব?

দাস স্থিতি আউটপুট দেখান:

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: xx.xx.xx.xx
                  Master_User: buildbot
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.024536
          Read_Master_Log_Pos: 33489509
               Relay_Log_File: mysqld-relay-bin.049047
                Relay_Log_Pos: 32575097
        Relay_Master_Log_File: mysql-bin.024476
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 1050
                   Last_Error: Error 'Table 'checklist' already exists' on query. Default database: 'dbname'. Query: 'CREATE TABLE `checklist` (
  `checklist_id` int(11) NOT NULL AUTO_INCREMENT,
  `description` varchar(768) NOT NULL,
  `url` varchar(512) NOT NULL,
  `active` bit(1) NOT NULL,
  `insert_date` datetime NOT NULL,
  `xcred` int(11) NOT NULL,
  PRIMARY KEY (`checklist_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1'
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 32574952
              Relay_Log_Space: 6766519525
              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: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 2013
                Last_IO_Error: error reconnecting to master 'user@xx.xx.xx.xx:3306' - retry-time: 60  retries: 86400
               Last_SQL_Errno: 1050
               Last_SQL_Error: Error 'Table 'checklist' already exists' on query. Default database: 'dbname'. Query: 'CREATE TABLE `checklist` (
  `checklist_id` int(11) NOT NULL AUTO_INCREMENT,
  `description` varchar(768) NOT NULL,
  `url` varchar(512) NOT NULL,
  `active` bit(1) NOT NULL,
  `insert_date` datetime NOT NULL,
  `xcred` int(11) NOT NULL,
  PRIMARY KEY (`checklist_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1'

উত্তর:


15

আপনি নিম্নলিখিত কমান্ডগুলি (মাইএসকিএল প্রম্পটে) ব্যবহার করতে পারেন:

mysql> STOP SLAVE;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS;

মানটি 1এড়িয়ে যাওয়ার জন্য বিবৃতিগুলির সংখ্যা উপস্থাপন করে। প্রতিলিপি স্থির না হওয়া পর্যন্ত আপনি এটি বারবার করতে পারেন। আপনি এই পৃষ্ঠাটি দেখতে পারেন ।


2
+1 আমি এটি বহুবার ব্যবহার করেছি, তবে এটি চালানোর সময় আপনি কী করছেন তা বোঝা গুরুত্বপূর্ণ। এটি ডেটা অখণ্ডতা সমস্যা হতে পারে। ক্ষেত্রে যখন কোনও ডাম্প ফাইলটি ভুল বাক্সে লোড হয়ে গেছে (যেমন দাস নয় তবে মাস্টার) আমি 100 এর কোয়েরি এড়িয়ে গেছি (এটি প্রথম পরীক্ষা করে দেখলে কোনও ক্ষতি হবে না!)। এটি আবার সম্পূর্ণরূপে পুনরায় সেট আপ করার প্রক্রিয়াটি এড়াতে পারে।
Coops

হ্যাঁ তুমিই ঠিক. এটি যত্ন সহকারে করা উচিত। আপনার যদি একটি অবৈধ ক্যোয়ারী থাকে যা প্রতিলিপি বন্ধ করে দেয় তবে এটি কার্যকর। আপনি এটি এড়িয়ে যেতে পারেন। আপনি মাস্টার এবং ক্রীতদাসের মধ্যে ডেটা হারাবেন না তা নিশ্চিত করতে আপনি এটির পরেও প্রাসঙ্গিক টেবিল (গুলি) পরীক্ষা করতে পারেন।
খালেদ

3

আপনি না। কার্যকরভাবে, আপনাকে প্রথম বারের মতো স্ক্র্যাচ থেকে আবার প্রতিলিপি সেটআপ করা দরকার, কারণ আপনি যদি বিবৃতি এড়িয়ে যান তবে আপনি সততা হারাতে পারেন। নিরাপদ থাকতে, আপনাকে একটি পরিচিত নিরাপদ শুরুর পয়েন্ট থেকে প্রতিলিপি করতে হবে।

  • মাস্টারকে লক করুন
  • - মাস্টার-ডেটা ব্যবহার করে এবং বিনলগ স্থানাঙ্কগুলি লক্ষ্য করে ডেটা ডাম্প করুন (উদাহরণস্বরূপ মাস্টার স্ট্যাটাস দেখান)
  • মাস্টারকে আনলক করুন
  • দাসে ডাম্প লোড করুন
  • 'চেঞ্জ মাস্টার' ব্যবহার করে স্ল্যাভিং শুরু করুন এবং আপনার আগে রেকর্ড করা বিনলগ স্থানাঙ্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.