Linux下备份SQL Server的Shell脚本

Posted SQLServer走起

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下备份SQL Server的Shell脚本相关的知识,希望对你有一定的参考价值。

公司有一台linux服务器是专门用于备份的服务器,因为sql server出了linux版(主要是出了linux版的sqlcmd工具),使我Windows版本的sql server的备份工作可以迁移到linux服务上进行。


 


当然我的备份服务器实际上用的脚本比以下的强大很多,不开源,现提供一个简单版本,如下:


测试环境:


备份服务器:centos7.2


sql server服务器:window2008R2/SQL SERVER2008


samba服务器:   我用的是和备份服务器同一台


 


1.首先要搭建一个samba服务器,我搭建的smb.conf配置如下:


[global]

workgroup=WORKGROUP

server string=Samba Server

security=user

map to guest = Bad User

[fander]

path=/DATA1/nanshanbackup

public=yes

writable=yes

browseable=yes

guest ok=yes


我采用的是无密码访问,为了是调试方便。当然如果希望安全的话,可以设置有密码登录,然后Windows上的sql server上添加密码凭证



 


2.在备份服务器上安装linux版本的备份工具


curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo


yum install mssql-tools


 


3.备份脚本如下:


#!/bin/sh

#type:Backup Remote Sql Server Databases

#name:sqlserver_backup.sh

#author:Fander.Chan

DB_SERVER="192.168.106.102"

DB_USER="sa"

DB_PASS="123456"

SAMBA_SERVER="10.1.130.206"


BIN_DIR="/usr/bin"

DBNAME="TEST"

DATE=`date +%Y%m%d`

LOG=/fander/logs

date >> ${LOG}/${DBNAME}.log

${BIN_DIR}/sqlcmd -S ${DB_SERVER} -U ${DB_USER} -P ${DB_PASS} -Q"backup database ${DBNAME} to disk='\\\\${SAMBA_SERVER}\fander\\${DBNAME}-${DATE}.bak'" 2>&1 >> ${LOG}/${DBNAME}.log



转载自:http://jishu8.cc/2016/12/08/26

文章经作者授权转载





微信公众号能置顶啦,喜欢我的小伙伴们请将我置顶吧,这样就不用担心找不到我了哦~




以上是关于Linux下备份SQL Server的Shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

linux下shell脚本命令

Linux+Shell获取及拷贝最新备份数据

数据库备份shell脚本

Centos7.3 下SQL Server 备份及还原的两种方式

如何使用FORFILES命令来删除SQL Server备份

linux 下备份MySQL数据库 并删除7天前的备份数据