请帮忙,因为这个问题让我发疯......
Tempdb有四个数据文件和一个日志文件。它们都位于同一个专用驱动器上。
当我tempdb在 SQL Server Management Studio (SSMS) 中右键单击以查看属性 --> 常规...我看到“大小”为 ~65000 MB,“可用空间”为 ~64000 MB。但是,当我尝试通过 GUI 缩小文件时,我看到“当前分配的空间”没有改变并且仍然显示初始大小。
这也是“可用空间”显示为负数的地方。到目前为止,我找到的唯一解决方法是重新启动 SQL Server 以刷新tempdb,但我不能继续这样做。
有没有人遇到过这个问题,并知道它的根本原因/永久解决方案吗?
我有一个包含 6 个步骤的 SQL Server 作业。无论前四个步骤是否失败,都必须运行步骤 5 和 6,因此如果前四个作业失败,则将它们设置为跳到步骤 5。
但是,如果第 5 步和第 6 步成功,则整个工作被视为成功。我为作业失败设置了电子邮件通知,但如果前四个步骤中的任何一个由于整体作业被视为成功而失败,我将不会收到电子邮件。我希望这种情况发生。
将前四个步骤拆分为单独的工作并不理想,因为它们必须在第 5 步和第 6 步开始之前完成。
请任何人都可以给我建议来解决这个问题,以便:
非常感谢您的帮助。
我们正在我们的系统中实施一项新功能,这将导致smallint每晚从表中清除大约一百万条记录(每条记录都很小,基本上是一个 GUID、一个日期和四个字段)。基本上它是一个缓存表,一旦数据存在 7 天,我们就会:
DELETE FROM scheduleCache WHERE schDateCreated < '2013-08-26
这将在每晚凌晨 1 点运行,每次运行将清除大约一百万条记录。
对于这样的桌子,我应该注意或做些什么吗?我应该把什么属性放在桌子上,或者我应该定期运行什么程序来“清理”?我以前从未处理过这样的桌子。
该表有一个聚集索引(GUID + 一个smallint字段),我们有每周一次的索引重建,每周日早上运行。
假设我有以下查询:
SELECT *
FROM AppDetails, AppTags
WHERE AppDetails.AppID = '1'
AND AppDetails.AppID = AppTags.AppID
Run Code Online (Sandbox Code Playgroud)
这给出了以下结果:
AppID AppName AppType Tag
1 Application1 Utility Test1
1 Application1 Utility Test2
1 Application1 Utility Test3
Run Code Online (Sandbox Code Playgroud)
如何修改查询以返回如下内容:
AppID AppName AppType Tags
1 Application1 Utility Test1,Test2,Test3
Run Code Online (Sandbox Code Playgroud) 我正在尝试从备份中恢复并收到以下错误
消息 3201,级别 16,状态 2,第 1 行
无法打开备份设备“Z:\FULL_BACKUP.bak”。操作系统错误 3(无法检索此错误的文本。原因:15105)。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 异常终止。
我在 SQL Server 中使用的代码如下(我也尝试使用对话框屏幕并得到相同的结果)
RESTORE DATABASE DEX
FROM DISK = 'Z:\FULL_BACKUP.bak'
WITH MOVE 'Decri' TO 'E:\Test\DEX.mdf',
MOVE 'Decri_log' TO 'E:\Test\DEX.LDF'
Run Code Online (Sandbox Code Playgroud)
可能值得注意的是,“FULL_BACKUP”是由同一个 SQL 服务器创建的,没有任何问题(所以我假设服务器有权限)。
驱动器 Z 是一个网络路径,所有域用户都可以对其进行“完全访问”。
完整备份为 200Gb
驱动器 E(本地)有 500Gb 可用空间
任何帮助,将不胜感激。
我在我的 SQL Server 上强制加密。我的意图是拒绝任何不使用 SSL 进行连接的客户端连接。我在正确的轨道上吗?
这是我的详细步骤:
我还缺什么吗?
我使用以下命令在我的数据库中创建一个用户:
CREATE USER Test WITHOUT LOGIN
Run Code Online (Sandbox Code Playgroud)
我用测试名称创建了一个登录名。
我想将测试用户与测试登录联系起来。
当我使用以下命令时:
EXEC sp_change_users_login 'Update_One', 'Test', 'Test'
Run Code Online (Sandbox Code Playgroud)
SQL Server 引发了以下错误:
Msg 15291, Level 16, State 1, Procedure sp_change_users_login, Line 114
Terminating this procedure. The User name 'Test' is absent or invalid.
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令时:
ALTER USER Test WITH LOGIN = Test
Run Code Online (Sandbox Code Playgroud)
SQL Server 引发波纹管错误:
Msg 33016, Level 16, State 1, Line 2
The user cannot be remapped to a login. Remapping can only be done for users that were mapped to Windows or SQL logins. …Run Code Online (Sandbox Code Playgroud) sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012 logins
我的 SQL Server 的实例名称是SQLEXPRESS并且 SQL Server 服务名称看起来像MSSQL$SQLEXPRESS。实例名称和服务名称之间有什么关系吗?我正在尝试按名称检查 SQL Server 服务状态,我想知道其他计算机上的 SQL Server 服务名称可以不同吗?
我有一台运行 SQL Server 2008 Web 版的生产服务器,它必须保持 24x7 全天候运行,几乎没有停机时间,现在是我们转向更先进的服务器硬件的时候了,也是转向 SQL Server 的好机会2012年企业。
现在我的问题是,如何在不关闭数据库的情况下进行此迁移?例如在两台服务器之间设置一些东西作为复制左右,所以我在两台服务器上都有完全相同的数据库,然后我可以将主要服务关闭 1 分钟,更改数据库连接的 IP 地址从旧服务器到新服务器,我确信新服务器具有与旧服务器相同的副本。
我不能采用备份/恢复方法,因为它需要的时间超过可接受的时间,这就是为什么我需要一些东西来保证完全相同的数据库,就像我在做备份/恢复一样。5 分钟可能是可承受的最大停机时间。
数据库大小约为 100GB。
新服务器运行2012 Enterprise,旧服务器运行2008 Web
我可以异常地归档数据库中的记录,并将其大小最小化到 20GB 之类。
我可以选择将我的 SQL Server 2008 Web 版升级到企业版,如果这有助于更多解决方案,比如复制?
replication sql-server-2008 sql-server migration sql-server-2012
sql-server-2008 ×10
sql-server ×6
backup ×1
delete ×1
join ×1
logins ×1
migration ×1
replication ×1
ssl ×1
syntax ×1
tempdb ×1