开始记录docker安装oracle11g 镜像并进行配置,
用pl/sql 可以登录为最终结果
navicat连接是在最后一步
参考:https://blog.csdn.net/zwx521515/article/details/77982884
https://blog.csdn.net/qq_38380025/article/details/80647620
但是根据这个进行配置会有一些问题,所以写这篇记录一下,希望可以帮助其他人
开始:
①、开始拉取镜像-执行命令:
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
下载的过程少长,耐心等待吧(镜像6.85G)
下载完成后 查看镜像: docker images
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/4dca143514da480fad6cd7622251687a.png)
可以看到已经下载好了
② 、创建容器
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
这里说一下,命令后面的地址一定要是你下载的镜像地址也就是你拉取镜像名字,否则会出现名字已存在等问题!
如果创建成功能会返回容器id
③、启动容器
docker start oracle11g
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/08a7368e0d2e4d2c9f6666c77dee3a2a.png)
④、进入镜像进行配置
1、 docker exec -it oracle11g bash
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/3b87ef5b58fe4b639db06e0a26177298.png)
2、进行软连接
sqlplus /nolog
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/886e0c5aea52420e9410a24134ba915e.png)
发现没有这个命令,用不了
3、切换到root 用户下
su root
密码:helowin
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/0d53ffcbc9be47e8ac5fd9d94d7af79a.png)
注意这里还是在容器当中。。有朋友退去了。。。。。。。
4、编辑profile文件配置ORACLE环境变量
vi /etc/profile
在最后加上
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/66542d664be74ce783ff76ed6cba0632.png)
保存并退出 :wq
接着, 使其生效
source /etc/profile
5、创建软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
6、切换到oracle 用户
这里还要说一下,一定要写中间的内条 - 必须要,否则软连接无效
**注意:这里如果有报错的话需要修改一个配置文件**![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/028390af211540e4b3328f3c859f84ba.png)
> # su:无法执行/bin/bash:资源暂时不可用 su: failed to execute /bin/bash: Resource temporarily unavailable
>
处理参考链接:https://blog.csdn.net/weixin_45005012/article/details/126306048
⑤ 、登录sqlplus并修改sys、system用户密码
sqlplus /nolog
conn /as sysdba
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/5faf47d6f71d46fca5a5b979a001a777.png
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2ef0fb17aa1e42b791b87556b777067d.jpeg)
接着执行下面命令
alter user system identified by system;
alter user sys identified by sys;
也可以创建用户 create user test identified by test;
并给用户赋予权限 grant connect,resource,dba to test;
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/39adf1355ce94a448329d1ea3ee22425.png)
注意:当执行修改密码的时候出现 : database not open
提示数据库没有打开,不急按如下操作
输入:alter database open;
注意了:这里也许还会提示 : ORA-01507: database not mounted
不急!继续!
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/d9517c882f464aefa645362f3194a356.png)
=========== 解决方法===========
输入:alter database mount;
输入 :alter database open;
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/f9a4735e8505409d81d12e214bffffe6.png)
然后就可执行 修改数据库密码的命令了
改完之后输入:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
刷新下表
exit 是退出sql 软连接
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/fc6156785af24f74aa4d5531cc53f873.png)
⑥、使用pl/sql 进行连接
navicat 连接的直接跳过 第 ⑥ 步
但是 oracle 的 lsnrctl 服务 在第6步所以你还是看完在看第7步(虽然不需要干啥)
第7步是navicat连接的在最后
之前我们把端口映射到了1521上,所以我们需要进行配置 tnsnames.ora
几个朋友不知道ora文件在哪,所以添加了这一步
pl/sql 安装包,汉化包,秘钥工具 https://download.csdn.net/download/qq_38380025/11168289
plsql安装配置工具包 https://blog.csdn.net/qq_38380025/article/details/89677588
docker_oracle11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
打开pl/sql 进行登录 :提示监听程序当前无法识别连接描述符中请求的服务
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/7ca1a2cd025546f4897f0c61d152dd94.png)
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/1ed5dfcac9e04500a33f4e9e918cfeab.png)
这时我们需要去看一下oracle 的 lsnrctl 服务
lsnrctl status
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/dfd702120737485f9fb88138df21dfb7.png)
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2430442780a54ba5bd45afc3bab816cf.png#pic_center)
看到这两个了么,任选其一,修改 tnsnames.ora的 service_name=helowinXDB
docker_oracle11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
)
(CONNECT_DATA =
(SERVICE_NAME = helowinXDB)
)
)
登录成功。
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/0b0ff755ec3a47329903856a5f2c032b.png)
第7步是navicat连接
有几个朋友用的是navicat连的所以故此添加这一步
打开navicat后(navicat12不用配置oci.dll文件了)
直接新建连接
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/167737c5d9014cd29b8c71a57cc6a171.png)
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/e252a9db1df44e9da749e42cc82af67d.png)
原文链接:https://blog.csdn.net/qq_38380025/article/details/80647620