คำถามติดแท็ก availability-groups

Availability Groups เป็นคุณลักษณะใหม่ของ SQL Server 2012 ที่ให้การซิงโครไนซ์ข้อมูลอย่างต่อเนื่องการล้มเหลวอัตโนมัติและการเข้าถึงการอ่านรองสำหรับฐานข้อมูล SQL Server หนึ่งหรือหลายฐานข้อมูล

1
ใครใช้เธรดคนงานของฉัน SQL Server 2014 - HADR
เมื่อเร็ว ๆ นี้เรามีปัญหาเกี่ยวกับสภาพแวดล้อม HADR ของ SQL Server 2014 ซึ่งเซิร์ฟเวอร์ตัวใดตัวหนึ่งขาดเธรดของผู้ปฏิบัติงาน เราได้รับข้อความ: กลุ่มเธรดสำหรับกลุ่มความพร้อมใช้งาน AlwaysOn ไม่สามารถเริ่มเธรดผู้ปฏิบัติงานใหม่ได้เนื่องจากมีเธรดผู้ปฏิบัติงานที่พร้อมใช้งานไม่เพียงพอ ฉันแล้วเปิดคำถามอื่นเพื่อให้ได้คำสั่งที่ (ผมคิดว่า) จะช่วยให้ผมวิเคราะห์ปัญหา ( มันเป็นไปได้ที่จะเห็นการใช้งานซึ่ง SPID ซึ่งจัดตารางเวลา (ด้ายคน)? ) แม้ว่าตอนนี้ฉันจะมีแบบสอบถามเพื่อค้นหาเธรดที่ใช้ระบบนี้ แต่ฉันไม่เข้าใจว่าทำไมเซิร์ฟเวอร์นั้นถึงไม่มีเธรดของผู้ปฏิบัติงาน สภาพแวดล้อมของเรามีดังนี้: 4 Windows Server 2012 R2 SQL Server 2014 Enterprise 24 ตัวประมวลผล -> 832 เธรดผู้ทำงาน 256 GB ราม 12 กลุ่มความพร้อมใช้งาน (โดยรวม) 642 ฐานข้อมูล (โดยรวม) ดังนั้นเซิร์ฟเวอร์ที่มีปัญหามีการกำหนดค่าต่อไปนี้: 5 …

1
ฐานข้อมูล SQL Server AlwaysOn ติดอยู่ในโหมดไม่ซิงโครไนซ์ / กำลังกู้คืนหลังจากอัปเกรด ข้อผิดพลาด: ไม่สามารถเปิดฐานข้อมูล '…' รุ่น 782
ขณะทดสอบการอัปเกรดจาก SQL Server 2014 SP1 (12.0.4422.0) เป็น SQL Server 2016 CTP 3.2 (13.0.900.73) ฉันทำตามกระบวนการอัปเดตที่แนะนำและพบปัญหาที่ฐานข้อมูลจะไม่เริ่มทำงานบนหลักเก่าหลังจากล้มเหลว ไปยังการปรับปรุงรอง การตั้งค่าของเราเป็นแบบจำลองหลักและแบบจำลองรองเดียวและขั้นตอนที่ฉันทำคือ: ลบ failover อัตโนมัติในแบบจำลองรองกระทำการซิงโครนัส อัพเกรดอินสแตนซ์ของเซิร์ฟเวอร์รองเป็นเวอร์ชันใหม่ ล้มเหลวด้วยตนเองไปยังแบบจำลองรอง ตรวจสอบว่าฐานข้อมูลออนไลน์แบบจำลองหลักใหม่ อัปเกรดเรพพลิกาหลักก่อนหน้าเป็นเวอร์ชันใหม่ การอัพเกรดของรองและ failover เพื่อให้มันทำงานหลักตรงตามที่คาดไว้ แต่หลังจากการอัพเกรดแบบจำลองก่อนหน้านี้หลักที่ผมสังเกตเห็นว่าฐานข้อมูลที่มันถูกระบุไว้ใน SSMS เป็นไม่ตรงกัน / ในการกู้คืน การพยายามเข้าถึงพวกมันจะสร้างข้อความแสดงข้อผิดพลาด: ฐานข้อมูล ... ไม่สามารถเข้าถึงได้ (ObjectExplorer) กำลังตรวจสอบถึงบันทึกของเซิร์ฟเวอร์ SQL ที่ฉันเห็น ไม่สามารถเปิดฐานข้อมูล '... ' เวอร์ชัน 782 อัปเกรดฐานข้อมูลเป็นเวอร์ชันล่าสุด การสอบถามตาราง master..sysdatabases แสดงให้เห็นว่ามันเป็นรุ่นที่เก่ากว่าและไม่ได้รับการอัพเดตในระหว่างการอัพเกรด: น่าเสียดายที่ล็อกไม่ได้ระบุว่าทำไมมันจึงไม่อัปเดตและแดชบอร์ดกลุ่มความพร้อมใช้งานให้เฉพาะคำเตือนทั่วไปที่ระบุสถานะการซิงโครไนซ์ข้อมูลของฐานข้อมูลความพร้อมใช้งานบางอย่างไม่แข็งแรงโดยไม่มีเหตุผล ฉันพยายามใช้ …

