当前位置: 首页 > news >正文

浅析Centos7安装Oracle12数据库

        Linux下的Oracle数据库实在是太难安装了,事贼多,我都怀疑能安装成功是不是运气的成分更高一些。这里操作系统是Centos7,Oracle版本是Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production。
Oracle下载链接: https://pan.baidu.com/s/1koFPbw26lxCcsIdPEsuZXQ?pwd=nwvk 提取码: nwvk

1、在虚拟机上安装Centos7
        要求:
                a、物理内存:2G【建议啊】
                b、硬盘:40G【默认20G是不够的】
                c、 swap交换分区:3G【小于3G则Oracle安装检查环境时会提示swap大小不足,当然右上角有相关选项,勾选是可以略过这步的,但没必要,不至于穷到连3G都不能给swap】
                d、带GUI的服务器【不能最小安装,因为Oracle12的安装是带有图形界面的】
                e、为Centos7设置固定IP【这个想当服务器用的都得有固定IP吧】
        开始:
                创建新的虚拟机

                选择【典型】,点击【下一步】按钮

                选择【稍后安装操作系统】,点击【下一步】

                选择【Linux】与【CentOS 7 64位】,点击【下一步】

                改好Centos7要安放的位置后点击【下一步】

                硬盘改为40G,默认的20G不够,点击【下一步】

                点击【自定义硬件】

                点击【关闭】按钮后再点击【完成】按钮。

                点击【编辑虚拟机设置】

                将你的Centos7的镜像文件【我的是CentOS-7-x86_64-DVD-1810.iso】挂载到光盘上准备运行。点击【确定】按钮。

                点击【开启此虚拟机】,等待安装。

                鼠标点击进入安装界面【注:一定要点击进去啊,不会就点击屏幕中央位置,然后鼠标会改变形状】后按向上的方向键,使【Install CentOs 7】选项变白,回车开始安装。这时鼠标是在安装界面里的,要想出来可按【Ctrl+Alt】。

                安装界面语言选择【中文】(鼠标要点入安装界面啊),点击【继续】按钮。
                进入安装选择界面后要多等待一会,程序要检查软件安装依赖关系,这时不要乱点。

                先改日期时间

        亚洲+上海,改完日期与时间后点击左上角【完成】按钮。

                点击【软件选择】,默认是最小安装,这个不行,得改为带GUI的服务器。

                点击【完成】按钮后程序会重新检查软件依赖关系,等会,别乱动,这个看机器性能,我机器慢,等了好几分钟呢。

                点击【安装位置】,我们要手工分区。

                点击【我要配置分区】,再点击【完成】按钮。

                将新挂载点将使用的分区方案改为【标准分区】

                再点击【+】按钮

                首先是挂载【/boot】引导分区,容量1G就够了。点击【添加挂载点】

                将文件系统改为【ext4】格式。再点击左下角的【+】按钮

                其次选择【swap】交换分区,容量3G,这个很重要,点击【添加挂载点】

                文件系统默认是swap格式的,不用动。再点击【+】按钮

                最后挂载【/】根目录,容量不用填。点击【添加挂载点】按钮。

                将文件系统改为【ext4】格式。点击左上角的【完成】按钮

                点击【接受更改】按钮完成安装位置选项。

                点击【KDUMP】按钮

                去掉【启用kdump】选项,点击【完成】按钮。

                点击【网络和主机名】

                修改主机名,再点击【应用】按钮。

                再点击右上角【打开/关闭】按钮

                打开网络连接。这里要记住路由与DNS的地址,后面配置固定IP要用到。点击【完成】按钮。

                点击【SECURITY POLICY】选项。

                点击【打开/关闭】按钮,取消密码安全性限制。

                点击【完成】按钮。

                点击【开始安装】按钮

                先设置root密码

                我设的密码太简单,需要点2次【完成】按钮才能成功。再点击【创建用户】

                密码简单,再点击2次【完成】按钮才创建用户成功。
                耐心等待安装就行......

                漫长的时间啊,终于等到了,点击【重启】按钮。

                这里要接受许可。

                点击【完成】按钮。

                网络和主机名我们前面配置过,这里就不用再配置了。点击【完成配置】按钮。
                
                这里点击【未列出】,我们要用root登录系统。

                输入密码后进入系统界面。

                点击右上角【前进】按钮,再点击【前进】按钮

                这里关闭隐私,再点击【前进】按钮,再点击下一界面的【跳过】按钮,再点击下一界面的开始使用按钮。

                点击右上角的【X】退出。终于进来正常的界面了。

