Linux Docker 安裝oracle19c數據庫教程

Oracle 19c 是甲骨文公司(Oracle Corporation)發布的一款關系型數據庫管理系統(RDBMS),屬于 Oracle Database 19c 版本。它是 Oracle 12c 和 18c 系列的后續版本,提供了多個重要的功能改進和新特性,旨在提升數據庫的性能、可擴展性和可靠性。Oracle 19c 的特點包括:

  1. 自動化與優化

    • 自動化管理功能:Oracle 19c 引入了更多的自動化管理特性,例如自動化的存儲管理和內存管理,使數據庫管理員的工作變得更加輕松。
    • 自動索引功能:Oracle 19c 在數據庫中自動創建索引并在查詢執行時根據需求優化索引,提高了查詢效率。
  2. 性能提升

    • 采用了更高效的存儲引擎和查詢優化器,提高了數據處理的速度和吞吐量。
    • 高性能的 SQL 執行:增加了對大規模查詢的優化,支持大數據量時仍能保證穩定的查詢性能。
  3. 多云與混合云支持

    • 支持在多云環境下的運行,可以同時在多個云平臺或本地數據中心中進行部署,提供靈活的云集成選項。
  4. 新功能

    • JSON 支持:Oracle 19c 增強了對 JSON 數據類型的支持,方便處理非結構化數據。
    • 自動化的數據加密:為提高數據安全性,Oracle 19c 提供了更加靈活和自動化的數據加密方案。
    • 多租戶架構(CDB/PDB):引入了多租戶架構,允許用戶在單個數據庫實例中創建多個數據庫容器(PDB),實現資源共享和管理優化。
  5. 高可用性與災難恢復

    • 提供了增強的備份、恢復和高可用性功能,包括更快的故障恢復和容災能力。
  6. 版本穩定性

    • Oracle 19c 被認為是一個“長期支持版本”(Long Term Support,LTS),意味著該版本會得到長時間的更新和支持,適合用于企業級應用。

Oracle 19c 是企業級應用的理想選擇,特別適合那些需要高性能、可靠性以及靈活擴展能力的環境。

下載地址:

Oracle 數據庫下載官網:數據庫軟件下載 |神諭
SQL Develope 數據庫連接工具下載官網:Oracle SQL Developer Downloads
國內容器鏡像拉取地址:docker.io/heartu41/oracle19c:latest - 鏡像下載 | docker.io

第一步 安裝Docker


#移除舊的Docker版本
yum remove -y docker docker-client docker-client-latest docker-ce-cli docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
#清理舊緩存并重新生成
yum clean all
yum makecache
# 安裝必要的依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加阿里云 Docker 的倉庫
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安裝Docker
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io
#設置開機自啟動
sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker
#查看可用的Docker版本
yum list docker-ce --showduplicates | sort -r
#查看docker版本
docker --version
#查看docker詳細信息
docker info

第二步 拉取鏡像 并啟動

