一、添加用户
添加oracle用户并设置用户密码。
adduser oracle
passwd oracle
添加oinstall和dba组。
groupadd oinstall
groupadd dba
设置oracle用户的主组为oinstall附加组为dba。
usermod -g oinstall -G dba oracle
二、新建目录并设置权限
新建u01目录。
mkdir u01
打开/etc/fstab文件,添加以下内容:
/dev/sdb1 u01 xfs defaults 0 0
重启或执行以下命令,将sdb1分区挂载到u01目录。
mount -a
新建oracle和oraInventory目录。
mkdir -p u01/app/oracle
mkdir -p u01/app/oraInventory
分别将它们指定为dba和oinstall组。
chown -R oracle:dba u01/app/oracle
chown -R oracle:oinstall u01/app/oraInventory
三、配置环境变量
打开/home/oracle/.bash_profile文件,配置环境变量。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
四、安装Oracle Database 19c
从https://www.oracle.com/database/technologies/oracle-database-software-downloads.html选择Linux x86-64(https://download.oracle.com/otn/linux/oracle19c/190000/LINUX.X64_193000_db_home.zip)用迅雷下载Oracle Database 19c,使用WinSCP(https://winscp.net/eng/index.php)上传到Linux。新建dbhome_1目录并解压LINUX.X64_193000_db_home.zip。
mkdir -p u01/app/oracle/product/19.3/dbhome_1
unzip LINUX.X64_193000_db_home.zip -d u01/app/oracle/product/19.3/dbhome_1
指定所有者和组。
chown -R oracle:dba u01/app/oracle
使用oracle用户登录CentOS 7图形界面,打开终端执行以下命令运行runInstaller安装脚本。
/u01/app/oracle/product/19.3/dbhome_1/runInstaller
然后在弹出的安装界面参考以下步骤安装:
1.配置选项,选择“仅设置软件”;
- 配置选项
2.数据库安装选项;
数据库安装选项
3.数据库版本;
数据库版本
4.安装位置;
安装位置
5.创建产品清单;
创建产品清单
6.操作系统组,数据库操作员组选择“dba”;
操作系统组
7.Root 脚本执行,勾选“自动运行配置脚本”,使用“root”用户身份证明并输入口令;
Root 脚本执行
8.先决条件检查,修补并再次检查,对于不可修复的需要手动修复后重新检查;
先决条件检查
9.概要;
概要
10.安装产品,点击“是”继续;
安装产品
11.完成。
完成
五、监听程序与本地 Net 服务名配置
执行以下命令配置监听程序与本地Net服务名:
netca
六、创建数据库
执行以下命令创建数据库:
dbca
七、设置开机自启动
打开/etc/oratab文件,将orcl:/u01/app/oracle/product/19.3/dbhome_1:N修改为orcl:/u01/app/oracle/product/19.3/dbhome_1:Y。然后再打开/etc/rc.d/rc.local文件,添加以下内容:
su oracle -lc "/u01/app/oracle/product/19.3/dbhome_1/bin/lsnrctl start"
su oracle -lc "/u01/app/oracle/product/19.3/dbhome_1/bin/dbstart"
执行以下命令使rc.local文件具有可执行权限:
chmod +x etc/rc.d/rc.local
八、开放端口
执行以下命令开放1521端口:
firewall-cmd --zone=public --add-port=1521/tcp --permanent
重新加载firewalld,使规则立即生效。
firewall-cmd --reload
九、问题及解决方法
以下是安装时先决条件检查失败及未设置开机自启动会遇到的问题,对于ORA-12541、ORA-12514和ORA-01034问题,其实设置开机自启动后就可以不用理会了,写出来主要是一些时候方便参考。
先决条件检查失败
操作系统内核参数shmmax
要确定共享内存段的最大大小,请运行:
cat /proc/sys/kernel/shmmax
shmmax可以在/proc/sys/kernel/shmmax文件或执行以下命令(4x1024x1024x1024=4G)更改而无需重新启动。
sysctl -w kernel.shmmax = 4294967296
要使更改永久生效,请将以下内容添加到/etc/sysctl.conf文件并重新启动。
kernel.shmmax = 4294967296
交换空间大小
在分区时,如果合理分配交换分区就不会存在这个问题了,不过也可以通过添加交换文件的方式来增加交换空间大小。首先要生成2G的swapfile文件:
dd if=/dev/zero of=swapfile bs=1M count=2048
将swapfile文件格式化为交换文件。
mkswap swapfile
启用交换文件。
swapon swapfile
在/etc/fstab文件添加以下内容,以便在重新启动时启用。
/swapfile swap swap defaults 0 0
程序包
使用yum安装依赖的程序包。
ORA-12541: TNS:no listener
ORA-12541: TNS:no listener
执行以下命令,启动监听。
lsnrctl start
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
打开/u01/app/oracle/product/19.3/dbhome_1/network/admin/listener.ora文件,添加以下内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = /u01/app/oracle/product/19.3/dbhome_1)
(SID_NAME = orcl)
)
)
ORA-01034: ORACLE not available
ORA-01034: ORACLE not available
打开SQL Plus,使用sys用户强制关闭,再启动数据库。
sqlplus /nolog
conn sys/sys as sysdba
shutdown abort
startup