ขนาดคุณสมบัติไม่พร้อมใช้งานสำหรับฐานข้อมูล


14

ฉันเพิ่งกู้คืนฐานข้อมูลเป็นอินสแตนซ์เดียวกันกับที่สำรองไว้ (SQL Server 2008 R2 Enterprise) และพบว่าฉันไม่สามารถเข้าถึงคุณสมบัติฐานข้อมูลได้

ฉันทำสิ่งต่อไปนี้แล้ว:

  • sp_helpdbการตรวจสอบการใช้ฐานข้อมูลถูกตั้งอย่างถูกต้องโดยใช้
  • saการเปลี่ยนแปลงการใช้ฐานข้อมูลเพื่อ ไม่ใช่การแก้ไข
  • เปลี่ยนเจ้าของฐานข้อมูลกลับเป็นsysadminผู้ใช้ของฉัน ไม่ใช่การแก้ไข
  • ออกให้DBCC updateusageกับฐานข้อมูลที่ได้รับผลกระทบ ไม่ใช่การแก้ไข
  • รันDBCC CheckDBบนสำเนาที่กู้คืนไปยังอินสแตนซ์อื่น ไม่พบความเสียหาย สำเนาที่กู้คืน (จากไฟล์สำรองเดียวกัน) ไม่ทิ้งข้อผิดพลาดใด ๆ เมื่อเข้าถึงหน้าต่างคุณสมบัติฐานข้อมูล

ใครช่วยได้บ้าง

ข้อความแสดงข้อผิดพลาดที่ฉันได้รับเมื่อพยายามดูคุณสมบัติคือ:

ไม่สามารถแสดงกล่องโต้ตอบที่ร้องขอ (SqlMgmt)
ขนาดคุณสมบัติไม่พร้อมใช้งานสำหรับฐานข้อมูล '[DBNAME]'
คุณสมบัตินี้อาจไม่มีอยู่สำหรับวัตถุนี้หรืออาจไม่สามารถเรียกคืนได้เนื่องจากสิทธิ์การเข้าถึงไม่เพียงพอ (Microsoft.SqlServer.Smo)

ฉันเป็นแบบsysadminนี้

อัปเดต: ตามที่แนะนำฉันได้สร้างผู้ใช้ใหม่ทำให้เป็นดูแลระบบและเปลี่ยนเจ้าของฐานข้อมูลเป็น ไม่แก้ไขอย่างน่าเสียดาย ฉันจะดูว่าการติดตามของ profiler ทำให้เกิดประโยชน์หรือไม่

อัปเดต: แอรอน - ฐานข้อมูลดั้งเดิมถูกเปลี่ยนชื่อและออฟไลน์ แต่ยังอยู่ในอินสแตนซ์นั้น การสำรองข้อมูลของฐานข้อมูลนั้นจะถูกกู้คืนโดยใช้ชื่อเดิม ชื่อไฟล์ของไฟล์ฐานข้อมูลใหม่นั้นแตกต่างจากของจริงเพราะอยู่ในโฟลเดอร์เดียวกับไฟล์ mdf / ldf ต้นฉบับ ฐานข้อมูลที่คืนค่ากำลังขับแอปที่สำคัญของเราตามปกติ


@Shanky ฉันใช้ SSMS 2014 และได้ลองทำสิ่งนี้กับไคลเอนต์ / เซิร์ฟเวอร์หลายตัว
ปีเตอร์

บางทียังอาจเรียกใช้ตัวติดตาม profiler เทียบกับฐานข้อมูลที่มันทำงานและดูว่ามีอะไรที่แตกต่างกันไปเช่นกันกับตำแหน่งที่ทำงานและไม่ทำงาน - สิ่งที่ต้องแตกต่างกันคืออะไร
Pimp Juice IT

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

คำตอบ:


8

ฉันได้แก้ไขปัญหานี้แล้วโดยเริ่มบริการ SQL Server ใหม่โชคไม่ดี / โชคดี

แนวคิดแรกของฉันคือถอด / แนบฐานข้อมูล ไม่ใช่ว่าฉันคิดว่านี่จะแก้ไขปัญหาได้จริงฉันเพิ่งอ่านมันในฟอรัม สิ่งนี้ไม่มีผลกระทบ

ฉันเสียใจที่ไม่ได้ทำตามสิ่งที่ PJ Mahoney แนะนำอีกครั้ง: การติดตาม ฉันหวังว่าฉันจะเห็นปัญหานี้อีกครั้งเพื่อให้ฉันสามารถตรวจสอบว่าร่องรอยพบอะไร ขอบคุณสำหรับคำแนะนำ