6
เซิร์ฟเวอร์ที่ลงทะเบียน SSMS พร้อมเจตนาการใช้งานแบบอ่านอย่างเดียว
เรากำลังดำเนินการทดสอบ SQL Server 2014 POC กับ AlwaysOn และหนึ่งในผู้ใช้ถามเกี่ยวกับการบันทึกการกำหนดค่าของ SSMS ด้วยเจตนาแบบอ่านอย่างเดียวโดยใช้เซิร์ฟเวอร์ที่ลงทะเบียนในกลุ่มเซิร์ฟเวอร์ท้องถิ่น วิธีนี้พวกเขาไม่จำเป็นต้องพิมพ์ชื่อนามแฝงทุกครั้งที่พวกเขาต้องการเข้าถึงReadOnly replica น่าเสียดายที่ไม่มีตัวเลือกภายในเซิร์ฟเวอร์ที่ลงทะเบียนเพื่อเพิ่มตัวเลือก ApplicationIntent ซึ่งแตกต่างจากนักสำรวจวัตถุปกติ ฉันเจอบทความนี้จาก Microsoft เกี่ยวกับการเปลี่ยนสตริงการเชื่อมต่อใน RegSrvr.xml https://connect.microsoft.com/SQLServer/feedback/details/786323/ssms-sql-server-management-studio-2012-missing-connection-properties-for-availability-groups ฉันลองใช้คำแนะนำของพวกเขาและมันไม่ได้เชื่อมต่อกับโหนดจำลองที่ถูกต้องเมื่อเชื่อมต่อผ่านเซิร์ฟเวอร์ท้องถิ่นในเซิร์ฟเวอร์ที่ลงทะเบียน อ่านได้อย่างเดียวตัวเลือกที่ทำงานได้ดีจากวัตถุสำรวจเมื่อใช้ตัวเลือกในหน้าต่างการเชื่อมต่อ> พารามิเตอร์การเชื่อมต่อเพิ่มเติม แต่จะไม่บันทึกการเปลี่ยนแปลงที่เกิดขึ้นกับการเชื่อมต่อ ไม่มีใครรู้วิธีแก้ปัญหาทางเลือกใด ๆ ในการบันทึกการกำหนดค่าด้วยคุณสมบัติการอ่านอย่างเดียวกับ SSMS ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของ.

