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

在Linux系統(tǒng)上安裝部署Oracle?Database保姆級(jí)教程

 更新時(shí)間:2026年04月30日 10:21:24   作者:小洋要減肥  
因?yàn)楣拘枰獙?shù)據(jù)庫(kù)服務(wù)器切換成linux版本的,所以需要在linux系統(tǒng)下安裝oracle,下面這篇文章主要介紹了在Linux系統(tǒng)上安裝部署Oracle?Database保姆級(jí)教程的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下

一、前言

在開(kāi)發(fā)或測(cè)試環(huán)境中,我們經(jīng)常需要搭建一套獨(dú)立的 Oracle 數(shù)據(jù)庫(kù)環(huán)境

雖然現(xiàn)在很多人使用 Docker 鏡像或云數(shù)據(jù)庫(kù),但有時(shí)候(例如在企業(yè)服務(wù)器上),

仍然需要 手動(dòng)在 Linux 上安裝原生 Oracle 數(shù)據(jù)庫(kù)。

本教程將手把手帶你完成從系統(tǒng)準(zhǔn)備到數(shù)據(jù)庫(kù)創(chuàng)建的全過(guò)程,完全原生安裝。

演示環(huán)境如下:

項(xiàng)目配置
操作系統(tǒng)Oracle Linux 8 / CentOS 7
數(shù)據(jù)庫(kù)版本Oracle Database 19c
內(nèi)存要求≥ 2GB
磁盤空間≥ 20GB
安裝模式靜默安裝(無(wú)圖形界面)

二、系統(tǒng)準(zhǔn)備

安裝依賴包

yum install -y binutils compat-libcap1 compat-libstdc++-33 
gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc 
libstdc++ libstdc++-devel libXi libXtst make sysstat elfutils-libelf-devel 
unixODBC unixODBC-devel smartmontools net-tools unzip

原因解釋:

  • libaioglibc、libstdc++ 是 Oracle 數(shù)據(jù)文件 I/O 所需的基礎(chǔ)庫(kù);

  • ksh(Korn shell)是 Oracle 安裝程序默認(rèn)使用的 shell;

  • elfutils-libelf-devel 是內(nèi)核符號(hào)和調(diào)試信息處理庫(kù);

  • sysstat 用于性能監(jiān)控;

  • net-tools 提供 ifconfig 等命令;

  • unzip 用于解壓 Oracle 安裝包。

設(shè)置內(nèi)核參數(shù)

編輯 /etc/sysctl.conf

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

使配置生效:

sysctl -p

創(chuàng)建 oracle 用戶和目錄

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo oracle | passwd --stdin oracle

mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01

配置資源限制

編輯 /etc/security/limits.d/oracle-database.conf

oracle   soft   nproc    2047
oracle   hard   nproc    16384
oracle   soft   nofile   1024
oracle   hard   nofile   65536
oracle   soft   stack    10240
oracle   hard   stack    32768

三、設(shè)置環(huán)境變量

切換到 oracle 用戶:

su - oracle

配置環(huán)境變量(編輯 ~/.bash_profile):

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin

使其生效執(zhí)行:

source ~/.bash_profile

四、上傳并解壓 Oracle 安裝包

從官網(wǎng)下載zip安裝包

https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html

這個(gè)網(wǎng)址打開(kāi)可以直接下載zip文件,只不過(guò)需要注冊(cè)oracle賬號(hào),然后就可以下載;

將下載的zip文件上傳至服務(wù)器:

unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1
chown -R oracle:oinstall /u01

五、以靜默模式安裝

切換到 oracle 用戶:

su - oracle
cd $ORACLE_HOME

執(zhí)行安裝:

./runInstaller -silent \
-responseFile $ORACLE_HOME/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_HOME=$ORACLE_HOME \
ORACLE_BASE=$ORACLE_BASE \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSOPER_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=dba \
oracle.install.db.OSDGDBA_GROUP=dba \
oracle.install.db.OSKMDBA_GROUP=dba \
oracle.install.db.OSRACDBA_GROUP=dba \
DECLINE_SECURITY_UPDATES=true

驗(yàn)證修改成功

如果配置正確,執(zhí)行安裝命令后應(yīng)看到:

Launching Oracle Database Setup Wizard...

[WARNING] [INS-13014] Target environment does not meet some optional requirements.
...
The installation of Oracle Database was successful.

