目录
- 一、前言
- 二、安装前准备工作
- 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、数据库创建完毕
- 六、数据库管理入门
- 1、启用SQL*Plus从命令行连接到数据库
- 2、查看数据库基础信息
- 3、查看数据库版本
- 4、查看数据库字符集
- 5、查看数据库块大小
- 6、实例的启动与关闭
- 7、取消180天密码过期限制
- 8、关闭审计
- 9、调整db_files
- 七、总结
- 八、写在后面
一、前言
本文档旨在提供在Linux 7操作系统上安装Oracle 11g数据库的详细步骤和指导。通过正确的安装和配置,您将能够在Linux环境下搭建一个稳定、可靠的Oracle数据库系统。在安装开始之前,请确保您已经阅读并理解了Oracle 11g数据库的相关文档,并且具备一定的Linux系统管理经验。通过本文档提供的步骤和指导,您将了解如何在Linux 7上安装Oracle 11g数据库,并提供实用的技巧和注意事项,祝您顺利完成Linux 7上Oracle 11g数据库的安装!
二、安装前准备工作
1、硬件要求
1.1、内存要求
最低:1 GB 内存
建议:2 GB 或更多内存
[root@hellodba ~]# grep MemTotal /proc/meminfo
MemTotal: 2851844 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) |
|---|---|
| 企业版 | 1.7 |
| 标准版 | 1.5 |
| 安装类型 | 数据文件的磁盘空间要求(GB) |
|---|---|
| 企业版 | 1.7 |
| 标准版 | 1.5 |
[root@hellodba ~]# df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 50G 7.8G 43G 16% /u01
2、软件要求
2.1、适用于 Linux x86-64 操作系统要求
//需要以下或更高版本的操作系统:
Asianux Server 3 SP2
Asianux Server 4 SP3
Oracle Linux 4 Update 7
Oracle Linux 5 Update 2 (with Red Hat Compatible Kernel)
Oracle Linux 5 Update 5
Oracle Linux 6
Oracle Linux 6 (with Red Hat Compatible Kernel)
Oracle Linux 7
Oracle Linux 7 (with Red Hat Compatible Kernel)
Red Hat Enterprise Linux 4 Update 7
Red Hat Enterprise Linux 5 Update 2
Red Hat Enterprise Linux 6
Red Hat Enterprise Linux 7
SUSE Linux Enterprise Server 10 SP2
SUSE Linux Enterprise Server 11
SUSE Linux Enterprise Server 12 SP1
NeoKylin Linux Advanced Server 6
NeoKylin Linux Advanced Server 7
[root@hellodba ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
2.2、适用于 Linux x86-64 内核要求
On Oracle Linux 4 and Red Hat Enterprise Linux 4
2.6.9 or later
On Oracle Linux 5 Update 2 with Red Hat Compatible Kernel
2.6.18 or later
On Oracle Linux 5 Update 5 with Red Hat Compatible Kernel
2.6.18 or later
On Oracle Linux 5 Update 5 with Unbreakable Enterprise Kernel
2.6.32-100.0.19 or later
On Oracle Linux 6
2.6.32-100.28.5.el6.x86_64 or later
On Oracle Linux 6 with Red Hat Compatible Kernel
2.6.32-71.el6.x86_64 or later
On Oracle Linux 7
3.8.13-33.el7uek.x86_64 or later
On Oracle Linux 7 with Red Hat Compatible Kernel
3.10.0-54.0.1.el7.x86_64 or later
On Red Hat Enterprise Linux 5 Update 2
2.6.18 or later
On Red Hat Enterprise Linux 5 Update 5
2.6.18 or later
On Red Hat Enterprise Linux 6
2.6.32-71.el6.x86_64 or later
On Red Hat Enterprise Linux 7
3.10.0-54.0.1.el7.x86_64 or later
On Asianux Server 3
2.6.18 or later
On Asianux Server 4
2.6.32-71.el6.x86_64 or later
On SUSE Linux Enterprise Server 10
2.6.16.21 or later
On SUSE Linux Enterprise Server 11
2.6.27.19 or later
On SUSE Linux Enterprise Server 12
3.12.49-11 or later
On NeoKylin Linux Advanced Server 6
2.6.32-431.el6.x86_64 or later
On NeoKylin Linux Advanced Server 7
3.10.0-327.el7.x86_64 or later
[root@hellodba ~]# uname -r
3.10.0-957.el7.x86_64
2.3、适用于 Linux x86-64 的 Oracle 数据库包要求
//Oracle Linux 7 and Red Hat Enterprise Linux 7:
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
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.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
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
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
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later
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/defrag
always madvise [never]
[root@hellodba ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always 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 501 oinstall
[root@hellodba ~]# /usr/sbin/groupadd -g 502 dba
[root@hellodba ~]# /usr/sbin/groupadd -g 503 oper
[root@hellodba ~]# /usr/sbin/useradd -u 502 -g oinstall -G dba,oper oracle
[root@hellodba ~]# echo "hellodba" | passwd --stdin oracle
[root@hellodba ~]# id oracle
uid=502(oracle) gid=501(oinstall) 组=501(oinstall),502(dba),503(oper)
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数据库安装期间,可以生成并运行修复脚本,以检查和设置成功安装数据库所需的内核参数值。建议手动预先修改好。
[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、创建所需的软件目录并授权
//Oracle Base Directory
[root@hellodba ~]# mkdir -p /u01/app/oracle
//Oracle Inventory Directory
[root@hellodba ~]# mkdir -p /u01/app/oraInventory
//Oracle Home Directory
[root@hellodba ~]# mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
//Oracle Soft
[root@hellodba ~]# mkdir -p /soft
[root@hellodba ~]# chown -R oracle:oinstall /u01
[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=cacc2dc0-9441-473d-ad25-dad067800baa 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=cacc2dc0-9441-473d-ad25-dad067800baa 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
文件系统 容量 已用 可用 已用% 挂载点
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 binutils*.x86_64
yum -y install compat-libcap1-1.10-3.el7.x86_64*
yum -y install compat-libstdc++-33*
yum -y install gcc-*
yum -y install gcc-c*
yum -y install glibc*
yum -y install glibc-devel*
yum -y install ksh*
yum -y install libaio*
yum -y install libaio-devel*
yum -y install libgcc*
yum -y install libstdc++*
yum -y install libstdc++-devel*
yum -y install libXi*
yum -y install libXtst*
yum -y install *make*
yum -y install sysstat*
yum -y install unixODBC
yum -y install elfutils-libelf*
14、配置Oracle软件所有者环境
[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ vi ~/.bash_profile
umask=022
export PS1
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_UNQNAME=hellodb
export ORACLE_SID=hellodb;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;
export ORACLE_TERM=xterm;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export NLS_LANG=AMERICAN_AMERICA.UTF8;
export LANG=en_US.UTF-8;
export PATH=.:$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_BASE/product/11.2.0/dbhome_1/bin:$ORACLE_HOME/bin;
export THREADS_FLAG=native;
[oracle@hellodba ~]$ source ~/.bash_profile
15、重启操作系统
[root@hellodba ~]# reboot
三、安装Oracle数据库软件
1、上传Oracle数据库安装软件到服务器并解压
//通过oracle用户上传Oracle数据库安装软件到服务器 /soft 目录
[root@hellodba ~]# su - oracle
[oracle@hellodba ~]$ cd /soft/
[oracle@hellodba soft]$ unzip -q p13390677_112040_Linux-x86-64_1of7.zip
[oracle@hellodba soft]$ unzip -q p13390677_112040_Linux-x86-64_2of7.zip
2、安装数据库软件
[oracle@hellodba ~]$ cd /soft/database
[oracle@hellodba database]$ ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
2.1、配置安全更新
不接收安全更新。


2.2、下载软件更新
跳过软件更新。

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

2.4、单实例数据库安装

2.5、选择产品语言

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

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

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

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

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

2.11、使用root用户执行修复脚本

[root@hellodba ~]# /tmp/CVU_11.2.0.4.0_oracle/runfixup.sh
Response file being used is :/tmp/CVU_11.2.0.4.0_oracle/fixup.response
Enable file being used is :/tmp/CVU_11.2.0.4.0_oracle/fixup.enable
Log file location: /tmp/CVU_11.2.0.4.0_oracle/orarun.log
Setting Kernel Parameters...
kernel.shmall = 655360
kernel.shmall = 2097152
2.12、执行安装
注意:从 Oracle 数据库 11g Release 2 (11.2) 开始,您可以通过单击保存响应文件将所有安装步骤保存到响应文件中。稍后,此文件可用于静默安装。



// Linux 7 安装Oracle 11g的BUG
//解决办法
[oracle@hellodba ~]$ cd $ORACLE_HOME/sysman/lib
[oracle@hellodba lib]$ cp ins_emagent.mk ins_emagent.mk.bak
[oracle@hellodba lib]$ vi ins_emagent.mk
搜索/NMECTL并添加参数如下 -lnnz11
#===========================
# emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11
#===========================

2.13、执行配置脚本
在运行此屏幕中提到的脚本之前,不要单击“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/11.2.0/dbhome_1/root.sh
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.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.
Finished product-specific root actions.

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

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








2、监听管理
2.1、查看监听状态
[oracle@hellodba ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 04-OCT-2023 17:00:03
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hellodb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 04-OCT-2023 16:59:05
Uptime 0 days 0 hr. 0 min. 57 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.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 11.2.0.4.0 - Production on 04-OCT-2023 17:00:14
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hellodb)(PORT=1521)))
The command completed successfully
2.3、启动监听
//启动监听
[oracle@hellodba ~]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 04-OCT-2023 17:00:20
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is /u01/app/oracle/product/11.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=hellodb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 04-OCT-2023 17:00:20
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/11.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、数据库模板
此窗口选择要创建的数据库的类型。
Oracle 为以下两种工作负载类型提供模板:
General Purpose or Transaction Processing(通用或事务处理)
Data Warehouse(数据仓库)
对于更复杂的环境,可以选择“Custom Database(自定义数据库)”选项。此选项不使用模板,会导致更复杂,这意味着创建数据库需要更长的时间。

4、数据库标识
在“Global Database Name(全局数据库名称)”字段中,输入数据库名称。
在 “SID ”字段中,输入系统标识符。SID 默认为数据库名称,并唯一标识运行数据库的实例。

5、管理选项
此窗口设置数据库可以使用Oracle Enterprise Manager对其进行管理。
Oracle Enterprise Manager为各个数据库提供了基于Web的管理工具,并为管理整个Oracle环境提供了集中管理工具。
此处不安装。

6、数据库凭证
为用户SYS和SYSTEM设置统一密码。


7、数据库文件位置
在此窗口中,指定希望数据库使用的存储类型,然后指定 Oracle 数据库文件的位置。
Use Database File Locations from Template:此选项指示DBCA使用模板中指定的目录信息。稍后,您可以修改数据库文件名和位置。
Use Common Location for All Database Files:此选项要求您为Oracle主目录指定一个新目录。所有数据库文件都在此位置创建。稍后,您可以修改数据库文件名和位置。
Use Oracle Managed Files:此选项指示Oracle数据库直接管理包括Oracle数据库的操作系统文件。您可以为所有文件指定默认位置,称为数据库区域。此后,Oracle数据库会根据需要自动在此位置创建和删除文件。您还可以通过选择多路重做日志和控制文件来创建重做和联机日志文件的多个副本。

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

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

10、初始化参数
10.1、内存
Typical: 这种方法只需要很少的配置,并且将内存分配为总物理系统内存的百分比。使用此设置,系统会自动调整SGA的许多内存组件,并根据需要将内存分配给单个PGA。根据处理需求,系统还可以动态减少或增加分配给SGA或聚合PGA的内存总量。用于数据库实例的总内存永远不会超过您指定的量。这种实例的自动内存调优被称为自动内存管理。
Custom: 此方法比典型选项需要更多的配置,但可以让您更好地控制数据库实例如何使用系统内存。此选项适用于更有经验的数据库管理员。您可以直接为SGA和PGA及其子结构(如共享池和缓冲缓存)指定内存大小。
选择以下选项之一进行自定义内存管理:
自动共享内存管理: 为SGA分配特定数量的内存并聚合PGA。使用此设置,为SGA启用自动共享内存管理,并根据需要将内存分配给单个PGA。
手动共享内存管理: 为每个SGA组件和聚合PGA输入特定值。这会禁用自动共享内存管理,并使您能够确定SGA内存如何在SGA内存组件之间分布。
经验值:
SGA < 物理内存 * 80% * 80%
PGA < 物理内存 * 80% * 20%

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

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

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

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

12、创建数据库



13、数据库创建完毕
单击“Exit”结束安装,并退出安装程序。

六、数据库管理入门
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 * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.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; (重启数据库生效)
七、总结
到此Oracle数据库安装完毕,并进行了一些常规的设置。安装Oracle数据库需要有一定的专业知识和经验,在实际操作中,可能还会遇到其他问题和挑战,建议在进行安装之前详细阅读相关文档和指南,并确保有必要的技术支持和备份措施。
八、写在后面
由于本人有限的能力和知识储备,可能存在错误或疏漏之处,如有错误敬请批评指正!
公众号:Hello DBA





