想要在 mac 上 安装 Oracle 但是发现官方支持比较好的是liunx 以及window的客户端 mac支持不好.

Docker(可以伸缩部署的虚拟机) 所以考虑用 Docker 容器来解决这个问题 ,关于 Docker 的使用请自行查看 官方文档

这里安装的是 Oracle11g 版本安装其他版本配置上可能有差异 请自行查阅 Oracle文档

一、拉取Oracle11g镜像

命令式执行 如下 · 当前拉取的是阿里云仓库的oracle_11g 镜像 如需拉取其他镜像来源可自行使用第三方镜像仓库或者 去官方仓库搜索 https://hub.docker.com/ 搜索

$ docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

imagepng

等待下载至完成

下载完成后,使用下列命令查看镜像

$ docker images

imagepng

二、Oracle11g容器创建

参数说明
-d: 后台运行容器,并返回容器ID
-p: 端口映射,格式为:主机(宿主)端口:容器端口 (本地端口转发到虚拟机端口)
–name=“nginx-lb”: 为容器指定一个名称;
最后参数为镜像名称 对应 docker images 其中的 REPOSITORY

$ docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

imagepng

创建实例成功后返回实例id

查看实例是否创建成功

$  docker ps -a

imagepng

三、启动Oracle11g容器

start 实例名称

$  docker start oracle11g

imagepng

四、进入容器bash命令

$  docker exec -it oracle11g bash

imagepng

如上进入bash命令成功

五、配置Oracle运行环境

  • 1切换用户

默认为 orcale用户
切换到root用户 账号密码为helowin

$  su root

imagepng

  • 2添加Oracle环境变量

编辑 /etc/profile 文件 导出环境变量

$  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

imagepng

:wq
保存退出

  • 3 创建软链接(快捷方式)

创建快捷方式到/usr/bin目录中 让全局支持 sqlplus 等Oracle Cli 命令

$  ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

imagepng

六、修改Oracle连接配置 初始化账号等

  • 1切换用户

切换到iracle用户下(注意中间有-)

$  su – oracle

imagepng

  • 2修改或者创建数据库账号

连接数据库

$  sqlplus /nolog

使用本地认证登录

SQL>  conn /as sysdba

imagepng
 
Oracle的默认账号为 systemsys
修改默认账号的密码
alter user 用户名 identified by 密码;

SQL>  alter user system identified by system;

或者

SQL> alter user sys identified by sys;

如需添加账号
create user 用户名 identified by 密码 ;

SQL> create user newacc identified by newacc ;

给新用户授权使其可以登录

SQL> grant connect,resource,dba to newacc ;

刷新表

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

退出 sql软连接 命令

SQL> exit
  • 3配置本地tnsnames.ora文件

文件路径 /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin

imagepng

$ vi ./tnsnames.ora

localhost可替换为本机ip (localhost)默认值不修改也行
SERVICE_NAME 为服务名称

HELOWIN =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = helowin)
     )
   )

imagepng

本机ip 查看方式

cat /etc/hosts

imagepng

SERVICE_NAME 查看方式

lsnrctl status

imagepng

七、连接Oracle

使用sql 客户端自行连接 我这里使用Navicat Premium 作为客户端
imagepng
imagepng
imagepng