数据迁移,从sqlserver2000迁移到sqlserver2008,比较稳妥的思路是?
以前没有做过,这是第一次线上操作,大家给点好的稳妥的方案,谢谢!
------解决思路----------------------
找个玩SQL SERVER的动手
不同情况,不同应对方案
------解决思路----------------------
你统计下,有多少非表对象。
一般来说,就直接在2000 上备份,在2008上恢复就可以了,但是时间可能会长,你看看是不是能在你的停机时间内完成,建议先找一台测试机试试。
------解决思路----------------------
楼主:你肯定是两个服务器吧,在2008上做个导入就可以了。
#2:你做过没有?不要想当然,2000的备份2008根本不认!
------解决思路----------------------
2008上新建一个空白数据库,右键任务\导入,选2000得数据库作为源、自己为目标。
------解决思路----------------------
方法很多,可以参考一下这个:
SQL Server 2000数据库移植到SQL Server 2008R2数据库服务器
http://www.cnblogs.com/RitchieChen/archive/2012/02/16/2355119.html
------解决思路----------------------
其实数据的迁移是很容易的,方法也很多,可以分离后附加,也可以备份后还原,实在不行,先还原到2005,再从2005备份后还原到2008,或者导出语句等.
关键是 迁移过去之后,服务器是否稳定,性能会否下降。
因为之前就有迁移之后,性能严重下降,出现大量阻塞和死锁,因为原来运行的语句只需要1秒的,现在要30秒,
最后在运行1个月后,被迫回退到2000的情况。
所以,如果你要迁移,比较好的方法是,在迁移前 在测试机器上 试运行一段时间,抓取原系统中 运行次数最多的语句,放到测试系统中运行,看性能如何,如果稳定,那么再考虑迁移到正式环境。
------解决思路----------------------
用导入等于是全面复制了数据,用的已经是2008的数据库格式,不容易出问题。
用附加方式还是2000的数据库格式,在2008服务器上等于是降级了,容易有性能问题。
既然能导入,为什么还要用其它方法?
------解决思路----------------------
有的,如果没有设置数据库的兼容性为 2000,那么会出现这种情况。
比如,在做left join的时候,在2000中的写法是 *= ,而在2005以后,这种写法彻底不支持了,必须要改为 left join,你可以查一下 微软的文档,里面会有一个列表,记录了变化。
------解决思路----------------------
无论怎么吹嘘高版本兼容性好、性能更好,实际还真没碰到过简单地迁移一下数据就完工的系统。
如果不是碰到了性能问题,谁会去升系统,吃饱了撑的!
迁数据才是第一步啊,只是为了保留历史的业务数据。
第二步要对表结构、索引、分区之类再做调整;甚至重新设计一个数据库,按新的结构逐步把数据复制过去。
第三步改程序。
如果你只计划了步骤一,想得太简单了!
------解决思路----------------------
另外,上面的人说的也对,如果可以的话,数据导出 然后导入会更好。
不过这仍然不能解决 ,由于从2000 升级到 2008后,微软在 数据库引擎和 优化器 上变化,因为这些变化 很有可能导致 同一个语句 在2000 和 2008 生产效率完全不同的执行计划,所以还是 建议 谨慎一些,做一些测试,包括你刚才提到的 部分特性 或写法,在 2008中不兼容的情况。
------解决思路----------------------
我用的备份---恢复,目前没影。但是2008没2000 快, X3650 2CUP 16G内存