我在我的docker环境中安装了oracle db version 12c。 我使用了以下命令:
docker run -d --name oracle -p 8080:8080 -p 1521:1521 quay.io/maksymbilenko/oracle-12c
我连接到数据库,一切顺利,但我想启用统一审计。 为此,首先您必须关闭数据库,并且在我发现的所有说明中都说要使用 sqlplus,如下所示:
sqlplus / as sysoper
SQL> shutdown immediate
SQL> exit
我使用下一个命令成功连接到数据库:
docker exec -it oracle "bash"
然后我运行 sqlplus 命令,我收到“找不到命令”
[root@f30cc670f85f /]# sqlplus / as sysoper
bash: sqlplus: command not found
我做错了吗? 我应该怎么做才能在我的 oracle 数据库上安装 sqlplus? 我找了找,但没有找到任何对我有帮助的东西。
如果相关的话,我有 mac
我认为 Docker 镜像 只是数据库 和足够的操作系统来运行数据库。我认为它不包括SQL*Plus等客户端软件。
您需要在 Mac 上安装 SQL*Plus。如果您还没有下载 适用于 MacOS 的 Oracle Instant Client,包括 SQL*Plus 扩展。或者为什么不善待自己并安装新奇的 sqlCL 工具呢?它更易于安装并具有所有 SQL*Plus 功能和一大堆更多特性。 在这里找到它.
无论您选择什么客户端,一旦它安装在您的 Mac 上,您就可以像运行任何其他应用程序一样运行它:当提示您连接时,您提供Maksym 提供的字符串:
sqlplus user/password@ip:port/service-name
sqlplus system/oracle@//localhost:1521/xe
如果您需要像这样连接为 sys:
sqlplus sys/oracle@//localhost:1521/xe as sysdba
获取 .bashrc 应该可以作为 sysdba 连接到 sqlplus。
docker-compose exec db bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc_db1@ORCLCDB as sysdba;"
有了这个,你输入图像:
docker exec -it oracle /bin/bash
之后,您可以使用:
sqlplus sys as sysdba
使用docker image store/oracle/database-enterprise:12.2.0.1-slim时,sqlplus和sqlldr工具只有在容器启动后才能使用。 您不能在 Dockerfile 中执行以下操作:
RUN sqlplus sys/password AS SYSDBA @create_database.sql
容器镜像可以配置为在安装后和启动时运行脚本。目前支持 sh 和 sql 扩展。
在您的 Dockerfile 中,将 SQL 脚本复制到启动目录中:
COPY create_database.sql /opt/oracle/scripts/setup/01_create_database.sql
数据库将在容器首次启动时创建。
对于 Windows 操作系统:
在命令行中键入
docker ps
以显示正在运行的容器并检查容器ID。
类型
docker exec -it container_id //bin/bash
通过
sqlplus
命令登录
或者最简单的方法
docker exec -it container_id bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc_db1@ORCLCDB as sysdba;"
我没有任何使用 docker 的经验,但它看起来就像你正在进入 bash 环境一样,所以我们在坚实的基础上。返回的错误(“bash: sqlplus: command not found”)仅表示在 PATH 环境变量中列出的任何目录中都找不到可执行文件 (sqlplus),因为它存在于 shell 环境中。您实际上需要设置三个变量: ORACLE_SID 需要设置为您的数据库名称的值。 ORACLE_HOME 需要设置为安装 oracle 二进制文件的目录的值。并且 PATH 需要添加 $ORACLE_HOME/bin :
export PATH=$ORACLE_HOME/bin:$PATH
很明显,由于您在设置PATH时使用了ORACLE_HOME的值,因此需要先设置ORACLE_HOME。
你应该连接到oracle帐户
su -oracle
sqlplus / as sysdba