SQL on Linux Docker 迁移|学习笔记

简介: 快速学习 SQL on Linux Docker 迁移

开发者学堂课程【SQL Server on Linux入门教程SQL on Linux Docker 迁移】学习笔记,与课程紧密联系,让用户快速学习知识

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


SQL on Linux Docker 迁移


一、在 Windows SQL Server 上创建数据测试

二、给 Docker Volume 复制文档

三、给 SQL on Linux for Docker 储存数据

四、 给 SQL on Linux for Docker 调用数据

五、二次检查


如何把数据库迁移到 Docker 版的 SQL server 里面比如 windows 系统里SQL server 的数据库需要迁移到 SQL on Linux base on Docker Migration这里涉及到两种方法第一种方法是传统的 Backup restore 方式第二种Attach Database 的方式为了测试这两种方法首先去创建两个数据库在 windows版的 SQL server 里接下来要把备份的文件以及 Mdf & ldf 文件 copy 到 Docker里面把数据库还原到 SQL on Linux Docker 进行 attach Database 的动作最后一步做 Double Check看测试有没有成功这就是整体的一个步骤


一、在Windows SQL Server 上创建数据测试

1、Create Testing objects

2、Backup

3、Stop SQL Service

分别创建了 tb 加 test并且插入了两条数据最后 TestAttach
TestBackRestore 的一个动作并且把 TestAttach 数据库设置为 offline因为要拷贝 Mdf ldf 文件
代码如下:
IF DB_ ID('TestAttacb')IS NULL CREATE DATABASE TestAttach;GOUSE TestAttachGOIF OBJECT_ID('dbo.th Test','U')IS NOT NULL

DROP TABLE dbo.tb, Test GOCREATE TABLE dbo.tb_Test(RowID INT IDENTITY(1,1) NOT NULL PRIMARY KEY

Name VARCHAR(36) NOT NULL);INSERT INTO dbo.th, Test(SELECT NEWID() UNION ALL SELECT 'NEWID();SELECT * FROM dbo tb. Test;IF DB_ ID('TestBackRestose') IS NULL

CREATE DATABASE TestBackRestore;

GOUSE IestBackBestoreGOIF OBJECT_ID('dbo,tb..Test', 'U')IS NOT NULL

DROP TABLE dbo.th.TestGOCREATE TABLE dbo.th.Test(RowID INT IDENTITY(1,1) NOT NULL PRIMARY KEY

执行结果如下backupBestore 数据库的两条数据最下面是这个数据所在的目录

图片2.png


二、给 Docker Volume 复制文档

Backup file

Mdf & ldf

Mdf & ldf copy docker 里面还有一个 bak 文件也 copy 到这个目录下面把以下三个文件传到 docker 容器里面docker cp ~/Downloads/TestBackRestore.mdf linuxsql41433:/xar/opt/mssg/data/estBackRestoremddocker çp ~/Downloads/TestBackRestore, Jog.ldf linuxsql41433:/xar/opt/mssaJ/data/TestBackRestore Jog.ldfdocker çp ~/Downloads/TestBackRestore_ full, _201702 10.bak linuxsql41433:/var/opt/mssa/data/TestBackRestore_ full_ 20170210.bakcopy成功之后去容器里面看一下

 

三、给 SQL on Linux for Docker 储存数据

首先测试的是还原的动作还原之前检查一下备份文件是不是一致性有问题接着做还原的测试

USE master

Go--Verify backup fileRESTORE FILELISTONLYFROM DISK . N'C:Lxar'optmssqldataTestBackRestore_ _full_ 20170210.bak';

RESTORE VERIFYONLYFROM DISK . N'C:' xar'optmssaldatalTestBackRestore _full_ 20170210.bak';

-- Restore DatabaseUSE masterGORESTORE DATABASE [TestBackRestare]FROM DISK = N'C:xarlopt'mssaldataTestBackRestore _full_ _201 70210.bak'WITH MOVE NTestBackBestore TO N'C; watloptoossaldataTestBackBestremndf' ,MOVE N'TestBackRestore, log' TO N'C:luarloptmssaldataTestBackRestoe Jog.Jdf ,STATS= 2GO

 

四、给SQL on Linux for Docker 调用数据

做一个 attach 动作还原动作结束

-- Create database via attachCREATE DATABASE[ TestAttach]ON ( FILENAME = N'C:xar'optmssaldataTestAttacb.md'),( FILENAME = N'C:xar'opt'massadataTestAttach.log.d');

For attachGO


五、二次检查

检查这两条数据,在数据库里面对比一下,先查看第一条数据。

SELECT * FROM TestBackRestore dbo.tbTest;

图片3.png

SELECT * FROM TestAttach, dba tb Test;

图片4.png

这两种方法都是可行的非常的平滑它是完全可以通用的windows 的文件放到SQL server 是完全可用的

相关文章
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
5天前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
2月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
1596 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
65 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
41 3
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
361 3
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
47 3
|
2月前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo