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/image-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,韩立刚老师的指导!