2
AlwaysOn Availability Group Failover อัตโนมัติไม่ทำงาน
เล่นกับการตั้งค่า AG ฉันได้ WSFC ขึ้นและกำหนดค่าด้วยสองโหนดในกลุ่มความพร้อมใช้งานหนึ่งกลุ่มที่เรียกว่า DevClusterOnline ทั้งสองโหนด (หลัก DEV-AWEB5, DEV-AWEB6 รอง) กำลังเรียกใช้ Windows Server 2008 R2 หากฉันตรวจสอบสุขภาพของ AG ของฉันฉันจะได้รับสิ่งนี้: การเรียกใช้คิวรีด้านล่างจะส่งคืนชุดผลลัพธ์นี้: select ar.replica_server_name, availability_group_name = ag.name, ar.availability_mode_desc, ar.failover_mode_desc from sys.availability_replicas ar inner join sys.availability_groups ag on ar.group_id = ag.group_id order by availability_group_name, replica_server_name; ถ้าฉันตัดการเชื่อมต่อ DEV-AWEB5 ฉันไม่สามารถเชื่อมต่อกับกลุ่มฟัง (DevListener) แต่ฉันสามารถ ping มันและมันจะตอบสนองต่อ ping …

1
การใช้เธรดของผู้ปฏิบัติงานระดับสูง HADR
เหตุใดจำนวนเธรดผู้ปฏิบัติงานของกลุ่มความพร้อมใช้งานในพูล HADR จะเพิ่มขึ้นมากกว่าการใช้งานขั้นต่ำของ " โดยทั่วไปแล้วจะมีเธรดที่ใช้ร่วมกัน 3-10 เธรด " ต่อแบบจำลอง ในกรณีหนึ่งเราได้สังเกตการใช้งาน 300+ เธรดที่มีกลุ่มความพร้อมใช้งาน 3 กลุ่มและรวม 10 ฐานข้อมูล SQL Server 2014 SP1 โอกาสในการขายของเราคือการสำรองข้อมูลในแบบจำลองสำรองกิจกรรมระดับสูงในแบบจำลองหลักรายงานเกี่ยวกับแบบจำลองรอง AG อยู่ในดาต้าเซ็นเตอร์บน VMware ทั้งหมด 16 schedulers รวมหัวข้อคนงานปกติอยู่ภายใต้ 200 ช่วง max_dopบนเซิร์ฟเวอร์คือ 2 3 AG, 10 DB, 4 replica แต่ละอัน - primary, 2 readonly, 1 ไม่สามารถอ่านได้ 1 ที่สองคือซิงค์ 2 async 16 …

1
ไม่สามารถตัดทอนบันทึกธุรกรรม log_reuse_wait_desc - AVAILABILITY_REPLICA
เช้านี้ฉันตื่นขึ้นมาด้วยการทำธุรกรรมบันทึกการแจ้งเตือนอย่างเต็มรูปแบบในหนึ่งในฐานข้อมูลของเรา เซิร์ฟเวอร์นี้เป็นคลัสเตอร์ alwayson และยังเป็นสมาชิกการจำลองแบบของทรานแซคชัน ฉันตรวจสอบ log_reuse_wait_desc และพบว่ามีการสำรองข้อมูล มีคนปิดการใช้งานการสำรองข้อมูลโดยไม่ตั้งใจ 4 วันก่อนหน้าฉันเปิดใช้งานงานสำรองข้อมูลบันทึกอีกครั้งและบันทึกถูกล้าง ตั้งแต่ 4 โมงเช้าฉันคิดว่าฉันจะไปทำงานในภายหลังในเช้าวันนั้นและปัดท่อนไม้ตามที่มันโตขึ้นเป็น 400GB 10:00 น. - ฉันอยู่ในสำนักงานและฉันตรวจสอบการใช้งานบันทึกก่อนที่จะย่อขนาดลงและประมาณ 16% ฉันประหลาดใจและตรวจสอบ log_reuse_wait_desc ซึ่งแสดงการจำลองแบบ ฉันสับสนเพราะนี่เป็นสมาชิกการจำลองแบบ จากนั้นเราเห็นว่า db ถูกเปิดใช้งานสำหรับ CDC และคิดว่าอาจเป็นสาเหตุ CDC ที่ถูกปิดใช้งานและตอนนี้ log_reuse_wait_desc แสดง AVAILABILITY_REPLICA การใช้งานบันทึกในขณะที่ยังคงเติบโตอย่างต่อเนื่องและที่ 17% ในขณะนี้ ฉันตรวจสอบแดชบอร์ด alwayson และตรวจสอบคิวที่ส่งและทำซ้ำและทั้งคู่นั้นแทบจะเป็นศูนย์ ฉันไม่แน่ใจว่าทำไมการใช้บันทึกซ้ำจึงแสดงเป็น AVAILABILITY_REPLICA และไม่สามารถล้างบันทึกได้ มีความคิดว่าทำไมสิ่งนี้เกิดขึ้น?

