对所有的数据库进行数据一致性检查(DBCC),并后备所有的用户数据库。
保留master 数据库中数据表的内容,使用select * from table_name命令:
sysdevices,sysusages,sysdatabses
syslogins,sysservers,syssvrroles,sysloginroles,sysremotelogins
对于sysusages 表,请使用以下命令:
select * from sysusages order by dbid,lstart
对于sysdatabases 表,请使用以下命令:
select * from sysdatabases order by dbid
使用bcp命令拷贝(2)中所列出的系统表内容。
Unix:bcp master..table_name out file_name -Usa -Psa_password -c
Vms:bcp master..table_name out file_name /username="sa"/sa_password/char
保留sp_configure命令的执行结果
请在目标系统上执行以下操作:
安装并配置新的SQL Server和Backup Server。
确认所指定的master、tempdb、sybsystemprocs大小至少等于数据源系统上相应数据库的大小,同时确认与数据源系统相同的语言模块以及字符集。
启动SQL Server,使之处于正常工作状态。参照数据源系统的配置(4中保留的执行结果)修改目标系统配置与之相同,并确认'device'参数值至少等于源系统此参数值。
在model、sybsystemprocs数据库中任意执行几个动作以判断数据库工作正常。请不要添加用户、角色、修改系统表。
重启SQL Server以测试新配置有效。
执行以下操作:
1> use master
2> go
1> sp_configure "allow updates",1
2> go
重启SQL Server。
使用bcp命令拷贝(2)中所列出的系统表内容。
Unix:bcp master..table_name in file_name -Usa -Psa_password -b 1 -c
Vms:bcp master..table_name in file_name /user="sa"/sa_password/char/batch=1
建数据库设备,大小至少等于源系统中相应数据库的大小。
运行create database和alter database的脚本(或者使用命令行)。注意create、alter顺序要与源系统create、alter顺序一致,并使用与之相同的参数。完成后请对比源系统与目标系统中的sysdatabases、sysusages,使之完全相同,否则要重新做12这步工作。(请参照N3提示)注意:
在10.0以及更高版本中segmap字段在做了数据库load之后会被修改。
在确定需要相同的dbid时,则要采用与在源系统中create、alter相同的顺序,在目标系统中做create、alter,并且使用相同的参数值。而这种需求仅仅是当数据库中某些objects要参考不同的数据库中的objects才会采用的。另外,这种需求只有在每一个数据库中都被采用,完成的结果才会使得sysusages表中的segment、lastart、size字段,或者是fragment与源系统中数值相同。运行以下命令,与原系统的输出进行比较:
select * from sysusages order by lstart
load用户数据库并执行dbcc检测。
执行以下操作:
1> sp_configure "allow updates",0
2> go
重启SQL Server。
后备master库以及用户数据库。