docker search oraclesql
docker pull sath89/oracle-12cdocker
docker images bash
(-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 ps rest
docker exec -it [容器名/容器id(docker ps 可查看)] /bin/bash日誌
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;
(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;
本人辛苦概括總結成果,若對你有幫助請不吝點個推薦,謝謝喔 ~ ~!!