评论

收藏

[Oracle] 第三章【SQL语言基础学习】手把手教你Linux安装Oracle数据库

数据库 数据库 发布于:2021-07-10 14:21 | 阅读数:848 | 评论:0

  
前言
  相信大家第一次接触Oracle,大都是在windows上安装,比较方便快捷,基本上是一直下一步就可以安装成功。然而企业级的数据库,基本上都是安装在Linux服务器上,安全且高效。
  没接触Linux的朋友不用害怕,跟着本篇文章一步步操作,安装Oracle如喝水般简单且标准。
  下面我就来手把手教大家如何在Linux上安装Oracle数据库。
DSC0000.png

一、前期准备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 OracleLinuxCentos
RedHat下载:https://developers.redhat.com/products/rhel/download
OracleLinux下载:https://yum.oracle.com/oracle-linux-isos.html
Centos下载:https://vault.centos.org/
  官方网站均可下载安装包,也可私信博主获取。
  Linux系统安装可参考文章,本文将不再详细介绍安装方法:
  教你三步在MacOS上安装Linux系统
  Windows主机如何玩转虚拟机Linux安装,只需参透本篇文章
4、Linux远程连接工具
  本文将使用XShell和Xftp工具,安装包可以在官网下载,也可私信博主获取。
  其他工具也可以,比如:putty,SecureCRT 等等工具。
  这篇博客演示RedHat Linux 7.6 版本安装Oracle 11GR2版本数据库。
  主机内存2G,硬盘50G即可。
二、Linux主机配置  使用XShell工具连接Linux主机root用户:
DSC0001.png

  1、主机名配置
  如果安装时没有配置主机名,或者想要修改主机名,可以通过以下命令修改:
hostnamectl set-hostname orcl
DSC0002.png

  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
DSC0003.png

  3、配置Hosts文件
  根据上面配置好的主机名和IP,配置hosts文件:
cat <<EOF >>/etc/hosts
##OracleBegin##
##Public IP
10.211.55.188   orcl
##OracleEnd##
EOF
DSC0004.png

  4、防火墙配置
systemctl stop firewalld
systemctl disable firewalld
DSC0005.png

  5、Selinux配置
  selinux修改后需要重启主机生效:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
DSC0006.png

  6、ISO镜像源配置
  需要先挂载主机镜像:
  Parallels Desktop挂载Linux主机镜像:
DSC0007.png

  VMware Workstation挂载Linux镜像:
DSC0008.png DSC0009.png
mount /dev/cdrom /mnt
cat <<EOF>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
DSC00010.png

  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
DSC00011.png

  Linux7需要手动安装compat-libstdc++依赖包:
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
DSC00012.png

  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
DSC00013.png

  9、关闭透明大页和numa
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
DSC00014.png

  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
DSC00015.png

DSC00016.png

  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
DSC00017.png

DSC00018.png

  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
DSC00019.png

  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
DSC00020.png

  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
DSC00021.png

三、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
DSC00022.png

  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
DSC00023.png

  3、安装VNC软件
yum install -y tigervnc*
su - oracle
vncserver
##输入密码
DSC00024.png

  4、连接VNC远程工具或者直接打开虚拟机图形化界面
DSC00025.png

  右键打开终端工具
DSC00026.png

  进入/soft/database开始安装Oracle软件
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
DSC00027.png

DSC00028.png

DSC00029.png

DSC00030.png

DSC00031.png

DSC00032.png

DSC00033.png

DSC00034.png

DSC00035.png

DSC00036.png

  上传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
DSC00037.png

  点击再次检查,忽略swap警告:
DSC00038.png

DSC00039.png

DSC00040.png

DSC00041.png

  解决方案:
su - oracle
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
  执行完点击retry重试:
DSC00042.png

DSC00043.png

  root用户下执行脚本:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db/root.sh
DSC00044.png

DSC00045.png

DSC00046.png

  reboot重启主机。
四、创建数据库  1、打开监听
su - oracle
lsnrctl start
lsnrctl status
DSC00047.png

  2、连接VNC远程工具或者直接打开虚拟机图形化界面
dbca
DSC00048.png

DSC00049.png

DSC00050.png

DSC00051.png

  这里填写数据库实例名称和dbname,本次填写orcl。
DSC00052.png

  不安装EM工具。
DSC00053.png

  这里输入SYS和SYSTEM用户的密码,需要记住。
DSC00054.png

  这里选择前面建好的/oradata目录用来存放数据文件。
DSC00055.png

  不开启闪回日志,不开启归档日志,可以建好库之后再手动修改。
DSC00056.png

DSC00057.png

  数据库内存分配,选择手动分配,占用物理内存70%左右。
DSC00058.png

  block_size根据实际情况选择,一旦建库无法修改,默认8K。
DSC00059.png

  字符集根据需要进行选择,默认AL32UTF8。
DSC00060.png

DSC00061.png

DSC00062.png

DSC00063.png

  等待建库完成即可。
DSC00064.png

五、连接数据库  确保监听正常启动,并监听数据库:
DSC00065.png

  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用户

  

  
关注下面的标签,发现更多相似文章