本博客將向您介紹在 CentOS 7 操作系統(tǒng)上安裝 Oracle 11g 數(shù)據(jù)庫的步驟,以及在 Oracle 數(shù)據(jù)庫中創(chuàng)建表空間和用戶的腳本。
1. 安裝必要的軟件和依賴
首先,我們需要安裝一些必要的軟件和依賴項(xiàng)。在終端中執(zhí)行以下命令:
yum -y install xorg-x11-xauth
yum -y install libXtst
yum -y install unzip
2. 關(guān)閉防火墻和 SELinux
為了確保安裝的順利進(jìn)行,我們需要暫時(shí)關(guān)閉防火墻和 SELinux:
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config
# 修改 SELINUX=disabled,用于指示系統(tǒng)在啟動(dòng)時(shí)禁用 SELinux。
# 立即將 SELinux 切換到“寬松模式”,允許警告但不會(huì)阻止操作
setenforce 0
3. 檢查并創(chuàng)建 Swap 分區(qū)
Oracle 安裝過程需要一些 Swap 空間。您可以使用以下命令檢查是否有足夠的 Swap:
free -m
如果 Swap 空間不足,可以通過分配新的 Swap 分區(qū)來解決。
4. 修改主機(jī)名和 hosts 文件
在 /etc/hosts
文件中添加主機(jī)名和 IP 地址的映射:
vi /etc/hosts
# 添加類似這樣的行:192.168.20.235 oracle
5. 安裝 Oracle 依賴包
安裝 Oracle 所需的依賴包:
yum install -y gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel
注意:CENTOS8會(huì)缺少compat-libstdc+±33-3.2.3,參考這篇博客解決
解決在CENTOS8安裝Oracle數(shù)據(jù)庫時(shí)缺失compat-libstdc+±33-3.2.3的問題
確認(rèn)安裝無誤
rpm -qa gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-develnumactl-devel sysstat unixODBC unixODBC-devel pcre-devel
6. 創(chuàng)建用戶和組
為 Oracle 創(chuàng)建所需的用戶和組:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
7. 修改內(nèi)核參數(shù)
編輯/etc/sysctl.conf
增加以下內(nèi)容,其中kernel.shmmax = 1073741824為本機(jī)物理內(nèi)存(2G)的一半,單位為byte
vi /etc/sysctl.conf
# 增加以下內(nèi)容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 1048576
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
# 修改完之后立即執(zhí)行修改:
sysctl -p
8. 修改用戶限制
編輯 /etc/security/limits.conf
文件并添加以下內(nèi)容:
vi /etc/security/limits.conf
# 添加用戶限制設(shè)置
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
9. 修改 PAM 配置
編輯 /etc/pam.d/login
文件并添加以下內(nèi)容:
vi /etc/pam.d/login
# 添加 PAM 配置
session required /lib64/security/pam_limits.so
session required pam_limits.so
10. 修改/etc/profile文件
vi /etc/profile
# 添加以下內(nèi)容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
# 執(zhí)行生效
source /etc/profile
11. 創(chuàng)建必要的目錄
創(chuàng)建 Oracle 所需的目錄并設(shè)置權(quán)限:
mkdir -p /u01/oracle/product/11.2.0
mkdir /u01/oracle/oradata
mkdir /u01/oraInventory
mkdir /u01/oracle/fast_recovery_area
chown -R oracle:oinstall /u01/oracle
chmod -R 775 /u01/oracle
chown -R oracle:oinstall /u01/oraInventory
chmod -R 775 /u01/oraInventory
12. 上傳 Oracle 軟件包
將 Oracle 軟件包 1of2 2of2 上傳至目錄/opt/oracle
下:
mkdir /opt/oracle
## 上傳文件到/opt/oracle 后執(zhí)行以下命令
chown -R oracle:oinstall /opt/oracle
chmod 755 -R /opt/oracle
su - oracle
cd /opt/oracle
unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip
13. 修改oracle用戶環(huán)境變量
編輯 ~/.bash_profile
文件并添加 Oracle 相關(guān)的環(huán)境變量:
vi ~/.bash_profile
# 添加 Oracle 環(huán)境變量
ORACLE_BASE=/u01/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
# 執(zhí)行以下命令加載環(huán)境變量
source ~/.bash_profile
14. 配置靜默安裝文件
編輯 /opt/oracle/database/response/db_install.rsp
文件,并根據(jù)您的需求設(shè)置選項(xiàng)。
vi /opt/oracle/database/response/db_install.rsp
# 需要設(shè)置的選項(xiàng)如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/oracle/product/11.2.0
ORACLE_BASE=/u01/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
15. 安裝 Oracle 數(shù)據(jù)庫軟件
執(zhí)行安裝命令,并根據(jù)靜默安裝文件進(jìn)行安裝:
cd /opt/oracle/database
./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
centos8需要安裝如下
yum install libnsl -y
否則會(huì)報(bào)錯(cuò)如下
[oracle@GreenCloud response]$ cd /opt/oracle/database
[oracle@GreenCloud database]$ ./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 81336 MB Passed
Checking swap space: must be greater than 150 MB. Actual 255 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2023-11-12_01-47-38PM. Please wait ...[oracle@GreenCloud database]$ There was an error trying to initialize the HPI library.
Please check your installation, HotSpot does not work correctly
when installed in the JDK 1.2 Linux Production Release, or
with any JDK 1.1.x release.
Could not create the Java virtual machine.
16. 完成安裝步驟
以 root 用戶身份執(zhí)行以下兩個(gè)腳本:
/u01/oraInventory/orainstRoot.sh
/u01/oracle/product/11.2.0/root.sh
17. 配置監(jiān)聽器
使用靜默方式安裝監(jiān)聽器:
netca /silent /responseFile /opt/oracle/database/response/netca.rsp
18. 創(chuàng)建 Oracle 數(shù)據(jù)庫
編輯 /opt/oracle/database/response/dbca.rsp
文件,并設(shè)置數(shù)據(jù)庫相關(guān)選項(xiàng)。
vi /opt/oracle/database/response/dbca.rsp
# 修改如下內(nèi)容
GDBNAME= "orcl"
SID ="orcl"
SYSPASSWORD= "Oracle_123"
SYSTEMPASSWORD= "Oracle_123"
SYSMANPASSWORD= "Oracle_123"
DBSNMPPASSWORD= "Oracle_123"
DATAFILEDESTINATION=/u01/oracle/oradata
RECOVERYAREADESTINATION=/u01/oracle/fast_recovery_area
CHARACTERSET= "AL32UTF8"
# ----TOTALMEMORY ="1638" 為1638MB,物理內(nèi)存2G*80%。
TOTALMEMORY= "40960"
# 執(zhí)行如下命令安裝
dbca -silent -responseFile /opt/oracle/database/response/dbca.rsp
19. 完成安裝
到此處,您的 Oracle 11g 數(shù)據(jù)庫已經(jīng)成功安裝和配置。
20. 創(chuàng)建表空間
登錄數(shù)據(jù)庫
sqlplus / as sysdba
首先,腳本創(chuàng)建了兩個(gè)不同類型的表空間:
20.1 JGCRM_ZH 表空間
CREATE TABLESPACE JGCRM_ZH LOGGING DATAFILE '/u01/oracle/oradata/jgcrm_zh.dbf' SIZE 2048m AUTOEXTEND ON NEXT 512m MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
這段代碼創(chuàng)建了名為 “JGCRM_ZH” 的表空間,其中包含以下設(shè)置:
- Logging:指示數(shù)據(jù)庫更改將記錄在重做日志中。
- Datafile:指定與表空間關(guān)聯(lián)的數(shù)據(jù)文件的位置和名稱。
- Size:將表空間的初始大小設(shè)置為 2048 兆字節(jié)。
- Autoextend:啟用數(shù)據(jù)文件的自動(dòng)擴(kuò)展。
- Next:指定在需要時(shí)擴(kuò)展數(shù)據(jù)文件的大小。
- Maxsize Unlimited:表示數(shù)據(jù)文件可以無限增長,沒有特定的上限。
- Extent Management Local:使用本地區(qū)段管理來管理表空間。
20.2 臨時(shí)表空間 JGCRM_ZH_TEMP
CREATE TEMPORARY TABLESPACE JGCRM_ZH_TEMP TEMPFILE '/u01/oracle/oradata/jgcrm_zh_temp.dbf' SIZE 512m AUTOEXTEND ON NEXT 512m MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
這段代碼創(chuàng)建了名為 “JGCRM_ZH_TEMP” 的臨時(shí)表空間,與上述過程類似,包含以下設(shè)置:
- Tempfile:指定臨時(shí)數(shù)據(jù)文件的位置和名稱。
- Size:將臨時(shí)表空間的初始大小設(shè)置為 512 兆字節(jié)。
- Autoextend、Next、Maxsize:與 JGCRM_ZH 表空間中的設(shè)置類似。
- Extent Management Local:再次使用本地區(qū)段管理來管理臨時(shí)表空間。
21. 創(chuàng)建用戶
接下來,腳本創(chuàng)建一個(gè)名為 “JGCRM_ZH” 的用戶,并為該用戶分配了一系列權(quán)限:
create user JGCRM_ZH identified by JGCRM_ZH default tablespace jgcrm_zh temporary tablespace jgcrm_zh_temp profile DEFAULT;
這段代碼創(chuàng)建了一個(gè)用戶 “JGCRM_ZH”,具有以下屬性:
- Identified by JGCRM_ZH:將用戶的密碼設(shè)置為 "JGCRM_ZH。
- Default Tablespace:將用戶的默認(rèn)表空間設(shè)置為 “jgcrm_zh”。
- Temporary Tablespace:將用戶的臨時(shí)表空間設(shè)置為 “jgcrm_zh_temp”。
- Profile:將默認(rèn)配置文件 “DEFAULT” 分配給用戶。
22. 授予權(quán)限
以下部分將各種權(quán)限授予了用戶 “JGCRM_ZH”:文章來源:http://www.zghlxwxcb.cn/news/detail-691880.html
-- 為 JGCRM_ZH 用戶授予基本權(quán)限
GRANT CONNECT TO JGCRM_ZH;
GRANT RESOURCE TO JGCRM_ZH;
GRANT CREATE PROCEDURE TO JGCRM_ZH;
GRANT CREATE SEQUENCE TO JGCRM_ZH;
GRANT CREATE SYNONYM TO JGCRM_ZH;
GRANT CREATE TRIGGER TO JGCRM_ZH;
GRANT CREATE TYPE TO JGCRM_ZH;
GRANT CREATE VIEW TO JGCRM_ZH;
-- 為 JGCRM_ZH 用戶授予數(shù)據(jù)導(dǎo)入/導(dǎo)出的目錄權(quán)限
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO JGCRM_ZH;
-- 為 JGCRM_ZH 用戶授予會(huì)話和基本對(duì)象創(chuàng)建權(quán)限
GRANT CREATE SESSION TO JGCRM_ZH;
GRANT CREATE TABLE TO JGCRM_ZH;
GRANT CREATE PROCEDURE TO JGCRM_ZH;
GRANT CREATE ANY PROCEDURE TO JGCRM_ZH; -- 合并 CREATE PROCEDURE 和 CREATE ANY PROCEDURE
GRANT CREATE TRIGGER TO JGCRM_ZH;
-- 為 JGCRM_ZH 用戶授予分析和執(zhí)行權(quán)限
GRANT ANALYZE ANY TO JGCRM_ZH;
GRANT EXECUTE ANY PROCEDURE TO JGCRM_ZH WITH ADMIN OPTION;
-- 為 JGCRM_ZH 用戶授予額外的權(quán)限
GRANT SELECT ANY SEQUENCE TO JGCRM_ZH;
GRANT DATAPUMP_IMP_FULL_DATABASE TO JGCRM_ZH;
-- 為 JGCRM_ZH 用戶授予無限表空間權(quán)限,并設(shè)置 ADMIN OPTION
GRANT UNLIMITED TABLESPACE TO JGCRM_ZH WITH ADMIN OPTION;
這些代碼行將各種權(quán)限授予用戶 “JGCRM_ZH”:文章來源地址http://www.zghlxwxcb.cn/news/detail-691880.html
- Grant CONNECT:允許用戶連接到數(shù)據(jù)庫。
- Grant RESOURCE:為用戶提供創(chuàng)建對(duì)象的基本資源權(quán)限。
- Grant CREATE 權(quán)限:允許用戶創(chuàng)建存儲(chǔ)過程、序列、同義詞、觸發(fā)器、類型、視圖,并授予了具備管理員選項(xiàng)的無限表空間權(quán)限。
到了這里,關(guān)于CentOS 7 上安裝 Oracle 11g 數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!