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

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

我们前面两篇文章介绍了Centos7.3下sql Server的安装配置及使用Powershell的管理介绍,今天我们接着介绍如何实现Centos7.3 下sql Server 备份及还原,有两种方式:1、使用SSMS备份及还原,该方式最为简单也最方便操作的方式,2、使用Linux下sql Server自带功能命令备份,具体见下:

我们上一篇中创建了一个测试数据库,我们接着拿这个数据库进行测试,我们首先使用第一种方式,使用SSMS进行连接备份;

我们首先使用SSMS连接数据库,然后右击数据库---tasks---Back up

clipboard

我们可以看见默认的备份路劲:默认的备份路劲 /var/opt/mssql/data/下数据库的格式还是跟windows上的一样.bak格式;

单击--ok开始备份

clipboard

备份完成

clipboard

我们查看备份文件

cd/var/opt/mssql/data/

clipboard

接下来我们查看默认数据,然后尝试还原一下;

我们通过powershell进行操作;默认是有两条数据的

select*fromxllinfo;
go

clipboard

接下来我们插入一条数据

insertintoxllinfovalues(3,'gavin',29);
go

clipboard

接下来我们我们通过SSMS进行查看一下

select*fromxllinfo

clipboard

接下来我们尝试使用SSMS用刚才的备份还原一下

右击数据库-会话-还原--数据库

clipboard

我们可以看见默认的源,但是我们不使用这样的方式

clipboard

我们选择Device---浏览

clipboard

选择添加文件

clipboard

选择备份路劲的备份文件

clipboard

单击确认

clipboard

如果确认信息的话,就可以单击还原了

clipboard

我们还原提示数据库正在使用,所以我们需要停掉访问数据库进程

clipboard

我们使用脚本

我们在系统数据库下执行

ALTERDATABASE[xll]
SETOFFLINEWITHROLLBACKIMMEDIATE

clipboard

接下来我们重新尝试还原,但是需要勾选--选项中的--覆盖已经存在的数据库

clipboard

还原成功

clipboard

接下来我们查看数据,我们还原后,我们发现新增的一条数据没了;

clipboard

接下来我们使用第二种方法进行能备份,使用在Linux下进行备份

我们在备份前,需要重新插入几条数据,因为上面的还原已经把之前插入的数据覆盖了;我们使用sqlcmd进行插入数据

sqlcmd�CSlocalhost�CUsa
回车输入密码

clipboard

使用xll数据库,然后查询默认数据

usexll;
select*fromxxlinfo;
go

clipboard

接下来我们插入数据

insertintoxllinfovalues(4,’user01’,20);
insertintoxllinfovalues(4,’user02’,30);
insertintoxllinfovalues(4,’user03’,40);
go

clipboard

接下来就是通过sqlcmd进行备份

sqlcmd-Hlocalhost-USA-Q"BACKUPDATABASE[xll]TODISK=N'/var/opt/mssql/data/xlldb01.bak'WITHNOFORMAT,NOINIT,NAME='xll-full',SKIP,NOREWIND,NOUNLOAD,STATS=10"

clipboard

我们接下来查看一下备份文件

cd/var/opt/mssql/data/

clipboard

接下来我们备份log

sqlcmd-Hlocalhost-USA-Q"BACKUPLOG[xll]TODISK=N'/var/opt/mssql/data/xlldb01_LogBackup_2017-03-04_12-10-10.bak'WITHNOFORMAT,NAME=N'xlldb01_LogBackup_2017-03-04_12-10-10',NOSKIP,NORECOVERY,STATS=5"

clipboard

接下来我们删除里面的数据,然后进行查看、

usexll;
select*fromxllinfo;
go

clipboard

然后我们删除数据

deletexllinfowherename='ls';
deletexllinfowherename='zs';
go

clipboard

我们再次查看

clipboard

接下来我们进行还原了;

提示数据库正在使用,无法还原

sqlcmd-Hlocalhost-USA-Q"RESTOREDATABASE[xll]FROMDISK=N'/var/opt/mssql/data/xlldb01.bak'WITHFILE=1,REPLACE,STATS=5"

clipboard

所以我们需要端口所有连接数据库的会话才可以

我们需要执行一下操作

ALTERDATABASE[xll]
SETSINGLE_USERWITHROLLBACKIMMEDIATE
GO
或者
ALTERDATABASE[xll]
SETOFFLINEWITHROLLBACKIMMEDIATE
GO

clipboard

两种方式都是可以执行的;接下来我们尝试还原

sqlcmd-Hlocalhost-USA-Q"RESTOREDATABASE[xll]FROMDISK=N'/var/opt/mssql/data/xlldb01.bak'WITHFILE=1,STATS=5"

clipboard

我们最后查看

usexll;
select*fromxllinfo;
go

clipboard

相关文章

有时候CentOS工作在无互联网的环境下,需要在离线环境下安装一些组件,这次实现的是模拟在离线环境下安...
首先参照https://www.cnblogs.com/wdw984/p/13330074.html,来进行如何安装Centos和离线下载rpm包。 离...
有两个.NET CORE3.1网站部署在CentOS7上(内网IP是192.168.2.32),现在想实现访问http://192.168.2.32...
1、yum -y install vsftpd 安装vsftpd 2、配置vsftpd的配置文件(/etc/vsftpd/vsftpd.conf)主要修改以...
首先去mysql官网下载mysql的离线rpm安装包(https://downloads.mysql.com/archives/community/) Mysql...
第一步下载erlang环境并安装: wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_...