本博客将向您介绍在 CentOS 7 操作系统上安装 Oracle 11g 数据库的步骤,以及在 Oracle 数据库中创建表空间和用户的脚本。
首先,我们需要安装一些必要的软件和依赖项。在终端中执行以下命令:
yum -y install xorg-x11-xauth
yum -y install libXtst
yum -y install unzip
为了确保安装的顺利进行,我们需要暂时关闭防火墙和 SELinux:
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config
# 修改 SELINUX=disabled,用于指示系统在启动时禁用 SELinux。
# 立即将 SELinux 切换到“宽松模式”,允许警告但不会阻止操作
setenforce 0
Oracle 安装过程需要一些 Swap 空间。您可以使用以下命令检查是否有足够的 Swap:
free -m
如果 Swap 空间不足,可以通过分配新的 Swap 分区来解决。
在 /etc/hosts
文件中添加主机名和 IP 地址的映射:
vi /etc/hosts
# 添加类似这样的行:192.168.20.235 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
为 Oracle 创建所需的用户和组:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
编辑/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
编辑 /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
编辑 /etc/pam.d/login
文件并添加以下内容:
vi /etc/pam.d/login
# 添加 PAM 配置
session required /lib64/security/pam_limits.so
session required pam_limits.so
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
创建 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
将 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
编辑 ~/.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
编辑 /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
执行安装命令,并根据静默安装文件进行安装:
cd /opt/oracle/database
./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
以 root 用户身份执行以下两个脚本:
/u01/oraInventory/orainstRoot.sh
/u01/oracle/product/11.2.0/root.sh
使用静默方式安装监听器:
netca /silent /responseFile /opt/oracle/database/response/netca.rsp
编辑 /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
到此处,您的 Oracle 11g 数据库已经成功安装和配置。
当然可以,以下是对你提供的脚本的Markdown博客说明:
首先,脚本创建了两个不同类型的表空间:
CREATE TABLESPACE PIS
LOGGING
DATAFILE '/u01/oracle/oradata/pis.dbf'
SIZE 2048m
AUTOEXTEND ON
NEXT 512m MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
这段代码创建了名为 “PIS” 的表空间,其中包含以下设置:
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” 的临时表空间,与上述过程类似,包含以下设置:
接下来,脚本创建一个名为 “PIS” 的用户,并为该用户分配了一系列权限:
create user PIS identified by PIS
default tablespace pis
temporary tablespace pis_temp
profile DEFAULT;
这段代码创建了一个用户 “PIS”,具有以下属性:
以下部分将各种权限授予了用户 “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”: