如何定时进行数据导入导出

wyhlgx 2007-06-11 10:21:05
目前我有两台数据库服务器A、B。
C为数据库客户端,其中,A、C能互相访问(A只开了1433端口),B只能访问C的WEB服务器(80端口)。
现在要求B服务器每天能定时从A服务器上得到其中10个表的全量数据。该如何做?

目前的状况:我目前是每天自己上服务器C,因为A为正式数据库,所以我从C上用数据库客户端去访问A,然后用数据导出的方式把数据导成Access数据库,再登陆至B服务器,然后在B服务器上从B的web服务器上下载该Access数据库文件,再导入到B中。由于整个过程很费时费力,所以很郁闷。希望高手能帮帮忙。

提示:(数据是全量的,表有33个,并且Access文件大小大约22M,还有,每天导的数据不能覆盖上一天的数据文件,也就是说每次导数据的时候最好是以当前的日期来命名文件名,数据为每天晚上1点准时导。)

此问题不散分。分属于最终解决的朋友。MSN:wyhlgx@gmail.com 多谢!
...全文
425 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2007-06-16
  • 打赏
  • 举报
回复
我不用QQ
wyhlgx 2007-06-15
  • 打赏
  • 举报
回复
谢谢你,虽然我不知道怎么做,但是我还是谢谢你,把分全给你,我想加你的QQ,好吗?我的QQ是:963415,验证请著名:“CSDN邹建”
zjcxc 2007-06-12
  • 打赏
  • 举报
回复
仔细看我的步骤.

C 能到 A/B, 所以 C 上可以完成 A->B 的数据传输

而如果一定要两段来做的话, 我已经在最后一个说明中写了


看东西要仔细
Andy-W 2007-06-12
  • 打赏
  • 举报
回复
学习!
zjcxc 2007-06-11
  • 打赏
  • 举报
回复
这方面的资料在联机帮助上有写

具体的操作楼主可以去尝试一下, 不是太难
zjcxc 2007-06-11
  • 打赏
  • 举报
回复
如果 C 不能到B, 则你需要两个包, 一个在 C 上完成从A取数据到 ACCESS, 生成包的步骤与前面的一样: 通过向导+最后存储为包

然后再在B上去生成一个从ACCESS文件到C的包, 这个包需要编辑一下, 因为要加入下载文件的功能, 在sql 2000中, 编辑包的方法是在企业管理器--数据转换服务--右键本地包--打开包

sql 20005 是用 SQL Server Business Intelligence Development Studio, 新建一 integration services 包项目, 然后在解决方案浏览器中, 右键包, 添加已经存在的包, 将你生成的包打开这样就可以编辑了

编辑包的目的是在导数据的任务前面, 增加一个 FTP 任务, 用来完成从 C 下载 ACCESS 文件
zjcxc 2007-06-11
  • 打赏
  • 举报
回复
如果是 sql 2000, 则只是最后一步选择将包存储为结构化文件, 执行包的工具使用 dtsrun 而已


执行包的工具你可以在 c 上查找一下, 如果没有, 在数据库服务器上去找到并且复制到 c 上面就行了
zjcxc 2007-06-11
  • 打赏
  • 举报
回复
C能够连接到B只是使处理简单一点而已

一般的处理方法是这样(SQL 2005)

在C上, 通过导入/导出向导将数据从 A -> B (因为C能到A/B, 所以在C上这样的操作是可以的),具体的设置根据你平时的导入/导出处理去设置就行了

在向导的最后一步, 选择'保存SSIS包', 并选择"文件系统", 然后指定SSIS包的存储地址和文件名, 包保护级别选择"使用密码加密敏感数据"


这样就建立好一个SSIS包了, 记住包的名字和存储位置

然后在C上建立一个任务(操作系统的)去定时执行这个包就行了. 执行包使用 dtexec 这个工具, 用法在联机丛书上有写, 或者你在命令提示符下使用 dtexec /? 来查看帮助
可以写成批处理, 这样方便设置任务


wyhlgx 2007-06-11
  • 打赏
  • 举报
回复
如果知道怎么做,请告诉我怎么做,万分感谢。
wyhlgx 2007-06-11
  • 打赏
  • 举报
回复
C可以访问B的数据,但是C作为WEB服务器使用,所以不建议用C的数据库服务器而用C的客户端。
zjcxc 2007-06-11
  • 打赏
  • 举报
回复
这种一般用SSIS+JOB来处理就行了
zjcxc 2007-06-11
  • 打赏
  • 举报
回复
c不能访问B的数据库?
wyhlgx 2007-06-11
  • 打赏
  • 举报
回复
谢谢您的回答,可是问题是,A和B根本不能互联,只能通过C去中转。并且C只能访问A的1433,A的1433只能被C去访问,而C和B,C可以访问B的任何端口,但是B只能访问C的WEB80端口。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