Linux下安装docker以及docker安装Oracle19c的全部详细过程及各种问题解决

本文详细记录了在Linux环境下安装Docker,配置镜像加速,拉取并安装Oracle 19c的步骤,包括启动、连接、用户管理等关键环节,以及遇到的问题和解决办法。特别关注了sqlplus连接、plsql工具的使用和权限设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. docker 安装

  • 直接 yum 命令安装

    yum install -y docker
    

    在这里插入图片描述

  • 安装之后查看 docker 是否安装成功

    yum list installed |grep docker
    

    在这里插入图片描述

2. docker启动等简单命令

  1. 查看 docker 版本

    docker -v
    docker version
    

    在这里插入图片描述

  2. 查看 docker 服务状态

    systemctl status docker
    
  3. 启动 docker 服务

    sudo systemctl start docker
    

    在这里插入图片描述

  4. 停止 docker 服务

    systemctl stop docker
    

    在这里插入图片描述

  5. 重启 docker 服务

    systemctl restart docker
    

    在这里插入图片描述

3. 配置 docker 镜像加速

  • 编辑 daemon.json :vim /etc/docker/daemon.json

  • 添加下面的内容:

    {
       "registry-mirrors": [
           "https://mirror.ccs.tencentyun.com"
      ]
    }
    

    在这里插入图片描述

  • 重载所有修改过的配置文件

    systemctl daemon-reload
    
  • 重启服务

    systemctl restart docker
    

4. Docker拉取镜像

  • 命令:docker pull <镜像名称>:<版本号>
  • 比如拉取 redis
    • 查看 redis 版本

      https://hub.docker.com/_/redis
      

      在这里插入图片描述

    • 拉取命令:

      docker pull redis:6.2.7
      
    • 查看本地镜像

      docker images
      

      在这里插入图片描述

5. docker 安装 oracle19c

5.1 准备工作

  1. 拉取镜像
    docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
    
    在这里插入图片描述
  2. 创建挂载文件、并授权(不授权会导致后面安装失败)
    [root@hello_TQ1 ~]# mkdir -p /opt/myData/oracle/oracleData
    [root@hello_TQ1 ~]# 
    [root@hello_TQ1 ~]# 
    [root@hello_TQ1 ~]# chmod -R 777 /opt/myData/
    
    在这里插入图片描述

5.2 开始安装Oracle 19c

  1. 安装 Oracle
    • 执行下面的 docker run 命令
      docker run -d -it --name orcl19c_03 -p 1521:1521 -p 5500:5500 -e ORACLE_SID=orcl -e ORACLE_PDB=orclPDB1 -e ORACLE_PWD=123456 -e ORACLE_EDITION=standard -e ORACLE_CHARACTERSET=AL32UTF8 -v /opt/myData/oracle/oracleData:/opt/myData/oracle/oracleData registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
      
      在这里插入图片描述
    • 上面执行的命令中,备注:
      ORACLE_SID=orcl 是服务名,安装后连接Oracle 时用的服务名,CDB数据库的
      ORACLE_PWD=123456 是安装后 dba 用户的密码,即:123456
      ORACLE_PDB=orclPDB1 是安装后的PDB数据库,想更明白一点,可以往下看6.3.1创建用户的两种方式,一个是在CDB库下,一个是下PDB库下

5.3 进入Oracle容器

  1. 查看oracle容器id:docker ps
    容器id 可以用上面生成的那串字符串,也可用命令 docker ps 查看

  2. 进入容器(将oracle容器id换成你自己的id)

    docker exec -it oracle容器id bash
    

    在这里插入图片描述

6. docker 下连接Oracle 19c

6.1 查看安装目录等

  1. 进入容器查看 Oracle 安装目录
    在这里插入图片描述
  2. 配置监听
    • 开始配置1
      	本地实例名 =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 远程数据库IP地址)(PORT = 远程服务器端口号))
          (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = 远程数据库服务名)
          )
        )
      
    • 启动监听
      启动监听命令:lsnrctl start
      在这里插入图片描述
    • 启动监听时,发现问题(待解决)
      The listener supports no services
      
    • 重新启动监听

6.2 多种方式连接Oracle

6.2.1 sqlplus 免密连接(连接后存在问题,待解决)

  1. 连接 Oracle
    sqlplus / as sysdba
    
    或者:sqlplus /nolog 然后 conn /as sysdba
    在这里插入图片描述
  2. 修改 dba 的密码
    • 命令如下:

      alter user system identified by system;
      
    • 问题如下:报错,出现问题,如下(待解决)

      ERROR at line 1:
      ORA-01034: ORACLE not available
      Process ID: 0
      Session ID: 0 Serial number: 0
      

      在这里插入图片描述
      发现执行任何语句都报这个错,不知道什么情况,待解决!。。

6.2.2 sqlplus 用户密码连接(错误问题同上)

  • 这个需要注意,这种连接在密码后面需要加上 as sysdba
  • 连接命令:sqlplus system/123456 as sysdba ,如下:
    在这里插入图片描述
    在这里插入图片描述