接著執(zhí)行安裝結(jié)束提示的兩個(gè)腳本(以 root 運(yùn)行):

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.3.0/dbhome_1/root.sh

六、創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例(靜默方式)

進(jìn)入oracle用戶模式執(zhí)行:

dbca -silent -createDatabase \
-gdbname orcl \
-sid orcl \
-responseFile NO_VALUE \
-templateName General_Purpose.dbc \
-sysPassword oracle \
-systemPassword oracle \
-createAsContainerDatabase false \
-databaseType MULTIPURPOSE \
-memoryMgmtType auto_sga \
-storageType FS \
-datafileDestination '/u01/app/oracle/oradata' \
-redoLogFileSize 50 \
-emConfiguration NONE

七、驗(yàn)證安裝

登錄 SQL*Plus:

sqlplus / as sysdba

檢查數(shù)據(jù)庫(kù)狀態(tài):

SELECT instance_name, status FROM v$instance;

八、開(kāi)機(jī)自啟(可選)

編輯 /etc/oratab,把最后一行改為:

orcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y

Oracle 數(shù)據(jù)庫(kù) Demo

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

首先,確保你以 oracle 用戶登錄,并使用 sqlplus 連接到數(shù)據(jù)庫(kù)實(shí)例:

su - oracle
sqlplus / as sysdba

2.創(chuàng)建表

創(chuàng)建一個(gè)員工表:

CREATE TABLE employees (
  employee_id NUMBER PRIMARY KEY,
  first_name VARCHAR2(50),
  last_name VARCHAR2(50),
  hire_date DATE,
  salary NUMBER
);

SQL*Plus 中,執(zhí)行 DESC 命令查看表的結(jié)構(gòu)時(shí),默認(rèn)情況下輸出結(jié)果并不像在圖形界面中那樣顯示成表格樣式,而是以文本形式呈現(xiàn)。

3.插入數(shù)據(jù)

INSERT INTO employees (employee_id, first_name, last_name, hire_date, salary)
VALUES (1, 'Alice', 'Johnson', TO_DATE('2023-01-01', 'YYYY-MM-DD'), 8000);

INSERT INTO employees (employee_id, first_name, last_name, hire_date, salary)
VALUES (2, 'Bob', 'Smith', TO_DATE('2023-03-15', 'YYYY-MM-DD'), 9500);

INSERT INTO employees (employee_id, first_name, last_name, hire_date, salary)
VALUES (3, 'Charlie', 'Brown', TO_DATE('2023-07-10', 'YYYY-MM-DD'), 7500);

INSERT INTO employees (employee_id, first_name, last_name, hire_date, salary)
VALUES (4, 'David', 'Wilson', TO_DATE('2023-09-01', 'YYYY-MM-DD'), 10000);

4.查詢數(shù)據(jù)

1.查詢所有員工信息:

SELECT * FROM employees;

2.查詢特定員工(例如,員工 ID 為 2 的員工):

SELECT * FROM employees WHERE employee_id = 2;

3.查詢薪水高于 8000 的員工:

SELECT first_name, last_name, salary FROM employees WHERE salary > 8000;

5.更新數(shù)據(jù)

例如,增加員工 Bob 的薪水:

UPDATE employees SET salary = 10500 WHERE employee_id = 2;

6.刪除數(shù)據(jù)

刪除員工 ID 為 3 的員工:

DELETE FROM employees WHERE employee_id = 3;

7.附加 SQL 查詢示例

1.查詢員工的薪資總和

SELECT SUM(salary) FROM employees;

2.查詢薪資的平均值:

SELECT AVG(salary) FROM employees;

3.按照入職日期排序,顯示前 2 個(gè)員工:

SELECT * FROM employees ORDER BY hire_date FETCH FIRST 2 ROWS ONLY;

8.篩選數(shù)據(jù) (WHERE)

使用 WHERE 子句來(lái)篩選符合條件的數(shù)據(jù)。

SELECT * FROM employees WHERE salary > 8000;

使用邏輯運(yùn)算符:

  • AND:同時(shí)滿足多個(gè)條件。

  • OR:滿足任意一個(gè)條件。

  • NOT:排除某些條件

SELECT * FROM employees WHERE salary > 8000 AND EMPLOYEE_ID=2;

使用 BETWEEN 篩選范圍:

SELECT * FROM employees WHERE salary BETWEEN 8000 AND 10000;

