Docker安装Oracle11g数据库

  • 操作系统:centOS9
  • 使用此方法检查是否安装Docker:docker --help,如果有帮助文件则证明安装成功
  • 使用此语句检查Docker是否正在运行:docker images,实际上是查看本地镜像
  • 如果发现未运行则开启Docker:systemctl start docker
  • 查看正在运行的服务:systemctl list-units --type=service
  • 可能用到的命令:设置Docker自启:systemctl enable docker.service
    查看自启动的项目:systemctl list-unit-files | grep enable

开始安装:

  • 拉取镜像:docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

  • 查看镜像:docker images

  • 为了保证Docker实例停止后数据不会丢失,故需要数据持久化,需要创建数据卷,此处名为oracle_vol

    创建数据卷:docker volume create oracle_vol

    查看数据卷:docker volume ls

    删除数据卷:docker volume rm oracle_vol

  • 数据卷(Data Volume)是Docker中用于持久化数据的一种方法 ,它可以在容器内部创建一个或多个目录 ,将主机文件系统中的文件或目录挂载到容器中。数据卷是独立于容器生命周期的,即使容器被删除,数据卷也不会被自动删除。

    文件映射(File Mapping)是通过使用-v或--mount选项将主机上的文件或目录映射到容器中的一种方法。与数据卷相比,文件映射不提供数据持久化的功能,容器删除时,映射的主机文件可能还会保留在主机上,但对容器来说就像是被删除了一样。

    数据卷和文件映射的主要区别:

    持久化:数据卷提供持久化,即使容器删除,数据还会保留;文件映射则不提供持久化。

    主机修改:数据卷中的内容可以在容器外部修改;文件映射的内容可以在主机上修改,并会立即反映到容器内。

    构建容器映射:数据卷通常在容器构建时指定,不能在docker run命令中指定;文件映射可以在docker run命令中指定,也可以在docker-compose文件中指定。

  • 运行镜像,创建容器:docker run -itd \
    -p 1521:1521 \
    --name oracle \
    --restart=always \
    --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata \
    registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

  • 查看容器:docker ps -a

进入容器配置Oracle-11g环境

  • 进入容器环境:docker exec -it oracle bash

  • 切换至root用户,当前为oracle用户,启动镜像时系统创建的:su root密码helowin

  • 编辑环境变量:vi /etc/profile,追加如下内容。docker中的profile文件不支持中文,暂时未解决。

  • oracle home目录

    export ORACLE_HOME=/home/oracle/app/oracle/prouct/11.2.0/dbhome_2

    oracle 服务名或者 SID名,要记住这个名字helowin,它是naivcat或者DBeaver登录的重要选项

    export ORACLE_SID=helowin

    oracle环境变量

    export PATH=ORACLE_HOME/bin:PATH

  • 编辑完保存后,使环境变量生效:source /etc/profile

  • 创建软连接:ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

  • 切换回oracle用户:su - oracle,中间有减号

  • sqlplus修改sys、system用户密码

  • sqlplus /nolog # 登录

    以下是SQL

    conn /as sysdba
    alter user system identified by system; -- 修改system用户账号密码为system;
    alter user sys identified by sys; -- 修改sys用户账号密码为sys;

  • 添加远程用户,远程登录参数如下

    • SID:helowin
    • User:test
    • Password:test
  • create user test identified by test; -- 创建内部管理员账号密码;
    grant connect,resource,dba to test; -- 将dba角色授权给内部管理员账号和密码;
    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; -- 设置密码永不过期
    alter system set processes=1000 scope=spfile; -- 修改数据库最大连接数

  • 保存并重启数据库 conn /as sysdba; -- 保存数据库
    shutdown immediate; -- 关闭数据库
    startup; -- 启动数据库
    show user;

  • 远程连接,使用navicat进行连接

相关推荐
青州从事5214 小时前
20260108【mac】【brew】【docker】安装
macos·docker·eureka
菜鸟思维5 小时前
优化NextJs 项目的Docker 镜像 从3.62G 优化到 296.85M
docker
怣疯knight5 小时前
Docker Desktop 4.55.0版本安装成功教程
windows·docker
东方佑6 小时前
使用Docker Compose一键部署OnlyOffice:完整指南与配置解析
运维·docker·容器
赵文宇(温玉)7 小时前
Docker的价值、特点、创新与关键技术
运维·docker·容器
Coder码匠8 小时前
Docker Compose 部署 Spring Boot 应用完全指南
spring boot·docker·容器
可爱又迷人的反派角色“yang”9 小时前
k8s(二)
linux·运维·docker·云原生·容器·kubernetes·云计算
计算机小手9 小时前
内网穿透系列十六:使用 wg-easy 快速搭建基于 wireguard 的虚拟局域网,支持Docker部署
经验分享·网络协议·docker·开源软件
旧日之血_Hayter9 小时前
docker部署项目,/var/lib/docker/overlay2目录满了如何清理?
运维·docker·容器
文言一心9 小时前
基于 Docker + Docker Compose 实现一键部署(单节点部署场景下轻量、易维护、可一键启停)
运维·docker·容器