Dan*_*ett 4 sql-server-2005 sql-server-2008 migration
我们正在将 SQL Server 2005 数据库迁移到新服务器并升级到 2008,我正在寻找一些建议和保证我们的方法是正确的。
我继承了这个数据库,但说实话,我发现它有点混乱 - 最重要的是,我基本上已经学会了在这台服务器上成为一名 SQL Server 开发人员(没有计算方面的教育背景),所以我做了很多我自己的错误。我们作为一个部门(公共部门)资金不足,因此缺乏专业知识,只能靠自己的力量自力更生。数据库一开始只是一个后台的东西,但对我们的组织来说已经变得非常重要,因此坦率地说,性能令人尴尬。
所以我们有这样的问题
text
到处都是不合适的数据类型(很多Nvarchar
, nchar
,ntext
当我们不需要 ascii 字符时,text
哪里varchar
更合适)新服务器是 64 位虚拟服务器,存储在 RAID 上。
我安装和升级后的计划是:
text
数据类型规范化为varchar
/char
在这些流程之后/之前,我还有什么应该考虑的吗?这里的任何决定是否看起来不合时宜?例如文件大小问题 - 这是我在 RAID 上需要担心的事情吗?
收缩和存储
启用“即时文件初始化”
禁用自动收缩
适当调整存储大小(每个驱动器 15% 免费)
RAID什么?RAID 级别很重要,SQL Server 以不同的方式访问文件。日志文件访问通常是顺序的,而数据通常是随机的。
临时数据库
分离数据和日志文件(参见下面的 RAID) - 获得一个好的tempdb
策略。我们tempdb
在日志驱动器上有日志,tempdb
在自己的驱动器上有我们的文件(内核数的 1/4-1/2)。当您使用它时,请确保其tempdb
具有适当数量的数据文件,它们的初始大小完全相同,并且它们具有完全相同的增长因子。在此期间,请阅读Trace Flag 1118
架构更改
如果您要进行这些更改,请确保您有一个良好、持久的备份。当有人真正需要这些表时,9 个月后会发生什么?
您的应用程序实际上可以承受的变化NVARCHAR
,NCHAR
和NTEXT
?当您使用它时,NTEXT
不推荐使用,因此移动到TEXT
不会很好。退房VARBINARY
或VARCHAR(MAX)
代替。
您可以随意更改排序规则,但不会影响任何现有数据。
兼容性
如果可以,将数据库兼容性级别更改为 100。
调整选项
查看这些跟踪标志中的一些,它们可能都不合适。其中一些可能是,“这取决于”。另外,请阅读有关跟踪标志 4199 的信息。
工装
我还建议使用一个好的工具集进入这个安装。DBA
为此工具包创建一个数据库。我将从sp_WhoIsActive
Adam Machanic 和sp_Blitz
Brent Ozar 开始。我还会寻找 Kendra Little 在安排和存储来自sp_WhoIsActive
. 最后,我将启动一种捕获等待和队列的方法,以便您拥有服务器配置文件的良好历史记录。
考虑获得监控解决方案。
最后(也许是第一次),请查看 Glenn Berry 的关于配置新 SQL Server 实例的优秀系列。