AnolisOS 7.9 靜默安裝Oacle 11.2.0.4

&UnstopPable發表於2024-08-20

目錄
  • 環境準備
    • 安裝包下載
    • 上傳安裝包
    • 建立組和使用者
    • 建立目錄及設定許可權
    • 編輯使用者環境變數
    • 編輯資源限制
    • 修改核心引數
    • 編輯/etc/pam.d/login檔案
    • 安裝依賴包
    • 關閉防火牆selinux
  • 安裝資料庫軟體
    • 準備db_install.rsp響應檔案
    • 執行runInstaller進行安裝
  • 建立監聽
  • 建立資料庫
    • 準備dbca.rsp響應檔案
    • 建立資料庫
    • 檢視監聽狀態
    • 檢視例項狀態
    • 修改local_listener

環境準備

  • Oracle 安裝路徑/u01/app/oracle/product/11.2.0/db_1
  • 資料儲存路徑/u01/app/oracle/oradata
  • 安裝資訊目錄/u01/app/oraInventory
  • 恢復區域路徑/u01/app/oracle/fast_recovery_area

安裝包下載

Oracle 11.2.0.4 x86_64系統安裝包共7個zip檔案,若只安裝Oracle僅需前兩個zip檔案。
從以下官網地址下載Oracle 11.2.0.4 x86_64位安裝包。

Oracle 11.2.0.4 Linux x86-64 (American English)下載地址:
https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_1of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_1of7.zip

https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_2of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_2of7.zip

上傳安裝包

將下載的Oracle 安裝包上傳至/home/soft目錄,並解壓。

mkdir  /home/soft
mv p* /home/soft
cd /home/soft
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
chmod -R 777 /home/soft

建立組和使用者

建立安裝Oracle資料庫所需的用組和使用者

groupadd -g 600 oinstall
groupadd -g 601 dba
useradd -u 600 -g oinstall -G dba oracle
# 設定Oracle使用者密碼
passwd oracle

建立目錄及設定許可權

# 建立資料庫對應目錄,並修改目錄許可權
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir /u01/app/oracle/oradata
mkdir /u01/app/oracle/inventory
mkdir /u01/app/oraInventory
mkdir /u01/app/oracle/fast_recovery_area
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/oracle

編輯使用者環境變數

# 切換至Oracle使用者
[root@oracle ~]# su - oracle
# 編輯.bash_profile環境變數檔案,新增如下內容
[oracle@oracle ~]$ cat .bash_profile  --內容如下
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
# export path
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

# 使環境變數生效
[oracle@oracle ~]$ source .bash_profile

編輯資源限制

root使用者操作,編輯 /etc/security/limits.conf

cat >> /etc/security/limits.conf <<EOF
oracle hard nproc 16384
oracle soft nofile 10240
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
*  soft memlock 104857600
*  hard memlock 104857600
EOF

修改核心引數

root使用者操作

#change system parameter 
cp /etc/sysctl.conf /etc/sysctl.conf.bak
echo "#oracle" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf
echo "vm.swappiness = 10" >> /etc/sysctl.conf
echo "kernel.shmmax= $(free|grep Mem |awk '{print int($2*1024*0.85)}')" >> /etc/sysctl.conf
echo "kernel.shmall = $(free|grep Mem |awk '{print int(($2*1024*0.85)/4096)}')" >> /etc/sysctl.conf
echo "vm.nr_hugepages = $(free -m|grep Mem |awk '{print int(($2*0.8*0.8)/2)}')" >> /etc/sysctl.conf
free -m
sysctl -p
echo "#oracle" >> /etc/security/limits.conf
echo "oracle soft nproc 2047" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.conf
echo "oracle soft nofile 1024" >> /etc/security/limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.conf
echo "* soft memlock $(free |grep Mem|awk '{print int($2*0.90*1024)}')" >> /etc/security/limits.conf
echo "* hard memlock $(free |grep Mem|awk '{print int($2*0.90*1024)}')" >> /etc/security/limits.conf
#add oracle profile
cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then
    if [ \$SHELL = "/bin/ksh" ]; then
       ulimit -u 16384
       ulimit -n 65536
    else
       ulimit -u 16384 -n 65536
    fi
fi
EOF

編輯/etc/pam.d/login檔案

root使用者操作

cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
session required pam_limits.so
EOF

安裝依賴包

由於是離線環境依賴包我這裡提前下載到下來了

tar -xf oracle_repo.tar.gz
cd my_oracle_repo
rpm -ivh *.rpm --nodeps --force

image.png

關閉防火牆selinux


service iptables stop
systemctl stop firewalld
systemctl disable firewalld
sed -i  "s/SELINUX=enforcing/SELINUX=disabled/"  /etc/selinux/config
cat /etc/selinux/config
setenforce 0

