sybase数据库的备份工具bcp



=============【2007年10月24日下午】===============================
今天中午去吃饭的路上随口问问小明sybase怎么导出数据,小明说bcp可以,然后下午google了一下发现了bcp,看了一会儿它的参数列表,几分钟后成功地应用了一次。
特记:


bcp md.dbo.table003 out c:\mid_systemcs.txt -Usa -P -c -t \t -S RYY -q cp850 -J cp850

可以把sybase数据库的表进行数据导出导入。这条命令导出一个txt文本,各行的数据间用\t分隔。
具体参数大家看看bcp的usage就可以了。

注意:
上面的命令是导出,把out改成in就可以导入。基本上1000行/s,效率不错。
该命令是sybase自带的,在安装有sybase服务端或者客户端的机器上,于cmd中执行bcp就可以进行数据备份和恢复。

=====================【2007年10月25日下午】=========================
实际使用经验:
1。使用in导入时要注意sybase的事务日志。如果日志满了不清就歇菜了。
2。在导出导入时有一个 -t选项是设置字段分隔符的。这个分隔符要选好,否则可能会与字段的值混淆。
3。导出250M(50万条)的数据用时约10分钟(常州的申报数据库);导入这些数据用时约1小时(公司的dell台式机)。


网上据说可用的提速策略:
1. 为了提高bcp导入数据的速度,需要将比较大的表的索引和主键删除,否则的话,每bcp进一条数据,数据库都自动写一条log日志,记载此数据的上一条和 下一条记录,确定本记录在此表中的准确位置,一是影响bcp速度,二是数据库的log飞速膨胀。数据库的自动清除log功能只有在一个事务结束后才起作 用。
2. 将一个大文本分割成多个小文本,然后用批处理执行。
3. 数据库本身可以做两个设置
使数据库支持bcp : sp_dboption databasedbname ,"select into/bulkcopy",true go
  使数据库自动清除日志:sp_dboption databasename,"trunc log on chkpt",true go
4.配合一些sql技巧可以实现整库导出导入
。。。有兴趣看 这里

你可能感兴趣的:(sql,c,Google,Sybase,Go)