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

本文介绍了一种使用bash脚本实现SQLServer数据库备份的方法,并提供了具体的备份与恢复命令示例,包括数据库的分离与附加操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不多说直接上脚本

#/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 目录的权限。
sqlserver for linux自动备份数据库脚本
有两种备份方法:
sqlserver for linux自动备份数据库脚本

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

还原数据库的命令如下:
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
sqlserver for linux自动备份数据库脚本
那么,分离出来的文件在哪呢?其实,一点都不用担心,在 Linux 系统下要找一个文件太容易了。
sqlserver for linux自动备份数据库脚本
就是这两个文件,可以把它们拷贝出来到另外一台机子上做备份。
附加数据库的命令就稍微复杂点,不过也比较好理解。

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

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

转载于:https://blog.51cto.com/svsky/2121967

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值