目录

PART I:安装ORACLE

1.软件安装

2.构建docker镜像

3.构建该镜像的容器

4.设置密码

5.运行数据库

6.进入SQLPLUS

7.可能出现的错误集合

PART II:客户端配置

PART III:连接Navicat GUI



PART I:安装ORACLE


1.软件安装

  • docker

  • oracle安装介质(https://www.oracle.com/database/technologies/oracle-database-software-downloads.html)

- 我选择的是 Linux x86-64   ZIP文件

  • oracle的docker image

- 打开terminal进入你想下载到的目录

- 依次输入指令

    $ mkdir ~/oracle$ cd ~/oracle$ git clone https://github.com/oracle/docker-images.git

- 将前一步下载的zip文件移动到相同目录下的对应版本文件夹

     $  cp LINUX.X64_193000_db_home.zip ~/oracle/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/

2.构建docker镜像

        $ cd ~/oracle/docker-images/OracleDatabase/SingleInstance/dockerfiles$ ./buildDockerImage.sh -v 19.3.0 -e

完成上述指令后,可以查看已有镜像(同时还自动构建了Oracle Linux7的镜像)

        $ docker image ls

<附上>docker image的官方完整运行指南

- https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/README.md

- 或访问本地README文件(注意指令执行的位置)

           $ vi docker-images/OracleDatabase/SingleInstance/README.md

3.构建该镜像的容器

1)首先创建一个本地文件夹存储oracle的数据文件

       $ mkdir -p ~/oracle/oradata/oracle19c

2)在构建容器的时候,系统会自动创建新的数据库,我们使用-v参数来将刚刚创建的目录映射到容器内的数据文件目录中,使这些数据文件存储在本地

- 官方给的运行格式

       docker run --name oracle19c \     //oracle19c是你要给你数据库取的名字,之后可以直接用这个启动,而不用每次查id-p 1521:1521 \                    //端口-p 5500:5500 \-v /Users/Kamus/oracle/oradata/oracle19c:/opt/oracle/oradata \    //映射数据文件到本地oracle/database:19.3.0-ee         //image名称,用image ID也可以(我这里是上图中的c7a5abc178af)

- 举例

       $ docker run --name oracle19c -p 1521:1521 -p 5500:5500 -v /Users/wyn/oracle/oradata/oracle19c:/opt/oracle/oradata oracle/database:19.3.0-ee

3)然后会运行很长时间,慢慢等…..30 minutes later…..

4)完成以后,不会跳回命令行输入界面,而是停留在log文件,看到以下内容就说明创建完成了

        ######################### DATABASE IS READY TO USE! #########################

5)可以检查容器已经在正常运行

        $ docker ps | grep oracle

4.设置密码

在界面上出现的log内容里,第一行可以看到随机分配的账号初始密码

    ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: sSNc5GFeSAg=1

我们也可以直接运行.setPassword.sh修改密码

    $ docker exec oracle19c ./setPassword.sh oracle

5.运行数据库

然后就可以开始运行我们的数据库了!!!

- 进入root用户模式(部分操作只能在root用户下进行)

        $ docker exec -it --user root oracle19c /bin/bash

—————— 这里附上linux 命令终端提示符显示-bash-4.2#而不是root@主机名 + 路径的解决方法 ————————

问题出现的原因是root在/root下面的几个配置文件丢失,丢失文件如下:

1、.bash_profile

2、.bashrc

以上这些文件是每个用户都必备的文件。

使用以下命令从主默认文件重新拷贝一份配置信息到/root目录下

            $ cp /etc/skel/.bash_profile /root/  $ cp /etc/skel/.bashrc /root/

- 进入普通用户模式

      $ docker exec -it oracle19c /bin/bash

6.进入SQLPLUS

接着就可以进入sqplus执行SQL语句啦

    $ sqlplus system/oracle@localhost:1521/ORCLCDB

sqlplus: 执行指令

system: 登录用户名(初始还有SYS, PDBADMIN共三个账号)

oracle: 登录密码(刚第四步中设置的)

localhost: oracle的服务器所在的IP地址

1521: 端口号

ORCLCDB: SID/SNAME

7.可能出现的错误集合

1)不知道是不是我自己安装的问题,刚进来跑sqlplus会报错

    ERROR:ORA-12162: TNS:net service name is incorrectly specified

这个错误出现的原因是部分变量没有指定值,可以有两种方式解决

⚠️  注意:首先要查清楚自己系统的对应值是什么,不能乱改