#拉取鏡像 
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartu41/oracle19c:latest
#啟動鏡像命令
docker run -d \--name oracle19c-prod \--restart=unless-stopped \--cpus=2 \--memory=4g \-p 1521:1521 \-p 5500:5500 \-e ORACLE_SID=ORCLCDB \-e ORACLE_PDB=ORCLPDB1 \-e ORACLE_PWD=YourStrongPassword@123 \-e ORACLE_CHARACTERSET=AL32UTF8 \-v /data/oracle19c/oradata:/opt/oracle/oradata \-v /data/oracle19c/backup:/opt/oracle/backup \--health-cmd="lsnrctl status" \--health-interval=2m \swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartu41/oracle19c解釋說明:
docker run -d \  # 后臺運行容器--name oracle19c-prod \  # 為容器指定名稱為 oracle19c-prod--restart=unless-stopped \  # 設置容器自動重啟策略,除非手動停止,否則容器會在系統重啟后自動啟動--cpus=2 \  # 限制容器使用 2 個 CPU 核心--memory=4g \  # 限制容器使用 4GB 內存-p 1521:1521 \  # 將宿主機的 1521 端口映射到容器的 1521 端口(Oracle 數據庫默認端口)-p 5500:5500 \  # 將宿主機的 5500 端口映射到容器的 5500 端口(用于 Oracle 數據庫的 Web 控制臺)-e ORACLE_SID=ORCLCDB \  # 設置 Oracle 實例名為 ORCLCDB-e ORACLE_PDB=ORCLPDB1 \  # 設置 Oracle PDB(Pluggable Database)為 ORCLPDB1-e ORACLE_PWD=YourStrongPassword@123 \  # 設置 Oracle 數據庫管理員密碼-e ORACLE_CHARACTERSET=AL32UTF8 \  # 設置 Oracle 數據庫字符集為 AL32UTF8-v /data/oracle19c/oradata:/opt/oracle/oradata \  # 將宿主機的 /data/oracle19c/oradata 目錄掛載到容器的 /opt/oracle/oradata 目錄(存儲數據庫數據)-v /data/oracle19c/backup:/opt/oracle/backup \  # 將宿主機的 /data/oracle19c/backup 目錄掛載到容器的 /opt/oracle/backup 目錄(存儲數據庫備份)--health-cmd="lsnrctl status" \  # 設置健康檢查命令,檢查 Oracle Listener 的狀態--health-interval=2m \  # 設置健康檢查的時間間隔為 2 分鐘swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartu41/oracle19c  # 使用 Oracle 19c 鏡像(指定鏡像地址)

第三步、關閉防火墻?

# 關閉防火墻
systemctl stop firewalld
systemctl disable firewalld# 關閉selinux
# 臨時
setenforce 0  
# 永久
sed -i 's/enforcing/disabled/' /etc/selinux/config  

第四步、使用數據庫連接工具

進入docker容器
docker exec -it oracle19c-prod bash
連接數據庫
sqlplus / as sysdba
查看實例名命令(也就是SID)
SELECT instance_name FROM v$instance;SID介紹:
SID(System Identifier,系統標識符)是Oracle數據庫實例的唯一名稱標識。它是Oracle數據庫實例在操作系統層面的唯一標識,用于區分同一臺服務器上運行的不同Oracle實例。

使用sqldeveloper 進行連接?

?使用Navicat 連接

第五步、創建表空間

#創建表空間
CREATE TABLESPACE yongyou_U8
DATAFILE '/opt/oracle/oradata/ORCLCDB/yongyou_U8.dbf' SIZE 100M
AUTOEXTEND ON NEXT 50M MAXSIZE 1G
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;解釋說明:
1、CREATE TABLESPACE yongyou_U8創建一個名為 yongyou_U8 的新表空間表空間是 Oracle 中用于存儲數據庫對象的邏輯存儲單元2、DATAFILE '/opt/oracle/oradata/ORCLCDB/yongyou_U8.dbf' SIZE 100M指定表空間的數據文件位置和大小數據文件路徑:/opt/oracle/oradata/ORCLCDB/yongyou_U8.dbf初始大小:100MB(這是 Oracle 容器的標準數據文件路徑)3、AUTOEXTEND ON NEXT 50M MAXSIZE 1G設置數據文件自動擴展屬性AUTOEXTEND ON:啟用自動擴展功能NEXT 50M:當需要更多空間時,每次自動擴展50MBMAXSIZE 1G:數據文件最大可擴展到1GB4、EXTENT MANAGEMENT LOCAL指定區(extent)管理方式為本地管理本地管理比字典管理更高效,是現代 Oracle 數據庫的推薦方式區是Oracle分配空間的基本單位5、SEGMENT SPACE MANAGEMENT AUTO指定段空間管理方式為自動管理自動管理使用位圖而不是空閑列表來跟蹤塊的使用情況這提高了空間管理效率,減少了DBA的手動干預

Oracle數據庫常用命令:

