我正在尝试使处于恢复挂起状态的 SQL Server 数据库联机并可访问。SQL Server 服务使用一个 Active Directory 帐户,该帐户是域管理员并且是sysadmin
sql server 上的成员。SQL Server 帐户应该拥有 SQL 文件夹中的权限,因为它是域管理员。但是,它不是 SQL Server 中的本地管理员。
错误消息是:
消息 5120,级别 16,状态 101,第 1 行无法打开物理文件“F:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\DBName.ndf”。操作系统错误 5:“5(访问被拒绝。)”。消息 5120,级别 16,状态 9,第 1 行无法打开物理文件“F:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\DBName.ndf”。操作系统错误 5:“5(访问被拒绝。)”。
尽管
alter database [DBName] set online;
Run Code Online (Sandbox Code Playgroud)
导致以下错误:
消息 945,级别 14,状态 2,第 1 行由于无法访问的文件或内存或磁盘空间不足,无法打开数据库“databs”。有关详细信息,请参阅 SQL Server 错误日志。消息 5069,级别 16,状态 1,第 1 行 ALTER DATABASE 语句失败。
你能想到解决办法吗?
我有数据库,我的任务是将两个数据库 DBName1 和 DBName2 移动到 SSD,而我在 SSD 上只有有限的空间来容纳这些数据库。出于显而易见的原因,我不想缩小日志或数据文件,Brent 或 Paul 可能会去疯狂的。我注意到数据库没有增长太多,它使用的是最初分配的一部分。日志文件的初始大小分别为当前大小 41GB 和 147GB。当我检查 DBCC SQLPERF(logspace) 时,我发现 41017.3 MB 日志大小和 0.4339632 % 日志空间使用 % 和状态 0 147474MB 日志大小和 0.08165617 日志空间使用 % 和状态 0。
Database Name Log Size (MB) Log Space Used (%) Status
DBNAme1 41017.3 0.4339632 0
DBName2 147474 0.08165617 0
Database files(Sp_Spaceused)
database_name database_size unallocated space
DBName1 126294.31 MB 67443.73 MB
reserved data index_size unused
18261272 KB 8347376 KB 9677480 KB 236416 KB
database_name database_size unallocated space
DBName2 271075.31 …
Run Code Online (Sandbox Code Playgroud) 我想从 SQL Server 2012 数据库中的表中删除分区。表有主键,但分区列不是主键。我还想保持数据结构和模式完好无损。
我试过:
select *
into [dbo].[new_Non_partitioned_Table]
from [dbo].[partitioned_table]
Run Code Online (Sandbox Code Playgroud)
然后我删除了分区表并重命名了新表。但是,它导致我丢失了数据结构和一些迫使我放弃约束的依赖项 (FK)。这是用于生产和数据丢失不是一种选择。
有没有更好的方法从现有表中删除分区?