我有一个当前 150GB 的数据库文件,但只有 75GB 正在使用 - 这是因为我将所有索引(其他 75GB)移动到一个新的数据文件中。我想从这个数据文件中回收至少一部分空间,但是当我尝试缩小文件时,它无限期地“执行”,最终由于网络中断或其他我无法控制的事情而被取消(在跑步的日子)。即使使用“缩小到特定大小”功能并指定它只剪掉 10MB 似乎也永远不会返回 - 它只是在过程中断之前一直存在。
有没有另一种方法可以回收这个空间,甚至一次一点?
编辑:有人发布了一个链接,解释了为什么我不应该缩小我的数据库。我明白,无论如何我都想缩小它。这台服务器上的磁盘空间非常宝贵,并且数据库在很长一段时间内不会再次扩展到这个未使用的空间 - 正如我之前所说,我将索引从数据文件中迁移出来以释放这个空间,所以现在它被浪费了.
Sql Server Express 具有以下主要的硬件限制,这些限制会对性能产生影响:
1个中央处理器
1GB 内存
我的问题是:如果在多核机器上运行多个 sql server express 实例,每个实例使用哪个处理器?
示例:双核 - 4 个 Sql server express 实例(SS1、SS2、SS3、SS4)
发生什么了?
SS1 - 核心 1
SS2 - 核心2
SS3 - 核心 1
SS4 - 核心2
?
还是所有实例都使用相同的 CPU(Core1)?
如果不是,Sql Server Express 实例如何选择Core 使用?
USE [master]
GO
/****** Object: Database [assist] Script Date: 11/13/2010 20:17:49 ******/
CREATE DATABASE [assist] ON PRIMARY
( NAME = N'assist', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.THIRD\MSSQL\DATA\assist.mdf' , SIZE = 2304KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'assist_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.THIRD\MSSQL\DATA\assist_log.LDF' , SIZE = 504KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
Run Code Online (Sandbox Code Playgroud)
在上面,以下术语的含义/用法是什么。
GO?
N' within this statement "NAME = N'assist', FILENAME = N'C:\Program Files"
我正在使用 SQL Server 2008 Enterprise 并且我想安装 SQL Server 2008 故障转移群集。我想知道,
(1) 我需要一个活动目录域吗?(2) 我需要的最少机器数量是多少(假设我还没有活动目录域或域控制器)?
提前致谢,乔治
这是标准的故事,开发人员和管理员之间存在斗争。一种指责说数据库设计和查询很糟糕,而另一些则说这是缺乏硬件和数据量。
所以我问你是我的 IBM x3400,带有 2 个 xenons 2GHz 和 SCSI raid 5 和 4GB 的 RAM 适合 53 GB 的 MSSQL 数据库,表主要详细信息是大约 650 万条详细记录和 200 万条文档标题而其他的则在 100K 左右(例如物品)。
我们在从 SQL 获取数据时经常遇到性能不足的问题,该服务器仅专用于 SQL 服务器,并充当来自其他 SQL 服务器的复制数据的订阅者。
另一个问题是数据库管理员如何规划数据库服务器的硬件大小?是否有一些标准的方法,或者只是经验和感觉?
我的客户希望每天备份数次数据库,以及手动备份数据库的能力。
我创建了一个页面来手动备份数据库,它只是调用一个备份数据库的存储过程。
但是我在以特定时间间隔(例如中午和午夜)进行数据库备份时遇到了麻烦。我想过将服务器设置为以特定时间间隔访问我的手动备份页面,但我不知道 SQL Server 是否内置了可以在特定时间进行备份的内容。
我正在使用 ASP.NET 4.0 和 SQL Server 2008。
我有我的 SQL Server 2005 数据库的备份,我想把它放在我的开发机器上(开发速度比通过远程桌面编写查询快得多。)
我能够在工作中的一台机器上恢复它,所以我知道备份是好的(好吧,我假设它是 - 我确实必须将它复制到外部硬盘驱动器,然后再将它复制到我当前的机器上) .
我得到的错误是这样的:
标题:Microsoft SQL Server 管理工作室
服务器“XPS17200911\SQL2005”的还原失败。(Microsoft.SqlServer.SmoExtended)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1447.4+((KJ_RTM).100213-0103+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates .FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476
附加信息:
System.Data.SqlClient.SqlError: 文件 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf' 被 'BankA_Tables02'(4) 和 'BankA_Tables01'(3 )。WITH MOVE 子句可用于重新定位一个或多个文件。(Microsoft.SqlServer.Smo)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1447.4+((KJ_RTM).100213-0103+)&LinkId=20476
生成的 SQL 脚本(你知道我的意思)是这样的:
RESTORE DATABASE [TDC] FROM DISK = N'C:\Users\Matt\Desktop\banka.bak' WITH FILE = 1,
MOVE N'BankA' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.mdf',
MOVE N'BankA_Tables01' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf',
MOVE N'BankA_Tables02' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf',
MOVE N'BankA_Tables03' TO …Run Code Online (Sandbox Code Playgroud) 什么是一些好的链接。关于如何灵活地将 IP 连接到 MS SQL 服务器的白名单的文章。(使用 win server 2008 r2,如果重要的话)
编辑:
我希望能够将通过防火墙连接到 MS SQL Server 的 IP 列入白名单。我需要“灵活”的方法,以便我可以经常更改列表。为什么?因为我最近在数据库日志中注意到,人们试图以蛮力闯入的失败登录尝试次数非常多。
因此,有关如何执行此操作的任何信息都会很棒。到目前为止,在防火墙中,我知道如何将每个规则的单个 IP 列入白名单或黑名单,而不是整个列表。此外,我想知道这是否会实现我想要的。再次提前致谢
据我了解系统数据库是用来存放临时表、中间结果等临时信息的。
在我的一个数据库实例上,我有一个看起来非常大 (30GB) 的 tempdb。该数据库已超过一周未修改(如 mdf 文件中的“上次修改日期”)。让临时数据库在这么长时间内保持那么大是正常的吗?在我看来,它应该经常更新并返回它使用的空间相当快......
我是离开这里还是 SQL Server 正在做一些奇怪的事情?
仅供参考:这是一个 SharePoint 2010 数据库,不确定这是否有所不同。
我在 SQL Server 2008 中创建了一个数据库,它在服务器对象资源管理器中向所有可以登录 SQL 的用户显示。
我想对这些用户隐藏它,我希望它只能由我查看。
我怎样才能做到这一点?任何帮助,建议?
非常感谢
sql-server ×10
sql ×3
asp.net ×1
cluster ×1
domain ×1
hardware ×1
multi-core ×1
preferences ×1
scripting ×1
shrink ×1
ssms ×1
whitelist ×1
windows ×1