linux下备份mssql文件,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 目录的权限。

84b051f13be1517ca7cc7169e32268fa.png

有两种备份方法:

96e8debbc2098c9258e592df0ff9f69a.png

29af234095506175226c2e99e40880b1.png

还原数据库的命令如下:

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

bb58c764aca7e560e732015b4109feee.png

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

92066e4a91ef31423e72ae98d5e2b222.png

就是这两个文件,可以把它们拷贝出来到另外一台机子上做备份。

附加数据库的命令就稍微复杂点,不过也比较好理解。

sp_attach_db @dbname=TestDB,

@filename1=N'/opt/dbbackup/TestDB.mdf',

@filename2=N'/opt/dbbackup/TestDB_log.ldf'

f36c3d3114f3910dfd62daafeed2978a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值