Docker 安裝 Oracle 12C

鏡像

https://docker.aityp.com/image/docker.io/truevoly/oracle-12c:latest
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/truevoly/oracle-12c:latest
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/truevoly/oracle-12c:latest  docker.io/truevoly/oracle-12c:latest
docker images

創建并啟動容器

# 容器內端口默認1521,且通過 -p 參數修改不成功,所以只能修改外部的端口
docker run -itd --name oracle12c --restart=always -p 1522:1521 -e ORACLE_PWD=oracle -v /home/oracle/app/oracle12c/oradata:/home/oracle/app/oracle12c/oradata docker.io/truevoly/oracle-12c:latest

查看日志

docker logs -f --tail 100 oracle12c
Database not initialized. Initializing database.
Starting tnslsnr
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xe/xe.log" for further details.
Configuring Apex console
Database initialized. Please visit http://#containeer:8080/em http://#containeer:8080/apex for extra configuration if needed
Starting web management consolePL/SQL procedure successfully completed.Starting import from '/docker-entrypoint-initdb.d':
ls: cannot access /docker-entrypoint-initdb.d/*: No such file or directory
Import finishedDatabase ready to use. Enjoy! ;)

登錄到容器內

docker exec -it oracle12c bash

配置環境變量

vi /etc/profile
export ORACLE_HOME=/u01/app/oracle-product/12.1.0/xe
export PATH=$ORACLE_HOME/bin:$PATH
source /etc/profilevi /home/oracle/.bashrc
export ORACLE_HOME=/u01/app/oracle-product/12.1.0/xe
export PATH=$ORACLE_HOME/bin:$PATH
source /home/oracle/.bashrc

登錄

# 必須要切到 oracle 用戶
su oracle
sqlplus / as sysdba

命令解釋:

  • sqlplus / as sysdba : 使用操作系統認證以 SYSDBA 特權用戶身份連接到 Oracle 數據庫的命令
    • sqlplus:Oracle 提供的命令行工具,用于與數據庫交互(SQL*Plus 的縮寫)。
    • /:表示使用操作系統認證(OS Authentication),無需顯式輸入用戶名和密碼。
    • as sysdba:以 SYSDBA 特權角色連接,擁有最高權限(如啟動 / 關閉數據庫、創建用戶等)。
  • sqlplus sys/oracle as sysdba : 使用用戶名密碼以 SYSDBA 特權身份連接到 Oracle 數據庫 (不過這里用戶名密碼不管寫什么都能連接)
    • sys/oracle:用戶名和密碼
    • sys:Oracle 數據庫的超級管理員用戶(擁有最高權限)
    • oracle:默認密碼
  • sqlplus /nolog : 啟動 SQL*Plus 工具但不立即連接到數據庫的命令
  • CONNECT sys/oracle AS SYSDBA :SQL*Plus 中使用用戶名密碼以 SYSDBA 特權身份連接到 Oracle 數據庫的命令。(同樣的這里用戶名密碼不管寫什么都能連接)
    • CONNECT:SQL*Plus 內置命令,用于建立或切換數據庫連接(可簡寫為 CONN 或 LOGON)。
  • conn / as sysdba 是 Oracle SQL*Plus 中使用操作系統認證以 SYSDBA 特權身份連接數據庫的命令

登錄異常

sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Tue Jun 10 11:32:04 2025Copyright (c) 1982, 2014, Oracle.  All rights reserved.ERROR:
ORA-01017: invalid username/password; logon denied

解決:以oracle用戶登錄。

啟動數據庫

SQL> startup
ORACLE instance started.Total System Global Area 1610612736 bytes
Fixed Size                  2924928 bytes
Variable Size            1006636672 bytes
Database Buffers          587202560 bytes
Redo Buffers               13848576 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

解決 cannot mount database in EXCLUSIVE mode

首先關閉數據庫

SHUTDOWN IMMEDIATE;
方法1
su oracle
# 查找共享內存和信號量:
ipcs -m
ipcs -s
# 清理共享內存和信號量:
ipcrm -m <shmid>
ipcrm -s <semid>

參考:https://blog.csdn.net/qq_47502724/article/details/144828940

方法2

和我在之前寫的Centos7 安裝oracle11 中用的方法一樣: 通過 fuser -k 釋放占用 lk<SID> 的進程。一般系統自帶 fuser 命令,但是我們裝的oracle 容器內沒有自帶,所以需要先安裝對應的命令。

sudo apt update
sudo apt install psmisc

需要先聯網 update ,再安裝 psmisc,聯網需要修改 /etc/resolv.conf ,添加 DNS(前提是宿主機也能聯網):

nameserver 223.5.5.5
nameserver 10.100.1.12
nameserver 114.114.114.114

在 Docker 容器中使用 vi 編輯文件時, 可能遇到一些體驗問題(如方向鍵亂碼、退格鍵失效等),可通過安裝最小化的 vim-tiny

apt-get install -y vim-tiny
ln -s /usr/bin/vim.tiny /usr/bin/vim  # 替換vim為vim-tiny

lk<SID> 在 $ORACLE_HOME/dbs

su oracle
cd $ORACLE_HOME/dbs
fuser -u lkXE
fuser -k lkXE
fuser -u lkXE

查詢數據庫狀態

SELECT status FROM v$instance;STATUS
------------
OPEN

返回值說明:

  • STARTED:實例已啟動,但未裝載數據庫。
  • MOUNTED:實例已裝載數據庫(ALTER DATABASE MOUNT)。
  • OPEN:數據庫正常打開,可讀寫。
  • OPEN READ ONLY:數據庫只讀模式。

連接驗證

  • SID 和 Service Name 均為 XE
  • 用密碼密碼: sys/oracle 和 system/oracle
    • sys 用戶:具有 “SYSDBA” 或者 “SYSOPER” 系統權限,登錄EM(企業管理器)也只能用這兩個身份,不能用normal(普通用戶)身份。SYSDBA是管理 Oracle 實例的,擁有最高的系統權限,可完成數據庫的所有管理任務,如創建數據庫、刪除數據庫、數據庫日志歸檔、執行不完全恢復,以及創建其它的SYSOPER和SYSDBA用戶等
    • system 用戶:SYSTEM用戶:默認擁有普通DBA角色權限,能完成除備份恢復、升級之外的大部分數據庫管理任務。但只能用normal身份登錄EM,除非對它授予了SYSDBA或SYSOPER系統權限。如果SYSTEM用戶以AS SYSDBA登錄,其結果實際上是作為SYS用戶登錄的。

修改密碼

alter user system identified by test123;
alter user sys identified by test123;

刪除 Docker 容器

docker stop oracle12c
docker rm oracle12c

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83634.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83634.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83634.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux內核網絡協議注冊與初始化:從proto_register到tcp_v4_init_sock的深度解析

一、協議注冊:proto_register的核心使命 在Linux網絡協議棧中,proto_register是協議初始化的基石,主要完成三項關鍵任務: Slab緩存創建(內存管理核心) prot->slab = kmem_cache_create_usercopy(prot->name, prot->obj_size, ...); if (prot->twsk_prot) pr…

GD32 MCU的真隨機數發生器(TRNG)

GD32 MCU的真隨機數發生器(TRNG) 文章目錄 GD32 MCU的真隨機數發生器(TRNG)一、定義與核心特征二、物理機制:量子與經典隨機性三、生成方法四、應用場景五、與偽隨機數的對比六、局限性?? 七、物理熵源原理?? 八、硬件實現流程(以GD32F450 GD32L233為例)8.1. **初始…

Vulkan學習筆記6—渲染呈現

一、渲染循環核心 while (!glfwWindowShouldClose(window)) {glfwPollEvents();helloTriangleApp.drawFrame(); // 繪制幀} 在 Vulkan 中渲染幀包含一組常見的步驟 等待前一幀完成&#xff08;vkWaitForFences&#xff09; 從交換鏈獲取圖像&#xff08;vkAcquireNextImageKH…

React第六十二節 Router中 createStaticRouter 的使用詳解

前言 createStaticRouter 是 React Router 專為 服務端渲染&#xff08;SSR&#xff09; 設計的 API&#xff0c;用于在服務器端處理路由匹配和數據加載。它在構建靜態 HTML 響應時替代了客戶端的 BrowserRouter&#xff0c;確保 SSR 和客戶端 Hydration 的路由狀態一致。 一…

qt 雙緩沖案例對比

雙緩沖 1.雙緩沖原理 單緩沖&#xff1a;在paintEvent中直接繪制到屏幕&#xff0c;繪制過程被用戶看到 雙緩沖&#xff1a;先在redrawBuffer繪制到緩沖區&#xff0c;然后一次性顯示完整結果 代碼結構 單緩沖&#xff1a;所有繪制邏輯在paintEvent中 雙緩沖&#xff1a;繪制…

華為云AI開發平臺ModelArts

華為云ModelArts&#xff1a;重塑AI開發流程的“智能引擎”與“創新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企業擁抱AI的意愿空前高漲&#xff0c;但技術門檻高、流程復雜、資源投入巨大的現實&#xff0c;卻讓許多創新構想止步于實驗室。數據科學家…

ParaGraphX [特殊字符]

https://github.com/stevechampion1/paragraphx 一個基于 JAX 的、為 CPU/GPU 加速而生的超高性能圖算法庫。 ParaGraphX 是一個實驗性的 Python 庫&#xff0c;旨在利用 JAX 的即時編譯 (JIT) 和大規模并行計算能力&#xff0c;為經典的圖算法提供驚人的性能提升。我們的目標…

如何用4 種可靠的方法更換 iPhone(2025 年指南)

Apple 每年都會發布新版本的 iPhone。升級到新 iPhone 是一種令人興奮的體驗&#xff0c;但轉移所有寶貴數據的想法有時會讓人感到畏懼。幸運的是&#xff0c;我們準備了 4 種有效的更換 iPhone 的方法&#xff0c;讓你可以毫不費力地更換到你的新 iPhone。 此外&#xff0c;您…

GitLab 拉取變慢的原因及排查方法

前言&#xff1a;在軟件開發的快節奏世界里&#xff0c;高效協作與快速交付是制勝關鍵。然而&#xff0c;當開發團隊興高采烈地投入工作&#xff0c;卻發現從GitLab拉取代碼的速度慢如蝸牛&#xff0c;那種沮喪感簡直能瞬間澆滅熱情。在分布式開發環境中&#xff0c;這種情況時…

落水人員目標檢測數據集(貓臉碼客第253期)

落水人員目標檢測&#xff1a;科技守護生命之舟 一、背景與意義 隨著人類海洋活動和水上活動的日益頻繁&#xff0c;海上與水域安全事故頻發。每年都會開展大量的海上救援行動&#xff0c;以搜救數以萬計的落難人員。在水上活動區域&#xff0c;如水庫、河道等&#xff0c;溺…

JAVA_強制類型轉換:

類型范圍大的變量&#xff0c;不可以直接賦值給類型變量小的變量 需要進行強制類型轉換&#xff1a; 想要完成類型范圍大的變量傳給類型范圍小的變量需要先創建一個新的變量&#xff08;類型與方法的形參類型要相同&#xff09;。將類型范圍大的變量前面加上&#xff08;轉換類…

打卡第44天:無人機數據集分類

重復以下內容 作業&#xff1a; kaggle找到一個圖像數據集&#xff0c;用cnn網絡進行訓練并且用grad-cam做可視化 進階&#xff1a; 并拆分成多個文件 import os import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader,…

個人網站大更新,還是有個總站比較好

個人網站大更新&#xff0c;還是有個總站比較好 放棄了所有框架&#xff0c;用純htmlcssjs擼了個網站&#xff0c;這回可以想改啥改啥了。 選擇了黑紫作為主色調&#xff0c;暫時看著還算可以。 為什么不用那些框架了 幾個原因&#xff1a; 嘗試用vuepress、vitepress、not…

高精度算法詳解:從原理到加減乘除的完整實現

文章目錄 一、為什么需要高精度算法二、高精度算法的數據結構設計2.1 基礎工具函數2.2 高精度加法實現2.3 高精度減法實現2.4 高精度乘法實現2.5 高精度除法實現 三、完整測試程序四、總結 一、為什么需要高精度算法 在編程中&#xff0c;處理極大數值是常見需求&#xff0c;例…

排序--計數排序

一,引言 計數排序是一種針對整數數據的高效排序算法。其主要流程可分為三個步驟&#xff1a;首先計算整數數據的數值范圍&#xff1b;接著按大小順序統計各數值的出現次數&#xff1b;最后根據統計結果輸出排序后的數據序列。 二,求最值 遍歷現有數據&#xff0c;獲取最大值…

Kubernetes安全機制深度解析(四):動態準入控制和Webhook

#作者&#xff1a;程宏斌 文章目錄 動態準入控制什么是準入 Webhook&#xff1f; 嘗試準入Webhook先決條件編寫一個準入 Webhook 服務器部署準入 Webhook 服務即時配置準入 Webhook對 API 服務器進行身份認證 Webhook 請求與響應Webhook 配置匹配請求-規則匹配請求&#xff1a…

WDK 10.0.19041.685,可在32位win7 sp1系統下搭配vs2019使用,可以編譯出xp驅動。

(14)[驅動開發]配置環境 VS2019 WDK10 寫 xp驅動 (14)[驅動開發]配置環境 VS2019 WDK10 寫 xp驅動_microsoft visual 2019 wdk-CSDN博客文章瀏覽閱讀3k次&#xff0c;點贊8次&#xff0c;收藏17次。本文介紹了如何在VS2019環境下安裝和配置Windows Driver Kit(WDK)&#xff0…

論壇系統自動化測試

1、項目背景與測試目標 系統定位 論壇系統作為典型的高并發Web應用&#xff0c;需支持用戶注冊、登錄、發帖、評論、私信及個人中心管理等核心功能&#xff0c;是用戶公開交流與信息共享的核心平臺。其穩定性與響應效率直接影響用戶體驗及平臺活躍度。 測試必要性 功能可靠性&…

ChipWhisperer教程(一)

一、ChipWhisperer介紹 ChipWhisperer 是一個完整的開源工具鏈&#xff0c;用于學習嵌入式設備上的側信道攻擊并驗證這些設備的側信道抗性。ChipWhisperer主要用于功耗分析&#xff0c;利用設備功耗泄露的信息進行攻擊&#xff0c;也可用于故障攻擊&#xff08;電壓和時鐘毛刺…

【持續更新】計算機網絡試題

問題1 請簡要說明TCP/IP協議棧的四層結構&#xff0c;并分別舉出每一層出現的典型協議或應用。 答案 應用層&#xff1a;ping,telnet,dns 傳輸層&#xff1a;tcp,udp 網絡層&#xff1a;ip,icmp 數據鏈路層&#xff1a;arp,rarp 問題2 下列協議或應用分別屬于TCP/IP協議…