使用 IN 篩選多個(gè)值:

SELECT * FROM employees WHERE EMPLOYEE_ID IN (1, 2, 3);

使用 LIKE 進(jìn)行模糊查詢:

SELECT * FROM employees WHERE first_name LIKE 'A%';  -- 姓名以A開(kāi)頭

9.排序數(shù)據(jù) (ORDER BY)

使用 ORDER BY 子句對(duì)查詢結(jié)果進(jìn)行排序,默認(rèn)是按 升序 (ASC),如果需要降序則使用 DESC。

SELECT * FROM employees ORDER BY salary DESC;

10.限制查詢結(jié)果 (LIMIT / ROWNUM)

Oracle 不支持 LIMIT 語(yǔ)句,但可以使用 ROWNUMFETCH FIRST 來(lái)限制返回的行數(shù)。

SELECT * FROM employees WHERE ROWNUM <= 5;

11.聚合函數(shù) (GROUP BY)

聚合函數(shù) 用于對(duì)結(jié)果集進(jìn)行匯總、統(tǒng)計(jì)或計(jì)算。常見(jiàn)的聚合函數(shù)有:SUMAVG、COUNT、MAXMIN。

示例:計(jì)算每個(gè)部門的平均薪資

SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id;

示例:計(jì)算每個(gè)部門的員工人數(shù)

SELECT department_id, COUNT(*) AS num_employees
FROM employees
GROUP BY department_id;

示例:計(jì)算每個(gè)部門的薪資總和,并篩選薪資總和大于 20,000 的部門

SELECT department_id, SUM(salary) AS total_salary
FROM employees
GROUP BY department_id
HAVING SUM(salary) > 20000;

12.聯(lián)接查詢 (JOIN)

Oracle 支持多種類型的 聯(lián)接,用于在查詢中連接多個(gè)表。常見(jiàn)的聯(lián)接類型有:INNER JOINLEFT JOIN、RIGHT JOINFULL JOIN。

示例:INNER JOIN(內(nèi)聯(lián)接)

返回兩個(gè)表中匹配的行:

SELECT e.first_name, e.last_name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;

示例:LEFT JOIN(左外聯(lián)接)

返回左表所有行,即使右表沒(méi)有匹配的行:

SELECT e.first_name, e.last_name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;

示例:RIGHT JOIN(右外聯(lián)接)

返回右表所有行,即使左表沒(méi)有匹配的行:

SELECT e.first_name, e.last_name, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id;

示例:FULL JOIN(全外聯(lián)接)

返回兩個(gè)表的所有行,不管是否有匹配的行:

SELECT e.first_name, e.last_name, d.department_name
FROM employees e
FULL JOIN departments d ON e.department_id = d.department_id;

13.常用的 Oracle 查詢方法:

方法描述
SELECT用于從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)。
WHERE用于過(guò)濾查詢結(jié)果。
ORDER BY用于對(duì)查詢結(jié)果進(jìn)行排序。
GROUP BY用于將結(jié)果按指定字段分組并進(jìn)行聚合。
JOIN用于在多個(gè)表之間建立關(guān)系,進(jìn)行聯(lián)接查詢。
子查詢在查詢中嵌套其他查詢,用于更復(fù)雜的條件判斷。
視圖用于將復(fù)雜查詢封裝為一個(gè)虛擬表,簡(jiǎn)化查詢。
ROWNUM / FETCH用于限制查詢結(jié)果的行數(shù),進(jìn)行數(shù)據(jù)分頁(yè)。

總結(jié)

到此這篇關(guān)于在Linux系統(tǒng)上安裝部署Oracle Database保姆級(jí)教程的文章就介紹到這了,更多相關(guān)Linux安裝部署Oracle內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

乌拉特中旗| 林周县| 德州市| 南漳县| 陵水| 溆浦县| 巴彦淖尔市| 华坪县| 满城县| 五常市| 友谊县| 濮阳市| 萍乡市| 胶南市| 偏关县| 泰来县| 泽普县| 富源县| 贵州省| 鱼台县| 崇仁县| 朝阳市| 沈阳市| 镇宁| 綦江县| 隆昌县| 项城市| 屏南县| 耿马| 永昌县| 澄城县| 义马市| 湟源县| 柞水县| 万年县| 巩留县| 平塘县| 临城县| 桓台县| 南江县| 库尔勒市|