2、为安装Oracle数据库做准备工作
        换yum源:
                我发现yum原来默认的国外镜像网站不好用了,你说操蛋不,我得换成阿里云的镜像网站,你的yum要是没事就可以略过此步。
                鼠标右键点击桌面,右键菜单选择【打开终端】

        我执行yum list提示如下

                真的不好用了啊,必须为yum换源了。

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


        清除本地yum缓存、索引、头文件、插件

yum clean all

        把服务器的包信息下载到本地电脑缓存起来

yum makecache


                更新已安装软件版本,防止与原来yum源安装的软件依赖发生意外冲突。但不更新linux内核。

yum -y upgrade


         这个时间有点长,等待。更新完成后测试了一下yum,发现OK。

yum search ifconfig


        设置固定IP
                编辑网络配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33


        首先将 BOOTPROTO="dhcp" 改为 BOOTPROTO="static",我这里将其注释了然后重新复制一份再修改。
        最后再在最后面补充以下内容

IPADDR="192.168.126.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.126.2"
DNS1="192.168.126.2"


 

        按【esc】键,再按【:wq】保存退出。
        IPADDR是本机固定IP,NETMASK是掩码,GATEWAY是网关,DNS1是首选DNS。前面安装网络与主机名时有下面的界面显示了IP相关信息,我们原样拿过来用就行,我就把IP改了一下,100好记。

        若前面安装忘记了网络相关信息也不怕,点击虚拟机VMware的菜单【编辑】

下的【虚拟网络编辑器】菜单


        点击【NAT】模式,再点击【NAT设置】按钮

        在这里也能看到网络IP相关信息。
        执行下列代码让网络马上生效

systemctl restart network

再执行下面代码查看网络具体信息。

ifconfig

        关闭防火墙:
        关闭防火墙为了防止安装过程中的某些操作被防火墙阻止,确保安装程序可以正常访问所需要的端口与服务。安装完成后再重新启动防火墙并开放oracle的1521端口就行。
        执行下面3条命令

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

        【systemctl stop firewalld.service】是关闭防火墙
        【systemctl disable firewalld.service】是禁止防火墙的开机自启
        【systemctl status firewalld.service】是查看防火墙状态

        安装依赖包:

yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libX11 libX11.i686 libXau libXau.i686 libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libxcb libxcb.i686 make nfs-utils net-tools smartmontools sysstat unixODBC unixODBC-devel gcc gcc-c++ libXext libXext.i686 zlib-devel zlib-devel.i686

       这些都是要安装Oracle数据库的软件依赖包,好多啊,有些依赖包前面安装系统时已经安装过了,还有些未安装过的。这些依赖包内容可以在Oracle官网上的文档中查到。

        执行下面命令检查依赖包是否全部安装完成

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils compat-libcap1 compat-libstdc++-33 cpp gcc gcc-c++ glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make mpfr sysstat

        基本上不会有什么问题。

        创建组:

groupadd oinstall
groupadd dba
groupadd oper
groupadd osoper

        这里创建了4个组。

        创建用户并修改密码:

useradd -g oinstall -G dba,oper oracle
passwd oracle

        这里创建oracle用户来管理Oracle数据库的安装及后面的日常操作。该用户隶属于【oinstall】组,附加组是【dba】与【oper】。

        修改内核限制参数:

vim /etc/security/limits.conf

        在配置文件末尾插入下面内容

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240


        按【esc】键,再按【:wq】保存退出。
        其中【oracle soft nproc 2047】是单用户可使用进程数量
                【oracle soft nofile 1024】是用户可打开文件数量
                【oracle soft stack 10240】是堆栈设置

        手动配置内核参数:

vim /etc/sysctl.conf

在配置文件末尾插入下面内容

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

        按【esc】键,再按【:wq】保存退出。
        刷新内核参数,使其马上生效。

sysctl -p

        修改login配置文件:

vim /etc/pam.d/login

        在配置文件末尾插入下面内容

session required /lib64/security/pam_limits.so
session required pam_limits.so

        按【esc】键,再按【:wq】保存退出。

        修改profile文件:

vim /etc/profile

在配置文件末尾插入下面内容

if [ $USER = "oracle" ] ; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

        按【esc】键,再按【:wq】保存退出。

        配置环境变量:

        创建Oracle安装软件的存放目录,后面我们会把该文件拷贝到此目录下。

mkdir -p /setup/oracle

        创建Oracle数据库软件安装目录,后面安装时会将Oracle数据库安装到此目录下。

mkdir -p /app/oracle/product/12.1.0/dbhome_1

        配置oracle用户的环境变量,后面我们要用前面创建的oracle用户来专门安装管理Oracle12数据库,因此这里要特意为该用户配置一下环境变量,别的用户是不能管理Oracle数据库的。

