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

目录
打赏
0
0
0
0
55
分享
相关文章
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
67 1
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
182 28
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
2667 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
docker: No space left on device处理与迁移目录
通过以上方法,可以有效地管理 Docker 的磁盘使用情况,并确保 Docker 运行环境的稳定性和效率。
488 34
linux怎么把文件传到docker里面
在现代应用开发中,Docker作为流行的虚拟化工具,广泛应用于微服务架构。文件传输到Docker容器是常见需求。常用方法包括:1) `docker cp`命令直接复制文件;2) 使用`-v`选项挂载宿主机目录,实现数据持久化和实时同步;3) 通过SCP/FTP协议传输文件;4) 在Dockerfile中构建镜像时添加文件。选择合适的方法并确保网络安全是关键。
413 1
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
436 1
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
346 19
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
321 3
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
189 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问