本博客将向您介绍在 CentOS 7 操作系统上安装 Oracle 11g 数据库的步骤,以及在 Oracle 数据库中创建表空间和用户的脚本。
1. 安装必要的软件和依赖
首先,我们需要安装一些必要的软件和依赖项。在终端中执行以下命令:
yum -y install xorg-x11-xauth
yum -y install libXtst
yum -y install unzip
2. 关闭防火墙和 SELinux
为了确保安装的顺利进行,我们需要暂时关闭防火墙和 SELinux:
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config
# 修改 SELINUX=disabled,用于指示系统在启动时禁用 SELinux。
# 立即将 SELinux 切换到“宽松模式”,允许警告但不会阻止操作
setenforce 0
3. 检查并创建 Swap 分区
Oracle 安装过程需要一些 Swap 空间。您可以使用以下命令检查是否有足够的 Swap:
free -m
如果 Swap 空间不足,可以通过分配新的 Swap 分区来解决。
4. 修改主机名和 hosts 文件
在 /etc/hosts
文件中添加主机名和 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会缺少compat-libstdc+±33-3.2.3,参考这篇博客解决
解决在CENTOS8安装Oracle数据库时缺失compat-libstdc+±33-3.2.3的问题
确认安装无误
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. 创建用户和组
为 Oracle 创建所需的用户和组:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
7. 修改内核参数
编辑/etc/sysctl.conf
增加以下内容,其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte
vi /etc/sysctl.conf
# 增加以下内容
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
# 修改完之后立即执行修改:
sysctl -p
8. 修改用户限制
编辑 /etc/security/limits.conf
文件并添加以下内容:
vi /etc/security/limits.conf
# 添加用户限制设置
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
文件并添加以下内容:
vi /etc/pam.d/login
# 添加 PAM 配置
session required /lib64/security/pam_limits.so
session required pam_limits.so
10. 修改/etc/profile文件
vi /etc/profile
# 添加以下内容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
# 执行生效
source /etc/profile
11. 创建必要的目录
创建 Oracle 所需的目录并设置权限:
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 后执行以下命令
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用户环境变量
编辑 ~/.bash_profile
文件并添加 Oracle 相关的环境变量:
vi ~/.bash_profile
# 添加 Oracle 环境变量
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
# 执行以下命令加载环境变量
source ~/.bash_profile
14. 配置静默安装文件
编辑 /opt/oracle/database/response/db_install.rsp
文件,并根据您的需求设置选项。
vi /opt/oracle/database/response/db_install.rsp
# 需要设置的选项如下:
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 数据库软件
执行安装命令,并根据静默安装文件进行安装:
cd /opt/oracle/database
./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
centos8需要安装如下
yum install libnsl -y
否则会报错如下
[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 用户身份执行以下两个脚本:
/u01/oraInventory/orainstRoot.sh
/u01/oracle/product/11.2.0/root.sh
17. 配置监听器
使用静默方式安装监听器:
netca /silent /responseFile /opt/oracle/database/response/netca.rsp
18. 创建 Oracle 数据库
编辑 /opt/oracle/database/response/dbca.rsp
文件,并设置数据库相关选项。
vi /opt/oracle/database/response/dbca.rsp
# 修改如下内容
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,物理内存2G*80%。
TOTALMEMORY= "40960"
# 执行如下命令安装
dbca -silent -responseFile /opt/oracle/database/response/dbca.rsp
19. 完成安装
到此处,您的 Oracle 11g 数据库已经成功安装和配置。
20. 创建表空间
登录数据库
sqlplus / as sysdba
首先,脚本创建了两个不同类型的表空间:
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;
这段代码创建了名为 “JGCRM_ZH” 的表空间,其中包含以下设置:
- Logging:指示数据库更改将记录在重做日志中。
- Datafile:指定与表空间关联的数据文件的位置和名称。
- Size:将表空间的初始大小设置为 2048 兆字节。
- Autoextend:启用数据文件的自动扩展。
- Next:指定在需要时扩展数据文件的大小。
- Maxsize Unlimited:表示数据文件可以无限增长,没有特定的上限。
- Extent Management Local:使用本地区段管理来管理表空间。
20.2 临时表空间 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;
这段代码创建了名为 “JGCRM_ZH_TEMP” 的临时表空间,与上述过程类似,包含以下设置:
- Tempfile:指定临时数据文件的位置和名称。
- Size:将临时表空间的初始大小设置为 512 兆字节。
- Autoextend、Next、Maxsize:与 JGCRM_ZH 表空间中的设置类似。
- Extent Management Local:再次使用本地区段管理来管理临时表空间。
21. 创建用户
接下来,脚本创建一个名为 “JGCRM_ZH” 的用户,并为该用户分配了一系列权限:
create user JGCRM_ZH identified by JGCRM_ZH default tablespace jgcrm_zh temporary tablespace jgcrm_zh_temp profile DEFAULT;
这段代码创建了一个用户 “JGCRM_ZH”,具有以下属性:
- Identified by JGCRM_ZH:将用户的密码设置为 "JGCRM_ZH。
- Default Tablespace:将用户的默认表空间设置为 “jgcrm_zh”。
- Temporary Tablespace:将用户的临时表空间设置为 “jgcrm_zh_temp”。
- Profile:将默认配置文件 “DEFAULT” 分配给用户。
22. 授予权限
以下部分将各种权限授予了用户 “JGCRM_ZH”:文章来源:https://www.toymoban.com/news/detail-691880.html
-- 为 JGCRM_ZH 用户授予基本权限
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 用户授予数据导入/导出的目录权限
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO JGCRM_ZH;
-- 为 JGCRM_ZH 用户授予会话和基本对象创建权限
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 用户授予分析和执行权限
GRANT ANALYZE ANY TO JGCRM_ZH;
GRANT EXECUTE ANY PROCEDURE TO JGCRM_ZH WITH ADMIN OPTION;
-- 为 JGCRM_ZH 用户授予额外的权限
GRANT SELECT ANY SEQUENCE TO JGCRM_ZH;
GRANT DATAPUMP_IMP_FULL_DATABASE TO JGCRM_ZH;
-- 为 JGCRM_ZH 用户授予无限表空间权限,并设置 ADMIN OPTION
GRANT UNLIMITED TABLESPACE TO JGCRM_ZH WITH ADMIN OPTION;
这些代码行将各种权限授予用户 “JGCRM_ZH”:文章来源地址https://www.toymoban.com/news/detail-691880.html
- Grant CONNECT:允许用户连接到数据库。
- Grant RESOURCE:为用户提供创建对象的基本资源权限。
- Grant CREATE 权限:允许用户创建存储过程、序列、同义词、触发器、类型、视图,并授予了具备管理员选项的无限表空间权限。
到了这里,关于CentOS 7 上安装 Oracle 11g 数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!