目录
- 一、前言
- 二、安装前准备工作
- 1、硬件要求
- 2、软件要求
- 3、关闭透明页
- 4、配置主机名解析
- 5、创建所需的操作系统组和用户
- 6、配置Oracle软件安装用户的资源限制
- 7、为Linux配置内核参数
- 8、创建所需的软件目录并授权
- 9、关闭numa功能
- 10、禁用SELINUX
- 11、关闭防火墙
- 12、修改 /dev/shm大小
- 13、安装Oracle数据库所需软件包
- 14、配置Oracle软件所有者环境
- 15、重启操作系统
- 三、安装Oracle数据库软件
- 四、配置监听
- 五、使用DBCA创建数据库
- 1、启动数据库配置助手
- 2、创建数据库
- 3、创建模式
- 4、部署类型
- 5、数据库标识
- 6、存储选项
- 7、恢复区和归档配置
- 8、监听配置
- 9、数据库组件选择
- 10、初始化参数
- 11、管理选项
- 12、数据库凭证
- 13、创建选项
- 14、创建数据库
- 15、安装完成
- 六、数据库管理入门
- 1、启用SQL*Plus从命令行连接到数据库
- 2、查看数据库基础信息
- 3、查看数据库版本
- 4、查看数据库字符集
- 5、查看数据库块大小
- 6、实例的启动与关闭
- 7、取消180天密码过期限制
- 8、关闭审计
- 9、调整db_files
- 七、总结
- 八、写在后面
一、前言
欢迎阅读本篇技术文档,本文将为您提供关于在Red Hat Enterprise Linux 7.6操作系统上安装Oracle 12CR2数据库的详细过程。在开始之前,请确保您已经具备一定的Linux系统管理和Oracle数据库知识。本文档假设您对Linux操作系统和Oracle数据库有一定的了解,并已经熟悉基本的命令行操作。希望本文档能够为您提供有价值的信息,并使您能够成功安装和配置Oracle 12CR2数据库。
二、安装前准备工作
1、硬件要求
1.1、内存要求
最低:1 GB 内存
建议:2 GB 或更多内存
[root@hellodba ~]# grep MemTotal /proc/meminfo
MemTotal: 2851852 kB
1.2、Swap Space
| RAM | Swap Space |
|---|---|
| 在1GB到2GB之间 | RAM大小的1.5倍 |
| 2GB到16GB之间 | 等于RAM的大小 |
| 超过16GB | 等于16GB |
[root@hellodba ~]# grep SwapTotal /proc/meminfo
SwapTotal: 3170300 kB
1.3、Automatic Memory Management
从Oracle Database 11g开始,自动内存管理功能需要更多的共享内存(/dev/shm)和文件描述符。在Linux系统中,/dev/shm目录是一个特殊的目录,用于实现共享内存,默认是系统内存的50%。它是一个临时文件系统,通常位于RAM(内存)中,而不是硬盘上,并且在系统重启时会被清空。因此,/dev/shm目录只适合用于短期存储和进程间通信,不能用于长期存储数据。/dev/shm大小应该大于SGA+PGA的总内存大小,在Linux系统上,如果操作系统 /dev/shm装载大小对于Oracle系统全局区域(SGA)和程序全局区域(PGA)来说太小,则会导致ORA-00845错误。
1.4、磁盘空间要求
目录/tmp至少有1GB空间,如果小于所需空间,请从目录中删除不必要的文件满足磁盘空间需求。
[root@hellodba ~]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 17G 4.8G 13G 29% /
| 安装类型 | 软件文件的磁盘空间要求(GB) |
|---|---|
| 企业版 | 7.2 |
| 标准版 | 7.2 |
| Grid | 8.6 |
[root@hellodba ~]# df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 50G 33M 50G 1% /u01
2、软件要求
2.1、适用于 Linux x86-64 操作系统要求
//需要以下或更高版本的操作系统:
Supported Oracle Linux 8 Distributions for x86-64
Supported Oracle Linux 7 Distributions for x86-64
Supported Oracle Linux 6 Distributions for x86-64
Supported Red Hat Enterprise Linux 8 Distributions for x86-64
Supported Red Hat Enterprise Linux 7 Distributions for x86-64
Supported Red Hat Enterprise Linux 6 Distributions for x86-64
Supported SUSE Linux Enterprise Server 15 Distributions for x86-64
Supported SUSE Linux Enterprise Server 12 Distributions for x86-64
Supported NeoKylin Linux Advanced Server 7 Distributions for x86-64
[root@hellodba ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
2.2、适用于 Linux x86-64 内核要求
Oracle Linux 8.2 with the Unbreakable Enterprise Kernel 6: 5.4.17-2011.1.2.el8uek.x86_64 or later
Oracle Linux 8.2 with the Red Hat Compatible Kernel: 4.18.0-193.19.1.el8_2.x86_64 or later
Oracle Linux 7 with the Unbreakable Enterprise Kernel 3: 3.8.13-35.3.1.el7uek.x86_64 or later
Oracle Linux 7.2 with the Unbreakable Enterprise Kernel 4: 4.1.12-32.2.3.el7uek.x86_64 or later
Oracle Linux 7 with the Red Hat Compatible kernel: 3.10.0-123.el7.x86_64 or later
Oracle Linux 6.4 with the Unbreakable Enterprise Kernel 2: 2.6.39-400.211.1.el6uek.x86_64or later
Oracle Linux 6.6 with the Unbreakable Enterprise Kernel 3: 3.8.13-44.1.1.el6uek.x86_64 or later
Oracle Linux 6.8 with the Unbreakable Enterprise Kernel 4: 4.1.12-37.6.2.el6uek.x86_64 or later
Oracle Linux 6.4 with the Red Hat Compatible kernel: 2.6.32-358.el6.x86_64 or later
Red Hat Enterprise Linux 8.2: 4.18.0-193.19.1.el8_2.x86_64 or later
Red Hat Enterprise Linux 7: 3.10.0-123.el7.x86_64 or later
Red Hat Enterprise Linux 6.4: 2.6.32-358.el6.x86_64 or later
SUSE Linux Enterprise Server 15: 4.12.14-25-default or later
SUSE Linux Enterprise Server 12 SP1: 3.12.49-11.1 or later
NeoKylin Linux Advanced Server 7: 3.10.0-693.el7.x86_64 or later
[root@hellodba ~]# uname -r
3.10.0-957.el7.x86_64
2.3、适用于 Linux x86-64 的 Oracle 数据库包要求
//Packages for Oracle Linux 7
bc
binutils-2.23.52.0.1-12.el7 (x86_64)
compat-libcap1-1.10-3.el7 (x86_64)
compat-libstdc++-33-3.2.3-71.el7 (i686)
compat-libstdc++-33-3.2.3-71.el7 (x86_64)
glibc-2.17-36.el7 (i686)
glibc-2.17-36.el7 (x86_64)
glibc-devel-2.17-36.el7 (i686)
glibc-devel-2.17-36.el7 (x86_64)
ksh
libaio-0.3.109-9.el7 (i686)
libaio-0.3.109-9.el7 (x86_64)
libaio-devel-0.3.109-9.el7 (i686)
libaio-devel-0.3.109-9.el7 (x86_64)
libX11-1.6.0-2.1.el7 (i686)
libX11-1.6.0-2.1.el7 (x86_64)
libXau-1.0.8-2.1.el7 (i686)
libXau-1.0.8-2.1.el7 (x86_64)
libXi-1.7.2-1.el7 (i686)
libXi-1.7.2-1.el7 (x86_64)
libXtst-1.2.2-1.el7 (i686)
libXtst-1.2.2-1.el7 (x86_64)
libXrender (i686)
libXrender (x86_64)
libXrender-devel (i686)
libXrender-devel (x86_64)
libgcc-4.8.2-3.el7 (i686)
libgcc-4.8.2-3.el7 (x86_64)
libstdc++-4.8.2-3.el7 (i686)
libstdc++-4.8.2-3.el7 (x86_64)
libstdc++-devel-4.8.2-3.el7 (i686)
libstdc++-devel-4.8.2-3.el7 (x86_64)
libxcb-1.9-5.el7 (i686)
libxcb-1.9-5.el7 (x86_64)
make-3.82-19.el7 (x86_64)
nfs-utils-1.3.0-0.21.el7.x86_64 (for Oracle ACFS)
net-tools-2.0-0.17.20131004git.el7 (x86_64) (for Oracle RAC and Oracle Clusterware)
smartmontools-6.2-4.el7 (x86_64)
sysstat-10.1.5-1.el7 (x86_64)
3、关闭透明页
从Red Hat Enterprise Linux 6、Oracle Linux 6、SUSE 11和Unbreakable Enterprise Kernel 2(UEK2)内核开始,Transparent HugePages在运行时默认启用。然而,透明的HugePages可能会导致内存分配延迟,因为内存是动态分配的。因此,甲骨文建议您在所有甲骨文数据库服务器上禁用透明HugePages,以避免性能问题。
//查看透明页是否启用,显示[always]表示Transparent HugePages是启用的
[root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
[root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
//禁用透明页
[root@hellodba ~]# vi /etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@hellodba ~]# chmod +x /etc/rc.d/rc.local
[root@hellodba ~]# reboot
//透明页已关闭
[root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always defer defer+madvise madvise [never]
4、配置主机名解析
[root@hellodba ~]# echo "192.168.0.55 hellodba" >> /etc/hosts
[root@hellodba ~]# ping hellodba
PING hellodba (192.168.0.55) 56(84) bytes of data.
64 bytes from hellodb (192.168.0.55): icmp_seq=1 ttl=64 time=0.013 ms
5、创建所需的操作系统组和用户
[root@hellodba ~]# /usr/sbin/groupadd -g 54321 oinstall
[root@hellodba ~]# /usr/sbin/groupadd -g 54322 dba
[root@hellodba ~]# /usr/sbin/groupadd -g 54323 oper
[root@hellodba ~]# /usr/sbin/groupadd -g 54324 backupdba
[root@hellodba ~]# /usr/sbin/groupadd -g 54325 dgdba
[root@hellodba ~]# /usr/sbin/groupadd -g 54326 kmdba
[root@hellodba ~]# useradd -u 54321 -g oinstall -G dba,backupdba,dgdba,kmdba,oper oracle
[root@hellodba ~]# echo "hellodba" | passwd --stdin oracle
[root@hellodba ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba)
6、配置Oracle软件安装用户的资源限制
[root@hellodba ~]# vi /etc/security/limits.conf
#ORACLE SETTING
#打开文件描述符大小
oracle soft nproc 16384
oracle hard nproc 16384
#单个用户可用的进程数
oracle soft nofile 16384
oracle hard nofile 65536
#进程堆栈段的大小
oracle soft stack 10240
oracle hard stack 32768
7、为Linux配置内核参数
在Oracle数据库安装期间,可以生成并运行修复脚本,以检查和设置成功安装数据库所需的内核参数值。建议手动预先修改好。
在Oracle数据库安装期间,可以生成并运行修复脚本,以检查和设置成功安装数据库所需的内核参数值。建议手动预先修改好。
[root@hellodba ~]# vi /etc/sysctl.conf
#ORACLE SETTING
#可以拥有的异步IO请求数
fs.aio-max-nr = 1048576
#允许文件句柄的最大数目
fs.file-max = 6815744
#信号参数
kernel.sem = 250 32000 100 128
#IP V4的端口范围
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 = 1048586
#当系统检测到oops时,重新启动系统,以便系统能够重新初始化恢复正常工作
kernel.panic_on_oops = 1
#单个共享内存段最大值,让数据库在一个共享段里面的可以容纳整个SGA
#最大值:比物理内存小1字节
#(kernel.shmmax = 物理内存*1024*1024*1024-1)
kernel.shmmax = 2684354560
#控制共享内存页数(kernel.shmall = shmmax/4096)
kernel.shmall = 655360
#共享内存的最大数量
kernel.shmmni = 4096
#当系统内存使用90%的时候开始使用交换页面
vm.swappiness=10
#默认是100,增大这个参数设置了虚拟内存回收directory和i-node缓冲的倾向,这个值越大。越容易回收。
vm.vfs_cache_pressure=200
8、创建所需的软件目录并授权
[root@hellodba ~]# mkdir -p /u01/app/oraInventory
[root@hellodba ~]# mkdir -p /u01/app/oracle
[root@hellodba ~]# mkdir -p /u01/app/oracle/product/12.2.0/dbhome_1
[root@hellodba ~]# mkdir -p /soft
[root@hellodba ~]# chown -R oracle:oinstall /u01/app/oracle
[root@hellodba ~]# chown -R oracle:oinstall /u01/app/oraInventory
[root@hellodba ~]# chown -R oracle:oinstall /u01/app/oracle/product/12.2.0/dbhome_1
[root@hellodba ~]# chown -R oracle:oinstall /soft
[root@hellodba ~]# chmod -R 775 /u01
[root@hellodba ~]# chmod -R 775 /soft
9、关闭numa功能
//NUMA关闭前
[root@hellodba ~]# dmesg | grep -i numa
[ 0.000000] NUMA: Node 0 [mem 0x00000000-0x0009ffff] + [mem 0x00100000-0xbfffffff] -> [mem 0x00000000-0xbfffffff]
[ 0.000000] NUMA: Node 0 [mem 0x00000000-0xbfffffff] + [mem 0x100000000-0x1017fffff] -> [mem 0x00000000-0x1017fffff]
//关闭NUMA
[root@hellodba ~]# vi /etc/default/grub
将
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
改
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off"
[root@hellodba ~]# grub2-mkconfig -o /etc/grub2.cfg
[root@hellodba ~]# reboot
//NUMA关闭后
[root@hellodba ~]# dmesg | grep -i numa
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.10.0-957.el7.x86_64 root=UUID=0b2b469a-f4ed-42aa-919e-e02405ab8051 ro crashkernel=auto rhgb quiet numa=off
[ 0.000000] NUMA turned off
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.10.0-957.el7.x86_64 root=UUID=0b2b469a-f4ed-42aa-919e-e02405ab8051 ro crashkernel=auto rhgb quiet numa=off
10、禁用SELINUX
[root@hellodba ~]# getenforce
Enforcing
[root@hellodba ~]# vi /etc/selinux/config
将 SELINUX=enforcing
改 SELINUX= disabled
[root@hellodba ~]# setenforce 0
[root@hellodba ~]# getenforce
Permissive
11、关闭防火墙
//关闭防火墙
[root@hellodba ~]# systemctl stop firewalld
//查看防火墙状态
[root@hellodba ~]# systemctl status firewalld
//禁止防火墙开机自启动
[root@hellodba ~]# systemctl disable firewalld
12、修改 /dev/shm大小
[root@hellodba ~]# echo "none /dev/shm tmpfs defaults,size=3096m 0 0" >> /etc/fstab
[root@hellodba ~]# mount -o remount /dev/shm
[root@hellodba ~]# df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.1G 0 3.1G 0% /dev/shm
13、安装Oracle数据库所需软件包
13.1、配置YUM源
[root@hellodba ~]# mount /dev/cdrom /mnt
[root@hellodba ~]# cd /etc/yum.repos.d
[root@hellodba yum.repos.d]# rm -rf *.repo
[root@hellodba yum.repos.d]# echo "[EL]" >> hellodba.repo
[root@hellodba yum.repos.d]# echo "name=Linux 7.6 DVD" >> hellodba.repo
[root@hellodba yum.repos.d]# echo "baseurl=file:///mnt" >> hellodba.repo
[root@hellodba yum.repos.d]# echo "gpgcheck=0" >> hellodba.repo
[root@hellodba yum.repos.d]# echo "enabled=1" >> hellodba.repo
13.2、安装必要的软件包
[root@hellodba ~]# yum -y install bc* yum -y install binutils* yum -y install compat-libcap1* yum -y install compat-libstdc* yum -y install glibc* yum -y install ksh* yum -y install libaio* yum -y install libX11* yum -y install libXau* yum -y install libXi* yum -y install libXtst* yum -y install libXrender* yum -y install libgcc* yum -y install libstdc++* yum -y install libxcb* yum -y install make* yum -y install smartmontools* yum -y install sysstat*
14、配置Oracle软件所有者环境
[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ vi ~/.bash_profile
umask 022
export PS1
export TMP=/tmp
export LANG=en_US.UTF-8
export TMPDIR=$TMP
export TZ=Asia/Shanghai
export ORACLE_TERM=xterm;
export ORACLE_UNQNAME=hellodb
export ORACLE_SID=hellodb;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export NLS_LANG=AMERICAN_AMERICA.UTF-8;
export PATH=.:$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_BASE/product/12.2.0/dbhome_1/bin:$ORACLE_HOME/bin;
export THREADS_FLAG=native;
15、重启操作系统
[root@hellodba ~]# reboot
三、安装Oracle数据库软件
1、上传Oracle数据库安装软件到服务器并解压
//通过oracle用户上传Oracle数据库安装软件到服务器 /soft 目录
[oracle@hellodba ~]$ cd /soft
[oracle@hellodba soft]$ unzip -q linuxx64_12201_database.zip
2、安装数据库软件
[oracle@hellodba ~]$ cd /soft/database [oracle@hellodba database]$ ./runInstaller
2.1、配置安全更新
不接收安全更新。


2.2、安装选项
仅安装数据库软件:此选项仅安装数据库二进制文件。若要配置数据库,必须在安装软件后运行 Oracle 数据库配置助手。

2.3、数据库安装选项
选择要执行的数据库安装类型,然后单击下一步。
ingle instance database installation:此选项安装数据库和侦听器。
Oracle Real Application Clusters database installation:此选项安装 Oracle Real Application Clusters。
Oracle RAC One Node database installation:此选项安装 Oracle RAC One Node 数据库。

2.4、选择数据库版本
选择企业版或标准版,单击下一步。

2.5、指定安装位置
默认情况下显示 Oracle 基本路径。您可以根据需要更改此路径。指定 Oracle 基本数据库、软件位置,然后单击下一步。
在“软件位置”字段中,接受默认值或输入要在其中安装 Oracle 软件的 Oracle 主目录路径。目录路径不得包含空格。单击下一步。

2.6、指定Oracle安装清单目录
默认情况下显示 Oracle Inventory Directory 基本路径。您可以根据需要更改此路径。

2.7、操作系统组选择
默认情况下,操作系统组处于选中状态。您也可以手动选择。

2.8、先决条件检查
此选项验证是否满足执行数据库安装的最低系统要求。
注意:“修复并再次检查”选项会生成一个脚本,您必须以用户身份运行该脚本。此生成的脚本将某些系统参数设置为 Oracle 建议的值。

2.9、执行安装
注意:从 Oracle 数据库 11g Release 2 (11.2) 开始,您可以通过单击保存响应文件将所有安装步骤保存到响应文件中。稍后,此文件可用于静默安装。


2.10、执行配置脚本
在运行此屏幕中提到的脚本之前,不要单击“OK”。
以用户身份运行配置脚本。

[root@hellodba ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@hellodba ~]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/12.2.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :
Oracle Trace File Analyzer (TFA - User Mode) is available at :
/u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/bin/tfactl
OR
Oracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script :
/u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/install/roottfa.sh

2.11、数据库软件安装完成
单击“Close”结束安装,并退出安装程序。

四、配置监听
1、启动网络配置助手
[oracle@hellodba ~]$ netca








2、监听管理
2.1、查看监听状态
[oracle@hellodba ~]$ lsnrctl status
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 08-OCT-2023 13:00:52
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hellodba)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 08-OCT-2023 12:58:58
Uptime 0 days 0 hr. 1 min. 53 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/hellodba/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hellodba)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
2.2、关闭监听
[oracle@hellodba ~]$ lsnrctl stop
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 08-OCT-2023 13:01:18
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hellodba)(PORT=1521)))
The command completed successfully
2.3、启动监听
[oracle@hellodba ~]$ lsnrctl start
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 08-OCT-2023 13:01:36
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Starting /u01/app/oracle/product/12.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/hellodba/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hellodba)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hellodba)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 08-OCT-2023 13:01:36
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/hellodba/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hellodba)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
五、使用DBCA创建数据库
1、启动数据库配置助手
[oracle@hellodba ~]$ dbca
2、创建数据库
在“操作”窗口中,选择“创建数据库”,然后单击“下一步”以启动用于创建数据库的引导式工作流。

