如何将旧系统环境上运行的mysql迁移到新系统新环境中运行?

前言

很多时候一些远古业务程序一直需要在旧的系统环境上运行(unbuntu12,centOS5),生产环境都是较新的系统版本,这个情况我们有两个选择:1. 使用虚拟机安装旧的系统环境。2.打包整旧系统环境,以docker容器方式在新的系统环境上运行。现在介绍一下第2种方法的操作过程。

前提环境

centOS5.8推荐 安装mysql是5.0.95版,我们尝试在centOS7运行centOS5.8容器,并且在该容器部署mysql 5.0.95。

旧系统环境:

LSB Version::core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 5.8 (Final)
Release: 5.8
Codename: Final

docker 版本:

Docker version 1.13.1, build 7d71120/1.13.1

打包centOS5.8

第一步需要更新centos5.8的源,因为centos 5.8已经是一个很古老的版本,原来的源已经失效。不更新的话执行yum install会提示M2Crypto.SSL.SSLError: unknown protocol的错误。

rm -rf /etc/yum.repos.d/* #清理旧的源
touch /etc/yum.repos.d/Bento-Vault.repo #创建新的源文件

执行
vim/etc/yum.repos.d/Bento-Vault.repo修改内容

#BENTO-BEGIN
[C5.8-base]
name=CentOS-5.8 - Base
#baseurl=http://vault.centos.org/5.8/os/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-updates]
name=CentOS-5.8 - Updates
#baseurl=http://vault.centos.org/5.8/updates/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-extras]
name=CentOS-5.8 - Extras
#baseurl=http://vault.centos.org/5.8/extras/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-centosplus]
name=CentOS-5.8 - Plus
#baseurl=http://vault.centos.org/5.8/centosplus/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
#BENTO-END

这个时候就可以使用tar命令打包整个系统, 当中—numeric-owner是代表执行所属,—exclude:排除那些文件或者目录, -zcvf:打包压缩p保持文件的绝对路径。

tar --numeric-owner --exclude=/proc --exclude=/sys -zcvpf centos-58.tar

生成centos-58.tar之后上传到centOS7服务器上。

导入至docker

确保centos7上已经安装好docker,然后简单操作一下导入即可。

docker import centos-58.tar centos5:v1

进入容器并安装mysql

进入容器

docker run -it centos5:v1 /bin/bash

这个时候查看一下系统信息,系统信息显示是centos5

在容器内部安装mysql并启动

yum install -y mysql-server mysql
service mysqld start

成功运行

结语

对比起使用虚拟机,docker迁移旧运行环境十分方便。但是因为容器是共用宿主机的内核,所以涉及一些与内核版本相关的接口未必能正常使用,建议投入到生产环境前需要进行完善的测试。

声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!

(0)
上一篇 2022年7月14日
下一篇 2022年7月14日

相关推荐