連接數據庫:
方法1:使用操作系統認證 (不需要密碼)
sqlplus / as sysdba
方法2:使用用戶名和密碼連接
sqlplus username/password@hostname:port/servicenameusername:數據庫用戶名。
password:用戶名對應的密碼。
hostname:Oracle數據庫主機名或IP地址。
port:數據庫監聽端口(默認是1521)。
servicename:數據庫服務名(可以是SID或服務名稱)。查看版本
SELECT * FROM v$version;
用戶與角色:
用戶名	        默認密碼	        用途
SYS 	       安裝時設定	最高權限用戶,擁有數據字典和數據庫管理權限,必須用 AS SYSDBA 登錄。
SYSTEM	       安裝時設定	次高權限用戶,用于日常管理(如創建用戶、表空間等)。
SYSDG	        安裝時設定	用于 Oracle Data Guard 管理。
SYSKM	        安裝時設定	用于加密密鑰管理(Oracle Key Vault)。
SYSBACKUP	安裝時設定	用于 RMAN 備份和恢復操作。
SYSRAC	         安裝時設定	用于 Oracle RAC(Real Application Clusters)管理。顯示當前會話登錄用戶
SELECT USER FROM dual;
查看所有用戶
SELECT username, user_id, created, account_status, default_tablespace 
FROM dba_users;
創建用戶:
CREATE USER username IDENTIFIED BY password;
案例:
CREATE USER  C##gao IDENTIFIED BY 123456;
注意 19C版本之后需要加C##
授予權限給用戶:
GRANT CREATE SESSION, CREATE TABLE TO username;
創建角色并授予權限:
CREATE ROLE role_name;
GRANT SELECT, INSERT ON table_name TO role_name;
將創建的角色授予用戶,可以使用 GRANT 語句:
GRANT role_name TO user_name;
刪除角色
DROP ROLE role_name;
刪除用戶
DROP USER user_name CASCADE;
鎖定/解鎖用戶:
ALTER USER username ACCOUNT LOCK;
ALTER USER username ACCOUNT UNLOCK;
表空間:

表空間(Tablespace) 是一個用于存儲數據庫對象(如表、索引等)的邏輯存儲結構。它是數據庫文件的容器,將物理文件(如數據文件)映射到數據庫對象上,便于數據庫管理和數據存儲。

SYSTEM:系統表空間,用于存儲數據庫的核心數據字典、系統對象等。
SYSAUX:系統輔助表空間,存儲數據庫的輔助數據。
UNDOTBS1:回滾段表空間,用于存儲回滾數據(UNDO信息)。
TEMP:臨時表空間,通常用于存儲排序、合并等臨時數據。
USERS:用戶表空間,通常用于存儲用戶的表和數據。數據字典視圖查詢所有表空間
SELECT tablespace_name, status, contents, logging 
FROM dba_tablespaces;
查看所有表空間及其詳細信息
SELECT * FROM dba_tablespaces;
查看當前用戶可訪問的表空間
SELECT * FROM user_tablespaces;
案例:
創建表空間
CREATE TABLESPACE YONGYOU_U8
DATAFILE '/opt/oracle/oradata/YONGYOU_U8.dbf' 
SIZE 500M
AUTOEXTEND ON NEXT 50M MAXSIZE 2G
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
LOGGING;僅刪除空表空間(不包含任何對象)
DROP TABLESPACE users_data;
徹底刪除表空間及其所有內容和數據文件(最常用)
DROP TABLESPACE YONGYOU_U8 INCLUDING CONTENTS AND DATAFILES;
數據庫表:
創建表
CREATE TABLE employees (employee_id NUMBER PRIMARY KEY,first_name VARCHAR2(50),last_name VARCHAR2(50),hire_date DATE
);刪除表
DROP TABLE employees; 查看表結構
DESC user_tablespaces;重命名表:
RENAME old_name TO new_name;
增刪改查:
插入數據:
INSERT INTO employees (employee_id, first_name, last_name, hire_date) 
VALUES (1, 'John', 'Doe', TO_DATE('2021-01-01', 'YYYY-MM-DD'));
查詢數據:
SELECT * FROM employees;
更新數據:
UPDATE employees SET first_name = 'Jane' WHERE employee_id = 1;
刪除數據:
DELETE FROM employees WHERE employee_id = 1;
視圖:
創建視圖:
CREATE VIEW employee_view 
AS
SELECT employee_id, first_name, last_name 
FROM employees;
刪除視圖:
DROP VIEW view_name;
事務:
BEGIN TRANSACTION:開始一個新的事務。
COMMIT:提交事務,所有對數據庫的更改將永久保存。
ROLLBACK:回滾事務,撤銷自上次提交以來的所有更改。
備份還原:
導出數據 (expdp):
expdp username/password@db_name dumpfile=export.dmp logfile=export.log schemas=schema_name
導入數據 (impdp):
impdp username/password@db_name dumpfile=export.dmp logfile=import.log schemas=schema_name

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

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

