Oracle19C-CentOS7单实例部署

一、硬盘分区/LVM

Pre: 参考初始结构/系统安装:

Disk 参考空间 备注
/dev/sda 200G 引导分区、SWAP分区、Linux根目录、/u01
/dev/sdb 1000G /u02 (oradata orabackup)

对/dev/sda分区:

使用LVM

不使用额外的/home分区:

/u01使用额外的卷组app:

总览,网络部分按需设置。

不额外创建用户


使用 Ctrl+Alt+F2 切换命令行终端

使用yum remove gnome-initial-setup.x86_64后重启跳过gnome初始化

后续操作使用root用户登录至图形界面或使用SSH连接

当前参考分区结构:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  200G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
├─sda2            8:2    0   80G  0 part 
│ ├─centos-root 253:0    0   60G  0 lvm  /
│ └─centos-swap 253:1    0   20G  0 lvm  [SWAP]
└─sda3            8:3    0  119G  0 part 
  └─app-u01     253:2    0  119G  0 lvm  /u01
sdb               8:16   0 1000G  0 disk

1.创建单一物理卷(直接使用整个sdb磁盘)

pvcreate /dev/sdb

2.创建卷组data

vgcreate data /dev/sdb
vgdisplay data  # 验证卷组

3.创建oradataorabackup逻辑卷

# 创建逻辑卷(直接从卷组分配)# 例为创建400G的oradata逻辑卷
lvcreate -L 400G -n oradata data
# 创建600G的orabackup逻辑卷(使用剩余空间)
lvcreate -n orabackup -l 100%FREE data
# 验证逻辑卷创建
lvs --units G  # 应显示oradata和orabackup大小

4:格式化逻辑卷(XFS文件系统)

mkfs.xfs /dev/data/oradata
mkfs.xfs /dev/data/orabackup

5:创建挂载点并挂载

mkdir -p /u02/oradata
mkdir -p /u02/orabackup
mount /dev/data/oradata /u02/oradata
mount /dev/data/orabackup /u02/orabackup

6:配置永久挂载

cat >> /etc/fstab << EOF
/dev/mapper/data-oradata  /u02/oradata   xfs    defaults   0 0
/dev/mapper/data-orabackup  /u02/orabackup xfs    defaults   0 0
EOF

结果验证

lsblk  # 应显示sdb整个磁盘属于data卷组,含两个逻辑卷
df -hT /u02/oradata /u02/orabackup  # 验证挂载

参考结果示例:

[root@localhost ~]# df -hT /u02/oradata /u02/orabackup
Filesystem                 Type  Size  Used Avail Use% Mounted on
/dev/mapper/data-oradata   xfs   400G   33M  400G   1% /u02/oradata
/dev/mapper/data-orabackup xfs   600G   33M  600G   1% /u02/orabackup
[root@localhost ~]# lsblk
NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                8:0    0  200G  0 disk 
├─sda1             8:1    0    1G  0 part /boot
├─sda2             8:2    0   80G  0 part 
│ ├─centos-root  253:0    0   60G  0 lvm  /
│ └─centos-swap  253:1    0   20G  0 lvm  [SWAP]
└─sda3             8:3    0  119G  0 part 
  └─app-u01      253:2    0  119G  0 lvm  /u01
sdb                8:16   0 1000G  0 disk 
├─data-oradata   253:3    0  400G  0 lvm  /u02/oradata
└─data-orabackup 253:4    0  600G  0 lvm  /u02/orabackup

二、基础环境配置

1. 修改主机名称并修改hosts

例修改主机名称为testdb

sudo hostnamectl set-hostname testdb

并在/etc/hosts添加解析到外部地址

vi /etc/hosts


# 修改文件内容
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.145.15 testdb     # 添加hostname解析

2. 关闭selinux

vi /etc/sysconfig/selinux
# 修改 SELINUX=disabled

3. 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

4. 内核参数调整

vi /etc/sysctl.conf

# 内存管理
kernel.shmmax = 439804651110      # 单位字节, 内存的80%, 例为512GB内存的80%  512*1024^3*0.8
kernel.shmall = 1073741824        # shmmax/4096
kernel.shmmni = 4096              # 保持默认
kernel.sem = 250 32000 100 128    # 保持默认
vm.nr_hugepages = 153600          # 根据SGA动态调整:例sga_gb=300 hugepages=$(($sga_gb * 1024 / 2))
vm.min_free_kbytes = 5242880      # 单位KB, 内存的1%, 例为512GB内存的1%

