M1芯片最终oracle成功版本拉取方法及配置

发布于:2025-06-30 ⋅ 阅读:(20) ⋅ 点赞:(0)

最终根据CSDN中大佬成功安装Docker镜像 完成oracel

1.拉取镜像

docker pull docker.cnb.cool/kangaroohy/open-source/images/oracle:19c-ee

2.容器运行

 docker run -d \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_PDB=ORCL \
-e ORACLE_PWD=123456 \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-e INIT_SGA_SIZE=3000 \
-e INIT_PGA_SIZE=1000 \
-v /Users/liuyue/docker/oracle19c/oradata:/opt/oracle/oradata \
--name oracle19c \
docker.cnb.cool/kangaroohy/open-source/images/oracle:19c-ee

3.容器创建成功后需要连接数据库

以下是使用 DBeaver 连接 Docker 容器中 Oracle 数据库的步骤:

1. 下载 Oracle JDBC 驱动

从 Oracle 官方网站下载适合 Oracle 19c 的 JDBC 驱动程序,通常是 ojdbc8.jar 文件。

2. 打开 DBeaver

启动 DBeaver 应用程序。

3. 创建新连接

点击“数据库”菜单,选择“新建连接”。

4. 选择 Oracle 数据库

在数据库类型列表中选择“Oracle”,然后点击“下一步”。

5.配置连接设置
  • 主机:如果 Docker 容器和 DBeaver 在同一台机器上运行,主机名应为 localhost 。
  • 端口:使用你在 docker run 命令中映射的 Oracle 端口,这里应为 1521 。
  • 服务名:根据你的 docker run 命令,服务名是 ORCL 。
6.配置用户名和密码
  • 用户名:通常为 SYS 。
  • 密码:在 docker run 命令中设置的 ORACLE_PWD ,这里是 123456 。
7.配置 JDBC URL

 DBeaver 会自动生成 JDBC URL,通常格式为:

jdbc:oracle:thin:@localhost:1521/ORCL
8.配置 JDBC 驱动

 点击“驱动设置”按钮,点击“浏览”按钮,找到你下载的 ojdbc8.jar 文件。

9.测试连接

 点击“测试连接”按钮,确保所有配置正确,连接测试成功。

10.完成连接

 点击“完成”按钮,完成 DBeaver 与 Oracle 数据库的连接。

注意事项
  • 确保防火墙允许通过 1521 端口的连接。
  • 如果容器内的数据库服务没有正确启动,可以通过 docker logs 命令查看日志进行排查。
  • 如果连接失败,可以检查 DBeaver 的日志视图以获取更详细的错误信息。

在连接oracle数据进行配置时,ORA-12514 是一个典型的 Oracle 错误,表示数据库监听器不知道请求的服务名。这通常意味着服务名配置有误,或者数据库实例尚未注册到监听器。以下是解决该问题的步骤:

1.检查服务名

确保在 DBeaver 中配置的服务名与数据库实例的实际服务名一致。可以使用以下命令在容器中检查服务名:

docker exec -it oracle19c sqlplus / as sysdba

进入 SQL*Plus 后,运行以下命令查看服务名:

SELECT value FROM v$parameter WHERE name = 'service_names';

确保 DBeaver 中的服务名与查询结果一致。

2.检查数据库实例是否启动

确保数据库实例已经启动并注册到监听器。在 SQL*Plus 中运行以下命令:

SELECT status FROM v$instance;

如果数据库实例未启动,启动它:

STARTUP;

3.检查监听器状态

检查监听器是否正在运行,并且是否知道服务名。在容器中运行以下命令:

docker exec -it oracle19c lsnrctl status

如果监听器未启动,启动它:

docker exec -it oracle19c lsnrctl start

4.检查监听器配置

如果监听器未注册服务名,可以手动重新注册。在 SQL*Plus 中运行:

ALTER SYSTEM REGISTER;

5.检查防火墙和端口

确保防火墙未阻止 1521 端口,并且 Docker 容器正确映射了 1521 端口。

6. 重新连接

完成上述检查和修复后,重新尝试在 DBeaver 中连接数据库。

示例命令

以下是完整的检查和修复步骤:

# 进入容器
docker exec -it oracle19c bash

# 进入 SQL*Plus
sqlplus / as sysdba

# 检查服务名
SELECT value FROM v$parameter WHERE name = 'service_names';

# 检查数据库实例状态
SELECT status FROM v$instance;

# 如果实例未启动,启动它
STARTUP;

# 退出 SQL*Plus
EXIT;

# 检查监听器状态
lsnrctl status

# 如果监听器未启动,启动它
lsnrctl start

# 重新注册服务名
sqlplus / as sysdba
ALTER SYSTEM REGISTER;
EXIT;


网站公告

今日签到

点亮在社区的每一天
去签到