3
จะทำอย่างไรเมื่อคลัสเตอร์ Always On ของคุณสูญเสียโควรัม?
ฉันกำลังตรวจสอบขั้นตอนการ DR บริษัท ของเราและเมื่อฉันดูออนไลน์เพื่อหาวิธีการแก้ปัญหาในกลุ่ม Always On Cluster ที่เสียโควรัมให้เปรียบเทียบ ฉันเป็นสามหน้าไปสู่ผลลัพธ์ของ Google ก่อนที่จะค้นหาโพสต์ SE แรกในเรื่องการทำสำเนากลุ่มกับการจำลองแบบของทรานแซคชันกับกลุ่มความพร้อมใช้งานซึ่งสัมผัสเพียงเบา ๆ ในเรื่องขององค์ประชุมที่หายไป ในขณะที่ทุกคนเห็นด้วยกับโควรัมการสูญเสียที่ไม่ดีและมีคำแนะนำสำหรับการลดศักยภาพ แต่ก็ยังสามารถเกิดขึ้นได้ ฉันกำลังมองหาคำตอบที่ดีที่ได้รับการตรวจสอบไปยังเส้นทางที่ดีที่สุดในการกู้คืนจากการสูญเสียโควรัม Always On ของกลุ่ม

2
ฟังกลุ่มความพร้อมใช้งาน
ฉันกำลังดูกลุ่มความพร้อมใช้งาน AlwaysOn ยิ่งฉันมองมันมากเท่าไหร่ก็ยิ่งปรากฏว่ากลุ่มฟังความพร้อมใช้งานเป็นจุดล้มเหลวเพียงจุดเดียว ผู้ฟังทำงานตรงไหนจริงๆ? เซิร์ฟเวอร์แยกต่างหากเซิร์ฟเวอร์ SQL หลักพวกเขาทั้งหมดหรือไม่ สมมติว่าฉันมีแอปพลิเคชันทั้งหมดที่ศูนย์ข้อมูลที่สองของฉัน ฉันจะกำหนดค่าผู้ฟังได้อย่างไรว่าพวกเขาจะทำงานที่ไซต์ทั้งสองและแอปพลิเคชันจะชี้ไปที่สำเนาในเครื่องของตนเอง ฉันแน่ใจว่าฉันพลาดอะไรบางอย่างที่นี่ แต่ไม่รู้อะไรเลย

