目錄
- 環境準備
- 安裝包下載
- 上傳安裝包
- 建立組和使用者
- 建立目錄及設定許可權
- 編輯使用者環境變數
- 編輯資源限制
- 修改核心引數
- 編輯/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
關閉防火牆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 使用者的身份執行以下指令碼
建立監聽
# 使用Oracle使用者執行
[oracle@oracle ~]$ netca /silent -responsefile /home/oracle/response/netca.rsp
建立資料庫
準備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
檢視監聽狀態
[oracle@oracle response]$ lsnrctl status
檢視例項狀態
[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;