加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 13:52:20 所属栏目:MsSql教程 来源:网络整理
导读:不多说直接上脚本 #/bin/bashuser=multiversepasswd=Multiverse1113back_path=/var/opt/backup/db_name=multiverseback_time=`date +%Y%m%d_%H%M%S`back_filename=$back_path$db_name$back_timedel_time=`date -d "2 day ago" +"%Y%m%d"`del_backfile=$back_
不多说直接上脚本

#/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‘

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读