vim /home/oracle/.bash_profile

        在配置文件末尾插入下面内容

export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

        按【esc】键,再按【:wq】保存退出。
        刷新配置,使其马上生效。

source /home/oracle/.bash_profile

        进入到Oracle软件存放目录

cd /setup/oracle

        将oracle安装软件拷贝到该目录,我用的是MobaXterm软件,用啥软件都行,能把文件拷贝过来就行。


        拷贝完毕后回到Centos的终端窗口,查看文件

ls

        2个文件都已经拷贝过来了,下面解压这2个文件。
        【注】:若无unzip软件可先安装【yum -y install unzip】

unzip V46095-01_1of2.zip
unzip V46095-01_2of2.zip

        重新查看一下该目录下文件

ls

        2个压缩文件已经解压到 /setup/oracle/database目录下了。

        文件授权:
                后面我们要用oracle用户登录来安装Oracle数据库,而前面的所有操作都是用root用户来完成的,所以必须把Oracle数据库的安装软件授权给oracle用户,否则无权管理这些文件。

chown -R oracle:oinstall /setup/oracle/database/

        查看一下授权后内容

ll

        可以看到 /setup/oracle/databae/ 目录及其下属所有文件都已经改为oracle用户所有了。
        同理我们再把Oracle数据库软件要安装到的目录也更改一下权限,因为该目录也是用root用户建立的,不改不行啊!

chown -R oracle:oinstall /app/

        建议现在重启,然后在虚拟机上以oracle用户登录

reboot

因为改了很多东西,也不知道有没有问题,改没改错,重启看一下。

这里我们用oracle用户登录

        没问题,进来了,由于头一次使用oracle用户登录,需要一些配置,与前面的相同,这里略。
在桌面上按右键选择【打开终端】,这回真的要开始安装Oracle了。
        若不想重启系统的话也没毛病,切换用户即可。

su - oracle

       【
                设置DISPLAY变量:
                我是在虚拟机上直接安装Oracle数据库,因此不用设置DISPLAY变量。但若你是在客户端连接软件上的话那就麻烦了,需安装支持图形界面的软件,还得设置DISPLAY变量
                export DISPLAY=192.168.126.100:0.0
                xclock
        】

        临时将系统换成英文
        因为Oracle安装包提供的jdk内缺少中文字体,安装时显示的都是乱码,因此最简单的方法就是临时将系统的中文改为英文。

export LANG=en_us

        进入Oracle软件存放目录

cd /setup/oracle/database

        显示目录内容

ll

        运行该文件

./runInstaller

        检测通过,可以启动Oralce安装界面了。

        我服了,分辨率不够,看不到安装界面全景啊。继续改!
选择Centos左上角菜单【应用程序】->【系统工具】->【设置】

        点击【设备】

        修改高分辨率

        点击【应用】按钮,再点击【保留更改】按钮。拉动底下向右滚动条,点击右上角的【X】退出即可。这回就能看全了。

        去掉勾选,点击【next】按钮。【上面2图中的下图是从网上找的中文对照,省得看得不习惯】


        选择【yes】按钮


        点击【next】按钮。


        选择【Server class】,点击【next】按钮。

        选择【Single instance database installation】,点击【next】按钮。

        选择【Typical install】典型安装,点击【next】按钮。


        翻译不完全一样,大致对照理解一下就行。输入新数据库登录密码,去掉【Create Container databae】勾选,点击【next】按钮。

        密码太简单,提示安全问题,不管它,选【Yes】继续。

        点击【next】按钮。

        上面是检测安装环境,若是前面swap未设置3G这里就会有提示。我们继续

        没问题,点击【install】按钮

        安装中。。。

        这是2个shell文件,需要以root用户权限来执行
回到终端窗口,先按一下回车显示正常状态,然后切换用户

su

输入密码后执行第一条命令

/app/oraInventory/orainstRoot.sh

再执行第二条命令

/app/oracle/product/12.1.0/dbhome_1/root.sh

这里会有个提示,停顿一下,回车即可。

        回到Oralce安装窗口点击刚才那个弹出窗口中的【ok】按钮,继续安装中。。。

        Oracle安装程序开始创建数据库了


        点击【ok】按钮。


        数据库安装成功,点击【close】按钮结束。

收尾工作:

        【确保我们现在是以root用户登录,刚才前面执行2个shell命令时已经改过了。】
        数据库自启动
                重启linux后oracle数据库是不会自动启动的,得我们手工配置一下才行。
                a、修改Oracle的配置文件

vim /etc/oratab

                        将    【orcl:/app/oracle/product/12.1.0/dbhome_1:N】
                        改为【orcl:/app/oracle/product/12.1.0/dbhome_1:Y】
                        就是将最后一个字母N改为Y就ok了。

                        按【esc】键,再按【:wq】保存退出。

                b、修改Centos的自启动配置文件

vim /etc/rc.d/rc.local

                        rc.local是开机启动文件,通过编辑该文件,用户可以自定义开机启动程序。
                        将需要开机启动的程序命令或脚本路径添加到该文件中,系统启动时该文件将被自动执行。
                        将下面的内容添加到该配置文件中。

su oracle -lc "/app/oracle/product/12.1.0/dbhome_1/bin/dbstart"
su oracle -lc "/app/oracle/product/12.1.0/dbhome_1/bin/lsnrctl start"


                按【esc】键,再按【:wq】保存退出。

                为该启动文件设置可执行权限【默认该文件是没有可执行权限的,不改重启时它不执行啊】

chmod u+x /etc/rc.d/rc.local

启动防火墙

systemctl start firewalld.service

        防火墙很重要,不可能因为Oralce数据库就永远关闭吧,前面安装需要关闭一下,现在安装完事了,只要开放Oracle的1521端口就行了。

systemctl enable firewalld.service

查看一下防火墙现在的状态

systemctl status firewalld.service

开放Oracle数据库的1521端口

firewall-cmd --permanent --add-port=1521/tcp

让设置马上生效

firewall-cmd --reload

查看防火墙是否成功开放了1521端口

firewall-cmd --query-port=1521/tcp

        OK,到此我们的收尾工作已经全部完成,马上重启,看看是否成功!

reboot

我们还是用oracle用户登录,桌面上点击右键,选择【打开终端】。

查看Oracle数据库是否启动,这里我们只要查看是否有Oracle的进程就可以了。

ps -ef | grep pmon

查看Oracle的监听是否启动

lsnrctl status

完全没问题,都正常启动了。


        若Oracle数据库未启动,则需输入下列命令启动。
                sqlplus / as sysdba
                #启动命令
                startup
                #查看启动状态
                select status from v$instance;
                #关闭
                shutdown immediate
        若监听未启动,则需输入下列命令启动。
                lsnrctl start

测试连接:

        用datagrip测试一下连接,成功!

搞定,收工!


        如果,我是说如果连接不成功,总是提示:
ORA-12505: 无法连接到数据库。SID orcl 未注册到 host 192.168.126.100 port 1521 中的监听程序。
        也就是说监听程序不认你给出的SID,拒绝连接。
        问题是给出的SID是正确的,啥毛病也没有啊,但监听就是不认,咋办啊!
        那就硬改一下试试,把SID写死!
        监听程序是listener.ora文件,编辑该文件。

vim /app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora

在后面加上如下内容

SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = orcl)(ORACLE_HOME = /app/oracle/product/12.1.0/dbhome_1/)))

        ‌SID_LIST_LISTENER是Oracle数据库监听器配置文件listener.ora中的一个条目,用于定义静态注册的服务信息。静态注册是指将数据库实例的信息硬编码在监听器配置文件中,以便在数据库实例关闭时也能通过监听器连接到数据库。
        这也是实在没招了啊!
        按【esc】键,再按【:wq】保存退出。
先停止监听程序

lsnrctl stop

再重新启动监听程序

lsnrctl start

        有UNKNOWN提示,不管他。这回再尝试连接数据库,你会发现可能就好用了。写死了当然好用了啊!


http://www.mrgr.cn/news/98030.html

相关文章:

  • 《计算机名人堂》专栏介绍:先驱之路
  • leetcode 322. Coin Change
  • VMware虚拟机Ubuntu磁盘扩容
  • 【教学类-102-08】剪纸图案全套代码08——Python点状虚线优化版本02(有空隙)+制作1图2图6图24图
  • MySQL 进阶 - 2 ( 15000 字详解)
  • 蓝桥杯补题
  • ubuntu22.04下安装mysql以及mysql-workbench
  • ctfshow web入门 web42
  • opencv-python基础
  • ZYNQ笔记(一):hello world
  • 《Python星球日记》第23天:Pandas基础
  • kubernetes》》k8s》》Volume 数据卷 PVC PV NFS
  • ffmpeg编解码器相关函数
  • 面向对象高级(1)
  • 13、nRF52xx蓝牙学习(GPIOTE组件方式的任务配置)
  • qwen-vl 实现OCR的测试
  • 在 Dev-C++中编译运行GUI 程序介绍(三)有趣示例一组
  • 【力扣hot100题】(089)最长有效括号
  • 在Java项目中,引入【全局异常处理器】
  • QEMU学习之路(6)— RISC-V 启动Linux