คุณต้องรันnodetool repair
บนทุก ๆ โหนดในคลัสเตอร์หรือไม่คุณเพียงแค่เรียกใช้บนโหนดเดียวและจากที่นั่น Cassandra จะดูแลส่วนที่เหลือหรือไม่
คุณต้องรันnodetool repair
บนทุก ๆ โหนดในคลัสเตอร์หรือไม่คุณเพียงแค่เรียกใช้บนโหนดเดียวและจากที่นั่น Cassandra จะดูแลส่วนที่เหลือหรือไม่
คำตอบ:
ในการดูเอกสารฉันมีเวลายากในการค้นหาการอ้างอิงสำหรับเรื่องนี้ แต่คำตอบสั้น ๆ คือ "ใช่" คุณต้องรันnodetool repair
บนแต่ละโหนดในคลัสเตอร์ของคุณ ที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คือเอกสารเกี่ยวกับการซ่อมแซมโหนดซึ่งแนะนำว่าคุณไม่ควรเรียกใช้การซ่อมแซมมากกว่าหนึ่งโหนดในคลัสเตอร์ของคุณในแต่ละครั้ง
คุณยังสามารถรันการซ่อมแซมด้วยการ-pr
ตั้งค่าสถานะซึ่ง จำกัด การดำเนินการซ่อมแซมให้อยู่ในช่วงโทเค็นแรกที่โหนดปัจจุบันรับผิดชอบ สิ่งนี้จะช่วยลดความซ้ำซ้อนของงานเมื่อทำงานบนโหนดที่เหลือ
-pr
ทุก ๆ โหนดมันจะครอบคลุมทั้ง keyspace (s)
-pr
ตั้งค่าสถานะ
ลักษณะการทำงานขึ้นอยู่กับการกำหนดค่าของคุณรุ่นของคาสซานดราที่คุณใช้และวิธีการเรียกใช้คำสั่งการซ่อมแซม
หากคุณเพียงแค่เรียกใช้nodetool repair
บนโหนดเดียวในคลัสเตอร์มันจะซ่อมแซมข้อมูลทั้งหมด (ช่วงโทเค็น) ที่โหนดนั้นรับผิดชอบและโหนดอื่น ๆ ที่รับผิดชอบข้อมูลนั้น
ตัวอย่างเช่นหากคุณต้องรันnodetool repair
คำสั่งบนโหนดเดียวในคลัสเตอร์ที่กำหนด:
ที่กล่าวมาเป็นไปได้ที่จะกำหนดว่าโฮสต์และดาต้าเซ็นเตอร์ใดทำการซ่อมแซมโดยใช้-hosts
และตั้ง-dc
ค่าสถานะ นอกจากนี้หากคุณใช้-pr
แฟล็ก (ซึ่งจะเลือกช่วงโทเค็นแรกที่โหนดรับผิดชอบเท่านั้น) คุณจะต้องทำงานnodetool repair -pr
บนโหนดทั้งหมดในคลัสเตอร์
โปรดจำไว้ว่าอีกหนึ่งธงคือ-inc
ธงซึ่งรวมอยู่ในคาสซานดรา 2.1 ตัวเลือกนี้จะซ่อมแซมข้อมูลใหม่เท่านั้น (ข้อมูลที่ไม่ได้รับการซ่อมแซมก่อนหน้านี้) ระวังเมื่อใช้สิ่งนี้โดยเฉพาะอย่างยิ่งถ้าคุณลบข้อมูลบ่อยครั้ง ( เพิ่มเติมเกี่ยวกับเรื่องนี้ )
สิ่งอื่นที่ต้องจำไว้คือวิธีการซ่อมแซมเริ่มต้นใน Cassandra นั้นอาจแตกต่างกันไป ตั้งแต่ Cassandra 2.1 เมื่อใช้งานnodetool repair
จะทำการซ่อมแซมตามลำดับเต็มตามค่าเริ่มต้น คุณจะต้องค้นหาว่าเวอร์ชั่นของคุณทำอะไร
สำหรับการอ่านเพิ่มเติมในหัวข้อ:
ไม่คุณไม่ต้องทำงานบนแต่ละโหนด nodetool repair
ทำงานบนชุดของโหนดซึ่งจะระบุไว้อย่างชัดเจนในเอกสาร
คุณสามารถ จำกัด โหนดหรือส่วนของข้อมูลที่คุณต้องการเรียกใช้การซ่อมแซม ตัวอย่างเช่นคุณสามารถให้-pr
ตัวเลือกสำหรับช่วงพาร์ทิชันช่วงที่โหนดรับผิดชอบ แต่สิ่งนี้จะต้องทำงานในทั้งคลัสเตอร์ แต่ถ้าคุณเลือก-local
แล้วโหนดในศูนย์ข้อมูลท้องถิ่นของโหนดจะได้รับการซ่อมแซม
nodetool repair
บนโหนดเดียวนั้นไม่เพียงพอที่จะซ่อมแซมข้อมูลที่จำลองแบบแล้วทั้งหมดในโหนดทั้งหมดในการกำหนดค่าทั้งหมด การรันnodetool repair
บนโหนดเดียวจะซ่อมแซมข้อมูลที่จำลองแบบบนโหนดนั้นเท่านั้น (การเพิ่ม-pr
ตัวเลือกจะ จำกัด การซ่อมแซมข้อมูลที่โหนดนี้เป็นแบบจำลองแรก) แต่ถ้าคุณมีข้อมูลในคลัสเตอร์ที่ไม่ได้จำลองแบบบนโหนดนี้คุณต้องรันnodetool repair
บนโหนดเพิ่มเติม
-pr
ทุก ๆ โหนดมันจะครอบคลุมทั้ง keyspace หรือไม่?