3、创建模式
如果选择“高级配置”,则可以自定义管理员用户帐户的存储位置、管理选项、数据库选项和不同的密码。
如果选择“典型配置”,则在数据库的选项中进行选择较少,从而可以更快地创建数据库。

4、部署类型
此窗口选择要创建的数据库的类型。
Oracle 为以下两种工作负载类型提供模板:
General Purpose or Transaction Processing(通用或事务处理)
Data Warehouse(数据仓库)
对于更复杂的环境,可以选择“Custom Database(自定义数据库)”选项。此选项不使用模板,会导致更复杂,这意味着创建数据库需要更长的时间。

5、数据库标识
在“Global Database Name(全局数据库名称)”字段中,输入数据库名称。
在 “SID ”字段中,输入系统标识符。SID 默认为数据库名称,并唯一标识运行数据库的实例。
如果启用“创建为容器数据库”选项,则会将数据库创建为可支持零个、一个或多个用户创建的可插入数据库 (PDB) 的多租户容器数据库 (CDB)。
如果不希望 DBCA 在创建 CDB 时创建 PDB,请启用“创建空容器数据库”选项。
如果希望 DBCA 在创建 CDB 时创建一个或多个 PDB,请启用“使用一个或多个 PDB 创建容器数据库”选项。然后在 PDB 数 字段中输入要创建的 PDB 数。在“PDB 名称”字段中,指定要用于创建一个或多个 PDB 的名称。创建多个 PDB 时,指定的 PDB 名称将用作要创建的 PDB 的前缀。
本实验创建非CDB模式。

