데이터베이스에는 속성 크기를 사용할 수 없습니다


14

최근에 데이터베이스를 백업 한 것과 동일한 인스턴스 (SQL Server 2008 R2 Enterprise)로 데이터베이스를 복원했으며 데이터베이스 속성에 액세스 할 수 없음을 발견했습니다.

나는 다음을 수행했다.

  • 를 사용하여 데이터베이스 소유자가 올바르게 설정되었는지 확인하십시오 sp_helpdb.
  • 데이터베이스 소유자를로 변경했습니다 sa. 수정이 아닙니다.
  • 데이터베이스 소유자를 다시 sysadmin사용자 로 변경했습니다 . 수정이 아닙니다.
  • DBCC updateusage영향을받는 데이터베이스에 대해 발행되었습니다 . 수정이 아닙니다.
  • DBCC CheckDB복원 된 사본에서 다른 인스턴스로 실행하십시오 . 부패가 없습니다. 데이터베이스 특성 창에 액세스 할 때 동일한 백업 파일에서 복원 된 사본에서 오류가 발생하지 않았습니다.

누구든지 도울 수 있습니까?

속성을 보려고 할 때 나타나는 오류 메시지는 다음과 같습니다.

요청한 대화 상자를 표시 할 수 없습니다. (SqlMgmt)
데이터베이스 '[DBNAME]'에 대한 속성 크기를 사용할 수 없습니다.
이 속성에이 속성이 없거나 액세스 권한이 부족하여 검색 할 수 없습니다. (Microsoft.SqlServer.Smo)

나는 sysadmin이 인스턴스에 있습니다.

업데이트 : 제안 된대로 새 사용자를 만들고 sysadmin으로 만들고 데이터베이스 소유자를 변경했습니다. 불행히도 수정이 아닙니다. 프로파일 러 추적으로 유용한 것이 있는지 확인할 것입니다.

업데이트 : Aaron-원래 데이터베이스의 이름이 바뀌어 오프라인 상태가되었지만 여전히 해당 인스턴스에 있습니다. 그런 다음 원래 이름을 사용하여 해당 데이터베이스의 백업이 복원되었습니다. 새 데이터베이스 파일의 파일 이름은 원본 mdf / ldf와 동일한 폴더에 있으므로 원본과 다릅니다. 복원 된 db는 현재 중요한 앱을 정상적으로 구동하고 있습니다.


@Shanky SSMS 2014를 사용하고 있으며 여러 클라이언트 / 서버에서이를 시도했습니다.
피터

아마도 DB가 작동하는 곳에서 프로파일 러 추적을 실행하고 작동하고 작동하지 않는 곳과 다른 점을 볼 수도 있습니다.
Pimp Juice IT

최근에 큰 데이터베이스를 복원 한 후이 문제가 발생했습니다. 나는 그것이 스스로 지워 졌다고 유감스럽게 생각합니다. 어리석은 질문 일지 모르지만 오류 로그에 이상이 없는지 확인 했습니까?
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에서 데이터베이스 속성을 열려고하면 "속성 크기를 사용할 수 없습니다."라는 오류 메시지가 표시됩니다.

이를 재현하는 또 다른 방법은 다음과 같습니다. 매우 큰 데이터베이스 (1 억 개 이상의 행)를 가져와 ALTER TABLE 문을 실행합니다 (예 : char 열을 varchar로 변환). 메가의 수백 또는 초당 기가 바이트로 로그 파일이 폭발하는 것을보십시오. 다시이 문제가 발생하는 동안 SSMS는 너무 빨리 변경되어 정확하기 때문에 데이터베이스 크기를 제공 할 수 없습니다.

말할 필요도없이, 라이브 서버에서는 시도하지 마십시오. :)


1

방금 이것과 추적에서 왔으며, 분명히 이것은 실행중인 INDEX REBUILD 작업에 의해 차단되었습니다.

내 특정 오류는

데이터베이스 '[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.