一,RECOVERY PENDING状态
今天修改了SQL Server的Service Account的密码,然后重启SQL Server的Service,发现有db处于Recovery Pending状态。
Recovery Pending状态是指:数据库在还原(recovery)时遇到跟资源相关的错误,虽然数据库没有损坏,但是文件可能丢失,或者系统资源的限制,导致该数据库不能开始还原进程。数据库处于Recovery Pending 状态,表明还原进程被挂起,数据库不能开始数据库的数据和日志的还原进程;这种情况,不能说慢Recovery失败,因为Recovery还没有开始。这种情况下,最可能的原因是丢失数据文件或日志文件。
对于Recovery Pending状态,应该如何修复:
ALTER DATABASE [DB_Name] SET SINGLE_USER WITH NO_WAIT
ALTER DATABASE [DB_Name] SET EMERGENCY;
DBCC checkdb ([DB_Name], REPAIR_ALLOW_DATA_LOSS )
ALTER DATABASE [DB_Name] SET online;
ALTER DATABASE [DB_Name] SET Multi_USER WITH NO_WAIT
在使用CheckDB命令Repair之前,查看DB的大小
select DB_NAME(mf.database_id) as DatabaseName,
mf.type_desc as FileType,
mf.name as FileLogicName,
mf.physical_name as FilePhysicalName,
mf.size as PagesCount,
mf.size*8/1024 as Size_MB,
mf.size*8/1024/1024.0 as Size_GB
from sys.master_files mf
where mf.database_id= db_id(N'dbname')
在执行时,出现各种问题:
1,User does not have permission to alter database 'Office365', the database does not exist, or the database is not in a state that allows access checks.
2,Database 'Office365' cannot be opened due to inaccessible files or insufficien