6、存储选项
Use template file for database storage attributes:此选项指示 DBCA 使用模板中指定的目录信息。
Use following for the database storage attributes:此选项要求您指定数据库文件的存储位置。
使用此选项,您需要选择如何管理数据库文件:
如果选择“文件系统”,则数据库文件由操作系统的文件系统管理。
如果选择自动存储管理 (ASM),则将数据文件放在 Oracle 自动存储管理 (Oracle ASM) 磁盘组中。
如果指定“使用 Oracle 管理的文件 (OMF)”选项,Oracle 数据库将直接管理包含 Oracle 数据库的操作系统文件。为所有文件指定默认位置(称为数据库区域)。此后,Oracle 数据库会根据需要自动创建并删除此位置中的文件。选择此选项时,会将数据库文件的完整管理委派给数据库。您不再需要指定文件名、位置或大小。您还可以通过选择多路重做日志和控制文件来创建重做和联机日志文件的多个副本。

7、恢复区和归档配置
Specify Fast Recovery Area:选择此选项可指定备份和恢复区域及其目录位置和大小。
Enable Archiving:选择此选项可启用数据库联机重做日志文件的存档,这些文件可用于恢复数据库。
Oracle 建议您选择“启用存档”。选择此选项可针对软件或硬件故障更好地保护数据库。如果现在未选择此选项,则可以稍后启用存档日志模式。
本实验暂不启用存档。

