最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker實戰(zhàn)部署并配置oracle21方式(官方鏡像)

 更新時間:2025年05月30日 10:22:57   作者:zlk_xiaofan  
這篇文章主要介紹了docker實戰(zhàn)部署并配置oracle21方式(官方鏡像),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

基礎(chǔ)環(huán)境信息

名稱詳細(xì)信息
linux環(huán)境CentOS Linux release 7.9.2009 (Core)
內(nèi)核版本3.10.0-1160.el7.x86_64
docker環(huán)境26.1.4

1.linux

2.docker

一、環(huán)境準(zhǔn)備

1. 安裝 Docker 環(huán)境

首先,確保你的系統(tǒng)已經(jīng)安裝了 Docker 環(huán)境??蓞⒖迹篊entos7實戰(zhàn)docker安裝配置。安裝完成后,確保 Docker 可以正常運(yùn)行。

2.拉取官方鏡像

1.如圖所示為oracle官網(wǎng)的數(shù)據(jù)庫鏡像地址

2.根據(jù)大版本選擇自己所需要的鏡像,如作者選擇的為express版本。進(jìn)入之后頁面拉到底,選擇具體的版本號,作者選擇的為21.3.0.0。此處需要注意,部分鏡像的獲取需要有特定權(quán)限,如企業(yè)版本(enterprise)

其中

docker pull container-registry.oracle.com/database/express:21.3.0-xe

即為在docker中可以拉取鏡像的命令,

3.在docker中執(zhí)行此命令,拉取官方鏡像,等待執(zhí)行完成,完成后會得到一個11.4G大小的鏡像文件

4.對應(yīng)鏡像提供了詳細(xì)的配置參數(shù)以及相關(guān)參數(shù)配置方法,具體可參考官網(wǎng),不同版本可使用的參數(shù)不同,完整的參數(shù)解釋可參考下一章節(jié)中的

參數(shù)解釋

3.查看鏡像

docker images

4.重命名鏡像

docker tag [原鏡像名稱]:[原鏡像標(biāo)簽] [新鏡像名稱]:[新鏡像標(biāo)簽] 

通過重命名鏡像名稱,設(shè)置成自己所需要的鏡像名。

  • container-registry.oracle.com/database/express:為原鏡像名稱。
  • oracle21:為自定義鏡像名稱。
  • 21.3.0-xe:為標(biāo)簽信息。
docker tag container-registry.oracle.com/database/express:21.3.0-xe oracle21:21.3.0-xe

修改完成之后會有2個相同鏡像ID的問題,是因為同一個鏡像有2個不同的名稱,可以通過刪除其他未使用的鏡像名稱,保留自己需要的鏡像。

5.刪除鏡像

docker rmi [鏡像名稱]:[標(biāo)簽]

二、oracle安裝

1.創(chuàng)建數(shù)據(jù)存放文件夾

用于存放oracle數(shù)據(jù)文件

mkdir -p /home/data/oracle/oradata

2.文件授權(quán)

為了確保oracle數(shù)據(jù)有權(quán)限寫入文件,此處需要對文件進(jìn)行授權(quán)

chmod 777 /home/data/oracle/oradata

3.啟動容器

docker run -d \
--name oracle21 \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_PWD=123456 \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-v /home/data/oracle/oradata:/opt/oracle/oradata \
oracle21:21.3.0-xe

容器正常創(chuàng)建后會返回容器ID

4.參數(shù)解釋

  • docker run: 這是 Docker 命令的一部分,用于在容器中運(yùn)行一個鏡像。
  • -d: 這個選項告訴 Docker 在后臺運(yùn)行容器,即“detached”模式。
  • -p 1521:1521 -p 5500:5500: 這兩個選項指定了端口映射。它們將容器內(nèi)部的端口 1521 映射到主機(jī)的端口 1521,以及將容器內(nèi)部的端口 5500 映射到主機(jī)的端口 5500。Oracle 數(shù)據(jù)庫通常使用 1521 端口進(jìn)行連接,而 5500 端口用于 Oracle Enterprise Manager Express。前一個為主機(jī)的端口,后一個為容器內(nèi)部端口。

