估计没什么好方法,
比较方便的就是用.MDF  .LDF文件来附加,然后在建立用户、分配权限
建立作业等等。

解决方案 »

  1.   

    分离数据库,附加;
    intergration service 中的传输数据库对象,登陆名称等等.
      

  2.   

    回wangtiecheng:
    系统数据库挪过去,是否能将权限信息也挪过去?
    比如我AD的某个用户ADUSER1,对DB3有修改权
      

  3.   

    如果源和目标服务器的数据存储目录(系统和用户数据库)都可以配置为相同的位置(即源服务器如果数据库放在 D:\data, 则目标服务器也可以放在 D:\data)则只需要在目标服务器安装与源服务器版本完全一致的sql实例(包括补丁的版本), 然后直接把源服务器的所有数据库(当然包括系统数据库), 复制到目标服务器并替换目标服务器上因安装产生的系统数据库文件即可.当然, 复制过程需要停止sql服务.
      

  4.   

    如果仅仅是用户数据库目录不能设置为一致, 则复制方法也是可用的, 只是在复制完成, 启动目标服务器的sql后, 需要把用户数据库重新附加一次.
      

  5.   

    如果无法用复制方法, 则用备份+恢复系统数据库的备份和普通数据库的备份是一样的, 还原的时候, 先还原 master 库, 这个要在单用户模式下, 然后在正常模式下还原 model, msdb , 用户数据库即可.至于如何在单用户模式下还原系统数据库, 这个楼主看看联机帮助即可, 上面有写, 比较详细.
      

  6.   

    最后说一下:
    master 库, 包含所有login及用户数据库的信息
    model 库, 建立用户数据库的模板, 如果你没有在这里面设置一些特别的东西, 迁移的时候可以不管这个库
    msdb 库,  跟计划(例如job, 维护计划, 同步的一些设置)相关的东西都在里面.
    楼主的迁移主要是涉及到系统数据库而已, 无论复制还是备份/还原都能解决.
      

  7.   

    需要提醒的是:
    如果源和目标服务器的机器名不同的话, 则在迁移后:
     replication 需要重建(可以考虑在迁移前, 在源服务器中把replicatin 生成脚本, 然后删除replication, 目标服务器建立后, 调整脚本来重新建立replication) job 需要更新 msdb.dbo.sysjobs 中的服务器名这个列, 这个列的值要设置为与当前的计算机名一致  需要用 sp_dropserver 将以原来计算机名命名的服务器删除, 再用 sp_addserver 添加一个以当前计算机名命名的local实例, 否则你的replication配置会有问题