安裝資料庫軟體

準備db_install.rsp響應檔案

切換至Oracle使用者操作

[root@oracle ~]# su - oracle
[oracle@oracle ~]$ cp -R /home/soft/database/response/ .
[oracle@oracle ~]$ ll
total 0
drwxr-xr-x. 2 oracle oinstall 61 May 23 22:04 response
[oracle@192 ~]$ cd response/

# 編輯 db_install.rsp響應檔案,主要修改以下內容
# 響應檔案的格式版本,這裡指定的版本為 "/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0"
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0

# 安裝選項,這裡設定為 "INSTALL_DB_SWONLY",表示僅安裝資料庫軟體,而不建立或配置資料庫例項
oracle.install.option=INSTALL_DB_SWONLY

# Oracle資料庫所在的主機名
ORACLE_HOSTNAME=xxx-db

# 用於安裝和管理Oracle軟體的Unix組名,這裡設定為"oinstall"
UNIX_GROUP_NAME=oinstall

# Oracle Inventory(安裝目錄)的路徑,這裡設定為 "/u01/app/oraInventory"。
INVENTORY_LOCATION=/u01/app/oraInventory

# 選擇的語言,這裡設定為 "en,zh_CN",表示英文和簡體中文
SELECTED_LANGUAGES=en,zh_CN

# Oracle軟體的安裝路徑(資料庫主目錄)
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

# Oracle軟體的基本路徑
ORACLE_BASE=/u01/app/oracle

# 安裝的Oracle資料庫版本。這裡設定為 "EE",表示企業版
oracle.install.db.InstallEdition=EE

# 是否選擇了企業版選項,這裡設定為"false",表示未選擇任何企業版選項
oracle.install.db.EEOptionsSelection=false

# 用於資料庫管理員(DBA) 組的名稱,這裡設定為 "dba"
oracle.install.db.DBA_GROUP=dba

# 用於操作員組的名稱,這裡設定為 "dba",與DBA組相同
oracle.install.db.OPER_GROUP=dba

# 是否拒絕安裝安全更新,這裡設定為 "true",表示拒絕安裝安全更新
DECLINE_SECURITY_UPDATES=true

# 自動更新選項,這裡設定為 "SKIP_UPDATES",表示跳過自動更新
oracle.installer.autoupdates.option=SKIP_UPDATES

執行runInstaller進行安裝

[oracle@oracle response]$ cd /home/soft/database/
[oracle@oracle database]$ ./runInstaller -silent -noconfig -ignorePrereq -responseFile /home/oracle/response/db_install.rsp

等待一段時間後提示以 root 使用者的身份執行以下指令碼
image.png
image.png

建立監聽

# 使用Oracle使用者執行
[oracle@oracle ~]$ netca /silent -responsefile /home/oracle/response/netca.rsp

image.png

建立資料庫

準備dbca.rsp響應檔案

# 使用Oracle使用者執行,編輯dbca.rsp響應檔案,主要修改如下內容
[oracle@oracle database]$ cd /home/oracle/response/
[oracle@oracle response]$ ll
總用量 80
-rwxr-xr-x 1 oracle oinstall 44533 8月  20 22:33 dbca.rsp
-rwxr-xr-x 1 root   root     25248 8月  20 22:33 db_install.rsp
-rwxr-xr-x 1 oracle oinstall  5871 8月  20 22:33 netca.rsp
[oracle@localhost response]$ vim dbca.rsp 
# 全域性資料庫名
GDBNAME = "orcl"

# 資料庫例項名
SID = "orcl"

# SYS使用者的密碼
SYSPASSWORD = "oracle"

# SYSTEM使用者的密碼
SYSTEMPASSWORD = "oracle"

# SYSMAN使用者(用於Enterprise Manager)的密碼
SYSMANPASSWORD = "oracle"

# DBSNMP使用者(用於SNMP管理)的密碼
DBSNMPPASSWORD = "oracle"

# 資料檔案儲存路徑
DATAFILEDESTINATION =/u01/app/oracle/oradata

# 恢復區域儲存路徑
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area

# 資料庫字符集
CHARACTERSET = "ZHS16GBK"

# 資料庫例項使用的總記憶體大小(以MB為單位)
TOTALMEMORY = "3276"

建立資料庫

[oracle@oracle response]$  dbca -silent -responseFile /home/oracle/response/dbca.rsp

image.png

檢視監聽狀態

[oracle@oracle response]$ lsnrctl status

image.png

檢視例項狀態

[oracle@oracle response]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 20 22:44:27 2024

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> 

修改local_listener

[oracle@oracle ~]$ sqlplus / as sysdba
SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521))';
SQL> alter system register;

相關文章