前言相信大家第一次接触Oracle,大都是在windows上安装,比较方便快捷,基本上是一直下一步就可以安装成功。然而企业级的数据库,基本上都是安装在Linux服务器上,安全且高效。 没接触Linux的朋友不用害怕,跟着本篇文章一步步操作,安装Oracle如喝水般简单且标准。 下面我就来手把手教大家如何在Linux上安装Oracle数据库。 一、前期准备1、虚拟机安装包
2、Oracle软件安装包
📢 注意: Oracle 官方网站目前只能下载最新版 19C 和 21C,需要其他版本 Oracle 安装包可点击链接跳转获取: https://mp.weixin.qq.com/s/ECJelOb6NUjZjpUvUa17pg 或者 可以获取 百度网盘下载链接 以及博主的联系方式 3、Linux系统安装包一般有三种Linux系统比较常用:RedHat 、 OracleLinux 、Centos 。
📢 注意: 上述 Linux 安装包 可点击链接跳转获取: https://mp.weixin.qq.com/s/PFKkftgaTWpJKCnhI3uxZw 或者 可以获取 百度网盘下载链接 以及博主的联系方式 4、Linux远程连接工具本文将使用XShell和Xftp工具,安装包可以在官网下载,也可私信博主获取。 其他工具也可以,比如:putty,SecureCRT 等等工具。 这篇博客演示RedHat Linux 7.6 版本安装Oracle 11GR2版本数据库。 二、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 yesnmcli 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 主机镜像: mount /dev/cdrom /mntcat <<EOF>/etc/yum.repos.d/local.repo[local]name=localbaseurl=file:///mntgpgcheck=0enabled=1EOF 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
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##关闭NOZEROCONFcat <<EOF >>/etc/sysconfig/network#OracleBegin NOZEROCONF=yes #OracleEnd EOF 9、关闭透明大页和numased -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=2097152fishmmax=$((memTotal * 1024 - 1))if [ "$shmmax" -lt 4294967295 ]; then shmmax=4294967295fiecho $shmallecho $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 = $shmallkernel.shmmax = $shmmaxkernel.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 EOFcat <<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 oracleecho oracle | passwd --stdin oracle 13、创建Oracle安装目录mkdir -p /u01/app/oracle/product/11.2.0/dbmkdir -p /u01/app/oraInventorymkdir -p /oradatachown -R oracle:oinstall /oradatachown -R oracle:oinstall /u01/appchmod -R 775 /u01/app 14、配置用户环境变量cat <<EOF >>/home/oracle/.bash_profile################OracleBegin######################### umask 022 export TMP=/tmp export TMPDIR=\$TMPexport 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:\$PATHexport PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATHalias 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 /softunzip -q p13390677_112040_Linux-x86-64_1of7.zipunzip -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远程工具或者直接打开虚拟机图形化界面
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
rpm -e ksh-20120801-142.el7.x86_64rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
su - oraclesed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk 执行完点击retry重试: /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/db/root.sh
四、创建数据库1、打开监听su - oracle lsnrctl start lsnrctl status 2、连接VNC远程工具或者直接打开虚拟机图形化界面dbca
五、连接数据库确保监听正常启动,并监听数据库: 1、通过数据库主机连接su - oracle sqlplus / as sysdbaselect 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用户
|
|
来自: LuciferLiu > 《待分类》