Docker部署Oracle 11g

1,拉取镜像:

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

sudo docker images

2,启动一个临时容器,用于拷贝数据库文件,挂载到宿主主机,使数据持久化:

sudo docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

sudo docker ps 

3,拷贝需要持久化的文件到宿主机:

sudo mkdir -p /data/oracle/oradata
sudo docker cp oracle11g:/home/oracle/app/oracle/oradata/helowin /data/oracle/oradata/helowin
sudo docker cp oracle11g:/home/oracle/app/oracle/flash_recovery_area/helowin /data/oracle/oradata/flash_recovery_area

4,移除容器,重新运行一个:

sudo docker stop oracle11g
sudo docker rm oracle11g
sudo docker run -d -it -p 1521:1521 --name oracle11g --restart=always -v /data/oracle/oradata/helowin:/home/oracle/app/oracle/oradata/helowin -v /data/oracle/oradata/flash_recovery_area:/home/oracle/app/oracle/flash_recovery_area/helowin registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

5,查看日志,发现有错误信息:

sudo docker logs oracle11g

6,进容器查看对应错误信息:

sudo docker exec -it oracle11g bash
cat /home/oracle/app/oracle/diag/rdbms/helowin/helowin/trace/alert_helowin.log

发现是挂载的路径没有权限: 

给挂着的路径加上权限:

su - root #密码是helowin
sudo chown -R oracle /home/oracle/app/oracle/flash_recovery_area/helowin
sudo chown -R oracle /home/oracle/app/oracle/oradata/helowin

 按两次Ctrl + D 退出容器编辑

重启一下Oracle容器并查看日志:

sudo docker restart oracle11g
sudo docker logs oracle11g

 日志如下,没有报错说明已经启动成功

7,修改密码:

sudo docker exec -it oracle11g bash
su - root #切换root,密码helowin
vi /etc/profile  #编辑profile文件配置Oracle环境变量

8,在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,创建软连接(可以直接用oracle命令,就不需要进入bin目录中执行相应的命令了) 

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

11,切换到oracle用户,登录sqlplus并修改sys、system用户密码:

su - oracle

sqlplus / as sysdba                   # 登录
CONNECT / AS SYSDBA;                             # 连接,需要进行操作系统验证,才可进行连接登录
alter user system identified by oracle2024;           # 修改system用户账号密码oracle2024
alter user sys identified by oracle2024;                 # 修改sys用户账号密码oracle2024
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;      # 修改密码规则策略为密码永不过期
exit;     

12,以下是使用dbeave数据库连接工具创建表:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统:学习进程_了解并掌握进程的状态

对进程状态之间转换感到头疼,只听书本概念根本无法理解,死记硬背不是什么好的解决方法。只有进行底层操作去了解每一个进程状态,才能彻底弄清楚进程状态是如何转换的。 一、进程的各个状态 我们先从Linux内核数据结构来看: 每一个…

分布式环境下宕机的处理方案有哪些?

大家好,我是锋哥。今天分享关于【分布式环境下宕机的处理方案有哪些?】面试题。希望对大家有帮助; 分布式环境下宕机的处理方案有哪些? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在现代分布式系统中,…

接触角测量(Contact Angle Measurement)

接触角是指液滴在固体表面上的形态,特别是在气、液、固三相交界点处,气-液界面切线与固-液交界线之间的夹角。这个角度是衡量液体对固体表面润湿性的一个重要参数。接触角的大小可以反映液体与固体之间的相互作用强度,从而了解液体在固体表面…

《操作系统 - 清华大学》2 -2:中断、异常和系统调用

文章目录 1. 中断和异常处理机制1.1 中断1.2 异常 2. 系统调用2.1 标志C库的例子2.2 编程接口 3.系统调用的实现4. 程序调用和系统调用的不同处5. 中断、异常和系统调用的开销 1. 中断和异常处理机制 接下来看一看中断和异常的处理过程,看下图就比较清楚&#xff0…

Nginx简易配置将内网网站ssh转发到外网

声明:本内容仅供交流学习使用,部署网站上线还需要根据有关规定申请域名以及备案。 背景 在内网的服务器有一个运行的网页,现使用ssh反向代理,将它转发到外网的服务器。 但是外网的访问ip会被ssh反向代理拦截 所以使用Nginx进行…

Moment.js、Day.js、Miment,日期时间库怎么选?

一直以来,处理时间和日期的JavaScript库,选用的都是Momment.js。它的API清晰简单,使用方便灵巧,功能还特别齐全。 大师兄是Moment.js的重度使用者。凡是遇到时间和日期的操作,就把Moment.js引用上。 直到有天我发现加…