3
กลุ่มความพร้อมใช้งานเสมอให้เปลี่ยนเส้นทางผู้ใช้ไปยังอินสแตนซ์อ่านอย่างเดียวเสมอ
เรามีกลุ่มความพร้อมใช้งานตลอดเวลาซึ่งมีกลุ่มหลักและกลุ่มรองที่เปิดใช้งานการอ่าน เรามีผู้ใช้สำหรับทีมดำเนินการที่ใช้ฐานข้อมูลเพื่อตรวจสอบความถูกต้องของข้อมูลที่พวกเขาตั้งใจจะใส่ไว้ในฐานข้อมูล ผู้ใช้มีสิทธิ์อ่านจากฐานข้อมูลเท่านั้น แต่เมื่อพวกเขาเชื่อมต่อ (ผ่าน SSMS) ผ่าน AG Listener พวกเขาจะเชื่อมต่อกับโหนดที่ใช้งานอยู่เสมอ ฉันพยายามให้พวกเขาเข้าถึงอินสแตนซ์อ่านอย่างเดียวโดยตรง แต่พวกเขาติดอยู่ในหนทางของพวกเขาและหลังจากหนึ่งหรือสองวันพวกเขาก็กลับมาใช้งานโหนดอีกครั้ง มีวิธีใดที่ SQL Server จะบอกว่าผู้ใช้รายนี้มักจะตั้งใจอ่านอย่างเดียวและเปลี่ยนเส้นทางไปที่นั่นหรือไม่? หมายเหตุ: ฉันได้ลองตั้งค่า 'ApplicationIntent = ReadOnly' ในพารามิเตอร์การเชื่อมต่อเพิ่มเติม แต่ดูเหมือนจะไม่เปลี่ยนเส้นทางไปยังโหนดที่สองและไม่ใช่วิธีแก้ปัญหาที่สมบูรณ์แบบเนื่องจากพวกเขาจะลืมตั้งค่าสำหรับผู้เริ่มต้นใหม่อย่างหลีกเลี่ยงไม่ได้ SQL Server 2012 Enterprise, กลุ่มความพร้อมใช้งานหลัก 1, รอง 1 ที่สามารถอ่านได้พร้อมการส่งข้อมูลแบบซิงโครนัส ฉันไม่ต้องการให้ผู้ใช้เชื่อมต่อกับเซิร์ฟเวอร์ที่เชื่อมโยงหรือผ่านเซิร์ฟเวอร์อื่น ๆ ผู้ใช้เชื่อมต่อโดยตรงกับฐานข้อมูลผ่าน SSMS (ไม่มีแอปพลิเคชันอื่น) และฉันต้องการให้ AG Listener (หรือบางสิ่งที่อยู่รอบ ๆ ) สามารถนำผู้ใช้นั้นไปยังโหนดที่สองได้หากมีอยู่ (เนื่องจากมีการเข้าถึงแบบอ่านเท่านั้น ไม่มีประเด็นที่จะเข้าถึงข้อมูลหลัก) โดยที่ผู้ใช้ไม่ต้องทำอะไรเนื่องจากพวกเขาย้ายไปรอบ ๆ เครื่องและจะลืมที่จะเพิ่มความตั้งใจของแอปพลิเคชัน นอกจากนี้ฉันพบว่าการเพิ่มลงในพารามิเตอร์การเชื่อมต่อเพิ่มเติมไม่ได้นำคุณไปยังโหนดรองเสมอ

1
กลุ่มความพร้อมใช้งานสามารถให้การเข้าแทนที่ที่ราบรื่น (โดยไม่มีความล้มเหลวในการค้นหา)?
ฉันได้ทำการทดสอบคุณสมบัติกลุ่มความพร้อมใช้งานใน SQL Server 2012 และกำลังค้นหาว่ามีเวลาหยุดทำงานประมาณ 15 วินาทีเมื่อเซิร์ฟเวอร์หลักล้มเหลวไปยังเซิร์ฟเวอร์รอง แบบสอบถาม SQL ทั้งหมดที่ดำเนินการในช่วงเวลานี้จะล้มเหลวจนกว่าการเปลี่ยนแปลงล้มเหลวจะเสร็จสมบูรณ์ มีวิธีใดที่จะทำให้สิ่งนี้ลดลงเป็น 0 วินาทีและป้องกันไม่ให้แบบสอบถามล้มเหลวในระหว่างการเปลี่ยนสถานะการเฟลโอเวอร์? กล่าวอีกนัยหนึ่งมีวิธีที่จะทำให้คิวรีใด ๆ ที่ทำงานในระหว่างที่ล้มเหลวในการเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์หลักแทนที่จะล้มเหลว ... และมีวิธีใดที่จะได้รับการเชื่อมต่อฐานข้อมูลใหม่เพื่อเชื่อมต่อกับเซิร์ฟเวอร์รองทันทีแทนที่จะล้มเหลว เชื่อมต่อระหว่างการเปลี่ยน Failover หรือไม่? ปัจจุบันฉันมีเซิร์ฟเวอร์ 2 ตัวที่ตั้งค่าไว้ในกลุ่มความพร้อมใช้งาน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.