อย่างน้อยการตอบคำถามของฉันหมายความว่าฉันไม่ต้องเห็นคำแนะนำอื่นเกี่ยวกับการเปลี่ยนเจ้าของฐานข้อมูล P

ขอบคุณ


5

ฉันมีข้อผิดพลาดเดียวกันนี้เมื่อพยายามแก้ไขคุณสมบัติการเติบโตของไฟล์ของไฟล์บันทึกของฐานข้อมูลการผลิต ฉันพยายามใช้ SSMS และมีข้อผิดพลาดเดียวกัน:

ขนาดคุณสมบัติไม่พร้อมใช้งานสำหรับฐานข้อมูล XXX

ฉันใช้ T-SQL เพื่อแก้ไขไฟล์บันทึกฐานข้อมูลแทน

USE [master]
GO
ALTER DATABASE [MyDatabase] MODIFY FILE ( NAME = N'MyDatabase_log', FILEGROWTH = 524288KB )
GO

หลังจากคำสั่งเสร็จสิ้นฉันสามารถเปิดคุณสมบัติฐานข้อมูลใน SSMS ฉันหวังว่านี่จะใช้ได้ผลกับคนอื่น ๆ


! ที่น่าสนใจ แสดงความคิดเห็นที่นี่หากใช้กับคุณได้
Peter

ทำงานได้ดีและถูกต้อง?
Kiquenet

1

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

อีกวิธีในการทำซ้ำคือ: ใช้ฐานข้อมูลที่มีขนาดใหญ่มาก (100+ ล้านแถว) และดำเนินการคำสั่ง ALTER TABLE บนมัน (เช่นแปลงคอลัมน์ char เป็น varchar) ดูไฟล์บันทึกของคุณระเบิดเป็นฮันเดอร์ดของ megs หรือแม้กระทั่งกิกะไบต์ต่อวินาที ในขณะที่สิ่งนี้กำลังเกิดขึ้น SSMS ของคุณจะไม่สามารถให้ขนาดฐานข้อมูลแก่คุณได้เนื่องจากการเปลี่ยนแปลงเร็วเกินไปที่จะแม่นยำ

ไม่จำเป็นต้องพูดโปรดอย่าลองทำเช่นนี้บนเซิร์ฟเวอร์ที่ใช้งานจริง :)


1

เพิ่งเจอสิ่งนี้และจากร่องรอยดูเหมือนว่าสิ่งนี้ถูกบล็อกโดยการปฏิบัติการ INDEX REBUILD ที่กำลังทำงานอยู่

ข้อผิดพลาดเฉพาะของฉันคือ

Property SpaceAvailable ไม่พร้อมใช้งานสำหรับฐานข้อมูล '[dbOverwatch]' คุณสมบัตินี้อาจไม่มีอยู่สำหรับวัตถุนี้หรืออาจไม่สามารถเรียกคืนได้เนื่องจากสิทธิ์การเข้าถึงไม่เพียงพอ (Microsoft.SqlServer.Smo)

SELECT
(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in ( 0, 2, 4 ) ) AS [DbSize],
(SUM(a.total_pages) + (SELECT ISNULL(SUM(CAST(df.size as bigint)), 0) FROM sys.database_files AS df WHERE df.type = 2 )) AS [SpaceUsed]
FROM
sys.partitions p join sys.allocation_units a on p.partition_id = a.container_id left join sys.internal_tables it on p.object_id = it.object_id

ต้องมีค่าการหมดเวลาที่ต่ำมาก แต่บางทีคุณสามารถตรวจสอบว่าคุณมีสิ่งใดถูกบล็อกหรือไม่เมื่อคุณพยายามเข้าถึงคุณสมบัติ


น่าสนใจ ฉันจะทดสอบสิ่งนั้น
ปีเตอร์

0

ฉันได้รับข้อความแสดงข้อผิดพลาดนี้ระหว่างการปรับใช้โซลูชันเครื่องมือฐานข้อมูล SQL Serverกับฐานข้อมูล (บน SQL Server 2008 R2) หลังจากการปรับใช้เสร็จสิ้นข้อผิดพลาดจะหายไป มันเป็นเรื่องที่น่ารังเกียจเล็กน้อยเพราะไม่มี DB ในโหมดผู้ใช้คนเดียวหรืออ่านอย่างเดียว

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