sqlserver for linux自动备份数据库脚本

不多说直接上脚本

#/bin/bash
user=multiverse
passwd=Multiverse1113
back_path=/var/opt/backup/
db_name=multiverse
back_time=`date +%Y%m%d_%H%M%S`
back_filename=$back_path$db_name$back_time
del_time=`date -d "2 day ago" +"%Y%m%d"`
del_backfile=$back_path$db_name$del_time

sqlcmd -S localhost -U $user -P $passwd -d master -Q "BACKUP DATABASE $db_name to disk=‘$back_filename.bak‘"
tar -zcPf $back_filename.tar.gz $back_filename.bak
rm -f $back_filename.bak
if [ -e $back_filename.tar.gz ];then
    rm  -rf $del_backfile*.gz
    echo "database[multiverse] backup success! "
else
    echo "database[multiverse] backup failed!"
fi

备份数据库的命令如下:
backup database TestDB to disk=‘/opt/dbbackup/TestDB.bak‘
这条命令将数据库 TestDB 备份到 /opt/dbbackup/TestDB.bak。注意,这里要确保 mssql 帐号拥有操作 /opt/dbbackup 目录的权限。

有两种备份方法:

还原数据库的命令如下:
restore database TestDB from disk=‘/opt/dbbackup/TestDB.bak‘
这是在数据库不存在的情况下使用。如果数据库存在,则需要使用如下命令进行覆盖:
restore database TestDB from disk=‘/opt/dbbackup/TestDB.bak‘ with replace

SQL Server 还有分离数据库和附加数据库这两种操作。
首先,分离数据库:
sp_detach_db TestDB

那么,分离出来的文件在哪呢?其实,一点都不用担心,在 Linux 系统下要找一个文件太容易了。

就是这两个文件,可以把它们拷贝出来到另外一台机子上做备份。
附加数据库的命令就稍微复杂点,不过也比较好理解。

sp_attach_db @dbname=TestDB,
@filename1=N‘/opt/dbbackup/TestDB.mdf‘,
@filename2=N‘/opt/dbbackup/TestDB_log.ldf‘

原文地址:http://blog.51cto.com/svsky/2121967

时间: 2024-08-06 21:04:20

sqlserver for linux自动备份数据库脚本的相关文章

linux下备份数据库脚本

#!/bin/bashDBBACKDIR="/home/oracle/fm/fm_backup"  #数据库数据本机存放位置,根据情况自行修改LOGDIR="/home/oracle/fm/fm_backup/LOG.txt"  #简单日志输出#检查备份目录是否存在和是否有读写权限if [ -f "$LOGDIR" ]; then  #检查日志输出文件chmod a+w $LOGDIR #设置读写权限elsetouch $LOGDIRchmod

linux 自动备份脚本

首先我在/root/backup 目录下建立一个文件夹, #mkdir /root/backup/mysqlbackup 以后在每天五点钟,就会有一个文件保存在这里. 接着新建文件 #vim /root/mysqlautobak 输入: filename=` date +%Y%m%d ` mysqldump --all-databases -uroot -p(mysql密码)> /root/backup/mysqlbackup/mysql$file.sql 保存退出! 让它可以执行 #chomd

在linux和windows下自动备份数据库

摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶段. Linux的详细步骤为:1.准备文件. 2.连接linux 3.实际操作也就是写命令 windows的详细步骤为:1.准备文件. 2.编辑任务和计划程序. 所用软件:notepad++,ssh 一.linux 1.准备工作(可以在windows下执行本操作) 创建三个文件 1.1文件名:exp

LINUX 自动备份脚本文件

首先我在/root/backup 目录下建立一个文件夹, #mkdir /root/backup/mysqlbackup 以后在每天五点钟,就会有一个文件保存在这里. 接着新建文件 #vim /root/mysqlautobak 输入: filename=` date +%Y%m%d ` mysqldump --all-databases -uroot -p(mysql密码)> /root/backup/mysqlbackup/mysql$file.sql 保存退出! 让它可以执行 #chomd

Linux自动备份脚本

今天网上一个朋友问了我一个shell的题目,让我帮他做下.下面是题目以及解题思路. 题目: 写作一个备份/etc目录的脚本,要求:将/etc目录下的所有文件cp到/var/backups目录下的以当天的日期命名的目录中例如(/var/backups/etc.20140809).并且判断前一天的目录中的文件与当天的区别,如果无区别,则删除前一天的备份目录. 解答: [[email protected] scripts]# cat auto_bak.sh  #!/bin/bash # # This 

Linux自动备份脚本--解析

      由于上次做项目的时候,客户要求需要对系统状态做自动备份,当时觉得自己写得脚本实在是不够上档次,就开始在网上搜索各种比较好的脚本,现在找到了一个还挺不错的脚本,与大家一起来解析分享一下.其实我第一遍看的时候中间有一小部分没有弄懂,觉得里面的语法真的是用的恰到好处,不过还是稍稍修改了一点. #说明使用的是bash语法来写脚本 #!/bin/bash #设置日志文件,前提建好了/backup/log目录 LogFile=/backup/log/`date +"%Y-%m"`.lo

linux 自动备份mysql数据库

今天一早打开服务器.13W个木马.被爆破成功2次,漏洞3个.数据库被删.这是个悲伤的经历 还好之前有备份,服务器也升级了安全机制,只是备份是上个月的备份.所以想写个脚本,试试自动备份数据库. 1. 先看看那个盘够大. 忘了.我只有一个盘. 2.创建一个目录先.用来存放 脚本 和 备份好的数据库 3. 写脚本 #!/bin/bash mysqldump -uusername -ppassword DatabaseName > /home/sqlbackup/DatabaseName_$(date

mysql自动备份数据库,同时ftp上传到指定服务器(scp远程获取本地备份)

最近要把服务器托管到电信机房,所以要对数据库进行备份,同时要把备份ftp上传到公司指定服务器. 一.先安装ftp服务 1.查询是否安装vsftpd: rpm -qa |grep vsftpd (rpm的安装:apt-get install rpm) 或者查询当前ftp进程:ps -ef|grep vsftpd ? 或者 ps -ef|grep ftp 2.如果没有就安装yum install vsftpd 3.安装完后看ftp安装目录:ps -ef|grep ftp 发现我的配置文件默认:/et

MySQL备份数据库脚本

Windows @echo offmysqldump --add-drop-database --add-drop-table -u root -p123456 dbname > d:\db_backup\%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%_dbname.sql Linux #!/bin/shcd /usr/binDATE=`date +%Y-%m-%d`# 备份dbname数据库/usr