在第一次运行容器的时候,出现初始密码那里,后面接着就会显示你的GLOBAL_DBNAME和ORACLE_HOME,SID等

把当时的值复制过来就可以,我这里只缺了SID,所以我补上了SID

- 直接export赋值,这个操作只改变当前session的值,下次进入又会复原

    ERROR:ORA-12162: TNS:net service name is incorrectly specified[oracle@oraclehost ~]$ echo $ORACLE_HOME/opt/oracle/product/19c/dbhome_1[oracle@oraclehost ~]$ echo $ORACLE_SID[oracle@oraclehost ~]$ export ORACLE_SID=ORCLCDB [oracle@oraclehost ~]$ echo $ORACLE_SIDORCLCDB    

- 修改配置文件~/.bash_profile

    ERROR:ORA-12162: TNS:net service name is incorrectly specified[oracle@d90999e88f74 ~]$ vi ~/.bash_profile

初始安装时,VM内没有vi指令,此处安装的胃centOS下的Oracle,需要使用yum指令安装

    $ yum install vi

—————————以下为.bash_profile内容—————————————

———————————————————————————————————————————

    [oracle@d90999e88f74 ~]$ source ~/.bash_profile

(但是不知道为什么,我的电脑这样跑了下次再进来还是会被复原。。。TAT)

UPDATE:写到~/.bashrc文件中再source一下就可以了,之后也不会再复原

2)

    ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/opt/oracle/product/19c/dbhome_1/dbs/initorcl.ora'$ cp /opt/oracle/admin/ORCLCDB/pfile/init.ora /opt/oracle/product/19c/dbhome_1/dbs/initorcl.ora

3)

    ORA-01034: ORACLE not availableORA-27101: shared memory realm does not exist$ sqlplus /nologSQL> connect / as sysdbaSQL> startup

4)另外遇到有报错需要修改listener.ora等配置文件的话,配置完成后需要重启服务

    $ lsnrctl stop          //停止服务    $ lsnrctl start         //开启服务$ lsnrctl status        //查询服务状态

PART II:客户端配置


1.刚刚docker上安装的是oracle的服务器端,现在来在本机上配置客户端

2.首先下载oracle的instant client基础包和sqlplus拓展包(这里需要登录oracle账号才能下载哟~)

https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html

- 基础包: 

- sqlplus: 

———————  前面的下载链接最下方也有官方的下述配置教程———————

3.下载完成后把这两个压缩包都移动到你要放置的路径(先不用解压)

4.打开Terminal进入到该路径下

  $ sudo cd /opt/oracle$ unzip instantclient-basic-macos.x64-19.3.0.0.0dbru.zip$ unzip instantclient-sqlplus-macos.x64-19.3.0.0.0dbru.zip

(或者直接$ sudo unzip instantclient-\*.zip 同时解压两个压缩包)

5.给这些文件创建引用路径,不然使用的时候软件会找不到

  $ mkdir ~/lib$ ln -s ~/opt/oracle/instantclient_19_3/libclntsh.dylib ~/lib/  

6.配置环境变量

  $ vi ~/.bash_profile

//在.bash_profile文件内加上以下内容(⚠️  注意根据自己的服务器设置各变量值)

  export ORACLE_HOME=/opt/oracle/instantclient_19_3export ORACLE_SID=ORCLCDBexport DYLD_LIBRARY_PATH=$ORACLE_HOMEexport LD_LIBRARY_PATH=$ORACLE_HOMEexport NLS_LANG=AMERICAN_AMERICA.UTF8export TNS_ADMIN=$ORACLE_HOME/network/adminexport PATH=$PATH:$ORACLE_HOME 

7.生成环境变量

 $ source ~/.bash_profile

8.现在就可以从本地终端执行sqlplus了


PART III:连接Navicat GUI


1.安装Navicat : http://www.navicat.com.cn/products#navicat

2.打开Navicat新建一个Oracle的数据库连接

2.根据之前的服务器配置修改客户端连接配置

3.测试连接

4.然后oracle就出现在你的连接列表里啦

5.双击一下建立连接

6.ALL SET!✅

【参考】

  • https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html
  • https://www.jianshu.com/p/527a14f29967
  • https://www.dbform.com/2019/05/06/how-to-build-and-run-oracle-database-19c-on-docker/
  • https://juejin.im/entry/58fb250044d9040069dcecad

