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

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

单击--ok开始备份

备份完成

我们查看备份文件

cd /var/opt/mssql/data/

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

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

select * from xllinfo;
go

接下来我们插入一条数据

insert into xllinfo values (3,‘gavin‘,29);
go

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

select * from xllinfo

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

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

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

我们选择Device---浏览

选择添加文件

选择备份路劲的备份文件

单击确认

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

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

我们使用脚本

我们在系统数据库下执行

ALTER DATABASE [xll]
SET OFFLINE WITH ROLLBACK IMMEDIATE

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

还原成功

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

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

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

sqlcmd –S localhost –U sa
回车输入密码

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

use xll;
select * from xxlinfo;
go

接下来我们插入数据

insert into xllinfo values (4,’user01’,20);
insert into xllinfo values (4,’user02’,30);
insert into xllinfo values (4,’user03’,40);
go

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

sqlcmd -H localhost -U SA -Q "BACKUP DATABASE [xll] TO DISK = N‘/var/opt/mssql/data/xlldb01.bak‘ WITH NOFORMAT, NOINIT, NAME = ‘xll-full‘, SKIP, NOREWIND, NOUNLOAD, STATS = 10"

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

cd /var/opt/mssql/data/

接下来我们备份log

sqlcmd -H localhost -U SA -Q "BACKUP LOG [xll] TO DISK = N‘/var/opt/mssql/data/xlldb01_LogBackup_2017-03-04_12-10-10.bak‘ WITH NOFORMAT, NOINIT, NAME = N‘xlldb01_LogBackup_2017-03-04_12-10-10‘, NOSKIP, NOREWIND, NOUNLOAD, NORECOVERY , STATS = 5"

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

use xll;
select * from xllinfo;
go

然后我们删除数据

delete xllinfo where name = ‘ls‘;
delete xllinfo where name = ‘zs‘;
go

我们再次查看

接下来我们进行还原了;

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

sqlcmd -H localhost -U SA -Q "RESTORE DATABASE [xll] FROM DISK = N‘/var/opt/mssql/data/xlldb01.bak‘ WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"

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

我们需要执行一下操作

ALTER DATABASE [xll]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
或者
ALTER DATABASE [xll]
SET OFFLINE WITH ROLLBACK IMMEDIATE
GO

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

sqlcmd -H localhost -U SA -Q "RESTORE DATABASE [xll] FROM DISK = N‘/var/opt/mssql/data/xlldb01.bak‘ WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"

我们最后查看

use xll;
select * from xllinfo;
go

时间: 2024-08-02 02:48:08

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

【转】SQL Server 2008 数据库同步的两种方式 (发布、订阅)

上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作.发布订阅份为两个步骤:1.发布.2.订阅.首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅.发布可以发布一张表的部分数据,也可以对整张表进行发布.下面分别介绍发布.订阅的过程. 一.发布.发布需要用实际的服务器名称,不能使用服务器的IP地址进行.能发布的信息包括[表].[存储过程].[用户函数]如果使用IP会有错误,如下图: 具体发

SQL Server 2008 数据库同步的两种方式 (发布、订阅)

上篇中 说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作.发布订阅份为两个步骤:1.发布.2.订阅.首先 在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅.发布可以发布一张表的部分数据,也可以对整张表进行发 布.下面分别介绍发布.订阅的过程. 一.发布.发布需要用实际的服务器名称,不能使用服务器的IP地址进行.能发布的信息包括[表].[存储过程].[用户函数]如果使用IP会有错误,如下图:

SQL Server 备份和还原

SQL Server 备份和还原 SQL Server 备份 恢复模式 SQL Server 数据恢复模式分为三种:完整恢复模式.大容量日志恢复模式.简单恢复模式. 完整恢复模式 默认的恢复模式,它会完整记录下操作数据库的每一个步骤,使用完整恢复模式可以将一个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份.一个特定的日期和时间的事务. 大容量日志恢复模式 它是对完整恢复模式的补充,就是要对大容量操作进行最小日志记录,节省日志文件的空间. 比如说一次在数据库中插入几十万条记录时,

SQL Server 备份和还原全攻略

原文:SQL Server 备份和还原全攻略 一.知识点 完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件.(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性).完全备份也叫完整备份. 差异备份: 差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件.(差异备份过程中,只备份有标记的那些选中的文件和文件夹.它不清除标记,即:备份后不标记为已备份文件,换言之,不清除存档属性). 增量备份: 增量备份是针对于上一次备份(无论是

使用Windows Azure Blob 存储服务进行 SQL Server 备份和还原

好处: 1.灵活.可靠.无限制, 安全的站点外存储 2.即时.高度可用.耐久的备份存档方案. 3.仅对使用的服务付费.可以作为经济合算的站点外备份存档方案. 对于 Windows Azure Blob 存储服务的 SQL Server 备份支持是 SQL Server 2012 SP1 CU2 增强功能,当然sql server 2014也是可以的. 第 1 课:创建 Windows Azure 存储对象 步骤: 1.创建 Windows Azure 存储帐户和 Blob 容器. 创建存储账户,

SQL Server 批量插入数据的两种方法

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). 运行下面的脚本,建立测试数据库和表值参数. [c-sharp] view plaincopy --Create DataBase create database BulkTestDB; go use BulkTes

利用"SQL"语句自动生成序号的两种方式

1.首先,我们来介绍第一种方式: ◆查询的SQL语句如下: select row_number() over (order by name) as rowid, sysobjects.[name] from sysobjects ◆运行的结果: rowid   name 1           all_columns 2           all_objects 3           all_parameters 4           all_sql_modules 5          

SQL Server备份和还原

对于生产数据来讲,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的的后果.而备份作为数据的副本,可以有效的保护和恢复数据 数据丢失的原因 数据丢失的原因主要包括以下几类: (1)程序错误.例如,程序异常终止或逻辑错误等 (2)人为错误.例如,用户或管理员误操作 (3)计算机失败.例如,硬件.软件故障引起系统崩溃 (4)磁盘失败.例如,磁盘物理块损坏 (5)灾难和偷窃.例如,火灾.地震 所以,数据库管理员的主要职责之一就是规划一个妥善的备份和还原策略以保护数据库,避免由于各种故障造成损失而

SQL Server 批量插入数据的两种方法(转)

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). 运行下面的脚本,建立测试数据库和表值参数. [c-sharp] view plaincopy --Create DataBase create database BulkTestDB; go use BulkTes