6.2.3 sqlplu 远程连接数据库(无错误信息)

  • 两种写法
    • 第一种写法:
      sqlplus 用户名/密码@ip地址:端口号/数据库服务名
      
      在这里插入图片描述
    • 第二种写法
      sqlplus 用户名/密码@//ip:1521/orcl
      
      在这里插入图片描述

6.2.4 plsql 工具连接

  • 如下:
    在这里插入图片描述
    在这里插入图片描述

6.3 plsql 里新增用户、授权、修改密码等

6.3.1 创建用户

1. 方式一(CDB库下)
  • 创建语句
    create user c##susu identified by susu;
    
  • ORA-65096 问题原因:
    根据 Oracle 的版本不一样确定的,19c需要加:c##
    在这里插入图片描述
    但是这样创建之后,我们创建了一个 c##susu 的用户,这不是我们想要的用户,看着难受,所以我么可以把这个给修改了,试试再说,修改的时候,如果提示没有权限,就用 sys 用户 以 sysdba 进行登录即可修改 用户
    在这里插入图片描述
    • 修改时,只需执行下面一条 update 语句即可,执行完之后 all_users 与 dba_users 的数据都会更新成 susu.

      update all_users t set t.USERNAME='susu' where t.USER_ID='106';
      

      在这里插入图片描述

    • 但是修改完之后该用户就不能用了,不能进行授权等,上网搜了一下说刷新,刷新也不好用,

      alter system checkpoint;
      alter system flush shared_pool;
      

      在这里插入图片描述

2. 方式2(PDB库下)
  • 真的有点接收不了那个c##,继续查了一下,大概结论是:==在CDB容器中创建用户时,前面必须添加C## ,而PDB数据库不需要加前缀。==尝试试试

  • 查看一下我的PDB数据库,试试切换,下面的 ORCLPDB1 就是上面我们在用 docker run 安装oracle数据库时定义的那个名字,我们接下来就切换到这个数据库试试

    select t.CON_ID,t.name,t.OPEN_MODE from v$containers t;
    
    1	1	CDB$ROOT	1646200604	READ WRITE
    2	2	PDB$SEED	313548930	READ ONLY
    3	3	ORCLPDB1	2020570011	READ WRITE
    

    在这里插入图片描述

  • 接下来进入 PDB 容器,ORCLPDB1 是上面查出来的

    alter session set container=ORCLPDB1;
    
  • 切换容器之后,再创建用户试试,可以不用加c##来创建用户了
    在这里插入图片描述

  • 创建、授权、修改密码都没有问题,但是登录出了问题
    在这里插入图片描述
    在这里插入图片描述

  • 解决上面登录不上的问题,换一下数据库即可,数据库连错了,要换成对应的pdb数据库orclpdb1
    在这里插入图片描述
    在这里插入图片描述

6.3.2 给用户授权等

  • 重点是上边的,这个我们就简单写个语句就好了,看下面的即可

  • 给用户并授权,如下:

    --给新创建的用户赋予权限:
    	grant create session to susu;--登录权限】
    	grant connect ,resource,dba to susu;
    	grant create any table to hi;
    
  • 授予可执行存储过程的权限
    问题:在Oracle存储过程使用 execute immediate 语句建表时可能会存在权限不足的问题。
    解决问题grant create any table to hi;,执行此语句授权之后即可解决

  • 修改密码

    alter user susu identified by susu123;
    

7. 结束

7.1 Oracle相关推荐文章

安装Oracle数据库需要以下步骤: 1. 下载Oracle 19c的安装包和Docker。 2. 创建一个Docker容器。 3. 在Docker容器安装Oracle 19c。 以下是详细安装步骤: 1. 下载Oracle 19c的安装包和Docker。 下载Oracle 19c的安装包需要到Oracle官网下载,需要注册一个Oracle账号,并且同意Oracle的许可协议。下载完成后,将安装包放到一个容易访问的位置。 Docker可以从官方网站上下载最新版本的Docker。 2. 创建一个Docker容器。 运行以下命令来创建一个Docker容器: ``` docker run -d -it --name oracle19c -p 1521:1521 -p 5500:5500 -e ORACLE_SID=ORCL -e ORACLE_PDB=ORCLPDB1 oracle/database:19.3.0-ee ``` 这个命令会创建一个名为oracle19c的Docker容器,同时将容器的1521端口映射到主机的1521端口,将容器的5500端口映射到主机的5500端口,设置ORACLE_SID为ORCL,设置ORACLE_PDB为ORCLPDB1,并且使用Oracle 19c的EE版本来运行容器。 3. 在Docker容器安装Oracle 19c。 通过以下命令来进入Docker容器: ``` docker exec -it oracle19c bash ``` 然后,运行以下命令来安装Oracle 19c: ``` cd /opt/oracle/product/19c/dbhome_1/ ./runInstaller -silent -responseFile /opt/oracle/product/19c/dbhome_1/install/response/db_install.rsp ``` 这个命令会安装Oracle 19c到容器中。安装完成后,可以通过以下命令来启动Oracle数据库: ``` su - oracle dbstart /opt/oracle/product/19c/dbhome_1/ ``` 安装和启动完成后,就可以通过以下命令来登录到Oracle数据库: ``` sqlplus sys/Oradoc_db1@ORCL as sysdba ``` 以上就是在Docker安装Oracle 19c的步骤。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@素素~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值