Docker安装Oracle之踩坑记

news2024/11/30 14:24:35

程序员的公众号:源1024获取更多资料,无加密无套路!

最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上


这几天项目上用到Oracle数据库,于是,就用Docker安装了Oracle数据库,想持久化数据,就配置了挂载卷,一路踩坑啊,踩的我脚有点疼。。。

找遍各大网站,搜索了一圈,都是工工整整的流程,没有半点坎坷的,就纳闷了,难道就我安装会出现这么多问题吗?难道是我的环境问题吗?

踩坑了总得填坑吧,于是乎就写了这篇填坑笔记,分享给大伙儿,如果你也遇到了,巧了,这是缘分!如果真没有坎坷,那么恭喜你!

不禁想起了一首歌——《坦途》

走过人生所有的弯路从此人生尽是坦途!

我们先看看正常安装流程

1、拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2、安装

docker run --name oracle11g -d -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest

3、拷贝目录

docker cp oracle11g:/home/oracle/app/oracle /home/oracle

4、授权目录

chmod -R 777 /home/oracle/

5、重新配置挂载启动镜像

docker stop oracle11g
docker rm oracle11g
//-v 挂载系统目录到容器中
docker run --name oracle11g -v /home/oracle:/home/oracle/app/oracle -d -p 1521:1521 --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest

6、进入容器

docker exec -it oracle11g bash

7、切换root用户,密码helowin

su root

8、配置环境变量

vi /etc/profile
​
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

9、生效

source /etc/profile

10、配置软连接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

11、登录sqlplus,修改sys、system用户密码,创建用户

登录
sqlplus /nolog  
连接
conn /as sysdba  

12、修改用户密码

修改密码
alter user system identified by system;
alter user sys identified by sys;

13、创建用户并授权

创建用户
create user test identified by test123;
赋予权限
grant connect,resource,dba to test;

这应该是正常流程,然后用navicat连接数据库测试。

那么,坑出现在哪一步了呢?出现在第12步,修改密码时报错了

于是就执行了

alter database open;

报错如下

根据提示,又执行

alter database mount;

结果是这样,报错信息提示控制文件版本不一致

于是退出SQL到oracle层,就试着复制配置文件

cp /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02_bak.ctl

cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl

然后再连接SQL

再执行下面命令

 alter database mount; alter database open;

终于OK了!

那接下来修改用户密码

创建用户、授权

也OK,用navicat测试连接数据库

大功告成!

踩坑成功!

难道是这个镜像的bug吗,查了好多帖子都是使用这个镜像搭建的Oracle,镜像确实也挺久了,8年前的,有时间验证一下,今天就分享到这里吧,如果你也遇到这种问题,欢迎评论留言交流!

 


 系列文章索引

MyBatis的插件能在哪些地方进行拦截?

了解MyBatis的缓存机制吗

面试官:谈谈对volatile的理解

Spring中用到了哪些设计模式

面试官:说一下SQL的执行过程

线程池的工作原理


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1602817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ai免费打造写真大片!3个宝藏工具!

随着科技的飞速发展,人工智能(AI)已经渗透到我们生活的方方面面,包括摄影和图像处理领域。今天,我们就来揭秘那些能够让你轻松打造出专业级写真大片的AI工具,让你的摄影作品惊艳全场! 迅捷图片转…

机器学习理论入门---线性回归从理论到实践

线性回归是机器学习里面最简单也是最常用的算法,理解了线性回归的推导之后对于后续的学习有很大帮助,所以我决定从这里开始深入学习相关的机器学习模型。 本篇首先从矩阵求导开始切入,然后介绍一次线性回归的推导,再到代码实现。本…

2024第十五届蓝桥杯JavaB组省赛部分题目

目录 第三题 第四题 第五题 第六题 第七题 第八题 转载请声明出处,谢谢! 填空题暂时可以移步另一篇文章:2024第十五届蓝桥杯 Java B组 填空题-CSDN博客 第三题 第四题 第五题 第六题 第七题 第八题 制作不易,还请点个赞支持…

PyTorch深度学习之旅:从入门到精通的十个关键步骤

在人工智能的浪潮中,深度学习框架扮演着至关重要的角色。PyTorch作为其中的佼佼者,以其简洁、直观和灵活的特性,吸引了众多开发者与研究者。本文将引导您逐步掌握PyTorch,从基础概念到高级应用,让您在深度学习的道路上…

LLM推理框架Triton Inference Server学习笔记(二): Triton模型部署流程(stey by stey)

官方文档查阅: TritonInferenceServer文档 1. 写在前面 上一篇文章对triton inference server进行了一个整体的介绍,解答了三个经典问题what, why, how。 这篇文章就开始转入实践, 从实践的角度整理Triton模型部署的全流程, 如果我有一个训…

一篇文章带你快速认识边缘计算(必看)

