目录
2.4.3 登录sqlplus,并修改sys、system用户密码
一、环境简介及操作目的
本实验并不在本地开虚拟机模拟远程(这种方式也可行),而是在云服务器上远程,勉强算是小实战吧,没学docker多久,略粗浅
1、使用云服务器 Ubuntu Server 20.04 LTS 64位(用的腾讯云)安装Docker拉取Oracle11g镜像
2、连接工具:这里介绍两种在Win10上安装PLSQL与Navicat两种远程连接方式
二、Ubuntu20.04配置及操作
2.1 Docker安装
参考菜鸟教程: Ubuntu Docker 安装 | 菜鸟教程
参考博客:https://www.jb51.net/article/223369.htm
--新手建议使用官方安装脚本自动安装
curl -sSL https://get.daocloud.io/docker | sh
2.2 Docker拉取Oracle11g镜像
1、拉取镜像:
ubuntu@VM-0-9-ubuntu:~$ docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2、查看镜像:
ubuntu@VM-0-9-ubuntu:~$ docker images
可以看到下载之后的镜像列表如下:
2.3 Docker运行Oracle容器
1、创建容器,并命名为oracle11g,端口映射1521,创建成功能会返回容器id
ubuntu@VM-0-9-ubuntu:~$ docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
这边我已经运行过这个容器了所以出现以下提示:
2、确认容器是否已创建:
ubuntu@VM-0-9-ubuntu:~$ docker ps
3、启动容器,会返回容器名字
ubuntu@VM-0-9-ubuntu:~$ docker start oracle11g
2.4 Docker配置oracle11g容器
2.4.1 进入镜像
ubuntu@VM-0-9-ubuntu:~$ docker exec -it oracle11g bash
2.4.2 配置Oracle软连接
默认用户是oracle,需要在容器内切换root用户(密码默认为 helowin):
[oracle@72ab19b482ed /]$ su root
编辑profile文件(可先备份):
[root@72ab19b482ed /]# vi /etc/profile
在profile文件中配置ORACLE环境变量,在最后面加上以下内容:
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
创建软连接
[root@72ab19b482ed /]# ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切换回oracle用户(注意中间的“ - ”必须要加上)
[root@72ab19b482ed /]# su - oracle
软连接配置完成。
2.4.3 登录sqlplus,并修改sys、system用户密码
[oracle@72ab19b482ed ~]$ sqlplus /nolog
SQL> conn /as sysdba
接着修改用户密码:
alter user system identified by system;
alter user sys identified by sys;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
有可能会提示database not open,可以用
alter database open;
若提示ORA-01507: database not mounted,可以用startup启动一下
startup
之后就可以继续修改密码了
密码修改完成exit退出
三、确认监听是否已开启
若监听未开启,PLSQL则无法连接
参考:oracle登录后无法使用,显示Connected to an idle instance - zhangfd - 博客园
[oracle@localhost ~]$ lsnrctl status
若未启动则 lsnrctl start 启动监听
[oracle@localhost ~]$ lsnrctl start
四、PLSQL15连接配置
1、可以直接官网下载安装PLSQL15
正常安装即可(可参考教程极多)
2、下载instantclient-basic-windows压缩包并解压
解压后在D:\Program Files\instantclient_21_6\network\admin路径下找到tnsnames.ora文件
添加以下配置内容,IP地址填写自己的Oracle数据库IP即可
docker_oracle11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = "IP地址")(PORT =1521))
)
(CONNECT_DATA =
(SERVICE_NAME = helowinXDB)
)
)
打开PLSQL点取消直接进入PLSQL界面,选取instantclient文件夹作为配置文件
重启PLSQL
登录成功
五、Navicat连接配置
配置如下:
连接成功
六、长时间没登录报错
一段时间没登录,再登录时连接不上报 lsnrctl 错,解决如下:
1、查看状态
[oracle@localhost ~]$ lsnrctl status
2、报 lsnrctl 不存在,解决方案
切换root,初始密码还是(helowin);创建软连接;切换回oracle用户(“-”一定要加);
[oracle@72ab19b482ed /]$ su
[root@72ab19b482ed /]# ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
[root@72ab19b482ed /]# su - oracle
[oracle@72ab19b482ed ~]$ lsnrctl status[oracle@72ab19b482ed ~]$ lsnrctl start
3、管理员登录,启动数据库等待完成即可
[oracle@72ab19b482ed ~]$ sqlplus / as sysdba
SQL> startup