免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4843 | 回复: 6
打印 上一主题 下一主题

如果开机自动启动oracle,环境为solaris10 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-01 16:46 |只看该作者 |倒序浏览
我的机器是sun 445,4G内存,4×72G硬盘,系统环境安装的是solaris10,oracle是8.1.7\r\n一、建立一个oracle用户,属于dba组\r\n   我一般是这样启动(原来可以直接运行dbstart,现在不知道新安装的这个机器不行)\r\n                   #su - oracle\r\n                            $lsnrctl start\r\n                            $lsnrctl svrmgrl\r\n                            SVRMGR> connect internal\r\n                            SVRMGR>startup\r\n我的问题,如何在solaris启动,机器自动运行,能直接运行oracle?\r\n各位能给个具体配置说明吗?

论坛徽章:
2
双鱼座
日期:2014-02-23 12:10:03操作系统版块每日发帖之星
日期:2015-12-17 06:20:00
2 [报告]
发表于 2007-06-01 16:51 |只看该作者
#!/bin/sh\r\n\r\n\r\ncase \"$1\" in\r\nstart)\r\n\r\n        # start tsnlisnter\r\n        echo \"start tsnlisnter\"\r\n                su - oracle -c \"lsnrctl start\" \r\n\r\n        # start database\r\n        echo \"Start oracle  database instance\"\r\n        su - oracle -c \"echo \\\"\r\n                        CONN SYS/PASSWORD AS SYSDBA\r\n                        STARTUP\r\n                        exit \\\"|sqlplus /NOLOG\" \r\n\r\n        # start enterprise manager\r\n        echo \" Start Emterprise Manager\"\r\n        su -oracle  -c \"emctl start dbconsole\" \r\n\r\n        # start isqlplus\r\n        echo \"Start isqlplus\"\r\n        su - oracle  -c \"isqlplusctl start\" \r\n\r\n        ;;\r\nstop)\r\n        # shutdown database\r\n        echo \"Shutdown oracle  database instance\"\r\n        su - oracle  -c \"echo \\\"\r\n                        CONN SYS/PASSWORD AS SYSDBA\r\n                        SHUTDOWN immediate\r\n                        exit \\\"|sqlplus /NOLOG\" \r\n\r\n        # stop tsnlisnter\r\n        echo \"Stop tsnlisnter\"\r\n                su -oracle  -c \"lsnrctl stop\" \r\n\r\n        # stop enterprise manager\r\n        echo \" Stop Emterprise Manager\"\r\n        su -oracle  -c \"emctl stop dbconsole\" \r\n\r\n        # stop isqlplus\r\n        echo \"Stop isqlplus\"\r\n        su - oracle -c \"isqlplusctl stop\" \r\n\r\n        ;;\r\n*)\r\n        echo \"Usage: $0 { start | stop }\"\r\n        exit 1\r\n        ;;\r\nesac\r\nexit 0\r\n\r\n\r\nsave as /etc/init.d/oracle10g and then\r\n#ln [-s] /etc/init.d/oracle10g  /etc/rc2.d/S99oracle10g \r\n\r\n#ln [-s] /etc/init.d/oracle10g /etc/rc0.d/K00oracle10g

