Oracle Enterprise 11g Docker Image
這個紀錄主要是協助團隊, 於本地 Local 運行 Oracle Database, 方便大家開發, 避免開發上的資料衝突,
我採用的這個 image 非官方 Oracle 的映像, 但幫我省去了許多 oracle licence 同意處理的問題…
| https://hub.docker.com/r/loliconneko/oracle-ee-11g | 
Docker
如果是習慣使用 docker 的人, 可以參照文件
| # docker pull | 
運行後, 基本的 connection 資訊
| hostname: localhost | 
Docker Compose
我自己平常的開發習慣是用 docker-compose(3.7);
| version: '3.7' | 
Import data to Oracle
在 Docker volumn 的部分, 我在 local 規劃了 oradata 與 import_oracle 兩個資料夾,
- ordata 用來放 Oracle 本體, 避免 docker compose down 後, 資料遺失
- import_oracle 用來方便資料庫匯入
- 資料匯入匯出的操作, 盡量用 sysdba 的 role 操作
Export dev Oracle
DEV 的 Oracle 是 Oracle Server, 簡單的 SSH 登入後, 把資料匯出後下載
| # expdp explain | 
Import expdat.dmp to Oracle
因為用 expdp 操作資料匯出, 所以需要用 impdp 才能對應匯入操作, loliconneko/oracle-ee-11g 預設的帳號密碼
- user: sys / system
- password: oracle
| # execute oracle bash, this instruction will run oracle container bash | 
Memo
在整個轉移過程中其實 trouble shooting 非常多, 但大多皆可於 google 搜尋到對應的解決方式, 但細部的原因我也沒有很理解, Oracle 是個複雜龐大的系統, 我這邊整理一些我遇到的問題, 希望有幫到大家 XD
1. failed: ORA-28000: the account is locked
| ALTER USER your-account ACCOUNT UNLOCK; | 
2. failed: ORA-01000:maximum open cursors exceeded.
| ALTER SYSTEM SET open_cursors=1000; |