Mülk Boyutu veritabanı için kullanılamıyor


14

Son zamanlarda bir veritabanını (SQL Server 2008 R2 Enterprise) yedeklendiği aynı örneğe geri yükledim ve veritabanı özelliklerine erişemediğimi gördüm.

Aşağıdakileri yaptım:

  • Veritabanı sahibinin kullanarak doğru ayarlandığını kontrol etti sp_helpdb.
  • Veritabanı sahibi olarak değiştirildi sa. Bir düzeltme değil.
  • Veritabanı sahibini sysadminkullanıcıma geri değiştirdim . Bir düzeltme değil.
  • Çıkarılmış DBCC updateusageetkilenen veritabanına karşı. Bir düzeltme değil.
  • DBCC CheckDBBaşka bir örneğe geri yüklenen bir kopyada çalıştırın . Yolsuzluk bulunamadı. Geri yüklenen kopya (aynı yedekleme dosyasından) veritabanı özellikleri penceresine erişirken herhangi bir hata atmadı.

Biri yardım edebilir mi?

Özellikleri görüntülemeye çalışırken aldığım hata mesajı:

İstenen iletişim kutusu gösterilemiyor. (SqlMgmt)
Özellik Boyutu '[DBNAME]' Veritabanı için kullanılamıyor.
Bu özellik, bu nesne için mevcut olmayabilir veya yetersiz erişim hakları nedeniyle alınamaz. (Microsoft.SqlServer.smo)

Ben sysadminbu örnek üzerinde bir.

Güncelleme: Önerildiği gibi yeni bir kullanıcı oluşturdum, sysadmin yaptım ve veritabanı sahibini buna değiştirdim. Ne yazık ki bir düzeltme değil. Bir profil oluşturucu izinin yararlı bir şey sağlayıp sağlamadığını göreceğim.

Güncelleme: Aaron - orijinal veritabanı yeniden adlandırıldı ve çevrimdışına alındı, ancak yine de bu örnekte. Bu veritabanının yedeği daha sonra orijinal ad kullanılarak geri yüklendi. Yeni veritabanı dosyalarının dosya adları orijinal mdf / ldf ile aynı klasörde bulunduğundan orijinalinden farklıdır. Geri yüklenen db şu anda kritik uygulamalarımızı normal şekilde kullanıyor.


@Shanky SSMS 2014 kullanıyorum ve bunu birden çok istemciden / sunucudan denedim.
Peter

Belki de DB'ye karşı çalıştığı bir profiler izlemesi çalıştırın ve orada çalıştığı ve çalışmadığı şeyle de neyin farklı olduğunu görün - bir şey farklı mı olmalı?
Pimp Juice IT

Son zamanlarda büyük bir veritabanını geri yükledikten sonra bu sorunu yaşadım. Yine de kendini temizlediğini söylediğim için üzgünüm. Aptalca bir soru olabilir, ama hata günlüğünü istenmeyen herhangi bir şey için kontrol ettiniz mi?
dwjv

Yanıtlar:


8

Ne yazık ki / neyse ki SQL Server hizmetini yeniden başlatarak bu sorunu çözdüm.

İlk fikrim veritabanını ayırmak / iliştirmekti. Bunun aslında sorunu çözeceğini düşünmüyorum, sadece bir forumda okudum. Bunun bir etkisi yoktu.

Maalesef PJ Mahoney'in önerdiği şeyi yapmadım: bir iz çalıştırmak. Umarım bu sorunu tekrar görürüm, böylece bir izin herhangi bir şey gösterip göstermediğini öğrenebilirim. Önerin için teşekkürler.

En azından kendi sorumu cevaplamak, veritabanı sahibini değiştirme hakkında başka bir öneri görmek zorunda olmadığım anlamına gelir; P

Teşekkürler


5

Bir üretim veritabanının günlük dosyasının dosya büyüme özelliklerini değiştirmeye çalışırken aynı hatayla karşılaştım. SSMS kullanmayı denedim ve aynı hatayla karşılaştım:

Mülk boyutu XXX veritabanı için kullanılamıyor.

Bunun yerine veritabanı günlük dosyasını değiştirmek için T-SQL kullandım.

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

Komut tamamlandıktan sonra veritabanı özelliklerini SSMS'de açabildim. Umarım bu diğerleri için işe yarar.


ilginç! Bu sizin için işe yaradıysa yorum yapın
Peter

iyi çalışıyor ve değil mi?
Kiquenet

1

Bu çok meşgul veritabanlarında veya veritabanı genel olarak meşgul olmasa da, şu anda günlük dosyası boyutunu hızla değiştiren bir deyim yürütüyor olabilir. Örneğin, bir tablodan çok sayıda satırı (milyon) silmeye çalışırsanız, motor geri alma amacıyla her satırı oturum açmak zorunda kalır ve bu da günlük dosyasını hızla büyümeye zorlar. Bu işlem devam ederken, veritabanı özelliklerini SSMS'de açmaya çalışırsanız, "özellik boyutu kullanılamaz .." hata iletisini görürsünüz.

Yeniden oluşturmanın başka bir yolu şudur: çok büyük bir veritabanı (100+ milyon satır) alın ve üzerinde bir ALTER TABLE ifadesi yürütün (örneğin, bir char sütununu varchar'a dönüştürün). Günlük dosyanızın saniyede megabayt ve hatta gigabayt olarak patladığını görün. Yine, bu olurken, SSMS size veritabanı boyutunu veremeyecektir çünkü doğru olamayacak kadar hızlı değişir.

Söylemeye gerek yok, lütfen bunu canlı sunucularda denemeyin. :)


1

Sadece bununla karşılaştı ve bir izden, görünüşe göre bu çalışan INDEX REBUILD işlemi tarafından engellendi

Benim özel hatam

'[DbOverwatch]' Veritabanı için SpaceAvailable özelliği kullanılamıyor. Bu özellik, bu nesne için mevcut olmayabilir veya yetersiz erişim hakları nedeniyle alınamaz. (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

Çok düşük bir zaman aşımı değerine sahip olmalı, ancak özelliklere erişmeye çalıştığınızda engellenecek bir şeyiniz olup olmadığını kontrol edebilirsiniz.


İlginç. Bunu test edeceğim.
Peter

0

SQL Server veritabanı araçları çözümünün veritabanına (SQL Server 2008 R2'de) dağıtılması sırasında bu hata iletisini alıyorum . Dağıtım bittikten sonra hata giderildi. Biraz iğrenç çünkü ne DB tek kullanıcı modunda ne de salt okunur (corse değil) ya da nedeni gösteren başka bir şey.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.