linux下没有专门为mssql设计的访问库,不过介于mssql本是从sybase派生出来的,因此用来访问sybase的库自然也能访问mssql,freetds就是这么一个实现。
perl中通常使用dbi来访问数据库,因此在系统安装了freetds之后,可以使用dbi来通过freetds来访问mssql数据库,例子:
因为本人不怎么用windows,为了研究qq群数据库,需要将数据从mssql中迁移到mysql中,特地为了qq群数据库安装了一个windows server 2008和sql server 2008r2,不过过几天评估就到期了,研究过mysql的workbench有从ms sql server迁移数据的能力,不过对于qq群这种巨大数据而且分表分库的数据来说显得太麻烦,因此写了一个通用的perl脚本,用来将数据库从mssql到mysql迁移,结合bash,很方便的将这二十多个库上百张表给转移过去了,perl代码如下:
这个脚本会根据每一个表fork出一个子进程和相应的数据库连接,因此做这种迁移之前得确保目标mysql数据库配置的最大连接数能承受。
然后在bash下执行
就不用管了,脚本会根据mssql这边表结构来在mysql那边创建一样的结构并配置索引。
发表评论