扩大
缩小

Docker 安装Oracle

 1、使用docker 命令搜索oracle 镜像,前提是已安装了Docker

docker  search oracle

2、下载相应版本的oracle 镜像

docker pull sath89/oracle-12c

3、查看docker 安装下的oracle 镜像

docker images 

4、根据下载的oracle 镜像创建oracle容器

(-v  /var/lib/oracle/oradata:/u01/app/oracle/oradata) 这个oracle数据绑定到宿主映射文件夹好像有问题,发现有部分文件未同步,导致启动oracle失败,不明原因,还望大神解答,故保持数据存储在容器中(这种方式会随着容器的删除导致数据丢失,还望勿用于生产环境)。

docker run --restart=always -d --name docker-oracle -p 1521:1521 -p  8080:8080   sath89/oracle-12c:latest

命令详解:

--restart always 假如docker进程挂掉了,重启时把这个容器也启动起来;
-d 在后台运行
--name 这个容器的名称
-p 映射服务端口到虚拟机
-v 挂载的目录,把数据卷挂到本地,防止数据丢失
sath89/oracle-12c 镜像名称
latest 镜像的版本号

5、查看运行的docker 容器

docker ps 

6、配置oracle默认字符类型为utf8, 进入容器

 docker exec -it [容器名/容器id(docker ps 可查看)]  /bin/bash

7、修改Oracle 为UTF8字符集

su oracle

cd $ORACLE_HOME/bin

sqlplus "/as sysdba"

shutdown immediate;

startup mount; 

alter system enable restricted session;

alter system set job_queue_processes=0;

alter system set aq_tm_processes=0;

alter database open;

alter database character set internal_use utf8;    (/alter database character set internal_use utf8;  两命令任选一)

shutdown immediate;

startup;

8、注:pl/sql客户端环境也需要安装相同字符集,否则客户端插入中文会有乱码

(1) 注册表

regedit->HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->ORACLE\KEY_OraClient12Home1->NLS_LANG

(2)环境变量

 (3)重启PL/SQL客户端,查看Help 的SupportInfo 里的NLS_LANG是否有更新为AMERICAN_AMERICA.UTF8

(4)进入pl/sql 客户端,执行 

select userenv('language') from dual; 

出现如下结果。3者一致即大功告成

 (5)执行以下SQL可查看相关数据文件,控制文件以及日志文件路径

 

//数据文件

select name from v$datafile;

//控制文件

select name from v$controlfile;

//日志文件

select member from v$logfile;

 

 

本人辛苦归纳总结成果,若对你有帮助请不吝点个推荐,谢谢喔 ~ ~!!

 

posted @ 2018-08-26 20:41  戈多编程  阅读(495)  评论(0编辑  收藏  举报