CentOS 7 上安装 Oracle 11g 数据库

本博客将向您介绍在 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

确认安装无误

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下:

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
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

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 数据库已经成功安装和配置。

当然可以,以下是对你提供的脚本的Markdown博客说明:

20. 创建表空间

首先,脚本创建了两个不同类型的表空间:

20.1 PIS 表空间

CREATE TABLESPACE PIS
LOGGING
DATAFILE '/u01/oracle/oradata/pis.dbf'
SIZE 2048m
AUTOEXTEND ON
NEXT 512m MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;

这段代码创建了名为 “PIS” 的表空间,其中包含以下设置:

  • Logging:指示数据库更改将记录在重做日志中。
  • Datafile:指定与表空间关联的数据文件的位置和名称。
  • Size:将表空间的初始大小设置为 2048 兆字节。
  • Autoextend:启用数据文件的自动扩展。
  • Next:指定在需要时扩展数据文件的大小。
  • Maxsize Unlimited:表示数据文件可以无限增长,没有特定的上限。
  • Extent Management Local:使用本地区段管理来管理表空间。

20.2 临时表空间 pis_temp

CREATE TEMPORARY TABLESPACE pis_temp
TEMPFILE '/u01/oracle/oradata/pis_temp.dbf' 
SIZE 512m 
AUTOEXTEND ON
NEXT 512m MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;

这段代码创建了名为 “pis_temp” 的临时表空间,与上述过程类似,包含以下设置:

  • Tempfile:指定临时数据文件的位置和名称。
  • Size:将临时表空间的初始大小设置为 512 兆字节。
  • Autoextend、Next、Maxsize:与 PIS 表空间中的设置类似。
  • Extent Management Local:再次使用本地区段管理来管理临时表空间。

21. 创建用户

接下来,脚本创建一个名为 “PIS” 的用户,并为该用户分配了一系列权限:

create user PIS identified by PIS
  default tablespace pis
  temporary tablespace pis_temp
  profile DEFAULT;

这段代码创建了一个用户 “PIS”,具有以下属性:

  • Identified by PIS:将用户的密码设置为 “PIS”。
  • Default Tablespace:将用户的默认表空间设置为 “PIS”。
  • Temporary Tablespace:将用户的临时表空间设置为 “pis_temp”。
  • Profile:将默认配置文件 “DEFAULT” 分配给用户。

22. 授予权限

以下部分将各种权限授予了用户 “PIS”:

grant connect to PIS;
grant resource to PIS;
grant create procedure to PIS;
grant create sequence to PIS;
grant create synonym to PIS;
grant create trigger to PIS;
grant create type to PIS;
grant create view to PIS;
grant unlimited tablespace to PIS with admin option;

这些代码行将各种权限授予用户 “PIS”:

  • Grant CONNECT:允许用户连接到数据库。
  • Grant RESOURCE:为用户提供创建对象的基本资源权限。
  • Grant CREATE 权限:允许用户创建存储过程、序列、同义词、触发器、类型、视图,并授予了具备管理员选项的无限表空间权限。

猜你喜欢

转载自blog.csdn.net/qq_39997939/article/details/132590280