相關文章

jenkins報錯java.lang.OutOfMemoryError: Java heap space

報錯信息 2025-05-27 09:17:16.2340000 [id38] WARNING j.u.ErrorLoggingScheduledThreadPoolExecutor#afterExecute: failure in task not wrapped in SafeTimerTask java.lang.OutOfMemoryError: Java heap spaceat java.base/java.lang.StringUTF16.compress(StringUTF16.j…

【Bug】定時任務中 Jpa Save 方法失效

【Bug】定時任務中 Jpa Save 方法失效 首先說一下問題,在定時任務中調用 jpa 的 save 方法沒有效果,但是通過外界調用,比如 controller 中注入 service 來調用是可以的,真是巨巨巨離譜,我被折磨了好幾天。 我這個問題…

【Redis】熱點key問題,的原因和處理,一致性哈希,刪除大key的方法

熱點 Key 指單個 Key 被高并發訪問(如爆款商品),導致 Redis 壓力驟增。解決方案應針對 “單個 Key 高并發”: 分片緩存:將熱點 Key 分散到不同 Redis 節點(如按一致性哈希算法分片)。本地緩存&…

通過遠程桌面連接Windows實例提示“出現身份驗證錯誤,無法連接到本地安全機構”錯誤怎么辦?

本文介紹通過遠程桌面連接Windows實例提示“出現身份驗證錯誤無法連接到本地安全機構”錯誤的解決方案。 問題現象 通過本地電腦內的遠程桌面連接Windows實例提示“出現身份驗證錯誤,無法連接到本地安全機構”錯誤。 問題原因 導致該問題的可能原因如下&#x…

[python] argparse怎么指定bool類型?

前述 最近在寫腳本的時候想要實現一個if 操作,通過用戶輸入。確定要不要啟用某個語句。 非常自然的就是使用python的argparse包,但是發現了一個陷阱,記錄下。 陷阱 argparse.ArgumentParser() 可以指定輸入類型,我可以設定為bo…

Rust 學習筆記:迭代器

Rust 學習筆記:迭代器 Rust 學習筆記:迭代器Iterator trait 和 next 方法使用迭代器的方法生成其他迭代器的方法使用閉包捕獲它們的環境 Rust 學習筆記:迭代器 在 Rust 中,迭代器負責遍歷每個項的邏輯。迭代器是懶惰的&#xff0…

【深度剖析】義齒定制行業數字化轉型模式創新研究(上篇2:痛點和難點分析)

數字化轉型正在重塑義齒行業的生態格局,但也面臨技術融合與模式變革的深層挑戰。當前,義齒定制行業正處于從傳統手工制造向全流程數字化制造轉型的關鍵階段。3D掃描、CAD/CAM(計算機輔助設計與制造)、3D打印等技術的廣泛應用,顯著提升了義齒制作的精度和效率。傳統石膏模型…

window安裝nginx

步驟1:下載Nginx for Windows? 訪問Nginx官網下載頁面:https://nginx.org/en/download.html 在??Stable version??(穩定版)下找到Windows版本,點擊下載.zip文件(如 nginx-1.28.0.zip) 步…

氣象算法工程師學習路徑

