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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 快速学习 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
相关文章
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
23天前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
39 3
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
存储 Linux 数据库
在Linux中,什么是快照备份?
在Linux中,什么是快照备份?
|
3月前
|
存储 Linux 数据安全/隐私保护
在Linux中,如何创建文件系统的备份?
在Linux中,如何创建文件系统的备份?
|
3月前
|
Linux 数据库
在Linux中,什么是冷备份和热备份?
在Linux中,什么是冷备份和热备份?
|
3月前
|
SQL 数据库
Microsoft SQL Server 2014如何来备份数据库
Microsoft SQL Server 2014如何来备份数据库
289 3
|
3月前
|
Unix Linux 测试技术
在Linux中,如何恢复备份的文件?
在Linux中,如何恢复备份的文件?
|
3月前
|
存储 监控 安全
在Linux中,如何进行系统备份?
在Linux中,如何进行系统备份?
|
3月前
|
SQL 关系型数据库 MySQL
在Linux中,如何备份和恢复MySQL数据库?
在Linux中,如何备份和恢复MySQL数据库?