本博客将向您介绍在 CentOS 7 操作系统上安装 Oracle 11g 数据库的步骤,以及在 Oracle 数据库中创建表空间和用户的脚本。
1. 安装必要的软件和依赖
首先,我们需要安装一些必要的软件和依赖项。在终端中执行以下命令:
bash
yum -y install xorg-x11-xauth
yum -y install libXtst
yum -y install unzip
2. 关闭防火墙和 SELinux
为了确保安装的顺利进行,我们需要暂时关闭防火墙和 SELinux:
bash
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config
# 修改 SELINUX=disabled,用于指示系统在启动时禁用 SELinux。
# 立即将 SELinux 切换到"宽松模式",允许警告但不会阻止操作
setenforce 0
3. 检查并创建 Swap 分区
Oracle 安装过程需要一些 Swap 空间。您可以使用以下命令检查是否有足够的 Swap:
bash
free -m
如果 Swap 空间不足,可以通过分配新的 Swap 分区来解决。
4. 修改主机名和 hosts 文件
在 /etc/hosts
文件中添加主机名和 IP 地址的映射:
bash
vi /etc/hosts
# 添加类似这样的行:192.168.20.235 oracle
5. 安装 Oracle 依赖包
安装 Oracle 所需的依赖包:
bash
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
确认安装无误
bash
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 创建所需的用户和组:
bash
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
7. 修改内核参数
编辑/etc/sysctl.conf
增加以下内容,其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte
bash
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
文件并添加以下内容:
bash
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
文件并添加以下内容:
bash
vi /etc/pam.d/login
# 添加 PAM 配置
session required /lib64/security/pam_limits.so
session required pam_limits.so
10. 修改/etc/profile文件
bash
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 所需的目录并设置权限:
bash
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
下:
bash
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 相关的环境变量:
bash
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
文件,并根据您的需求设置选项。
bash
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 数据库软件
执行安装命令,并根据静默安装文件进行安装:
bash
cd /opt/oracle/database
./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
16. 完成安装步骤
以 root 用户身份执行以下两个脚本:
bash
/u01/oraInventory/orainstRoot.sh
/u01/oracle/product/11.2.0/root.sh
17. 配置监听器
使用静默方式安装监听器:
bash
netca /silent /responseFile /opt/oracle/database/response/netca.rsp
18. 创建 Oracle 数据库
编辑 /opt/oracle/database/response/dbca.rsp
文件,并设置数据库相关选项。
bash
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 表空间
sql
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
sql
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" 的用户,并为该用户分配了一系列权限:
sql
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":
sql
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 权限:允许用户创建存储过程、序列、同义词、触发器、类型、视图,并授予了具备管理员选项的无限表空间权限。