-e:這些選項用于設(shè)置容器中 Oracle 數(shù)據(jù)庫的一些環(huán)境變量

  • -e ORACLE_SID=ORCLCDB:設(shè)置 Oracle 的系統(tǒng)標(biāo)識符(SID),這里設(shè)置為ORCLCDB。
  • -e ORACLE_PDB=ORCLPDB:設(shè)置 Oracle 的 Pluggable Database 名稱,這里設(shè)置為 ORCLPDB1。
  • -e ORACLE_PWD=123456:設(shè)置 Oracle 的管理員密碼,這里設(shè)置為 123456。此處設(shè)置的密碼為:SYS, SYSTEM and PDBADMIN用戶
  • -e ORACLE_EDITION=standard:設(shè)置 Oracle 的版本/版本類型,這里設(shè)置為標(biāo)準(zhǔn)版,若想使用分表操作則需要設(shè)置為企業(yè)版(enterprise)
  • -e ORACLE_CHARACTERSET=AL32UTF8:設(shè)置 Oracle 數(shù)據(jù)庫的字符集,這里設(shè)置為 AL32UTF8,即 Unicode 字符集。
  • -v /home/data/oracle/oradata:/opt/oracle/oradata: 這個選項用于掛載主機(jī)文件系統(tǒng)的目錄到容器中。在這個例子中,它將主機(jī)上的 /home/data/oracle/oradata 目錄掛載到容器中的 /opt/oracle/oradata 目錄。此處:/opt/oracle/oradata不可更改,這樣做是為了將 Oracle 數(shù)據(jù)庫的數(shù)據(jù)文件存儲到主機(jī)文件系統(tǒng)中,以便數(shù)據(jù)持久化,即使容器被刪除也不會丟失數(shù)據(jù)。如果是window則修改自己的window目錄 C:\docker\volumes\oracle21.3.0.0\oradata:/opt/oracle/oradata
  • --privileged=true:賦予容器全部的特權(quán),通常用于一些需要較高權(quán)限的操作。
  • --name oracle: 這個選項用于為容器指定一個名稱,這里命名為 oracle。
  • oracle21:21.3.0-xe: 這是要運(yùn)行的 Oracle鏡像的名稱及其標(biāo)簽

5.查看容器啟動日志

docker logs -f 容器名稱

此處可以使用一下命令查看日志信息

docker logs -f oracle21

完整的啟動日志如下:

Specify a password to be used for database accounts. Oracle recommendsthat the password entered should be at least 8 characters in length,contain at least 1 uppercase character, 1 lower case character and 1digit [0-9]. Note that the same password will be used for SYS, SYSTEMand PDBADMIN accounts: Confirm the password: Configuring OracleListener. Listener configuration succeeded. Configuring OracleDatabase XE. Enter SYS user password:***** Enter SYSTEM user password:****** Enter PDBADMIN User Password:********** Prepare for db operation 7% complete Copying database files 29% complete Creating and starting Oracle instance 30% complete 33%complete 37% complete 40% complete 43% complete Completing DatabaseCreation 47% complete 50% complete Creating Pluggable Databases 54%complete 71% complete Executing Post Configuration Actions 93%complete Running Custom Scripts 100% complete Database creationcomplete. For details check the logfiles at:/opt/oracle/cfgtoollogs/dbca/XE. Database Information: Global DatabaseName:XE System Identifier(SID):XE Look at the log file“/opt/oracle/cfgtoollogs/dbca/XE/XE.log” for further details.

Connect to Oracle Database using one of the connect strings:Pluggable database: 237e7e26b469/XEPDB1Multitenant container database: 237e7e26b469 Use https://localhost:5500/em to access Oracle Enterprise Manager forOracle Database XE

SQL*Plus: Release 21.0.0.0.0 - Production on Fri Apr 11 14:05:13 2025Version 21.3.0.0.0

Copyright © 1982, 2021, Oracle. All rights reserved.

Connected to: Oracle Database 21c Express Edition Release 21.0.0.0.0 -Production Version 21.3.0.0.0

SQL> System altered.

SQL> System altered.

SQL> Pluggable database altered.

SQL> PL/SQL procedure successfully completed.

SQL> SQL> Session altered.

SQL> User created.

SQL> Grant succeeded.

SQL> Grant succeeded.

SQL> Grant succeeded.

SQL> User altered.

SQL> SQL> Disconnected from Oracle Database 21c Express EditionRelease 21.0.0.0.0 - Production Version 21.3.0.0.0

SQL*Plus: Release 21.0.0.0.0 - Production on Fri Apr 11 14:05:13 2025Version 21.3.0.0.0

Copyright © 1982, 2021, Oracle. All rights reserved.

Connected to: Oracle Database 21c Express Edition Release 21.0.0.0.0 -Production Version 21.3.0.0.0

SQL> PL/SQL procedure successfully completed.