8、监听配置
显示当前 Oracle 主目录中的侦听器。如果要在当前 Oracle 主目录中创建新的侦听器,可以在“监听配置”窗口中执行此操作。

9、数据库组件选择
选择要配置在数据库中使用的组件。显示为禁用的组件,要么是没安装,要么依赖于未选择的组件。

10、初始化参数
10.1、内存
Use Automatic Shared Memory Management(使用自动共享内存管理):此方法使您能够将特定数量的内存分配给 SGA和PGA。为 SGA 启用了自动共享 内存管理,并根据需要将内存分配给各个PGA。
Use Manual Shared Memory Management(使用手动共享内存管理):此方法要求您为每个 SGA 组件和PGA 输入特定值。您可以确定 SGA 内如何在 SGA 内存组件之间的分布方式。此方法适用于有经验的 Oracle 数据库管理员。
Use Automatic Memory Management(使用自动内存管理):此方法要求您在内存目标字段中设置 Oracle 系统范围的可用内存,然后系统会自动调整 SGA 的许多内存组件,并根据需要将内存分配给各个 PGA。系统还可以根据处理需求动态减少或增加分配给 SGA 和PGA 的内存总量。用于数据库实例的总内存永远不会超过您指定的内存量。
注:如果数据库实例的总物理内存大于 4 GB,则无法选择使用自动内存管理选项。请改用自动共享内存管理。自动共享内存管理根据需要自动在各个组件之间分配可用内存,使系统能够最大限度地利用所有可用的 SGA 内存。
经验值:
SGA < 物理内存 * 80% * 80%
PGA < 物理内存 * 80% * 20%

