SQLServer On Linux 备份还原|学习笔记

简介: 快速学习 SQLServer On Linux 备份还原

开发者学堂课程【SQL Server on Linux入门教程 SQLServer On Linux备份还原】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/386/detail/4845


SQLServer On Linux 备份还原


MSSQL on Linux Backup & Restore

1、PARTI: BACKUP

(1)Create Table1 FULL BACKUP 首先创建 Table1 FULL BACKUP

(2)Create Table2 DIFFERENTIAL BACKUP 创建 Table2 differential 的 BACKUP(3)Create Table3 LOG BACKUP 创建 Table3 的 LOG BACKUP

在还原过程中最开始做一个 FULL BACKUP 的还原接着做一

differential BACKUP 的还原最后做一个 LOG BACKUP 还原最终的效果是这三张表在最后都要呈现在 restore 上传的数据库里面

(4)首先 terminal 已经连接到虚拟机用 ssms 连过去首先创建一个数据库再创建 Table1做 full backup创建 Table2,DIFFERENTIAL backup再创建Table3,做 log backup这就是整个三种类型的 backup执行

具体代码如下

USE masterGO--If not exists, create testing database

IF DB_ ID('TestDB' ) IS NULLCREATE DATABASE TestDB;GO--create the lst tableUSE TestDBGOIF OBJECT_ ID(' dbo. Table1', 'U') IS N0T NULLDROP TABLE dbo. Table1GOCREATE TABLE dbo. Table1 (RowID INTGO--make a full backupBACKUP DATABASE [TestDB]TO DISK = N' C: \var\opt\mssql\data\TestDB_ full. bak' WITH NOFORMAT, NOINIT,NAME = N' TestDB- -Full Database Backup' , SKIP,NOREWIND, NOUNLOAD, STATS = 10GO--create the second tableIF OBJECT_ID(' dbo. Table2', 'U') IS N0T NULLDROP TABLE dbo. Table2 GO

CREATE TABLE dbo. Table2 (

RowID INT

GO--take a diff backupBACKUP DATABASE [TestDB]TO DISK = N'C: \var\opt\mssql\data\TestDB_diff.bak'

WITH DIFFERENTIAL , N0FORMAT, NOINIT,NAME = N'Tes,DB-Differential Database Backup' , SKIP,NOREWIND, NOUNLOAD,STATS=10GO--create the third tableIF OBJECT ID('dbo.Table3','U') IS NOT NULL

DROP TABLE dbo. Table3GOCREATE TABLE dbo, Table3 (RowID INTGO-- take transaction log backupBACKUP L0G [TestDB]TO DISK = N' C:varlopt mssqldataTestDB_ log. bak' WITH NOFORMAT, NOINIT,NAME = N' TestDB- Transaction Log Backup' , SKIP,

NORFWTND NOINIOAD STATS=10

GO

再输入[root@localhost ~]# ls /var/opt/mssql/data/ I grep bak

检查文件

TestDB_ diff.bak

TestDB_ fùll, bak

TestDB_ log. Bak

2、PARTII: RESTORE

RESTORE FULL BACKUP RESTORE DIFF BACKUP RESTORE LOGBACKUP

进行还原的步骤如果这个数据库已经存在先把它删掉做一个 restore 动作做 full backup 的 restore再对 differential backup 做 restore 动作最后做log backup 的 restore,最后看到的结果跟现在是一样的有三个表先删掉数据库再去还原具体代码如下

USE master

GO

--drop database if exists for testing

IF DB_ ID('TestDB' ) IS NOT NULL

DROP DATABASE TestDB ;

GO

- - restore full database backup

RESTORE DATABASE [TestDB]

FROM DISK = ' C:varlopt mssq1dataTestDB_ full. bak' WITH FILE = 1,

MOVE N' TestDB' TO N' c: varlopt mssq1 datalTestDB. mdf'

MOVE N' TestDB_ 1og TO N' C: varlopt 'mssql dataTestDB_ log. 1df'

NORECOVERY,

NOUNLOAD ,

REPLACE,

STATS = 10

GO

--restore the diff backup

RESTORE DATABASE [TestDB]

FROM DISK = N' C: varlopt mssqldataTestDB_ diff. bak' WITH FILE = 1

NORECOVERY,

NOUNLOAD,

STATS = 10

GO

- - restore the transaction log backup

RESTORE L0G [TestDB]

FROM DISK = N' C:var opt mssql dataTestDB_ log. bak' WITH FILE = 1

NOUNLOAD, STATS = 10

GO

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
20天前
|
Linux
在Linux中使用rsync进行备份时如何排除文件和目录?
在Linux中使用rsync进行备份时如何排除文件和目录?
19 1
在Linux中使用rsync进行备份时如何排除文件和目录?
|
1月前
|
缓存 网络协议 Linux
Linux C/C++ 开发(学习笔记十三):百万并发的服务器实现
Linux C/C++ 开发(学习笔记十三):百万并发的服务器实现
33 0
|
4天前
|
关系型数据库 MySQL Linux
Linux环境下定时备份mysql数据库
Linux环境下定时备份mysql数据库
|
26天前
|
缓存 Unix Linux
Linux学习笔记
Linux学习笔记
237 0
|
27天前
|
缓存 监控 Linux
Linux 学习笔记十九:常见监控工具
Linux 学习笔记十九:常见监控工具
Linux 学习笔记十九:常见监控工具
|
27天前
|
安全 Linux 数据安全/隐私保护
Linux 学习笔记十八:SELinux 相关概念
Linux 学习笔记十八:SELinux 相关概念
|
27天前
|
Linux 开发工具 索引
Linux 学习笔记索引
Linux 学习笔记索引
|
27天前
|
小程序 Linux 数据安全/隐私保护
Linux学习笔记十六:日志管理
Linux学习笔记十六:日志管理
|
27天前
|
存储 Linux 数据库
Linux学习笔记十三: 数据备份与恢复
Linux学习笔记十三: 数据备份与恢复
|
27天前
|
监控 Linux
Linux学习笔记十二:Linux 工作管理
Linux学习笔记十二:Linux 工作管理
Linux学习笔记十二:Linux 工作管理