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

相关文章
|
2天前
|
持续交付 开发工具 git
阿里云云效产品使用问题之在云效代码域中gitlab使用docker安装的,迁移时遇到“获取企业信息失败”,是什么原因
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4天前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之如何迁移SQL Server
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
1天前
|
Unix Docker 容器
使用docker 启动naocs 报错出现:standard_init_linux.go:241: exec user process caused "exec format error"
```markdown Error in Docker container startup: "standard_init_linux.go:241: exec user process caused \"exec format error\"". Occurred at 2024-06-29 09:26:19.910, followed by a failed hook with a syslog delivery error at 09:27:20.193. Seeking solutions from experts. ```
|
17天前
|
Linux 测试技术 开发者
【Docker项目实战】使用Docker部署instantbox临时Linux系统环境搭建工具
【6月更文挑战第13天】使用Docker部署instantbox临时Linux系统环境搭建工具
28 3
|
25天前
|
Ubuntu Linux Docker
windows 安装docker 安装Ubuntu linux
windows 安装docker 安装Ubuntu linux
66 3
|
3天前
|
数据可视化 Shell Linux
技术笔记:Linux学习笔记1
技术笔记:Linux学习笔记1
|
5天前
|
应用服务中间件 Linux 数据安全/隐私保护
Linux+docker部署项目
Linux+docker部署项目
15 0
|
8天前
|
存储 数据管理 Linux
Linux - 记录问题:docker 迁移 更改镜像默认位置的注意事项
Linux - 记录问题:docker 迁移 更改镜像默认位置的注意事项
22 0
|
11天前
|
网络协议 Linux Shell
【权限提升】Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE
【权限提升】Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE
|
1月前
|
前端开发 Java Docker
【分享】记一次项目迁移(docker java | docker python)
该项目是一个前端Vue3和后端Python+Java的应用,原本部署在CentOS7服务器上通过宝塔面板管理。由于服务器即将到期,计划迁移到另一台使用OpenCloudOS和1Plane的服务器。在尝试构建Docker镜像时,首先为Java应用创建Dockerfile,成功构建并运行。对于Python应用,也创建了Dockerfile,并处理了依赖包的安装。在迁移过程中遇到Java项目加载验证码失败的问题,原因是缺少字体配置。通过在宿主机安装fontconfig并将相关字体文件复制到镜像中解决了问题。最后,前端Vue应用作为静态文件运行,如果使用反代理,需要进行相应配置。
45 1