一、使用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 鏡像的版本號spa
五、查看運行的docker 容器
docker ps 3d
六、配置oracle默認字符類型爲utf8, 進入容器
docker exec -it [容器名/容器id(docker ps 可查看)] /bin/bashrest
七、修改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;
八、注: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;
本人辛苦概括總結成果,若對你有幫助請不吝點個推薦,謝謝喔 ~ ~!!