免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2202 | 回复: 6
打印 上一主题 下一主题

如何将一个容量6G的库清除数据后导入到2.5G的数据库里 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-07 15:16 |只看该作者 |倒序浏览
请高手指点
  现在的数据库太大了(6G含日志),想把其数据清楚了,然后再导入到容量为2.5G的数据库里;2个库除了容量和数据外,其他的都一样.

论坛徽章:
0
2 [报告]
发表于 2006-11-07 15:57 |只看该作者
可以考虑使用bcp 用dump、load肯定是不行

论坛徽章:
0
3 [报告]
发表于 2006-11-07 16:06 |只看该作者
1.准备一个Dbartisan软件,注册好
2.保证你的表没有identity列(这个很重要,也很难)
3.用dbartisan导出所有数据库对象(自定义数据类型、表、视图、主键、外部键、检查、约束、存储过程、触发器),要确保这些数据库对象的内容没有被隐含。
4.建立新库,用dbartisan创建除外键、存储过程、触发器之外的其余所有数据库对象,注意自定义数据类型要先建(假如存在的话)
5.sp_dboption "select into/bulkcopy",1
6.如果新老两个库在同一个服务器,那么建一个批SQL,用insert导数据,例如
insert into b.dbo.tablename select * from a.dbo.tablename
如果你不在同一个服务器上,那么在任何一台客户机,把表数据用bcp实用程序导出来,再倒到新的服务器里面
7.按顺序建立外键、存储过程、触发器,如果存储过程有嵌套,多执行几遍

有identity列的表是非常烦的,我都懒得说了
因为第六步是逐表操作,所以整个迁移时间很长,也很烦,好在有dbartisan工具,第六步也可以用简单的方法建立批命令。
假如你对Sybase数据库的管理不熟悉,要迁移是很麻烦的,最好找专业的人员做。

[ 本帖最后由 yaledu 于 2006-11-7 16:09 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-11-07 16:15 |只看该作者

BCP

数据清理后,用BCP将所有表导出,在新库上建对应的表,再用BCP导入.

论坛徽章:
0
5 [报告]
发表于 2006-11-07 16:35 |只看该作者
原帖由 yangblz 于 2006-11-7 16:15 发表
数据清理后,用BCP将所有表导出,在新库上建对应的表,再用BCP导入.

然后再建索引,触发器,存储过程,导数据的时候注意看看新库的剩余空间,如果不够,可能要删除部分老数据。

论坛徽章:
0
6 [报告]
发表于 2006-11-07 17:16 |只看该作者
这么说来是很麻烦的,工作量比较大啊
Dbartisan以前没用过,网上也没找到说明什么的
先谢谢各位

[ 本帖最后由 pengcq2008 于 2006-11-7 17:18 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-11-07 17:35 |只看该作者
确实此类问题很多
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP