暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Liunx静默安装Oracle数据库

咖啡逗不逗 2020-09-10
320

作者 | kf_dbd

来源 | 咖啡逗不逗(ID: kf_dbd

转载请联系授权 | (微信ID:xh870545795)

大家好,我是 kf_dbd,很高兴又和大家见面了,今天分享一个Linux下无图形化安装Oracle数据库的文章。本文首发于微信公众号【咖啡逗不逗】,欢迎点击上方蓝字关注我吧!

现实工作中,据我了解大部分的Linux服务器都不会安装图形化界面,这就会导致我们在安装一些软件的时候不是那么便利,需要利用一些软件调出图形化界面安装,比如我们安装Oracle数据库时,常用Xmanager - Passive软件协助我们进行图形化安装,但是如果没有类似软件协助,我们要怎么去安装数据库呢,接下来我就介绍一下在无图形化的情况下,我们如何通过命令行和配置文件进行数据库的安装,如何安装数据库的服务端和客户端。


首先介绍下服务端的安装:


环境:linux redhat 7.4

oracle版本:11.2.0.4.0


1.配置yum,软件包检查,yum安装所需依赖包:


    [root@rhel64 ~]# yum install binutils*
    [root@rhel64 ~]# yum install compat*
    [root@rhel64 ~]# yum install glibc*
    [root@rhel64 ~]# yum install ksh*
    [root@rhel64 ~]# yum install libgcc*
    [root@rhel64 ~]# yum install libstdc*
    [root@rhel64 ~]# yum install libaio*
    [root@rhel64 ~]# yum install make*
    [root@rhel64 ~]# yum install sysstat*
    [root@rhel64 ~]# yum install unixODBC*


    2.修改资源限制


      [root@rhel64 ~]# vi etc/security/limits.conf
      oracle soft nproc 2047
      oracle hard nproc 16384
      oracle soft nofile 1024
      oracle hard nofile 65536
      oracle soft stack 10240


      3.修改内核参数 (根据实际情况)


        [root@rhel64 ~]# vi etc/sysctl.conf
        fs.aio-max-nr = 1048576
        fs.file-max = 6815744
        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
        [root@rhel64 ~]#/sbin/sysctl -p --使之生效


        注释:

        shmmax:物理内存*80%*80%,单位是字节

        kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系,这里设定的为4GB,即“4294967295/1024/1024/1024=4G”。

        kernel.shmmin:表示单个共享内存段的最小值,默认为1byte

        kernel.shmall:表示整个系统范围内可用共享内存页的总量,单位是页(page),在32位系统上一页等于4kB,也就是4096字节。计算公式是:shmmax/PAGE_SIZE

        kernel.shmmni:表示整个系统范围内内存段的最大数量,一般为4096.

        ip_local_port_range:表示端口的范围。在监听器帮助客户端进程和服务器进程建立连接时,会用到指定范围内的端口。

        kernel.sem:表示设置的信号量,这4个参数内容大小固定。

        net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。

        net.core.rmem_max:表示接收套接字缓冲区大小的最大值(以字节为单位)。

        net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)。

        net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。


        4.在/etc/pam.d/login 文件中,增加或修改以下内容


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


          5.在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容



            if [ $USER = "oracle" ]; then
            if [ $SHELL = "/bin/ksh" ]; then
            ulimit -p 16384
            ulimit -n 65536
            else
            ulimit -u 16384 -n 65536
            fi
            fi
            [root@rhel64 ~]# source etc/profile --生效


            6.创建用户和组


              [root@rhel64 ~]# groupadd oinstall
              [root@rhel64 ~]# groupadd dba
              [root@rhel64 ~]# groupadd oper
              创建用户 设置密码 oracle:oracle
              [root@rhel64 ~]# useradd -g oinstall -G dba,oper oracle
              [root@rhel64 ~]# passwd oracle


              7.创建目录


                [root@rhel64 ~]# mkdir -p u01/app/oracle
                [root@rhel64 ~]# chown -R oracle:oinstall u01
                [root@rhel64 ~]# chmod -R 775 /u01/app/oracle


                8.设置环境变量


                使用 oracle 用户连接 编辑/home/oracle/.bash_profile

                  [oracle@rhel64 ~]$ vi .bash_profile
                  unset TNS_ADMIN
                  export ORACLE_BASE=/u01/app/oracle
                  export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
                  export ORACLE_SID=PROD
                  export PATH=$ORACLE_HOME/bin:$PATH
                  [oracle@rhel64 ~]$ source .bash_profile
                  验证
                  [oracle@rhel64 ~]$ echo $ORACLE_BASE
                  [oracle@rhel64 ~]$ echo $ORACLE_HOME
                  [oracle@rhel64 ~]$ echo $ORACLE_SID
                  [oracle@rhel64 ~]$ echo $PATH


                  9.上传解压Oracle安装包修改权限


                  上传目录为/software,相关安装包可后台联系小编获取

                  unzip p13390677_112040_Linux-x86-64_1of7.zip

                  unzip p13390677_112040_Linux-x86-64_2of7.zip

                  在/software下面得到database文件夹 修改属主 属组 权限


                    [root@rhel64 db]# chown -R oracle:oinstall database/
                    [root@rhel64 db]# chmod -R +x database/



                    10.修改安装响应文件


                    切换oracle用户,修改安装Oracle软件的响应文件/software/database/response/db_install.rsp

                    主要修改以下参数:

                      oracle.install.option=INSTALL_DB_SWONLY      安装类型
                      ORACLE_HOSTNAME=docker 主机名称(hostname查询)
                      UNIX_GROUP_NAME=oinstall 安装组
                      INVENTORY_LOCATION=/u01/app/oraInventory INVENTORY目录(不填就是默认值)
                      SELECTED_LANGUAGES=en,zh_CN,zh_TW 选择语言
                      ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 oracle_home
                      ORACLE_BASE=/u01/app/oracle oracle_base
                      oracle.install.db.InstallEdition=EE     // oracle版本
                      oracle.install.db.EEOptionsSelection=false   //自定义安装,否,使用默认组件
                      oracle.install.db.DBA_GROUP=dba   / dba用户组
                      oracle.install.db.OPER_GROUP=oinstall oper用户组
                      oracle.install.db.config.starterdb.type=GENERAL_PURPOSE 数据库类型
                      oracle.install.db.config.starterdb.globalDBName=orcl globalDBName
                      oracle.install.db.config.starterdb.SID=dbsrv2 SID
                      oracle.install.db.config.starterdb.memoryLimit=81920 自动管理内存的内存(M)
                      oracle.install.db.config.starterdb.password.ALL=oracle /设定所有数据库用户使用同一个密码
                      SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //(手动写了false)
                      DECLINE_SECURITY_UPDATES=true   //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对


                      本次参数修改如下:(空的可以不填)

                        oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
                        oracle.install.option=INSTALL_DB_SWONLY
                        ORACLE_HOSTNAME=redhat7.4
                        UNIX_GROUP_NAME=oinstall
                        SELECTED_LANGUAGES=en,zh_CN,zh_TW
                        ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
                        ORACLE_BASE=/u01/app/oracle
                        oracle.install.db.InstallEdition=EE
                        oracle.install.db.EEOptionsSelection=false
                        oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
                        oracle.install.db.DBA_GROUP=dba
                        oracle.install.db.OPER_GROUP=oinstall
                        oracle.install.db.CLUSTER_NODES=
                        oracle.install.db.isRACOneInstall=
                        oracle.install.db.racOneServiceName=
                        oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
                        oracle.install.db.config.starterdb.globalDBName=orcl
                        oracle.install.db.config.starterdb.SID=PROD
                        oracle.install.db.config.starterdb.characterSet=AL32UTF8
                        oracle.install.db.config.starterdb.memoryOption=true
                        oracle.install.db.config.starterdb.memoryLimit=81920
                        oracle.install.db.config.starterdb.installExampleSchemas=false
                        oracle.install.db.config.starterdb.enableSecuritySettings=true
                        oracle.install.db.config.starterdb.password.ALL=oracle
                        oracle.install.db.config.starterdb.password.SYS=
                        oracle.install.db.config.starterdb.password.SYSTEM=
                        oracle.install.db.config.starterdb.password.SYSMAN=
                        oracle.install.db.config.starterdb.password.DBSNMP=
                        oracle.install.db.config.starterdb.control=DB_CONTROL
                        oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
                        oracle.install.db.config.starterdb.automatedBackup.enable=false
                        oracle.install.db.config.starterdb.automatedBackup.osuid=
                        oracle.install.db.config.starterdb.automatedBackup.ospwd=
                        oracle.install.db.config.starterdb.storageType=
                        oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
                        oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
                        oracle.install.db.config.asm.diskGroup=
                        oracle.install.db.config.asm.ASMSNMPPassword=
                        MYORACLESUPPORT_USERNAME=
                        MYORACLESUPPORT_PASSWORD=
                        SECURITY_UPDATES_VIA_MYORACLESUPPORT=true
                        DECLINE_SECURITY_UPDATES=true
                        PROXY_HOST=
                        PROXY_PORT=
                        PROXY_USER=
                        PROXY_PWD=
                        PROXY_REALM=
                        COLLECTOR_SUPPORTHUB_URL=
                        oracle.installer.autoupdates.option=
                        oracle.installer.autoupdates.downloadUpdatesLoc=
                        AUTOUPDATES_MYORACLESUPPORT_USERNAME=
                        AUTOUPDATES_MYORACLESUPPORT_PASSWORD=


                        11.开始静默安装

                        Oracle用户在/software/database下面执行:

                        ./runInstaller -silent -responseFile /software/database/response/db_install.rsp

                        如图所示按提示切换到root用户执行:

                          su - root
                          /u01/app/oraInventory/orainstRoot.sh
                          /u01/app/oracle/product/11.2.0/db_1/root.sh


                          12.配置监听程序


                          netca /silent /responsefile /software/database/response/netca.rsp

                          检查监听程序

                            [oracle@docker ~]$ lsnrctl status


                            13.静默dbca建库,编辑应答文件


                              vi /software/database/response/dbca.rsp
                              主要配置以下参数:
                              [GENERAL]
                              RESPONSEFILE_VERSION = "11.2.0.4.0"
                              OPERATION_TYPE = "createDatabase"
                              [CREATEDATABASE]
                              GDBNAME = "PROD"
                              SID = "PROD"
                              TEMPLATENAME = "General_Purpose.dbc"
                              CHARACTERSET = "AL32UTF8


                              14.建库


                              dbca -silent -responseFile /software/database/response/dbca.rsp



                              至此数据库服务端创建成功!


                              客户端安装:


                              1.创建用户和组


                                [root@zxapp2 ~]# groupadd oinstall
                                [root@zxapp2 ~]# groupadd dba
                                [root@zxapp2 ~]# groupadd oper
                                [root@zxapp2 ~]# useradd -g oinstall -G dba,oper oracle
                                useradd: user 'oracle' already exists--用户存在
                                [root@zxapp2 ~]# usermod -g oinstall -G dba,oper oracle


                                2.创建文件夹并赋权限


                                  [root@zxapp2 ~]# mkdir -p /u01/app/oracle
                                  [root@zxapp2 ~]# chown -R oracle:oinstall /u01
                                  [root@zxapp2 ~]# chmod -R 775 /u01/app/oracle


                                  3.配置环境变量


                                    Oracle用户vi .bash_profile增加以下配置
                                    unset TNS_ADMIN
                                    export ORACLE_BASE=/u01/app/oracle
                                    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
                                    export ORACLE_SID=dxdb
                                    export PATH=$ORACLE_HOME/bin:$PATH
                                    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
                                    保存退出
                                    Source .bash_profile 重启该文件有效


                                    4.上传Oracle11.2.0.4.0客户端软件并解压


                                    软件后台联系小编获取

                                      cd /home/oracle
                                      unzip p13390677_112040_Linux-x86-64_4of7.zip


                                      5.yum安装依赖包(root用户)


                                        yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat ld-linux.so.2


                                        6.配置响应文件client_install.rsp


                                          文件在解压后的客户端软件里路径如下
                                          vi /home/oracle/client/response/client_install.rsp
                                          主要修改以下参数即可:
                                          ORACLE_HOSTNAME=ora-client-001(主机名)
                                          UNIX_GROUP_NAME=oinstall(组)
                                          INVENTORY_LOCATION=/u01/app/oraInventory(安装路径)
                                          SELECTED_LANGUAGES=en,zh_CN(字符集)
                                          ORACLE_HOME=/u01/app/oracle/11.2/client
                                          ORACLE_BASE=/u01/app/oracle
                                          oracle.install.client.installType=Administrator


                                          7.在解压的客户端路径下安装客户端软件


                                          ./runInstaller -silent -responseFile /home/oracle/client/response/client_install.rsp(注意路径)

                                          根据提示运行脚本


                                          8.配置监听tnsnames.ora文件

                                          配置路径$ORACLE_HOME/network/admin,在此路径下新建监听文件配置以下内容:

                                            DXDB =
                                            (DESCRIPTION =
                                            (ADDRESS_LIST =
                                            (ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521))
                                            (LOAD_BALANCE = yes)
                                            )
                                            (CONNECT_DATA =
                                            (SERVER = DEDICATED)
                                            (SERVICE_NAME = dxdb)
                                            )
                                            )


                                            9.测试连接



                                            至此静默安装Oracle的客户端和服务端的工作算是完成了。加油小伙伴们,工作的路途还很遥远,继续努力,做更好的自己,如有问题欢迎大家后台交流沟通,写作不易,点点关注呗,祝小伙伴们工作愉快!


                                            文章转载自咖啡逗不逗,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                            评论