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

LINUX环境:MySQL和Oracle开机自启动,咋搞?

378

【此为"一森咖记"公众号——第23篇文章】


【前言】

 

《用户:单台服务器部署多MySQL实例,咋弄?

 

上述一文中有讲述MySQL如何设置开机自启动,这里简要回顾下步骤:

 

1. MySQL配置自启动 

 #将MySQL的启动服务添加到系统服务中,设置开机自启动:(chkconfig 命令redhat系统的)


创建软连接:

[root@ethan-testdb ~]# ln -s /MySQLsoft/MySQL /usr/local/MySQL

 

[root@ethan-testdb ~]# pwd

/usr/local/MySQL/support-files

[root@ethan-testdb ~]# cp MySQL.server etc/init.d/MySQLd

 

[root@ethan-testdb ~]# /etc/init.d/MySQLd

startStarting MySQL.. SUCCESS!

 

赋予执行权限:

 

[root@ethan-testdb ~]# chmod +x etc/init.d/MySQLd

添加服务:

[root@ethan-testdb ~]# chkconfig --add MySQLd

显示服务列表:

[root@ethan-testdb ~]# chkconfig --list

如果看到MySQL的服务,并且3,4,5都是on的话则成功,如果是off,则使用如下命令:

[root@ethan-testdb ~]# chkconfig --level 345 MySQLd on

至此,MySQL开机自启动设置成功。

 

一个问题:

    那Oracle的开机自启动又如何做?


答案是:

dbstart,dbstart为开机自启动脚本,让系统开机就去执行dbstart脚本文件,它会去读oratab文件,读到Y就会把对应的实例开机自启动


配置步骤:

 

安装好OracleLinux系统(Red Hat Enterprise Linux 7.2Oracle 12c)

1、查看ORACLE_HOME是否设置

    $ echo $ORACLE_HOME/u01/app/oracle/product/12.2.0/dbhome_1


     linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:

      [oracle@ethandb home_1]$ cd bin/[oracle@ethan bin]$ ll | grep dbs
      -rwxr-x---. 1 oracle oinstall 6088 1月 1 2000 dbshut
      -rwxr-x---. 1 oracle oinstall 13892 12月 11 16:01 dbstart

      首次执行时,报错如下:

        [oracle@ethan bin]$ dbstart
        ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener Usage: oracle/app/oracle/product/12.2.1/dbhome_1/

        错误提示:ORACLE_HOME_LISTNER 没有设置

         

        原因:dbstartdbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:vi编辑dbstart,ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

        ORACLE_HOME_LISTNER=/oracle/app/oracle/product/12.2.1/dbhome_1/

        注意:$ORACLE_HOME环境设置正确

         

        2、编辑文件/etc/oratab

        dbca建库时都会自动创建/etc/oratab文件


          [oracle@ethan bin]# vi etc/oratab


          # Entries are of the form:

          #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:


          ethanDB:/oracle/app/oracle/product/12.2.1/dbhome_1/:N”

          改为ethanDB:/oracle/app/oracle/product/12.2.1/dbhome_1/:Y”

          修改完成后,保存退出

           

          3、编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart

            #vi etc/rc.d/rc.local    ---末尾添加:
            su - oracle -lc “/oracle/app/oracle/product/12.2.1/dbhome_1/bin/lsnrctl start
            su - oracle -lc oracle/app/oracle/product/12.2.1/dbhome_1/bin/dbstart


             

            如果服务器中有多个实例,监听启动时需指定实例

              su - oracle -lc “/oracle/app/oracle/product/12.2.1/dbhome_1/bin/lsnrctl start ethanDB”
              su - oracle -lc “/oracle/app/oracle/product/12.2.1/dbhome_1/bin/lsnrctl start dannielDB”
              su - oracle -lc /oracle/app/oracle/product/12.2.1/dbhome_1/bin/dbstart


               

              注意:命令中-c代表执行脚本,脚本lsnrctl中启动配置的监听,监听写多个启动;实例用一个dbstart命令去启动,它会去读oratab文件,读到Y就会把对应的实例开机自启动

               

              4、重启主机,查看数据库和监听是自启动

               

              简要复习下相关命令:


              linux下设置实例自启动脚本

              oratab:实例是否自启动的注册信息

              dbstart:开机启动脚本文件会读取oratab信息

              rc.local:开机后立即要做的文件

              --“启动监听” lsnrctl start

              --“启动数据库实例” dbstart

              --“关闭数据库实例dbshut

              --“关闭监听lsnrctl stop


              【结语】

              1. 本文详细介绍了MysqlOracle开机自启动的实操步骤,具有强借鉴性;

              2. 通常我们不会设置开机自启动,原因为:库在正常情况下,是方便了常规启停管理;但我们在部署生产数据库架构时,高可用性是必配项,如果某台库有异常,这时会进行人工排查,自启动服务有时会干扰DBA的操作和判断。故生产环境下,不建议配置开机自启动;且服务器的启停发生频度低,一般会严格走变更流程,还是踏踏实实的按照库正常操作的变更操作走方妥。

              3. 以上两点为自家感悟,如有不对,欢迎指正。

               

              4. 再说点自己最近一个感悟,正巧看到一句,可表当下心态:

              既往不恋,当下不杂,未来不迎(曾国藩)

               

              另看到作家马德的一句,深表赞同:

              “这个世界,看似周遭复杂,各色人等,泥沙俱下,本质上,还是你一个人的世界。你若澄澈,世界就干净,你若简单,世界就难以复杂。”




              如果大家觉得此文有帮助,欢迎关注个人微信公众号;

              长按识别二维码或公众号搜索“一森咖记”




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

              评论