10.2、块大小和用户进程数
在此选项卡中,您可以指定可以同时连接到数据库的最小块大小和操作系统用户进程的最大数量。
Block Size(块大小): 使用此列表选择块大小,或接受默认值。Oracle数据库数据存储在指定大小的数据块中。一个数据块对应于磁盘上特定数量的物理空间字节。选择默认8192 Bytes。
Processes(进程): 指定可以同时连接到数据库的进程的最大数量。此参数的默认值是300。根据具体需要进行调整。

10.3、字符集
使用此选项卡定义数据库使用的字符集。字符集是用于在计算机屏幕上显示字符的编码方案。字符集决定了数据库中可以表示哪些语言。
Oracle建议使用Unicode(AL32UTF8)作为数据库字符集。AL32UTF8是Oracle对Unicode标准UTF-8编码的名称。Unicode标准是通用字符集,支持世界上目前使用的大多数语言。使用Unicode标准对于任何多语言技术(包括数据库处理)都是必不可少的。在创建数据库并积累生产数据后,更改数据库字符集是一个耗时且复杂的项目。因此,在安装时选择正确的字符集非常重要。即使数据库目前不存储多语言数据,但预计将在几年内存储多语言数据,为数据库字符集选择AL32UTF8通常是唯一好的决定。

10.4、连接模式
使用此窗口选择数据库模式。您可以在以下任一模式下运行数据库:
专用服务器模式: 此模式允许每个用户进程的专用服务器进程。当客户总数预计很小(例如50个或更少)时,请选择此选项。当数据库客户端通常向数据库发出持久、长期运行的请求时,您也可以选择此选项。默认情况下,数据库是为专用服务器进程配置的。
共享服务器模式: 此模式允许多个客户端连接共享数据库分配的资源池。在客户端负载预计会对内存和其他系统资源造成压力的配置中使用此模式。如果您选择共享服务器模式,那么您必须在启动数据库实例时指示要创建的服务器进程数量。

