Docker 安裝Oracle

 一、使用docker 命令搜索oracle 鏡像,前提是已安裝了Docker

docker  search oraclesql

二、下載相應版本的oracle 鏡像

docker pull sath89/oracle-12cdocker

三、查看docker 安裝下的oracle 鏡像

docker images bash

四、根據下載的oracle 鏡像建立oracle容器

(-v  /var/lib/oracle/oradata:/u01/app/oracle/oradata) 這個oracle數據綁定到宿主映射文件夾好像有問題,發現有部分文件未同步,致使啓動oracle失敗,不明緣由,還望大神解答,故保持數據存儲在容器中(這種方式會隨着容器的刪除致使數據丟失,還望勿用於生產環境)。session

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

命令詳解:app

--restart always 假如docker進程掛掉了,重啓時把這個容器也啓動起來;
-d 在後臺運行
--name 這個容器的名稱
-p 映射服務端口到虛擬機
-v 掛載的目錄,把數據卷掛到本地,防止數據丟失
sath89/oracle-12c 鏡像名稱
latest 鏡像的版本號3d

五、查看運行的docker 容器

docker ps rest

六、配置oracle默認字符類型爲utf8, 進入容器

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

七、修改Oracle 爲UTF8字符集

su oracleblog

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;

八、注: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;

 

 

本人辛苦概括總結成果,若對你有幫助請不吝點個推薦,謝謝喔 ~ ~!!

相關文章
相關標籤/搜索