目錄 🌤? 氣象學與數值預報基礎課程🤖 氣象人工智能與數據分析課程📘 進階與實戰課程推薦🧭 學習建議與路徑規劃 如果希望成為一名氣象算法工程師,并尋找深入淺出、理論與實踐結合的學習資源,以下是為你精…

回調函數的理解

int yuxiangrousi 0; // 全局變量:魚香肉絲(醬油量)// 回調函數:媽媽處理醬油(將醬油加入魚香肉絲) void mother_callback(int new_jiangyou) {yuxiangrousi new_jiangyou; // 把醬油放進魚香肉絲 }// 孩…

多部手機連接同一wifi的ip一樣嗎?如何更改ip

通常情況下,多部手機連接同一個WiFi時,它們的IP地址是各不相同的(在局域網內)。但是,從互聯網(外網)的角度看,它們共享同一個公網IP地址。讓我詳細解釋一下,并說明如何更…

環境溫度通過H2A.Zub和H3K27me3動態調控擬南芥細胞命運決定

2025年4月22日,中國科學院遺傳與發育生物學研究所肖軍研究組在Developmental Cell在線發表了題為Dynamic control of H2A.Zub and H3K27me3 by ambient temperature during cell fate determination in Arabidopsis的研究論文,本研究綜合運用ChIP-seq、C…

2024 吉林 CCPC

文章目錄 2024 吉林 CCPCL. Recharge(思維、分配)G. Platform Game(模擬)E. Connect Components (排序、思維)D. Parallel Lines 2024 吉林 CCPC 題目鏈接: Dashboard - The 2024 CCPC National Invitational Contest (Changchun) , The 17…

day13 leetcode-hot100-24(鏈表3)

234. 回文鏈表 - 力扣(LeetCode) 1.轉化法 思路 將鏈表轉化為列表進行比較 復習到的知識 arraylist的長度函數:list.size() 具體代碼 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode ne…

Vim文本編輯器快捷鍵用法以及簡單介紹

目錄 vim文本編輯器 簡介: 語法: vim模式介紹: 模式切換: 用法: 編輯模式: 一般模式: 命令模式: vim文本編輯器 簡介: 在命令行界面下,最常用的文本…

從 0 到 1:Spring Boot 與 Spring AI 深度實戰(基于深度求索 DeepSeek)

在人工智能技術與企業級開發深度融合的今天,傳統軟件開發模式與 AI 工程化開發的差異日益顯著。作為 Spring 生態體系中專注于 AI 工程化的核心框架,Spring AI通過標準化集成方案大幅降低 AI 應用開發門檻。本文將以國產大模型代表 ** 深度求索&#xff…

[Windows] 摸魚小工具:隱藏軟件(重制版)

由吾愛大神寫的摸魚工具: 數據存放路徑為C:\Users\用戶名\AppData\Local\HideSoft,如果不想用時,刪除軟件及此路徑下的HideSoft文件夾。如添加了開機啟動,刪除啟動菜單文件夾的快捷方式即可,或者刪除前在軟件中取消設置…

C++ 判斷文件的編碼類型

大多數文本編輯器,都會在文本文件的頭部插入一部分特殊的字節,用于輔助文本編輯器來判斷該文件的字符集編碼類型。 如:記事本 目前支持的字符集類型,通常為三種: Unicode、UTF8、UnicodeBIG、CP_ACP(默認…

時間序列噪聲模型分析軟件推薦與使用經驗

最近在論文大修2024年投稿的一篇文章,大修了2輪,最后一次還是重新投稿,其中有一個問題一直被審稿人懟,他認為我計算時間序列的趨勢的時候,沒有考慮時間的相關性,即對噪聲模型的估計不合理,會影響…

【redis實戰篇】第六天

摘要: 本文介紹了基于Redis的秒殺系統優化方案,主要包含兩部分:1)通過Lua腳本校驗用戶秒殺資格,結合Java異步處理訂單提升性能;2)使用Redis Stream實現消息隊列處理訂單。方案采用Lua腳本保證庫…