ฐานข้อมูล 'XXX' อยู่ในช่วงการเปลี่ยนภาพ ลองคำสั่งในภายหลัง


27

ฉันพยายามเชื่อมต่อกับฐานข้อมูลเซิร์ฟเวอร์ sql ฉันได้รับข้อผิดพลาดนี้

Database 'XXX' is in transition. Try the statement later.

ฉันยกเลิกการสืบค้นแบบยาวไปก่อนหน้านี้ในวันนี้ แต่ด้วยเหตุผลบางอย่างฉันไม่สามารถรับฐานข้อมูลเพื่อสำรอง มีอะไรที่ฉันพอจะทำได้บ้าง?


4
ด้วยคำถามเช่นนี้คุณควรเจาะจงเกี่ยวกับเซิร์ฟเวอร์ SQL และรุ่นของมัน ฉันเดาว่าคุณหมายถึงหนึ่งในเซิร์ฟเวอร์ Microsoft SQL แต่เราไม่ต้องเดา
John Gardeniers

ลองดูสิ สิ่งนี้ใช้ได้สำหรับฉัน stackoverflow.com/a/27036481/4273753

คำตอบ:


40

สิ่งนี้สามารถเกิดขึ้นได้ในบางครั้งหากคุณพยายามทำให้ DB ออฟไลน์หรือดำเนินการอื่น ๆ และล้มเหลว บางครั้งล็อคสามารถล้างได้ถ้าคุณปิดอินสแตนซ์ SSMS ที่พยายามดำเนินการแล้วเปิดใหม่ ปิดและเปิดอินสแตนซ์ SSMS ใด ๆ ที่เชื่อมต่อกับเซิร์ฟเวอร์อีกครั้ง

นอกจากนี้ยังสามารถเกิดขึ้นได้ถ้าคุณพยายามที่จะออฟไลน์ฐานข้อมูลในขณะที่มีการเรียกใช้แบบสอบถามที่ยาว ตรวจสอบการตรวจสอบกิจกรรมและลองฆ่าเคียวรีที่ใช้เวลานานใด ๆ หากทำได้และปลอดภัย

หากไม่ได้ผลข้างต้นให้ปิดอินสแตนซ์ SSMS ทั้งหมดแล้วเริ่ม SQL ใหม่ผ่านตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL โดยทั่วไปแล้วจะรักษาแม้ว่าฐานข้อมูลอาจอยู่ในโหมดการกู้คืนในตอนแรก


มันแปลกมาก คุณรู้ไหมว่าทำไมมันถึงเกิดขึ้น?
Krismorte

11

น่าประหลาดใจที่ฉันแก้ไขปัญหานี้ได้โดยเพียงแค่ปิด SSMS และเปิดใหม่


ง่ายเกินไป ทำงานให้ฉัน
greg121

การปิด SSMS และเปิดใหม่ก็ทำงานได้สำหรับฉันเช่นกัน
Michael Bollhoefer

3

ในขณะที่การปิด SSMS ทำงานให้ฉันเช่นกันขึ้นอยู่กับปัญหาคุณสามารถลอง:

ALTER DATABASE [Name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [Name] SET MULTI_USER

แนวคิดนี้มาจากคำถามนี้ (และประสบการณ์ส่วนตัว): /programming/4230290/sql-server-2008-how-do-i-disconnect-everyone-from-my-db


1

มีตัวเลือกที่พร้อมใช้งานใน SQL Server Management Studio สำหรับรับฐานข้อมูลออนไลน์ / ออฟไลน์ แต่ต้องได้รับอนุญาตจากผู้ดูแลระบบ

หากต้องการเข้าถึงให้คลิกขวาที่ฐานข้อมูล -> งาน -> นำออนไลน์


0

ฉันรู้ว่ามันตอบแล้ว แต่เพียงเพื่อเพิ่ม; หากสถานการณ์เป็นเช่นนั้นซึ่งคุณพยายามที่จะออฟไลน์และจากนั้นล้มเหลวคุณสามารถลองฆ่า SPID ที่พยายามเปลี่ยนสถานะฐานข้อมูล

ทำ sp_who หรือ sp_who2 และค้นหา SPID ที่หมุนอยู่บนฐานข้อมูลพยายามที่จะทำให้ฐานข้อมูลออฟไลน์ ฆ่า SPID นั้นและคุณจะเหลือฐานข้อมูลออนไลน์หรือออฟไลน์ที่ไม่ได้อยู่ในสถานะการนำส่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.