论坛徽章:
0
3 [报告]
发表于 2007-06-01 17:36 |只看该作者
1、编辑/var/opt/oracle/oratab,允许Oracle实例自动启动\r\n2、编辑$ORACLE_HOME/bin/dbstart,将LISTENER一句改为真实目录(如果是Oracle 10,不需要启动listener)\r\n3、cat /var/svc/manifest/application/oracle/database,application/oracle不是必须的,可根据实际情况进行调整\r\n
  1. <?xml version=\"1.0\"?>\r\n<!DOCTYPE service_bundle SYSTEM \"/usr/share/lib/xml/dtd/service_bundle.dtd.1\">\r\n\r\n<service_bundle type=\'manifest\' name=\'oracle_database\'>\r\n\r\n<service\r\n        name=\'application/oracle/database\'\r\n        type=\'service\'\r\n        version=\'1\'>\r\n\r\n        <dependency\r\n            name=\'filesystem_minimal\'\r\n            grouping=\'require_all\'\r\n            restart_on=\'none\'\r\n            type=\'service\'>\r\n                <service_fmri value=\'svc:/system/filesystem/minimal\' />\r\n        </dependency>\r\n\r\n        <dependency\r\n            name=\'loopback\'\r\n            grouping=\'require_any\'\r\n            restart_on=\'error\'\r\n            type=\'service\'>\r\n                <service_fmri value=\'svc:/network/loopback\' />\r\n        </dependency>\r\n\r\n        <dependency\r\n            name=\'network\'\r\n            grouping=\'optional_all\'\r\n            restart_on=\'error\'\r\n            type=\'service\'>\r\n                <service_fmri value=\'svc:/milestone/network\' />\r\n                <service_fmri value=\'svc:/milestone/multi-user-server\' />\r\n        </dependency>\r\n\r\n        <exec_method\r\n            type=\'method\'\r\n            name=\'stop\'\r\n            exec=\'/lib/svc/method/database stop\'\r\n            timeout_seconds=\'60\' >\r\n        </exec_method>\r\n\r\n        <instance name=\'default\' enabled=\'false\' >\r\n\r\n                <exec_method\r\n                    type=\'method\'\r\n                    name=\'start\'\r\n                    exec=\'/lib/svc/method/database start\'\r\n                    timeout_seconds=\'60\' >\r\n                </exec_method>\r\n\r\n        </instance>\r\n\r\n        <stability value=\'Unstable\' />\r\n\r\n        <template>\r\n                <common_name>\r\n                        <loctext xml:lang=\'C\'>\r\n                                Oracle Database\r\n                        </loctext>\r\n                </common_name>\r\n        </template>\r\n\r\n</service>\r\n\r\n</service_bundle>
复制代码
\r\n文件中的timeout时间需要根据自己的数据库进行调整,时间太小可能会出问题\r\n4、cat /lib/svc/method/databae\r\n
  1. #!/sbin/sh\r\n\r\nisstart=`ps -ef | grep oracle | wc -l`\r\nORACLE_HOME=/oracle/product/10g\r\n\r\ncase \"$1\" in\r\n\'start\')\r\n        su - oracle -c \"$ORACLE_HOME/bin/dbstart > /dev/null 2>&1\"\r\n        ;;\r\n\r\n\'stop\')\r\n        su - oracle -c \"$ORACLE_HOME/bin/dbshut > /dev/null 2>&1\"\r\n        ;;\r\n*)\r\n        echo \"Usage:$0 start | stop | status\"\r\n        ;;\r\n\r\nesac\r\nexit 0
复制代码
\r\n5、使用svccfg命令进行import,然后svcadm -v enable oracle/database\r\n\r\n6、非10g版本需要启动listener,方法与3、4、5上相同\n\n[ 本帖最后由 jinijxta 于 2007-6-1 17:40 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-06-01 21:32 |只看该作者
EastSpider and jinijxta, thanks for sharing your scripts.\r\n\r\nA question for jinijxta, if Solaris SMF has control on the Oracle database,\r\nit will try to start the database when the database is down, right?

论坛徽章:
0
5 [报告]
发表于 2007-06-01 23:49 |只看该作者
如果timeout_seconds设置过小,SMF会使得Oracle频繁启停,具体原因没有查过。估计是SMF在超时后发现启动不成功就停止服务,停止后又进行启动造成的,我一般设置的超时时间是240秒。在method/database文件中isstart变量未用,可用来检查oracle是否己启动,isstart中最好是改为isstart=`ps -ef | grep ora_ | wc -l`,否则以oracle用户登录时会误判,然后检查isstart的值>5就认为oracle己启动。

论坛徽章:
0
6 [报告]
发表于 2007-06-02 01:10 |只看该作者
Thanks for your prompt reply, jinijxta.\r\n\r\n240 sec. is a long time for a production DB.\r\nThat\'s why I did not put my prod. DB under the control of SMF.\r\n\r\nNow the $ORACLE_HOME/bin/dbstart contains three operations:\r\n1. start the listener\r\n2. start the DB\r\n3. start ASM\r\n\r\nIf you only want to stop the DB or ASM to do some maintenance,\r\nthe SMF will give you trouble, I guess.

论坛徽章:
0
7 [报告]
发表于 2007-06-02 13:59 |只看该作者
我的生产系统是Solaris 8上运行的Oracle 9iR2,10g只是为升级作准备,在VMware里面测试的。具体时间应该可以调整。如果要将listener、database、asm分开,应该能办到。\r\n也就是建立3个服务,分别是:\r\noracle/listener,使用$ORACLE_HOME/bin/listenerctl来控制启停\r\noracle/database,这个要自己写一个脚本,或者copy dbstart改改也没问题\r\noracle/asmcontrol,使用$ORACLE_HOME/bin/crsctl来控制启停
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP