文章目录
前言
oracle19c 数据库安装到CentOS7系统中。
准备:Centos7系统,安装的是从阿里源镜像网下载的
下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/?spm=a2c6h.25603864.0.0.6b3e4511vYKevM
oracle19c: 从官网下载的安装包
下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
一、操作系统准备
我是在vm虚拟机中新安装了一个CentOS7系统用来实验的,
硬件配置:
1. 内存:4GB
2. 硬盘:50GB
3. 网络:桥接模式
系统安装完成
系统环境配置:
登陆用户如果不是root用户执行命令要加sudo
- oracle19c所需依赖包下载
yum install -y binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.x86_64 glibc-devel.x86_64 ksh.x86_64 libaio.x86_64 libaio-devel.x86_64 libstdc++.x86_64 libstdc++-devel.x86_64 libXi.x86_64 libXtst.x86_64 make.x86_64 sysstat.x86_64 glibc.i686
- 修改系统防火墙
#systemctl stop firewalld.service # 关闭防火墙
#systemctl disable firewalld.service # 设置开机自动关闭防火墙
#systemctl status firewalld.service # 检查防火墙状态
- 配置全局系统参数
vim /etc/porfile
============================================================================
#这个文件中存的是全局系统参数和环境变量
#配置的是oracle数据库的安装目录和服务名
#oracle
export ORACLE_HOME=/opt/oracle/product/19.3.0/db_1
export ORACLE_SID=orcl
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
- 关闭selinux
vim /etc/selinux/config 将 selinux改为 disabled
- 修改系统内核参数
vim /etc/sysctl.conf
##############
#添加如下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
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 检查是否生效
[root@localhost2 oracle]# sysctl -p
- 修改用户登陆认证配置
vim /etc/pam.d/login
###############添加如下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
- 创建 oracle 用户 ,以后操作数据库都使用这个用户 ,而不是root。
########## 创建用户和相关目录
[root@oracle ~]# /usr/sbin/groupadd oinstall
[root@oracle ~]# /usr/sbin/groupadd dba
[root@oracle ~]# /usr/sbin/groupadd oper
[root@oracle ~]# /usr/sbin/useradd -g oinstall -G dba,oper oracle
[root@oracle ~]# mkdir -p /opt/oracle/product/19.3.0/db_1
[root@oracle ~]# chown -R oracle:oinstall /opt/
[root@oracle ~]# chmod -R 775 /opt/
########创建数据、重做日志redolog、归档日志archivelog的目录 。
[root@oracle ~]# cd /opt/oracle/
[root@oracle oracle]# mkdir data
[root@oracle oracle]# mkdir redolog1
[root@oracle oracle]# mkdir redolog2
[root@oracle oracle]# mkdir archivelog1
- 设置oracle用户连接设置
vim /etc/security/limits.conf
###################添加如下内容
oracle soft nproc 131072 #Oracle用户或用户组可以拥有最多131072个进程。
oracle hard nproc 131072 #Oracle用户或用户组的最大进程数是131072。
oracle soft nofile 131072 #Oracle用户或用户组最大打开文件描述符数为131072
oracle hard nofile 131072 #Oracle用户或用户组最大打开文件描述符数为131072
oracle soft core unlimited #Oracle用户或用户组可以生成任意大小的核心文件
oracle hard core unlimited #Oracle用户或用户组可以生成任意大小的核心文件
oracle soft memlock 50000000 #Oracle用户或用户组可以锁定最多50,000,000字节的内存。
oracle hard memlock 50000000 #Oracle用户或用户组可以锁定最多50,000,000字节的内存。
9.配置 /etc/hosts 文件
##################首先看一下主机名
[root@oracle /]# hostname
oracle
##################随后看一下 IP 地址
[root@oracle /]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 177.77.77.77 netmask 255.255.255.0 broadcast 177.77.77.255
inet6 fe80::df1e:7379:a2d7:2715 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:17:c8:0f txqueuelen 1000 (Ethernet)
RX packets 129261 bytes 161022317 (153.5 MiB)
RX errors 0 dropped 36 overruns 0 frame 0
TX packets 25868 bytes 14457117 (13.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
####################最后编辑 hosts 文件
vim /etc/hosts
###################添加如下内容
177.77.77.77 oracle
- 配置oracle用户的环境变量
[root@oracle /]# vim /home/oracle/.bash_profile
#################添加如下内容
export PATH
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$LD_LIBRARY_PATH
###################退出vim后,更新环境变量
[root@oracle /] source /home/oracle/.bash_profile
####################编辑显示环境变量
如果是远程控制
export DISPLAY=服务器物理机ip地址:0.0
如果是本地
export DISPLAY=:0.0
- 将安装包上传至 $ORACLE_HOME 目录下 (即/opt/oracle/product/19.3.0/db_1目录),
改变安装包的所有者以及操作权限 。
chown -R oracle:oinstall /opt/
chmod -R 775 /opt/
二、安装 oracle 19c 软件
1.切换oracle用户,进入安装目录,解压安装包
[root@oracle /]# su - oracle
[oracle@oracle ~]$ cd $ORACLE_HOME
[oracle@oracle db_1]$ unzip LINUX.X64_193000_db_home.zip
2.安装包解压完毕
开始安装
[oracle@oracle db_1]$ ./runInstaller #打开图形化安装程序
3.创建监听器
[oracle@oracle db_1]$ netca #无脑下一步就行
4.创建数据库
[oracle@oracle db_1]$ dbca
三、安装过程可能会出现的问题
1. 执行安装程序报错,是图形化程序执行时没找到可用桌面
[oracle@oracle db_1]$ ./runInstaller
ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
检查DISPLAY是否配置正确:(本地机器正常结果应该为0.0)
[oracle@oracle db_1]$ echo $DISPLAY
0.0
######################如果不是
export DISPLAY=:0.0
如果是远程控制,正常结果应该是
export DISPLAY=服务器物理机ip地址:0.0
2. 终端中sqlplus查询数据库中数据,汉语显示为乱码
大概率是字符编码不统一的问题:
以我本机举例,
- 虚拟机的CentOS系统有自己的字符集,
- oracle数据库有自己的字符集
- sqlplus工具界面(客户端)有自己的字符集
- 如果要通过远程navicat等工具连接,navicat也有自己的字符集
这几个的字符集需要统一,否则会出现乱码
CentOS查询字符编码命令:
[oracle@oracle ~]$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
oarcle数据库查询字符编码
SELECT DISTINCT(value) FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';
sqlplus工具界面(客户端)查询字符编码
SELECT * FROM nls_instance_parameters WHERE parameter = 'NLS_LANGUAGE';
远程工具自己设置吧,可能性太多了