SQL> Disconnected from Oracle Database 21c Express Edition Release21.0.0.0.0 - Production Version 21.3.0.0.0 The Oracle base remains unchanged with value /opt/oracle The Oracle base remains unchangedwith value /opt/oracle######################### DATABASE IS READY TO USE!######################### The following output is now a tail of the alert.log: XEPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE“USERS” 2025-04-11T14:05:12.033406+00:00 ALTER PLUGGABLE DATABASEXEPDB1 SAVE STATE Completed: ALTER PLUGGABLE DATABASE XEPDB1 SAVESTATE 2025-04-11T14:05:13.180049+00:00 ALTER SYSTEM SETcontrol_files=‘/opt/oracle/oradata/XE/control01.ctl’ SCOPE=SPFILE;2025-04-11T14:05:13.294964+00:00 ALTER SYSTEM SET local_listener=‘’SCOPE=BOTH; ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE Completed:ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE

如果輸出:DATABASE IS READY TO USE!,則表示oracle啟動成功。可以通過客戶端登錄。

注意本地機(jī)器的防火墻對端口的開放

6.查看的容器

查看運(yùn)行中的容器

docker ps

查看所有的容器

docker ps -a

三、配置 Oracle 環(huán)境變量

1.進(jìn)入容器內(nèi)部

創(chuàng)建并啟動容器后,你可以進(jìn)入容器內(nèi)部進(jìn)行配置

docker exec -it 容器名稱 /bin/bash

此命令會讓你進(jìn)入 Oracle 容器的 Bash 環(huán)境。

docker exec -it oracle21 /bin/bash

后續(xù)所有的配置均在容器內(nèi)部,請勿退出容器,否則配置無法生效

2.配置SID

1.查看現(xiàn)有SID的開啟狀態(tài)

cat /etc/oratab

此處表示,現(xiàn)有的SID名稱為XE,開啟狀態(tài)為Y(已啟用),若此處為N,則需要先修改為Y,以下為修改SID的過程

2.登錄oracle

sqlplus / as sysdba

3.關(guān)閉數(shù)據(jù)庫

修改前需要先關(guān)閉數(shù)據(jù)庫

#關(guān)閉數(shù)據(jù)庫
shutdown immediate;
exit;

4.修改SID開啟狀態(tài)

vim /etc/oratab

將XE:/opt/oracle/product/21c/dbhomeXE:N 修改為XE:/opt/oracle/product/21c/dbhomeXE:Y

此處可能會提示vim不是有效的命令,需要先裝vim,參考centos安裝vim命令即可

5.重新登錄數(shù)據(jù)庫并開啟數(shù)據(jù)庫

#登錄數(shù)據(jù)庫
sqlplus / as sysdba

#開啟數(shù)據(jù)庫
startup

6.安裝vim

yum install vim

若提示無權(quán)限,則需要先切換root賬戶

3.修改賬號密碼

1.登錄數(shù)據(jù)庫

sqlplus / as sysdba

2.修改指定賬號密碼

#將system賬號的密碼修改為itcast
alter user system identified by itcast;

#刷新
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
#退出
exit

3.登錄數(shù)據(jù)庫

通過數(shù)據(jù)庫工具,配置鏈接參數(shù)進(jìn)行登錄

4.時區(qū)配置

默認(rèn)時區(qū)非東8時區(qū),會導(dǎo)致數(shù)據(jù)庫時間異常

  • 這是一個定時任務(wù),每天定時凌晨2點(diǎn)執(zhí)行。但是日志記錄的時間與真實時間不一致,相差8個小時。
  • 這就會導(dǎo)致定時任務(wù)中如果涉及到系統(tǒng)時間的情況,那么其生成、處理的數(shù)據(jù)時間都將是錯誤的系統(tǒng)時間

1.檢查容器系統(tǒng)時間

在容器的Bash 環(huán)境下檢查容器系統(tǒng)時間是否異常

date -R

進(jìn)入容器后,采用替換時區(qū)文件的方法。進(jìn)入/usr/share/zoneinfo/Asia目錄下,查看是否有需要的時區(qū)文件。

如果有,可以直接執(zhí)行cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime命令,替換系統(tǒng)時區(qū)文件,再執(zhí)行date -R查看時間是否正常。

如果沒有,而且對應(yīng)的文件夾也沒有的話,需要先創(chuàng)建對應(yīng)的文件夾,mkdir -p/usr/share/zoneinfo/Asia。創(chuàng)建好后,使用exit命令先退出回到宿主機(jī),從宿主機(jī)中進(jìn)入/usr/share/zoneinfo/Asia目錄下找到對應(yīng)的時區(qū)文件。