后台管理系统窗体程序:文章管理 > 文章发表

目录 文章列表的的功能介绍: 1、进入页面 2、页面内的各种功能设计 (1)进入选择 (2)当获取到唯一标识符时 (3)当没有标识符时 (4)发布按钮,存为草稿 一、网…

Linux服务控制及系统基本加固

一. liunx操作系统的开机引导的过程 1. 开机自检 根据bios的设置,对cpu,内存,显卡,键盘等等设备进行初步检测如果以上检测设备工作正常,系统会把控制权移交到硬盘 总结:检测出包含系统启动操作系统的设备,硬盘&#…

通过 SSH 隧道将本地端口转发到远程主机

由于服务器防火墙,只开放了22端口,想要通过5901访问服务器上的远程桌面,可以通过下面的方式进行隧道转发。 一、示例命令 这条代码的作用是通过 SSH 创建一个 本地端口转发,将你本地的端口(5901)通过加密的 SSH 隧道连接到远程服务器上的端口(5901)。这种方式通常用于在…

WPF+MVVM案例实战与特效(二十八)- 自定义WPF ComboBox样式:打造个性化下拉菜单

文章目录 1. 引言案例效果3. ComboBox 基础4. 自定义 ComboBox 样式4.1 定义 ComboBox 样式4.2 定义 ComboBoxItem 样式4.3 定义 ToggleButton 样式4.4 定义 Popup 样式5. 示例代码6. 结论1. 引言 在WPF应用程序中,ComboBox控件是一个常用的输入控件,用于从多个选项中选择一…

C#中日期和时间的处理

目录 前言 时间对于我们的作用 一些关于时间的名词说明 格里高利历 格林尼治时间(GMT) 协调世界时(UTC) 时间戳 DateTime 初始化 获取时间 计算时间 字符串转DateTime 存储时间 TimeSpan 初始化它来代表时间间隔 用它相互计算 自带常量方便用于和ticks进行计…

pdb和gdb的双剑合璧,在python中调试c代码

左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。 公众号:一点sir,关注领取python编程资料 问题背景 正常情况下,调试python代码用pdb,调试c代码用gdb,…

【Apache ECharts】<农作物病害发生防治面积>

在vs Code里打开, 实现 1. 首先引入 echarts.min.js 资源 2. 在body部分设一个 div,设置 id 为 main 3. 设置 script 3.1 基于准备好的dom,初始化echarts实例 var myChart echarts.init(document.getElementById(main)); 3.2 指定图表的…

Docker + Jenkins + gitee 实现CICD环境搭建

目录 前言 关于Jenkins 安装Jenkins docker中运行Jenkins注意事项 通过容器中的Jenkins,把服务打包到docker进行部署 启动Jenkins 创建第一个任务 前言 CI/CD(持续集成和持续交付/持续部署),它可以实现自动化的构建、测试和部署…

Leetcode 买卖股票的最佳时机 Ⅱ

使用贪心算法来解决此问题,通过在价格上涨的每一天买入并在第二天卖出的方式,累计所有上涨的利润,以实现最大收益。关键点是从第二天开始遍历,并且只要当前比前一天价格高,我们就在前一天买入然后第二天卖出去。下面是…

【Linux系列】命令行中的文本处理:从中划线到下划线与大写转换

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

使用Docker快速部署FastAPI Web应用

Docker是基于 Linux 内核的cgroup、namespace以及 AUFS 类的Union FS 等技术,对进程进行封装隔离,一种操作系统层面的虚拟化技术。Docker中每个容器都基于镜像Image运行,镜像是容器的只读模板,容器是模板的一个实例。镜像是分层结…

【go从零单排】迭代器(Iterators)

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,迭代器的实现通常不是通过语言内置的迭代器类型&#x…

C语言--结构体的大小与内存对齐,位段详解

一.前言 为了保证文章的质量和长度,小编将会分两篇介绍,思维导图如下,上篇已经讲过了概念部分,本文主要讲解剩余部分,希望大家有所收获🌹🌹 二.结构体的大小与内存对齐 2.1 存在对齐的原因 平…

UnicodeDecodeError: ‘utf-8‘ codec can‘t decode bytes ... - python 报错解决方案

背景 加载数据集突然出问题, 详细报错为:UnicodeDecodeError: utf-8 codec cant decode bytes in position 606-607: invalid continuation byte 解决方案 源文件另存 UTF-8 版的 csv。 即可运行: