论坛上一直看到有朋友问
1 我的数据库一个表怎么定期同步到另一个表
2 我的局域网络上两台sql server服务器上的数据库怎么同步
3 我的数据库迁移,n多用户登录信息怎么备份
4 我怎么定期去调用windows上的一个程序    诸如此类很多...大凡看到数据库复制,后面一般都有跟贴邹老大的复制数据库方法,那段东西确实很经典,可以适应不同的平台(事实上我也收藏了),但是要知道那段东西我大概7 8年前就看到了,现在2005,2008都出来了,难道这么多时间里就没人研究其他方法?    而且那段东西对初学者可能比较困难,比如建立MSDTC,链接服务器等,很多情况写SQL代码当然可以达到效果(事实上就没有写代码达不到的),但是写代码不一定意味着效率高。你可能要面对很多亢长的代码,还有很多可能从来没有涉及的系统存储过程。就拿问题一来说,论坛上说法很多,有建议用触发器的,有建议用select * into的,甚至有人建议用复制发布订阅的。那些方法不是不可以,但是往往会带来一系列问题,比如自增列的消失,索引必须重建利用等等。关键是效率不一定高。不管你是数据库管理员还是数据库开发,能省时间总不错吧.    SQL Server有自带强大的工具DTS/SSIS(因为DTS太好用了,微软2005后决定把它单独做成一个扩展,而不是只是SQL Server的一个功能属性)合理使用这个工具很多问题根本不是问题,这篇文章将讨论一下DTS/SSIS的一个好用又方便特性--复制SQL Server对象(如果要全面论述DTS/SSIS,那足可以写一本书了,我只是以点代面,抛砖引玉,大家工作学习中可以继续发掘,共享经验),数据转换任务估计大家比较熟悉不讨论了,还有其实数据库的导入导出数据就是利用的调度dts包的特性来进行的,今天写点可能大家不太常用的.    本篇文章主要解决数据库及其对象的复制传输,(不是说只能整个复制数据库,你只想复制存储过程,视图,自定义函数也完全可以)以后看看反响如何再写几篇, 比如备份用户登录信息,dts自带的复制数据库向导(和今天说的不一样),dts和windows交互,多层dts综合应用等.本来要写个FTP相关的前些天看到Roy写了,就不写了.    废话不多说上图(我这边英文版,我尽量翻译但是不一定准确,仅作参考)
    written by:billpu
    原帖地址:http://blog.csdn.net/billpu/archive/2010/11/01/5980144.aspx一 拖出Copy SQL Server Oject Task图标(中文好像叫复制对象任务)二 配置源和目标信息
这里没什么好说的,直接看图吧三 设置复制的具体属性,这里重点说一下
(1) 创建目标(表,视图,存储过程,约束等)
    * 删除目标(默认选项,如果存在对象就删除)
    * 包括依赖的组件(默认选项,比如你复制一个自定义函数,dts会把相关的表传送过去)
    * 包括扩展属性(非默认选项,复制SQL Server的扩展属性,比如字段的描述信息等)(2) 复制数据,这边就不多说了
    * 替换 (默认选项)
    * 追加(3) 使用collation(默认选项)
不清楚具体应该怎么翻,使用排序规则吧
作用是对排序规则进行转换也就是转换成目标的排序规则(从源代码页转换到目标代码页),如果不选择这个选项,数据可能造成乱码或者错误.(4) 复制所有目标(默认选项)
如果你是想复制数据库级别,那你选上就是了.
如果你只是想传输部分对象,那就取消这个选项,同时右边的选择对象(select objects)会亮起,里面可以设置具体的复制对象比如某几个表,存储过程,视图等,这里就不单独截图了,大家一看就知道的.(5)使用默认选项
同样取消,右边的按钮Option会亮起,这里我觉得有必要单独说明一下,放后面了,请耐心收看.四 配置复制选项(截图水平不高,图比较大,请见谅)
(1) 安全选项
    * 复制数据库用户及角色
    * 复制SQL Server登录
    * 复制对象级别权限(copy object-level permissions)
前面两个选项非常有用,复制用户角色登录信息等到目标实例(如果和源实例不同),能很好的解决正常备份还原产生的孤立用户等问题
复制对象级别权限:复制对象的权限设定到目标数据库(2)表选项
复制索引,全文索引等,基本一看就知道
用unicode生成脚本:使用unicode编码生成脚本(3)复制对象的时候加用括号标识,这个看上去似乎有点莫名其妙 呵呵 至少我是这么认为的五 运行DTS包
按顶上那个小三角启动dts包
六 定期调度DTS包
如果你的DTS包需要定期执行,可以借助作业,方法很简单启动windows的Agent服务后,右键单击包名(保存后),选Schedule Package,弹出窗口如下,方法这边就不罗嗦了,一看就知道结束语
DTS/SSIS是相当强大的管理(开发)工具,就拿数据库复制来说,如果对DTS操作稍微熟悉的话,复制数据库估计1分钟时间就可以设定完毕.可以节省大量的时间,并且可以实现部分对象复制,相关用户传输等.
当然缺点也明显,双方不能互访的时候没法完成调度,这时候就只能借助备份还原

解决方案 »

  1.   

    SQLSERVER研究较少,学习一下!
      

  2.   

    2005/2008 的SSIS 功能只有增强,之所以用2000的截图是因为我手边只有2000和2008 挑个低版本的用的人多一点
      

  3.   

    小声地问一句,这个SSEM在哪儿调出?我找来找去,就只找到SSMS。
      

  4.   

    这个2000里才有的,再企业管理器,工具,里
    2005以上就是ssis了
      

  5.   

    这个好,我也疑惑常常看到大家对问题的解决停留在sql2000,2005/2008出来很久了,为什么大家不去挖掘新的东西呢?
      

  6.   

    SQL2005 中有一个复制对象,搞清楚“本地发布”和“本地订阅”就Ok 了!
    实在不懂就查查资料吧!就能达到楼主的要求了!
      

  7.   

    thank you very mach!谢谢分享
      

  8.   

    现在学技术不赚钱了,我现在学seo搜索引擎优化开始网上赚钱
      

  9.   

    小声地问一句,这个SSEM在哪儿调出?我找来找去,就只找到SSMS