ORACLE 19c via Docker on Mac安装教程客户端配置连接Navicat GUI相关推荐

  1. photoshop 2021 for mac安装教程,亲测可用!!!

    小编分享下photoshop cc 2021 for mac 安装教程,让大家完美使用ps2021,畅享所有新功能Adobe Photoshop2021(简称PS) 新版本主要增加了Neural Fi ...

  2. Masm for MAC安装教程+实例分析

    Masm for MAC安装教程+实例分析 Masm for MAC安装教程+实例分析 起因 安装教程 环境下载 安装和配置 操作以及使用 每次打开DOSBox需要挂载Masm 挂载完毕之后,可以写你 ...

  3. nuke12安装不了?nuke12 mac 安装教程 nuke12安装步骤教程分享

    NUKE 12 for Mac是一款运行在Mac平台上的影视后期特效合成软件,nuke 12 for Mac版拥有节点工具.深层图像合成工具.3D相机跟踪器.多轨编辑时间表等强大的功能,另外还支持回放 ...

  4. Axure for mac安装教程(版本8.1.0.3382)

    Axure for mac安装教程(版本8.1.0.3382) 第一步--下载安装包 官网下载安装包:https://www.axure.com/download 第二步--安装 如图双击刚下下来的A ...

  5. Mac安装NUKE 12 for Mac安装教程(支持big sur)

    NUKE 12 for Mac是一款运行在Mac平台上的影视后期特效合成软件,nuke 12 for Mac 破解版拥有节点工具.深层图像合成工具.3D相机跟踪器.多轨编辑时间表等强大的功能,另外还支 ...

  6. 【Mac】mac安装redis客户端 Error: Cask ‘rdm‘ is unavailable: No Cask with this name exist

    1.概述 mac安装redis客户端 rdm,报错如下 [lcc@lcc ~]$ brew cask install rdm Updating Homebrew... Error: Cask 'rdm ...

  7. redis和zookeeper安装教程并配置开机自启

    redis和zookeeper安装教程并配置开机自启 redis安装并且配置开机自启 1.windows环境下的redis需要去github上获取: https://github.com/Micros ...

  8. Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

    Oracle11g安装教程.配置实例.监听.客户端程序详解_Windows篇 文章目录 Oracle11g安装教程.配置实例.监听.客户端程序详解_Windows篇 前言 一.数据库的安装前准备,前提 ...

  9. QT5安装教程+VS2019配置

    QT安装教程+VS配置 最近参加了学校联合校外公司一起搞的一个项目,使用到了QT 这里分享一下自己踩过的一些坑和QT的基本安装教程 前言 其实总的来说使用QT来做界面开发还是很不错的 ui界面很友好, ...

最新文章

  1. Python搭建Keras CNN模型破解网站验证码
  2. Servlet-forward转发
  3. mysql中的表连接知识点_Mysql知识点总结
  4. SQL优化万能公式:5 大步骤 + 10 个案例
  5. jQuery幻灯片skitter-slider插件学习总结
  6. 成功解决 This graphics driver could not find compatible graphics hardware. You maycontinue installation,
  7. 【python数据挖掘课程】十八.线性回归及多项式回归分析四个案例分享
  8. lucene 索引中文档的属性建立与不建立带来的影响总结
  9. 速达软件开发版使用技巧-每页固定行样式报表设计
  10. 内存泄露检测之ccmalloc
  11. 每天一个linux命令cd,Linux指令每日背诵(第一天)
  12. android 扫描照片功能,巧把安卓手机打造成扫描仪:拍照识别文档、手写笔记转PDF(图)...
  13. 华为手机碎屏后如何导出数据_手机屏幕坏了怎么把数据导出来
  14. 【菜鸟练习】软件测试等价类划分方法测试用例的编写。
  15. 人脸对齐:Procrustes analysis 普氏分析
  16. arcgis api 4.X 比例尺的添加
  17. 废旧闲置的笔记本除了电脑回收,这两招也很实用!
  18. 蓝牙软件测试指标,蓝牙测试简介
  19. 计算机桌面图标不见了6,桌面图标不见了怎么办 如何找回桌面图标【解决方法】...
  20. python解压缩-[rar]、[zip]

热门文章

  1. 尚硅谷nginx学习
  2. 计算机在当今社会的重要性
  3. xshell (sed 命令)
  4. 爪哇国新游记之八----读写文件及数组排序
  5. PTA基础编程题目集1-6题答案
  6. GB、Gb、MB、Mb知识扫盲
  7. Word中如何快速删除页眉下的横线?教你一招,轻松解决!
  8. 简单证明圆锥体积为三分之一圆柱
  9. 关于uni-app中uni-forms表单验证时“多级结构对象数据”如何做数据校验的解决方案
  10. flowable 排他网关