溫馨提示×

如何在 Ubuntu 上配置 Oracle

小樊
43
2025-10-10 07:51:14
欄目: 云計算

在Ubuntu上配置Oracle數據庫的詳細步驟

一、前置準備

1. 系統要求

  • 推薦使用Ubuntu 20.04 LTS及以上版本(確保系統穩定性);
  • 至少4GB RAM(生產環境建議8GB以上)、10GB以上可用磁盤空間;
  • 已安裝curl、wget等基礎工具(用于下載依賴和安裝包)。

2. 安裝必要依賴

Oracle數據庫依賴多個系統庫,需提前安裝:

sudo apt update
sudo apt install -y alien libaio1 unixodbc build-essential gcc make binutils
  • libaio1:異步I/O庫(Oracle核心依賴);
  • unixodbc:ODBC驅動管理工具;
  • build-essential:編譯工具鏈(部分組件需編譯)。

二、手動安裝Oracle數據庫(以Oracle 19c為例)

1. 創建Oracle用戶和組

Oracle需專用用戶和組管理權限:

sudo groupadd -g 501 oinstall  # 所屬組
sudo groupadd -g 502 dba       # 數據庫管理員組
sudo useradd -u 501 -g oinstall -G dba -d /home/oracle -s /bin/bash oracle  # 創建用戶
sudo passwd oracle             # 設置密碼(需記住,后續登錄用)

2. 創建安裝目錄并設置權限

Oracle安裝目錄需歸屬oracle:oinstall,并賦予適當權限:

sudo mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1  # 安裝目錄
sudo mkdir -p /u01/app/oracle/oradata                 # 數據文件目錄
sudo chown -R oracle:oinstall /u01                    # 歸屬權限
sudo chmod -R 775 /u01                                # 目錄權限

3. 配置系統內核參數

編輯/etc/sysctl.conf,添加以下內容優化系統性能:

kernel.shmmax = 2147483648    # 最大共享內存段大?。ńㄗh為物理內存的一半)
kernel.shmmni = 4096          # 共享內存段最大數量
kernel.shmall = 2097152       # 共享內存總頁數
fs.file-max = 65536           # 最大文件描述符數
net.ipv4.ip_local_port_range = 9000 65500  # 允許的端口范圍

使配置生效:

sudo sysctl -p

4. 配置用戶環境變量

編輯oracle用戶的~/.bashrc文件,添加Oracle環境變量:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl         # 數據庫實例名(可自定義)
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

使配置生效:

source ~/.bashrc

5. 解壓并運行Oracle安裝程序

將Oracle安裝包(如linuxx64_19c_database.zip)上傳至Ubuntu服務器,解壓后運行安裝腳本:

unzip linuxx64_19c_database.zip -d /u01/app/oracle
cd /u01/app/oracle/database
./runInstaller

按照安裝向導操作:

  • 選擇“單實例數據庫安裝”;
  • 選擇“桌面類”(適用于單機環境);
  • 設置oracle用戶為數據庫管理員;
  • 完成安裝后,運行/u01/app/oracle/product/19.0.0/dbhome_1/root.sh(按提示操作)。

三、使用Docker快速部署Oracle(可選)

若不想手動配置,可使用Docker容器快速部署Oracle數據庫(以Oracle 11g為例):

1. 安裝Docker

sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

2. 拉取Oracle鏡像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g  # 國內鏡像(更快)
# 或使用官方鏡像(需Oracle賬戶):
# docker pull store/oracle/database-enterprise:12.2.0.1

3. 運行Oracle容器

docker run -d --name oracle-db -p 1521:1521 --shm-size=1g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
  • -p 1521:1521:映射Oracle監聽端口;
  • --shm-size=1g:分配共享內存(Oracle需足夠共享內存)。

四、配置數據庫實例

1. 以SYSDBA身份登錄

sqlplus /nolog
CONNECT / AS SYSDBA

2. 創建數據庫實例(手動安裝需執行)

若手動安裝未自動創建數據庫,需手動初始化:

CREATE DATABASE orcl
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/orcl/redo01.log') SIZE 100M,
        GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log') SIZE 100M,
        GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/orcl/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/orcl/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
    DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf'
    SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE temp
    TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf'
    SIZE 20M REUSE
UNDO TABLESPACE undo
    DATAFILE '/u01/app/oracle/oradata/orcl/undo01.dbf'
    SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

3. 啟動/關閉數據庫

-- 啟動數據庫
STARTUP

-- 關閉數據庫(正常關閉)
SHUTDOWN IMMEDIATE

4. 配置監聽器(若未自動配置)

編輯$ORACLE_HOME/network/admin/listener.ora文件:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

重啟監聽器:

lsnrctl stop
lsnrctl start

五、驗證安裝

1. 登錄數據庫

sqlplus sys/oracle AS SYSDBA  # 使用SYS用戶登錄
-- 或創建普通用戶登錄:
-- CREATE USER test IDENTIFIED BY test;
-- GRANT CONNECT, RESOURCE TO test;
-- sqlplus test/test

2. 執行簡單查詢

SELECT * FROM v$version;  -- 查看Oracle版本
SELECT SYSDATE FROM dual; -- 查看當前時間

3. 檢查監聽狀態

lsnrctl status

若顯示“服務已注冊”,說明監聽正常。

六、常見問題解決

  • 權限問題:確保oracle用戶對/u01目錄有讀寫權限;
  • 內核參數不足:若安裝時報錯,需調整/etc/sysctl.conf中的參數(如kernel.shmmax);
  • 監聽器無法啟動:檢查listener.ora中的HOST是否為localhost(若遠程訪問需改為IP)。

以上步驟覆蓋了Ubuntu上Oracle數據庫的手動安裝、Docker部署及基本配置,可根據實際需求選擇合適的方式。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女