sql server linux版对我的的意义——备份脚本可以用shell写了

 方法:(linux远程备份Windows SQL server数据库)

A:备份服务器10.1.130.206(linux):

安装mssql-tools

安装samba,开放共享目录fander

 

B:SQL SERVER服务器192.168.106.102(Windows)

 

http://www.centoscn.com/p_w_picpath-text/install/2014/0829/3598.html

参考上面链接,设置samba无密码访问。

(当然可以使用密码,但要求在Windows上添加linux服务器的访问凭据,这样更安全,推荐!)


sqlcmd -S 192.168.106.102 -U SA -P密码 -Q”backup database 数据库名  to disk=’\\\\10.1.130.206\fander\数据库名.bak'”

 

测试这个方法花了比较多时间:

坑1:一开始因为linux那边的samba共享目录是需要密码访问的,所以想着在Windows端net use O: \\10.1.130.206\fander\,磁盘映射挂载起O盘,然后linux端sqlcmd -S 192.168.106.102 -U SA -P密码 -Q”backup database 数据库名  to disk=’O:\数据库名.bak'”,然后发现会报错,”无法打开备份设备”。

 

坑2:sqlcmd -S 192.168.106.102 -U SA -P密码 -Q”backup database 数据库名  to disk=’\\\\10.1.130.206\fander\数据库名.bak'”一开始我写成sqlcmd -S 192.168.106.102 -U SA -P密码 -Q”backup database 数据库名  to disk=’\\10.1.130.206\fander\数据库名.bak'”,导致备份出错,请注意\符号是需要转义的。。

 

坑3:新版的samba服务器”security = share”已启用,要修改为

security = user
map to guest = Bad User

 

 

至此我已经实现一个shell脚本自动化备份公司的4大数据库

oracle、mysql、sqlserver、postgres

最后感谢51cto金牌讲师,微软MVP,韩立刚老师的指导!