当前位置: 首页 > news >正文

实用篇| 如何快速搭建“二手系统”的数据库

对于一些程序员最痛苦的是接手一些“二手系统“, 由于年久失修, 加上裁员离职,系统文档不完善等原因, 只留下服务器配置和代码。
接手人,只能对着这些仅存的代码和服务器硬刚, 对服务器硬刚的第二步,我们需要让服务正常跑起来,由于服务大部分强依赖数据库。本章节,我们就讲解一下如何快速搭建起数据库。
我们只需要知道系统的版本号就可以。对于二手系统一定要用一样版本的数据库,不要一味追求最新版,不然后续各种水土不服,有你受的。

以下我以个人经验,本地搭建oracle数据库为例,其他类型的数据库,方法和思路基本是差不多。

1 工具选择- docker

首推docker工具,docker是现在搭建环境的好工具。根据自己系统,去docker 菜鸟教程网上按照教程安装属于自己的docker工具。

2 数据库官方镜像获取

现在主流的数据库都会在docker镜像官方放出官方镜像, 大家优先选择官方开放的容器镜像。
比如我自己在这上面找到自己的官方镜像oracle docker镜像

3 熟悉官方镜像的使用方式

比如默认的账号、数据存放的路径等等,这些一般官方的github都会写好。
比如我的数据库oracle 官方镜像使用细节

4 设置镜像代理,拉取镜像

由于网络的关系,一般我们拉取docker hub上镜像会有问题。
我们需要配置镜像代理,不同的系统设置方法稍微有点区别
我以windows为例:
在这里插入图片描述

我一般设置多个, 免费共享我正在用的镜像代理地址

  "registry-mirrors": ["https://mirrors.tuna.tsinghua.edu.cn/docker-ce","https://hub.uuuadc.top","https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu","https://docker.ckyl.me","https://docker.awsl9527.cn"]

5 docker 常用的指令

有了上述的步骤之后,我们接下来可以愉快使用我们的docker工具,接下来,我就记录一些我在使用oracle镜像的常用命令

# 启动oracle
docker run -d --name oracle  --privileged  -v ./db_data:/opt/oracle/oradata  -p 5050:5050 -p 5500:5500 -p 1521:1521 scalified/oracle-database:12.1.0.2-ee
# 获取containerid
docker ps -a
# 交互启动
docker exec -it [containerid] /bin/sh #进入修改 
# 停止
docker stop [containerid] 
# 彻底删除,防止重名,启动不了
docker rm  [containerid] 
# 容器文件拷到宿主机
docker cp  06151eb3fbcc:/opt/oracle/imp.log ./imp.log # 文件拷到宿主机
# 查看镜像制作的命令(dockerfile)
docker history scalified/oracle-database:12.1.0.2-ee --no-trunc 
# 宿主机文件拷到容器,对于数据库数据导入非常受用
docker cp   d:/work/jszx/2024-08-09/DB_OA_FZ_FJJSZX_AUTOFORM.dmp 06151eb3fbcc:/opt/oracle/ # 文件拷贝到容器

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • mac编译opencv 通用架构库的记录
  • Therabody™明星产品TheragunⓇ筋膜枪,以科技健康助力舞台高光时刻
  • JVM上篇:内存与垃圾-回收篇05-本地方法接口和本地方法栈
  • 使用MicroApp重构旧项目
  • Java中Map、List、Set操作
  • 24年上半年天融信营收缩减1.8亿,亏损2.06亿
  • Java-自定义注解中成员变量是Class<?>
  • Processing练习之变换颜色
  • eNSP 华为三层交换机配置DHCP
  • C system()函数调用删除Windows临时目录下的所有文件
  • 《AI音频类工具之九——Stable Audio​ 》
  • 【前端】NodeJS:项目上线
  • Ubuntu视频工具
  • 编程参考 - 头文件中使用static inline
  • Spring Cloud Gateway 请求转发源码分析
  • 【EOS】Cleos基础
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • github指令
  • HTTP中的ETag在移动客户端的应用
  • Redis字符串类型内部编码剖析
  • Travix是如何部署应用程序到Kubernetes上的
  • vue总结
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 对JS继承的一点思考
  • 利用DataURL技术在网页上显示图片
  • 通信类
  • 项目管理碎碎念系列之一:干系人管理
  • PostgreSQL之连接数修改
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #if和#ifdef区别
  • #NOIP 2014# day.2 T2 寻找道路
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $NOIp2018$劝退记
  • (1)无线电失控保护(二)
  • (2)空速传感器
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C++20) consteval立即函数
  • (六)激光线扫描-三维重建
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (三)Honghu Cloud云架构一定时调度平台
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • ./configure,make,make install的作用
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .netcore 获取appsettings
  • .net解析传过来的xml_DOM4J解析XML文件
  • .Net中wcf服务生成及调用
  • @ModelAttribute注解使用
  • [20150904]exp slow.txt
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子
  • [CISCN2019 华东南赛区]Web11