10.5、示例模式
若要在数据库中包括示例架构,请选择“Add sample schemas to the database”。

11、管理选项
Oracle Enterprise Manager 为单个数据库提供基于 Web 的管理工具,并为管理整个 Oracle 环境提供中央管理工具。
若要在本地管理数据库,请选择“Configure Enterprise Manager (EM) database express”。
本实验不配置EM管理器。

12、数据库凭证
设置管理用户SYS和SYSTEM的密码。


13、创建选项
此窗口中,可以对控制文件、数据文件、联机重做日志组等进行调整。如果对存储结构或参数不满意,则可以进行更改。
这里对Redo Log(在线重做日志)进行简单调整下:Redo Log需根据实际情况进行调整大小,如果存在大量DML操作,为了防止频繁切换日志,建议设置大点提高性能,但不是越大越好,建议切换频率在15分钟左右一次。我这里先暂设置5组200MB。


14、创建数据库
点击“Next”开始安装数据库。

注意:从 Oracle 数据库 11g Release 2 (11.2) 开始,您可以通过单击保存响应文件将所有安装步骤保存到响应文件中。稍后,此文件可用于静默安装。


15、安装完成
单击“Close”结束安装,并退出安装程序。

六、数据库管理入门
1、启用SQL*Plus从命令行连接到数据库
[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ sqlplus / as sysdba
2、查看数据库基础信息
SQL> select name,log_mode,open_mode,platform_name,db_unique_name from v$database;
NAME LOG_MODE OPEN_MODE PLATFORM_NAME DB_UNIQUE_NAME
--------------------------------------------------------------------------------------
HELLODB NOARCHIVELOG READ WRITE Linux x86 64-bit hellodb
3、查看数据库版本
SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
PL/SQL Release 12.2.0.1.0 - Production
CORE 12.2.0.1.0 Production
TNS for Linux: Version 12.2.0.1.0 - Production
NLSRTL Version 12.2.0.1.0 - Production
4、查看数据库字符集
SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%';
PARAMETER VALUE
--------------------------------------------------------------------------------
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET UTF8
5、查看数据库块大小
SQL> show parameter db_block_size
NAME TYPE VALUE
-------------------------------------------
db_block_size integer 8192
6、实例的启动与关闭
6.1、启动
[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ lsnrctl start
[oracle@hellodba ~]$ sqlplus / as sysdba
SQL> startup
6.2、关闭
[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ lsnrctl stop
[oracle@hellodba ~]$ sqlplus / as sysdba
SQL> shutdown immediate;
7、取消180天密码过期限制
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME='PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
-----------------------------------------------------------------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD 180
SQL> alter profile default limit password_life_time unlimited;
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME='PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
-----------------------------------------------------------------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
8、关闭审计
SQL> show parameter audit; NAME TYPE VALUE ----------------------------------------------------------------------------------------------- audit_file_dest string /u01/app/oracle/admin/hellodb/adump audit_sys_operations boolean FALSE audit_syslog_level string audit_trail string DB SQL> alter system set audit_trail=none scope=spfile; (重启数据库生效)
9、调整db_files
SQL> show parameter db_files;
NAME TYPE VALUE
---------------------------------------------------------------------------
db_files integer 200
SQL> alter system set db_files=1024 scope=spfile; (重启数据库生效)
七、总结
到此Red Hat Enterprise Linux 7.6 + Oracle 12CR2单机部署完毕,并进行了一些常规的设置。安装Oracle数据库需要有一定的专业知识和经验,在实际操作中,可能还会遇到其他问题和挑战,建议在进行安装之前详细阅读相关文档和指南,并确保有必要的技术支持和备份措施。希望通过本文对您搭建一套基于Red Hat Enterprise Linux 7.6 + Oracle 12CR2的数据库环境有一定帮助,祝顺利!
八、写在后面
由于本人有限的能力和知识储备,可能存在错误或疏漏之处,如有错误敬请批评指正!
公众号:Hello DBA