引言 5G时代带来了万物互联的飞跃,但随之而来的是数据量爆炸性增长与集中式数据中心处理模式的瓶颈:响应延迟、带宽压力、安全隐忧。边缘计算应运而生,借鉴生物智能分布式原理,将计算与分析推向数据源头,有效解决了以上…

Promise模块化编程ES6新特性

文章目录 Promise&模块化编程1.Promise基本介绍2.快速入门1.需求分析2.原生ajax jQuery3.Promise使用模板 3.课后练习1.原生ajax jQuery2.promise 4.模块化编程基本介绍5.CommonJS基本介绍6.ES5模块化编程1.题目2.示意图3.代码实例—普通导入导出function.jsuse.js 4.代码…

一文搞懂Kotlin符号处理接口KSP

公众号「稀有猿诉」 原文链接 一文搞懂Kotlin符号处理接口KSP Kotlin符号处理(Kotlin Symbol Processing)即KSP是可以用于开发轻量级编译器插件的一套API。是Kotlin原生的,Kotlin语法友好的编译器插件。使用简单且易于上手&#xff0c…

同城货运系统的开发与货运搬家软件的技术性探讨和市场分析

一、市场前景展望 随着城市化进程的加快和电商物流的蓬勃发展,同城货运市场展现出了巨大的潜力。尤其是在快节奏的生活环境中,个人和企业对于快速、便捷、可靠的货运搬家服务需求日益增长。同城货运系统与货运搬家软件作为连接货主与货运司机的桥梁&…

2024还想走c++后端的同学,该如何准备才有机会成功上岸拿到offer

c后端,一个被网上说没有市场的c方向。但是对于想从事c后端的同学该如何准备呢? 就目前的市场需求来说,c后端的需求市真不大,中小厂基本没有,大部分集中在大厂。 那么,如果大家想求职c后端,第一…

野生动物保护视频AI智能监管方案,撑起智能保护伞,守护野生动物

一、背景 在当今世界,野生动物保护已经成为全球性的重要议题。然而,由于野生动物生存环境的不断恶化以及非法狩猎等活动的盛行,保护野生动物变得尤为迫切。为了更有效地保护野生动物,利用视频智能监管技术成为一种可行的方案。 …

docker方式 部署jenkins服务,实现持续集成(CI/CD)功能

一、背景: 因公司需求,需要部署一套jenkins自动化部署服务,并且是通过docker容器的方式部署的。 二、jenkins简介: 什么是Jenkins ? Jenkins是一个开源软件,是基于Java开发的一种持续集成工具,用…

VS集成vcpkg

VS集成vcpkg 下载vcpkg 下载vcpkg git clone https://github.com/Microsoft/vcpkg.git安装vcpgk,文件目录 .\bootstrap-vcpkg.bat集成到vs2022中 # 集成到项目 vcpkg integrate project vcpkg integrate installPS C:\Users\Administrator> vcpkg integrate…

Python入门教程完整版(懂中文就能学会)

网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 为了吸取教训,小编一定要分享一下攻略,“怎样获得小编分享的教程呢&#xff1…

多线程同步:使用 std::mutex 和 std::unique_lock 保护共享资源

在当今的软件开发中,多线程编程是一项至关重要的技术,它允许程序同时执行多个任务,从而提高应用程序的效率和响应速度。然而,多线程环境也带来了数据安全和一致性的挑战。在多个线程需要访问和修改同一数据资源的情况下&#xff0…

【SAP NWDI】创建DC(Development component)(三)

一、准备DC组件包 首先需要下载下面这7个sca 的组件包,找到对应的ME版本的组件包,可以找对应的Basis帮忙下载。然后把这7个组件包放入到服务器中根目录的这个目录中,如果目录没有的需要自己创建出来。 二、导入DC组件包 注意:下面的的图中 有需要填写 in 和 out 的连个目…

RabbitMQ-核心特性

已经不需要为RabbitMQ交换机的离去而感到伤心了,接下来登场的是RabbitMQ-核心特性!!! 文章目录 核心特性消息过期机制消息确认机制死信队列 核心特性 消息过期机制 官方文档:https://www.rabbitmq.com/ttl.html 可以给每条消息指定一个有效期&#xf…

富文本在线编辑器 - tinymce

tinymce 项目是一个比较好的富文本编辑器. 这里有个小demo, 下载下来尝试一下, 需要配置个本地服务器才能够访问, 我这里使用的nginx, 下面是我的整个操作过程: git clone gitgitee.com:chick1993/layui-tinymce.git cd layui-tinymcewget http://nginx.org/download/nginx-1.…

监控系统泛滥:CTO 面临的隐形成本危机

在信息技术飞速发展的今天,构建和维护现代化的数字系统变得日益复杂和关键;在这样的背景下,监控系统的作用变得尤为突出。正如业界广泛流传的一句经验之谈“无监控,不运维”所揭示的道理一样,对于任何具有一定复杂性的…

Redis(Windows版本下载安装和使用)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…