相信大家第一次接触Oracle,大都是在windows上安装,比较方便快捷,基本上是一直下一步就可以安装成功。然而企业级的数据库,基本上都是安装在Linux服务器上,安全且高效。
没接触Linux的朋友不用害怕,跟着本篇文章一步步操作,安装Oracle如喝水般简单且标准。
下面我就来手把手教大家如何在Linux上安装Oracle数据库。
一、前期准备
1、虚拟机安装
-
Windows主机推荐虚拟机:VMware Workstation
-
下载地址:
https:/
/www.vmware.com/go
/getworkstation-win
-
如需破解版,可私信博主获取。
-
-
MacOS主机推荐虚拟机:Parallels Desktop 16 for Mac
-
下载地址:https:/
/www.parallels.cn/products
/desktop/trial
/
2、Oracle软件安装包
-
oracle官网下载地址:
https:/
/www.oracle.com/database
/technologies/oracle-database-software-downloads.html
-
Oracle帐号:
2696671285@qq.com
-
Oracle密码:Oracle123
-
-
Notes:官方只能下载最新版Oracle
19C,需要其他版本Oracle可私信博主获取。
3、Linux系统安装包
一般有三种Linux系统比较常用:RedHat 、 OracleLinux 、Centos 。
-
RedHat下载:
https:
//developers.redhat.com/products/rhel/download
-
OracleLinux下载:
https:
//yum.oracle.com/oracle-linux-isos.html
-
Centos下载:
https:
//vault.centos.org/
官方网站均可下载安装包,也可私信博主获取。
Linux系统安装可参考文章,本文将不再详细介绍安装方法:
Windows主机如何玩转虚拟机Linux安装,只需参透本篇文章
4、Linux远程连接工具
本文将使用XShell和Xftp工具,安装包可以在官网下载,也可私信博主获取。
其他工具也可以,比如:putty,SecureCRT 等等工具。
这篇博客演示RedHat Linux 7.6 版本安装Oracle 11GR2版本数据库。
主机内存2G,硬盘50G即可。
二、Linux主机配置
使用XShell工具连接Linux主机root用户:
1、主机名配置
如果安装时没有配置主机名,或者想要修改主机名,可以通过以下命令修改:
hostnamectl set-hostname orcl
2、网络配置
如果安装时没有配置网络,或者想要修改网络,可以通过以下命令修改:
-
nmcli connection modify eth0 ipv4.addresses 10.211.55.188/24 ipv4.gateway 10.211.55.1 ipv4.method manual autoconnect yes
-
nmcli connection up eth0
3、配置Hosts文件
根据上面配置好的主机名和IP,配置hosts文件:
-
cat <<EOF >>/etc/hosts
-
##OracleBegin##
-
##Public IP
-
10.211.55.188 orcl
-
##OracleEnd##
-
EOF
4、防火墙配置
-
systemctl stop firewalld
-
systemctl
disable firewalld
5、Selinux配置
selinux修改后需要重启主机生效:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
6、ISO镜像源配置
需要先挂载主机镜像:
Parallels Desktop挂载Linux主机镜像:
VMware Workstation挂载Linux镜像:
-
mount /dev/cdrom /mnt
-
-
cat <<EOF>/etc/yum.repos.d/local.repo
-
[
local]
-
name=
local
-
baseurl=file:///mnt
-
gpgcheck=0
-
enabled=1
-
EOF
7、安装Oracle依赖包
如下依赖包从Oracle官方文档推荐获取:
-
yum install -y bc \
-
binutils \
-
compat-libcap1 \
-
compat-libstdc++-33 \
-
gcc \
-
gcc-c++ \
-
elfutils-libelf \
-
elfutils-libelf-devel \
-
glibc \
-
glibc-devel \
-
ksh \
-
libaio \
-
libaio-devel \
-
libgcc \
-
libstdc++ \
-
libstdc++-devel \
-
libxcb \
-
libX11 \
-
libXau \
-
libXi \
-
libXtst \
-
libXrender \
-
libXrender-devel \
-
make \
-
net-tools \
-
nfs-utils \
-
smartmontools \
-
sysstat \
-
e2fsprogs \
-
e2fsprogs-libs \
-
fontconfig-devel \
-
expect \
-
unzip \
-
openssh-clients \
-
readline* \
-
psmisc --skip-broken
检查是否安装成功:
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline
Linux7需要手动安装compat-libstdc++依赖包:
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
8、配置ZeroConf
-
##关闭Zeroconf service的服务守护进程
-
systemctl stop avahi-daemon.socket
-
systemctl stop avahi-daemon.service
-
systemctl
disable avahi-daemon.service
-
systemctl
disable avahi-daemon.socket
-
-
##关闭NOZEROCONF
-
cat <<EOF >>/etc/sysconfig/network
-
#OracleBegin
-
NOZEROCONF=yes
-
#OracleEnd
-
EOF
9、关闭透明大页和numa
-
sed -i
's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
-
grub2-mkconfig -o /boot/grub2/grub.cfg
10、配置系统参数文件
-
##计算shmall和shmmax值
-
memTotal=$(grep MemTotal /proc/meminfo | awk
'{print $2}')
-
totalMemory=$((memTotal /
2048))
-
shmall=$((memTotal /
4))
-
if [
$shmall -lt 2097152 ];
then
-
shmall=2097152
-
fi
-
shmmax=$((memTotal *
1024 -
1))
-
if [
"$shmmax" -lt 4294967295 ];
then
-
shmmax=4294967295
-
fi
-
echo
$shmall
-
echo
$shmmax
-
-
##配置系统参数
-
cat <<EOF >>/etc/sysctl.conf
-
#OracleBegin
-
##shmmal's Calculation formula: physical memory 8G:(8*1024*1024*1024)/4096=2097152
-
##shmmax's Calculation formula: physical memory 8G:(8/2)*1024*1024*1024 -1=4294967295
-
fs.aio-max-nr = 1048576
-
fs.file-max = 6815744
-
kernel.shmall =
$shmall
-
kernel.shmmax =
$shmmax
-
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
-
EOF
-
-
##系统参数生效
-
sysctl -p
11、配置系统资源限制
-
cat <<EOF >>/etc/security/limits.conf
-
#OracleBegin
-
oracle soft nofile 1024
-
oracle hard nofile 65536
-
oracle soft stack 10240
-
oracle hard stack 32768
-
oracle soft nproc 2047
-
oracle hard nproc 16384
-
oracle hard memlock 134217728
-
oracle soft memlock 134217728
-
#OracleEnd
-
EOF
-
-
cat <<EOF >>/etc/pam.d/login
-
#OracleBegin
-
session required pam_limits.so
-
session required /lib64/security/pam_limits.so
-
#OracleEnd
-
EOF
12、创建用户和组
-
/usr/sbin/groupadd -g 54321 oinstall
-
/usr/sbin/groupadd -g 54322 dba
-
/usr/sbin/groupadd -g 54323 oper
-
-
/usr/sbin/useradd -u 54321 -g oinstall -G dba,oper oracle
-
echo oracle | passwd --stdin oracle
13、创建Oracle安装目录
-
mkdir -p /u01/app/oracle/product/11.2.0/db
-
mkdir -p /u01/app/oraInventory
-
mkdir -p /oradata
-
chown -R oracle:oinstall /oradata
-
chown -R oracle:oinstall /u01/app
-
chmod -R 775 /u01/app
14、配置用户环境变量
-
cat <<EOF >>/home/oracle/.bash_profile
-
################OracleBegin#########################
-
umask 022
-
export TMP=/tmp
-
export TMPDIR=\
$TMP
-
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
-
export ORACLE_BASE=/u01/app/oracle
-
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db
-
export ORACLE_HOSTNAME=orcl
-
export ORACLE_TERM=xterm
-
export TNS_ADMIN=\
$ORACLE_HOME/network/admin
-
export LD_LIBRARY_PATH=\
$ORACLE_HOME/lib:/lib:/usr/lib
-
export ORACLE_SID=orcl
-
export PATH=/usr/sbin:\
$PATH
-
export PATH=\
$ORACLE_HOME/bin:\
$ORACLE_HOME/OPatch:\
$PATH
-
alias sas=
'sqlplus / as sysdba'
-
export PS1=
"[\`whoami\`@\`hostname\`:"
'\$PWD]\$ '
-
EOF
三、Oracle软件安装
1、Oracle软件包上传
-
[root@orcl soft]
# ll
-
-rw-r--r--. 1 root root 1395582860 May 31 16:56 p13390677_112040_Linux-x86-64_1of7.zip
-
-rw-r--r--. 1 root root 1151304589 May 31 16:56 p13390677_112040_Linux-x86-64_2of7.zip
2、解压Oracle软件安装包
需要按顺序解压1,2安装包:
-
cd /soft
-
unzip -q p13390677_112040_Linux-x86-64_1of7.zip
-
unzip -q p13390677_112040_Linux-x86-64_2of7.zip
-
-
##授权/soft给oracle读写权限
-
chown -R oracle:oinstall /soft
3、安装VNC软件
-
yum install -y tigervnc*
-
-
su - oracle
-
vncserver
-
##输入密码
4、连接VNC远程工具或者直接打开虚拟机图形化界面
右键打开终端工具:
进入/soft/database开始安装Oracle软件:
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
上传pdksh-5.2.14-37.el5.x86_64.rpm依赖包,安装:
-
rpm -e ksh-20120801-142.el7.x86_64
-
rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
点击再次检查,忽略swap警告:
解决方案:
-
su - oracle
-
sed -i
's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g'
$ORACLE_HOME/sysman/lib/ins_emagent.mk
执行完点击retry重试:
root用户下执行脚本:
-
/u01/app/oraInventory/orainstRoot.sh
-
/u01/app/oracle/product/11.2.0/db/root.sh
reboot重启主机。
四、创建数据库
1、打开监听
-
su - oracle
-
lsnrctl start
-
lsnrctl status
2、连接VNC远程工具或者直接打开虚拟机图形化界面
dbca
这里填写数据库实例名称和dbname,本次填写orcl。
不安装EM工具。
这里输入SYS和SYSTEM用户的密码,需要记住。
这里选择前面建好的/oradata目录用来存放数据文件。
不开启闪回日志,不开启归档日志,可以建好库之后再手动修改。
数据库内存分配,选择手动分配,占用物理内存70%左右。
block_size根据实际情况选择,一旦建库无法修改,默认8K。
字符集根据需要进行选择,默认AL32UTF8。
等待建库完成即可。
五、连接数据库
确保监听正常启动,并监听数据库:
1、通过数据库主机连接
-
su - oracle
-
sqlplus / as sysdba
-
select sysdate from dual;
-
-
##创建数据库用户
-
create user
test identified by
test;
-
grant dba to
test;
-
conn
test/
test
-
-
##创建表
-
create table
test (id number not null,name varchar2(100));
-
insert into
test values (1,
'lucifer');
-
commit;
2、通过PL/SQL连接test用户
转载:https://blog.csdn.net/m0_50546016/article/details/117413992