开发者学堂课程【SQL Server on Linux 入门教程:从 Windows 中恢复 SQLServer On Linux】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/386/detail/4844
从 Windows 中恢复 SQLServer On Linux
一、如何把用户的数据库迁移到SQL on Linux上面?
解决这个场景分为4个步骤:
1、PARTI: BACKUP Database on Windows
2、PARTII: TRANSFER database backup file to Linux (把 backup 文件传到 linux里)
3、PARTIII: RESTORE database to Linux(在 linux 上还原数据库)
4、PARTIV: CHECKING Database on Linux (linux 上检查上传文件,检查数据结构,或者通过 ssms 连接 linux 去看)
(1)Check physical file
(2)Check Data using sqicmd
(3)Check Database using SSMS
讲解的本机是 windows 的操作系统,这个 SQL server 是连接的 windows 的SQL server。
--execute on source database
USE master
GO
EXEC sys. xp_ create_
s
ubdir ' C:
\
Temp
\’
GO
--Generate at Dec 10 2016 10:34AM on server CHERISH-PC
RAISERROR (' %d/%d database backup %s to %s ' , 10,1 , 1, 1,' CHERISH-PC. AdventureWorks2014' ,' C:Temp' ) WITH NOWAIT
BACKUP DATABASE [AdventureWorks2014]
TO DISK = 'C:
\
Temp
\
AdventureWorks2014_ full_ 20161227. bak'
WITH STATS = 2 , compression;
这是连接虚拟机的地址192.168.99.101,1433 (14.0 c..,做还原动作。
-execute on destination database
USE master
GO
EXEC sys. xp_ create_ subdir' c:
\
var
\
opt
\
mssql
\
data
\
AdventureWorks2014
\
SQL'
EXEC sys. xp_ create_ subdir ' c:
\
var
\
opt
\
mssql
\ d
ata
\
AdventureWorks2014
\
L0G'
GO
USE master
GO
RESTORE DATABASE [AdventureWorks2014]
FROM DISK = N' C:
\
var
\
opt 'mssq1
l\
data
\
AdventureWorks2014_ full, _20161227. bak'
WITH MOVE N' AdventureWorks2014_ Data'
TO N' C:
\
var
\
opt
\
mssql
\
data
\
AdventureWorks2014
\
SQLAdventureWorks2014_ Data. mdf'
MOVE N' AdventureWorks2014_ Log'
TO N' C:
\
var
\
opt
\
mssql
\
data AdventureWorks2014
\
L0G
\
AdventureWorks2014_ log. LDF'
STATS-2
GO
首先把这个数据库去做一个 backup 动作,backup 到一个 C 盘的目录下面,这个动作就结束了。第二个步骤要把这个文件上传,上传的目录是在var
\opt\mssql\data
这个目录,把刚才备份的文件上传,在 C 盘 temp 目录下面。
上传完毕,可以输入[ root@localhost ~]# ls -l /var/opt/mssql/data
grep
bak
看一下刚才上传的文件,接下来要做的步骤是在 SQLServer On Linux 上面做还原,首先需要创建一个目录来存放文件,因为 SQLServer On Linux 它的版本是和 SQLServer2016是等价的,它的版本是要比2014要高,所以它要把很多版本做一个升级,这样就还原完毕,接下来去检查一下文件,比如输入tree/var/opt/mssql/data
--charset=ASCII
/var/opt/mssql/data
就可以看到AdventureWorks2014 full 20161227 . bak
备份文件,还原的 log 文件AdventureWorks2014_log.LDF
和日志文件Adventu reWorks2014
_
Data. mdf
这样是工作了,再用 sqlcmd 的方式看一下,输入密码,具体代码如下:
[ root@localhost ~]# sqlcmd -S localhost,1433 -U sa
Password:
use
[ AdventureWorks2014] ;
go
Changed database context to ' AdventureWorks2014'.
Select
name
from sys. tables
Go
可以看到这些表是存在的,刷新一下 databases,可以看到 AdventureWorks2014数据库已经存在,这就是如何从 windows 平台迁移到 SQLServer On Linux 平台上面来看。