我正在将一个约 15GB 的数据库从 SQL Server 2005 迁移到运行 SQL Server 2008 的新服务器,同时我需要创建所有新的维护计划。我可以处理所有备份的东西,但表维护让我有些困惑。有没有人对我应该多久(或者你多久做一次就足够了)以下任务有任何意见?
我错过了什么吗?再说一次,如果您能分享您执行这些任务的频率,那就太好了……和/或分享有关您的表格维护方法的任何一般信息,这将很有帮助。最后,我以什么顺序运行这些任务(在设置作业时)是否重要?
哦,我愿意接受任何可能有帮助的链接!
在还原 SQL Server 数据库方面,有人有任何提示和技巧吗?
我最近将 .bak 从一台服务器/实例恢复到另一台,在两台服务器/实例上都使用 SQL Server 2005,并且遇到了以下问题(到目前为止):
所有身份插入值都重置为其原始值(在我的情况下为 1)。直到我找到以下命令来遍历所有表并将其重新设定为当前值 + 1 之前,我感到很痛苦:
exec sp_MSforeachtable @command1 = 'DBCC CHECKIDENT (''?'', RESEED)'
Run Code Online (Sandbox Code Playgroud)
权限不见了。数据库级帐户当然过来了(连同他们的角色分配),但是每个角色的大部分数据库权限都消失了……这意味着每个表、视图和存储过程都缺少读取、插入、删除、执行等权限. 我写了一些像下面这样的脚本来纠正,但仍然很痛苦。
select 'GRANT SELECT ON ' + TABLE_NAME + ' TO rolename' from Information_schema.tables
Run Code Online (Sandbox Code Playgroud)
如果恢复到新实例,显然不存在实例级别的权限……但这有点痛苦,因为如果该帐户已存在于数据库级别,您似乎无法重新创建实例级别的帐户。这里最好的方法是什么?就我而言,我删除了数据库帐户,创建了实例,然后使用上述脚本授予了权限。
一般来说,我只是对一些最佳实践感到好奇,当涉及到恢复 SQL Server 数据库......和/或以某种方式避免我遇到的问题的提示时。我只是想为尽可能无错误的恢复铺平道路。