執(zhí)行docker cp/usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia 命令,將宿主機(jī)中的時區(qū)文件拷貝得到docker容器中。再以root權(quán)限進(jìn)入容器替換系統(tǒng)時區(qū)文件

bash-4.2# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  #修改容器的系統(tǒng)時區(qū)文件
bash-4.2# date -R   #檢查時間是否正常
Sat, 12 Apr 2025 15:57:57 +0800

bash-4.2# mkdir -p/usr/share/zoneinfo/Asia  #如果沒有對應(yīng)的時區(qū)文件夾,就創(chuàng)建
bash-4.2# exit
exit
[root@localhost ~]# docker cp/usr/share/zoneinfo/Asia/Shanghai oracle21:/usr/share/zoneinfo/Asia  #將宿主機(jī)的時區(qū)文件copy到容器對應(yīng)的時區(qū)文件夾中
[root@localhost ~]# docker exec -it -u root test /bin/bash  #再次進(jìn)入容器
bash-4.2# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime   #修改容器的系統(tǒng)時區(qū)文件
bash-4.2# date -R   #檢查時間是否正常
Sat, 12 Apr 2025 15:57:57 +0800

若提示無權(quán)限,則通過su root先切換到root用戶

2.檢查時區(qū)

-- 查詢數(shù)據(jù)庫時區(qū)
select dbtimezone from dual;

-- 查詢數(shù)據(jù)庫時間
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;

第一句是檢查數(shù)據(jù)庫的時區(qū)。如果是+08:00一般都是正確的東8時區(qū)。

第二句是檢查系統(tǒng)時間,根據(jù)查詢出來的結(jié)果時間與實際時間對比,如果是一致的就是對的,不用再看下面的了。

3.修改數(shù)據(jù)庫時區(qū)

1.修改時區(qū)為正確的東8時區(qū)。

alter database set time_zone = '+8:00';

2.重啟數(shù)據(jù)庫讓配置生效

##關(guān)閉數(shù)據(jù)庫
shutdown immediate;

##啟動數(shù)據(jù)庫
startup

完成上面的步驟 Oracle數(shù)據(jù)庫的時間問題也就解決了,可以在進(jìn)入數(shù)據(jù)庫,查詢系統(tǒng)時間檢查一下。

四、創(chuàng)建并配置用戶

在 Oracle 多租戶架構(gòu)中(從 Oracle 12c 開始),用戶分為

普通用戶(Common User)

  • 1.用戶的名稱必須以 C## 開頭,在CDB中創(chuàng)建
  • 2.適用于管理員用戶,用戶管理CDB下的多個PDB

本地用戶(Local User)

  • 1.用戶的名稱無需以 C## 開頭,在PDB中創(chuàng)建
  • 2.更適合應(yīng)用開發(fā)和租戶管理
  • 3.我們平時開發(fā)時用的多是本地用戶

數(shù)據(jù)庫剛被安裝后,并沒有本地用戶,我們需要通過system用戶登錄Oracle之后,創(chuàng)建本地用戶。

1.進(jìn)入docker內(nèi)部并且登錄oracle

# 進(jìn)入 Oracle 容器的 Bash 環(huán)境,oracle21 為容器名稱
docker exec -it oracle21 /bin/bash

#登錄數(shù)據(jù)庫
sqlplus / as sysdba

2、切換session為PDB

在包含 CDB(容器數(shù)據(jù)庫)和 PDB(可插拔數(shù)據(jù)庫)的環(huán)境中,顯示會話所連接的容器的名稱。

容器可以是根容器(CDB R O O T )、種子數(shù)據(jù)庫( P D B ROOT)、種子數(shù)據(jù)庫(PDB ROOT)、種子數(shù)據(jù)庫(PDBSEED)或某個具體的 PDB。

1.查看數(shù)據(jù)庫中所有的PDB

##方式1
SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS;

##方式1
SELECT NAME FROM V$PDBS;

2.查看當(dāng)前容器

SHOW CON_NAME;

3.切換當(dāng)前用戶的session為PDB

-- 切換session到根容器
SQL> ALTER SESSION SET CONTAINER = CDB$ROOT;

Session altered.

-- 切換session到PDB
SQL> ALTER SESSION SET CONTAINER = XEPDB1;

Session altered.

-- 查看當(dāng)前容器名稱
SQL> SHOW CON_NAME;

CON_NAME
------------------------------
XEPDB1
SQL>

3、創(chuàng)建用戶

create user 用戶名 identified by 密碼;

create user test_user identified by test_user123;

4、賬戶授權(quán)

grant connect,resource,create type,create view,recovery_catalog_owner to 用戶名;

