Ukuran Properti tidak tersedia untuk basis data

14

Saya baru-baru ini mengembalikan database ke contoh yang sama dengan yang didukungnya (SQL Server 2008 R2 Enterprise) dan menemukan bahwa saya tidak dapat mengakses properti database.

Saya telah melakukan yang berikut:

  • Memeriksa pemilik basis data ditetapkan dengan benar menggunakan sp_helpdb.
  • Mengubah pemilik basis data ke sa. Bukan perbaikan.
  • Mengubah pemilik basis data kembali ke sysadminpengguna saya . Bukan perbaikan.
  • Dikeluarkan DBCC updateusageterhadap basis data yang terpengaruh. Bukan perbaikan.
  • Jalankan DBCC CheckDBsalinan yang dipulihkan ke instance lain. Tidak ditemukan korupsi. Salinan yang dipulihkan (dari file cadangan yang sama) tidak menimbulkan kesalahan saat mengakses jendela properti database.

Adakah yang bisa membantu?

Pesan kesalahan yang saya dapatkan ketika mencoba melihat properti adalah:

Tidak dapat menampilkan dialog yang diminta. (SqlMgmt)
Ukuran Properti tidak tersedia untuk Basis Data '[DBNAME]'.
Properti ini mungkin tidak ada untuk objek ini, atau mungkin tidak dapat diperoleh kembali karena hak akses yang tidak memadai. (Microsoft.SqlServer.Smo)

Saya seorang sysadmintentang hal ini.

Pembaruan: Seperti yang disarankan, saya membuat pengguna baru, menjadikannya sysadmin dan mengubah pemilik database menjadi itu. Sayangnya bukan perbaikan. Saya akan melihat apakah jejak profiler menghasilkan sesuatu yang bermanfaat.

Pembaruan: Aaron - database asli diubah namanya dan diambil offline tetapi masih dalam contoh itu. Cadangan database itu kemudian dipulihkan menggunakan nama asli. Nama file file database baru berbeda dari aslinya karena mereka tinggal di folder yang sama dengan mdf / ldf asli. Db yang dipulihkan saat ini menjalankan aplikasi penting kami seperti biasa.

Peter
sumber
@Shanky Saya menggunakan SSMS 2014 dan telah mencoba ini dari beberapa klien / server.
Peter
Mungkin juga menjalankan jejak profiler terhadap DB di mana ia bekerja dan melihat apa yang berbeda di sana juga dengan di mana ia bekerja dan tidak berfungsi - sesuatu harus berbeda?
Pimp Juice,
Saya baru-baru ini mengalami masalah ini setelah memulihkan database yang besar. Saya minta maaf untuk mengatakan itu dibersihkan sendiri. Mungkin menjadi pertanyaan konyol, tetapi apakah Anda sudah memeriksa errorlog untuk sesuatu yang tidak diinginkan?
dwjv

Jawaban:

8

Saya telah menyelesaikan ini dengan me-restart layanan SQL Server, sayangnya / untungnya.

Ide awal saya adalah melepaskan / melampirkan database. Bukannya saya pikir ini benar-benar akan memperbaiki masalah, saya hanya membacanya di forum di suatu tempat. Ini tidak berpengaruh.

Sayangnya saya tidak melakukan apa yang disarankan oleh PJ Mahoney: menjalankan jejak. Saya harap saya melihat masalah ini lagi sehingga saya bisa mengetahui jika ada jejak yang mengungkapkan sesuatu. Terima kasih untuk sarannya.

Setidaknya menjawab pertanyaan saya sendiri berarti saya tidak perlu melihat saran lain tentang mengubah pemilik basis data; P

Terima kasih

Peter
sumber
5

Saya memiliki kesalahan yang sama ketika mencoba untuk memodifikasi properti pertumbuhan file dari file log dari database produksi. Saya mencoba menggunakan SSMS dan memiliki kesalahan yang sama:

Ukuran properti tidak tersedia untuk basis data XXX.

Saya menggunakan T-SQL untuk memodifikasi file log database sebagai gantinya.

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

Setelah perintah selesai saya bisa membuka properti database di SSMS. Saya harap ini bekerja untuk orang lain.

Tanda.
sumber
menarik! Beri komentar di sini jika itu berhasil untuk Anda
Peter
bekerja dengan baik dan benar?
Kiquenet
1

Ini bisa terjadi pada database yang sangat sibuk atau bahkan jika database tersebut tidak sibuk secara umum, tetapi saat ini sedang mengeksekusi pernyataan yang dengan cepat mengubah ukuran file log. Misalnya, jika Anda mencoba menghapus jumlah baris (jutaan) yang sangat besar dari sebuah tabel, mesin harus mencatat setiap baris untuk tujuan rollback, yang akan memaksa file log tumbuh dengan cepat. Saat ini sedang berlangsung, jika Anda mencoba untuk membuka properti database di SSMS, Anda akan melihat pesan kesalahan "ukuran properti tidak tersedia .."

Cara lain untuk mereproduksinya adalah sebagai berikut: ambil database yang sangat besar (100+ juta baris), dan jalankan pernyataan ALTER TABLE di atasnya (mis. Konversi kolom char ke varchar). Lihat file log Anda meledak dalam banyak megs atau bahkan gigabytes per detik. Sekali lagi, saat ini terjadi, SSMS Anda tidak akan dapat memberi Anda ukuran database karena itu berubah terlalu cepat untuk menjadi akurat.

Tidak perlu dikatakan, tolong jangan coba ini di server langsung. :)

Xotic1
sumber
1

Baru saja menemukan ini dan dari jejak, tampaknya ini diblokir oleh operasi INDEX REBUILD yang sedang berjalan

Kesalahan spesifik saya adalah

Property SpaceAvailable tidak tersedia untuk Database '[dbOverwatch]'. Properti ini mungkin tidak ada untuk objek ini, atau mungkin tidak dapat diperoleh kembali karena hak akses yang tidak memadai. (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

Itu harus memiliki nilai batas waktu yang sangat rendah, tetapi mungkin Anda dapat memeriksa apakah Anda memiliki sesuatu yang diblokir ketika Anda mencoba mengakses properti

Thiago Dantas
sumber
Menarik. Saya akan mengujinya.
Peter
0

Saya mendapatkan pesan kesalahan ini selama penyebaran solusi alat database SQL Server terhadap database (pada SQL Server 2008 R2). Setelah penyebaran selesai, kesalahan hilang. Agak tidak menyenangkan karena DB dalam mode Pengguna Tunggal atau hanya baca (dari corse tidak) atau apa pun yang menunjukkan alasannya.

Magier
sumber