# 文件系统
fs.file-max = 6815744
fs.aio-max-nr = 3145728

# 网络优化
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.core.somaxconn = 4096
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_timestamps = 0          # 关闭防冲突
net.ipv4.icmp_echo_ignore_broadcasts = 1

# 禁用IPv6
net.ipv6.conf.all.disable_ipv6 = 1

说明:
以系统内存512G为例
SGA+PGA <= 物理内存*80%
SGA=300 (物理内存*60%)
PGA=100 (物理内存*20%)

5. 检查透明大页是否禁用

cat /sys/kernel/mm/transparent_hugepage/enabled
# 文件内容
[always] madvise never  ---代表已经启用透明大页
always madvise [never]  ---代表已经禁用透明大页

6. 修改grub参数

# 检查并修改文件
vi /etc/default/grub

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet transparent_hugepage=never numa=off"


# 执行命令
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

7. 禁用ZeroConf零配置网络

# 禁用 ZeroConf(零配置网络),防止系统在 DHCP 失败时自动分配 169.254.x.x 的 IP 地址
echo "NOZEROCONF=yes" >> /etc/sysconfig/network

8. 设置软硬件限制参数

vi /etc/security/limits.conf

# 文件内容添加
oracle    soft     core 0
oracle    hard     core 0
oracle    soft     nproc 16384
oracle    hard     nproc 65536
oracle    soft     nofile 65536
oracle    hard     nofile 65536
oracle    soft     memlock unlimited
oracle    hard     memlock unlimited
oracle    soft     stack 10240
oracle    hard     stack 32768

9. pam限制

vi /etc/pam.d/login

# 文件内容添加
session required /lib64/security/pam_limits.so
session required pam_limits.so

10. 设置oracle默认shell

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

11. 设置进程数和文件描述符数的资源限制

vi /etc/csh.login

# 文件内容添加
if ( $USER == "oracle" ) then
        limit maxproc 16384
        limit descriptors 65536
endif

12. 设置NTP服务器

vi /etc/chrony.conf

# 文件内容添加
server 10.2.11.131 iburst
systemctl enable --now chronyd

以上参数设置完成后,reboot操作系统;

三、 ORACLE基础环境配置

1. 创建组和用户

groupadd -g 701 oinstall
groupadd -g 702 dba 
groupadd -g 703 oper
useradd -u 401 -g oinstall -G dba,oper -m oracle

passwd oracle  # (设置oracle用户密码)

2. 创建oracle基础目录/赋权

mkdir -p /u01/software/
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
chown -R oracle:oinstall /u01/
chmod -R 775 /u01/
chown -R oracle:oinstall /u02/
chmod -R 775 /u02/
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory

3. 安装oracle相关依赖

19CDependPackage文件夹上传至/u01/software/下。

yum localinstall /u01/software/19CDependPackage/*.rpm -y

在这之后的操作在oracle用户下进行。su - oracle

4. 配置oracle环境变量

vi ~/.bash_profile

# 文件内容添加
############################################################################
#Oracle
############################################################################
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_TERM=xterm
export ORACLE_OWNER=oracle
export ORACLE_SID=testdb  # SID,按实际修改
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$PATH

############################################################################
#Configure alias
############################################################################
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias ggsci='rlwrap ggsci'
# 执行命令
source ~/.bash_profile

5. 启动图形化安装界面

db-klone-Linux-x86-64-19000241015.zip上传至/u01/software/下。

cd /u01/software/
unzip db-klone-Linux-x86-64-19000241015.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
cd /u01/app/oracle/product/19.0.0/dbhome_1
a: 远程桌面环境
export DISPLAY=192.168.145.1:0.0  # 可双向连接的本机IP
/u01/app/oracle/product/19.0.0/dbhome_1/runInstaller
b: 本地桌面环境

oracle用户登录Gnome桌面环境

export DISPLAY=:0.0
/u01/app/oracle/product/19.0.0/dbhome_1/runInstaller

6. 安装过程配置







先决条件检查:

对于系统内核参数等Warning,使用Fix & Check Again按钮按引导修复。

7. 监听配置

# Oracle用户执行
netca





如有端口占用错误:

# 先停止实例默认的监听器服务
lsnrctl stop

# 关闭提示框后Next



8. 创建数据库实例

# Oracle用户执行
dbca







SGA/PGA 根据实际系统内存选取。
说明:
以系统内存512G为例
SGA+PGA <= 物理内存*80%
SGA=300 (物理内存*60%)
PGA=100 (物理内存*20%)









Document Modified
@Wayne Wu D20250468