注意:禁止使用:imp_full_database權(quán)限

grant connect,resource,create type,create view,recovery_catalog_owner to test_user;

5、賬戶登錄

此處需要注意的是,必須使用指定容器名進(jìn)行登錄,否則登錄不成功

6、創(chuàng)建表并查看

CREATE TABLE TEST_USER.PERSON_TABLE (
    id NUMBER PRIMARY KEY,
    name VARCHAR2(50),
    age NUMBER,
    email VARCHAR2(100),
    created_date DATE
) ;

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker容器中無法獲取宿主機(jī)hostname的解決方案

    docker容器中無法獲取宿主機(jī)hostname的解決方案

    這篇文章主要介紹了docker容器中無法獲取宿主機(jī)hostname的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • docker基本使用方法入門示例

    docker基本使用方法入門示例

    這篇文章主要介紹了docker基本使用方法入門示例,包含docker命令查詢方法,查詢鏡像和下拉鏡像,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • openwrt安裝docker并啟動的操作方法

    openwrt安裝docker并啟動的操作方法

    這篇文章主要介紹了openwrt安裝docker并啟動的操作方法,首先需要大家在軟件包中下載docker和dockerd,然后在建立軟連接,在系統(tǒng)加載時啟動docker服務(wù),感興趣的朋友一起看看吧
    2022-03-03
  • skywalking在docker中應(yīng)用方式

    skywalking在docker中應(yīng)用方式

    這篇文章主要介紹了skywalking在docker中應(yīng)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Docker方式啟動tomcat訪問首頁出現(xiàn)404錯誤

    Docker方式啟動tomcat訪問首頁出現(xiàn)404錯誤

    這篇文章主要介紹了Docker方式啟動tomcat訪問首頁出現(xiàn)404錯誤。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • docker安裝使用系列之交叉編譯詳解

    docker安裝使用系列之交叉編譯詳解

    在x86平臺上使用Docker實現(xiàn)跨平臺編譯ARM端程序,需要安裝Docker,拉取包含ARM工具鏈的鏡像,啟動QEMU支持,并使用相應(yīng)的Dockerfile進(jìn)行構(gòu)建,構(gòu)建完成后,可以運(yùn)行并測試ARM程序,導(dǎo)出所需文件,若在ARM平臺運(yùn)行x86鏡像,需使用Rosetta2等工具
    2024-10-10
  • 如何解決Docker啟動問題docker?is?starting…

    如何解決Docker啟動問題docker?is?starting…

    這篇文章主要給大家介紹了關(guān)于如何解決Docker啟動問題docker?is?starting…的相關(guān)資料,文中通過圖文將解決的過程介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 使用docker創(chuàng)建和運(yùn)行跨平臺的容器化mssql數(shù)據(jù)庫

    使用docker創(chuàng)建和運(yùn)行跨平臺的容器化mssql數(shù)據(jù)庫

    這篇文章主要介紹了使用docker創(chuàng)建和運(yùn)行跨平臺的容器化的mssql數(shù)據(jù)庫,本章介紹了在window10專業(yè)版下如何利用docker創(chuàng)建mssql數(shù)據(jù)庫,需要的朋友可以參考下
    2022-05-05
  • 詳解利用Dockerfile構(gòu)建mysql鏡像并實現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置

    詳解利用Dockerfile構(gòu)建mysql鏡像并實現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置

    本篇文章主要介紹了詳解利用Dockerfile構(gòu)建mysql鏡像并實現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • docker服務(wù)關(guān)停的實現(xiàn)步驟

    docker服務(wù)關(guān)停的實現(xiàn)步驟

    在我看來所謂的優(yōu)雅關(guān)閉,就是在系統(tǒng)關(guān)閉時,預(yù)留一些時間,讓你有機(jī)會來善后一些事情,本文就來介紹一下docker服務(wù)如何正確關(guān)停,感興趣的可以了解一下
    2023-10-10

最新評論

五常市| 和静县| 阆中市| 安图县| 万宁市| 库伦旗| 秦皇岛市| 鱼台县| 内丘县| 泰安市| 广东省| 乡宁县| 曲周县| 延安市| 正宁县| 龙里县| 凤冈县| 称多县| 星座| 巴里| 宜丰县| 永新县| 翁牛特旗| 肇东市| 景东| 梁平县| 泰安市| 贵南县| 佛冈县| 九台市| 泸溪县| 兴安盟| 中牟县| 澎湖县| 乡宁县| 洛阳市| 镇雄县| 安泽县| 濉溪县| 夹江县| 罗甸县|