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 是完全可用的

相关文章
|
17天前
|
Kubernetes Ubuntu Linux
docker学习笔记
docker学习笔记
41 0
|
9天前
|
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
|
20天前
|
存储 Linux Docker
备份和迁移Docker容器
【8月更文挑战第21天】在Linux系统中,备份与迁移Docker容器可通过以下步骤实现:首先,查找并记录需备份容器的ID或名称;其次,若容器正在运行,则需先停止;最后利用`docker export`命令将其导出为tar归档文件以完成备份。对于容器迁移,有两种常见方式:一是直接迁移备份文件至目标服务器,并通过`docker import`命令导入新容器;二是通过创建容器镜像,并推送至镜像仓库,之后在目标服务器上拉取该镜像并运行。值得注意的是,在进行容器迁移时应确保Docker版本兼容,同时关注数据存储、网络配置及权限设置等问题,以保障容器功能正常运作。
|
13天前
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline
|
13天前
|
jenkins Java 持续交付
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
|
14天前
|
Kubernetes Unix Linux
k8s将节点容器运行时从Docker迁移到Containerd
k8s将节点容器运行时从Docker迁移到Containerd
|
17天前
|
Kubernetes Linux Docker
【Azure 应用服务】使用Docker Compose创建App Service遇见"Linux Version is too long. It cannot be more than 4000 characters"错误
【Azure 应用服务】使用Docker Compose创建App Service遇见"Linux Version is too long. It cannot be more than 4000 characters"错误
|
18天前
|
开发框架 .NET Linux
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
|
20天前
|
Linux 持续交付 虚拟化
在Linux中,Docker和容器虚拟概念是什么?
在Linux中,Docker和容器虚拟概念是什么?
|
21天前
|
运维 Kubernetes Linux
docker和kubectl客户端安装Linux
通过上述步骤,您应该已经在Linux环境中成功安装了Docker和kubectl客户端。安装完成后,您可以开始使用Docker来创建和管理容器,使用kubectl来管理Kubernetes集群。这些工具的安装和使用,对于现代云原生应用的开发和运维来说,是一个基础且关键的步骤。
19 0