grid软件,执行root.sh脚本失败,解决办法

安装oracle grid软件,安装到执行root.sh脚本是提示错误

错误信息:

CRS-4664: Node db2 successfully pinned.
Adding Clusterware entries to inittab
ohasd failed to start
Failed to start the Clusterware. Last 20 lines of the alert log follow: 
2016-05-26 15:19:08.894
[client(18649)]CRS-2101:The OLR was formatted using version 3.
2016-05-26 15:19:09.480
[client(18676)]CRS-1001:The OCR was formatted using version 3.
[client(18750)]CRS-10001:CRS-6021: No msg for has:crs-6021 [l][unlimited]
[client(18751)]CRS-10001:CRS-6021: No msg for has:crs-6021 [n][65536]


ohasd failed to start at /u01/grid/crs/install/roothas.pl line 358, line 6.

参看日志,没有看出什么大问题

提示:/var/temp/.oracle/npohasd 不存在

参考文档:

需要改变该文件权限

[root@localhost .oracle]# ls -l
total 0
prw-r--r-- 1 grid oinstall 0 Mar 11 21:21 npohasd
[root@localhost .oracle]# chown root:oinstall npohasd 


Then dconfigur crs using :


[root@localhost .oracle]# /u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
CRS resources for listeners are still configured
CRS-2613: Could not find resource 'ora.cssd'.
CRS-4000: Command Stop failed, or completed with errors.
CRS-2613: Could not find resource 'ora.cssd'.
CRS-4000: Command Delete failed, or completed with errors.
CRS-4133: Oracle High Availability Services has been stopped.
/u01/app/11.2.0/grid/bin/acfsdriverstate: line 51: /lib/acfstoolsdriver.sh: No such file or directory
/u01/app/11.2.0/grid/bin/acfsdriverstate: line 51: exec: /lib/acfstoolsdriver.sh: cannot execute: No such file or directory
cannot remove path when cwd is /var/tmp/.oracle for /var/tmp/.oracle: at /u01/app/11.2.0/grid/crs/install/s_crsconfig_lib.pm line 1813
Successfully deconfigured Oracle Restart stack


and then run root.sh again: 


[root@localhost .oracle]# /u01/app/11.2.0/grid/root.sh
Running Oracle 11g root script...


The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/11.2.0/grid


Enter the full pathname of the local bin directory: [usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.


Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
LOCAL ADD MODE 
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE 
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node localhost successfully pinned.
Adding daemon to inittab
ACFS-9459: ADVM/ACFS is not supported on this OS version: 'error: file /etc/SuSE-release: No such file or directory
'


localhost 2012/03/12 07:30:46 /u01/app/11.2.0/grid/cdata/localhost/backup_20120312_073046.olr
Successfully configured Oracle Grid Infrastructure for a Standalone Server


下面的文章为转发的的参考资料

原帖地址:http://www.vydbs.com/failed-executing-root-sh-ohasd-start-the-solution/
在Red Hat 6.2上安装Oracle grid 11.2.0.1,执行root.sh脚本的时候出现一些问题,无法启动ohasd。


由于Redhat Enterprise Linux 6开始的启动初始化已由init改用upstart的方式,inittab只保留和支持运行级别的配置,其它配置放到了别的地方,oracle 11.2.0.1的grid在安装时执行root.sh脚本还是使用的init方式,会写启动配置到inittab,而11.2.0.1还是按照5的init模式配置。


实际上造成11.2.0.1在Red Hat6上安装错误是因为upstart/init不一致性,从RHEL6开始,/etc/inittab文件内容变了,只有默认的启动等级。而Oracle 11.2.0.1仍是按照以前的习惯把启动命令写在/etc/inittab文件中。


以下实验只适合用于测试与实验环境,生产环境强烈推荐使用Oracle操作系统认证的环境,比如Red Hat6上使用11.2.0.3版本。


执行root.sh脚本报错




# ./root.sh 
Running Oracle 11g root.sh script...


The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/11.2.0/grid


Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2013-04-03 14:53:56: Checking for super user privileges
2013-04-03 14:53:56: User has super user privileges
2013-04-03 14:53:56: Parsing the host name
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
/etc/profile: line 6: ulimit: max user processes: cannot modify limit: Operation not permitted
LOCAL ADD MODE 
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
CRS-4664: Node oracle11gr2 successfully pinned.
Adding daemon to inittab
Failed to start oracle-ohasd, error: 
ohasd failed to start: Inappropriate ioctl for device at /u01/app/11.2.0/grid/crs/install/roothas.pl line 296.

# ./root.sh 
Running Oracle 11g root.sh script...
 
The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/11.2.0/grid
 
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
 
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2013-04-03 14:53:56: Checking for super user privileges
2013-04-03 14:53:56: User has super user privileges
2013-04-03 14:53:56: Parsing the host name
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
/etc/profile: line 6: ulimit: max user processes: cannot modify limit: Operation not permitted
LOCAL ADD MODE 
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
CRS-4664: Node oracle11gr2 successfully pinned.
Adding daemon to inittab
Failed to start oracle-ohasd, error: 
ohasd failed to start: Inappropriate ioctl for device at /u01/app/11.2.0/grid/crs/install/roothas.pl line 296.
或者可能如下错误:




Adding daemon to inittab
CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
ohasd failed to start: Inappropriate ioctl for device
ohasd failed to start at/u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443.


CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
ohasd failed to start: Inappropriate ioctl for device
ohasd failed to start: Inappropriate ioctl for device at /u01/app/11.2.0/grid/crs/install/roothas.pl line 296.
Adding daemon to inittab
CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
ohasd failed to start: Inappropriate ioctl for device
ohasd failed to start at/u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443.
 
CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
ohasd failed to start: Inappropriate ioctl for device
ohasd failed to start: Inappropriate ioctl for device at /u01/app/11.2.0/grid/crs/install/roothas.pl line 296.
回退root.sh脚本操作




# /u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose
2013-04-03 14:44:34: Checking for super user privileges
2013-04-03 14:44:34: User has super user privileges
2013-04-03 14:44:34: Parsing the host name
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Stop failed, or completed with errors.
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Delete failed, or completed with errors.
CRS-4544: Unable to connect to OHAS
CRS-4000: Command Stop failed, or completed with errors.
/u01/app/11.2.0/grid/bin/acfsdriverstate: line 51: /lib/acfstoolsdriver.sh: No such file or directory
/u01/app/11.2.0/grid/bin/acfsdriverstate: line 51: exec: /lib/acfstoolsdriver.sh: cannot execute: No such file or directory
Successfully deconfigured Oracle Restart stack

# /u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose
2013-04-03 14:44:34: Checking for super user privileges
2013-04-03 14:44:34: User has super user privileges
2013-04-03 14:44:34: Parsing the host name
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Stop failed, or completed with errors.
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Delete failed, or completed with errors.
CRS-4544: Unable to connect to OHAS
CRS-4000: Command Stop failed, or completed with errors.
/u01/app/11.2.0/grid/bin/acfsdriverstate: line 51: /lib/acfstoolsdriver.sh: No such file or directory
/u01/app/11.2.0/grid/bin/acfsdriverstate: line 51: exec: /lib/acfstoolsdriver.sh: cannot execute: No such file or directory
Successfully deconfigured Oracle Restart stack
步骤一:


方法1: 编辑$GRID_HOME/crs/install/s_crsconfig_lib.pm,查找if ($srv eq “ohasd”) { # Start OHASD)


# Start OHASD后方插入下列代码:


my $UPSTART_OHASD_SERVICE = "oracle-ohasd";
my $INITCTL = "/sbin/initctl";
 ($status, @output) = system_cmd_capture ("$INITCTL start $UPSTART_OHASD_SERVICE");
if (0 != $status)
{
error ("Failed to start $UPSTART_OHASD_SERVICE, error: $!");
return $FAILED;
}
my $UPSTART_OHASD_SERVICE = "oracle-ohasd";
my $INITCTL = "/sbin/initctl";
 ($status, @output) = system_cmd_capture ("$INITCTL start $UPSTART_OHASD_SERVICE");
if (0 != $status)
{
error ("Failed to start $UPSTART_OHASD_SERVICE, error: $!");
return $FAILED;
}


最后应该如下所示一样:


# Check to see if the service is OHASD
    if ($srv eq "ohasd") {


        # Create the autorun file
        my $AUTORUNFILE = catfile ($SCRBASE, $HOST, $HAS_USER, "ohasdrun");
        open (AUTORUN, ">$AUTORUNFILE")
            or die "Can't open $AUTORUNFILE for write: $!";
        print AUTORUN "stopn";
        close (AUTORUN);
        s_set_ownergroup ($HAS_USER, $HAS_GROUP, $AUTORUNFILE)
            or die "Can't change ownership of $AUTORUNFILE: $!";
        s_set_perms ("0644", $AUTORUNFILE)
            or die "Can't change permissions of $AUTORUNFILE: $!";


        # Add OHASD to inittab


        print "Adding daemon to inittabn";
        s_remove_itab ("cssd|evmd|crsd|ohasd") or return $FAILED;
        system ("$INIT q");
        sleep (5);
        s_add_itab () or return $FAILED;
        system ("$INIT q");


        # Start OHASD
####################插在此处地方############################
my $UPSTART_OHASD_SERVICE = "oracle-ohasd";
my $INITCTL = "/sbin/initctl";


($status, @output)=system_cmd_capture ("$INITCTL start $UPSTART_OHASD_SERVICE");
if (0 != $status)
{
error ("Failed to start $UPSTART_OHASD_SERVICE, error: $!");
return $FAILED;
}
#####################################################################
        $status = system ("$CRSCTL start has");
      } elsif ($srv eq "crsexcl") {
        trace ("Starting Oracle clusterware exclusive");
        # Create the autorun file

# Check to see if the service is OHASD
    if ($srv eq "ohasd") {
 
        # Create the autorun file
        my $AUTORUNFILE = catfile ($SCRBASE, $HOST, $HAS_USER, "ohasdrun");
        open (AUTORUN, ">$AUTORUNFILE")
            or die "Can't open $AUTORUNFILE for write: $!";
        print AUTORUN "stopn";
        close (AUTORUN);
        s_set_ownergroup ($HAS_USER, $HAS_GROUP, $AUTORUNFILE)
            or die "Can't change ownership of $AUTORUNFILE: $!";
        s_set_perms ("0644", $AUTORUNFILE)
            or die "Can't change permissions of $AUTORUNFILE: $!";
 
        # Add OHASD to inittab
 
        print "Adding daemon to inittabn";
        s_remove_itab ("cssd|evmd|crsd|ohasd") or return $FAILED;
        system ("$INIT q");
        sleep (5);
        s_add_itab () or return $FAILED;
        system ("$INIT q");
 
        # Start OHASD
####################插在此处地方############################
my $UPSTART_OHASD_SERVICE = "oracle-ohasd";
my $INITCTL = "/sbin/initctl";
 
($status, @output)=system_cmd_capture ("$INITCTL start $UPSTART_OHASD_SERVICE");
if (0 != $status)
{
error ("Failed to start $UPSTART_OHASD_SERVICE, error: $!");
return $FAILED;
}
#####################################################################
        $status = system ("$CRSCTL start has");
      } elsif ($srv eq "crsexcl") {
        trace ("Starting Oracle clusterware exclusive");
        # Create the autorun file
方法2:在执行root.sh脚本时出现Adding daemon to inittab的时候,使用root立即执行命令: 
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/nullbs=1024 count=1
步骤二:
 vi /etc/init/oracle-ohasd.conf


# Oracle OHASD startup


start on runlevel [35]
stop on runlevel [!35]
respawn
exec /etc/init.d/init.ohasd run >/dev/null 2>&1
# Oracle OHASD startup
 
start on runlevel [35]
stop on runlevel [!35]
respawn
exec /etc/init.d/init.ohasd run >/dev/null 2>&1

如果使用方法1,必须在执行root.sh脚本之前按照上述方法创建conf,否则执行root.sh也会无法通过。
如果使用方法2:则在执行完毕root.sh脚本后也必须创建,否则重启系统后无法自动启动HAS


验证:


# ./root.sh 
Running Oracle 11g root.sh script...


The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/11.2.0/grid


Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2013-04-03 14:45:16: Checking for super user privileges
2013-04-03 14:45:16: User has super user privileges
2013-04-03 14:45:16: Parsing the host name
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
/etc/profile: line 6: ulimit: max user processes: cannot modify limit: Operation not permitted
LOCAL ADD MODE 
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
CRS-4664: Node oracle11gr2 successfully pinned.
Adding daemon to inittab
CRS-4123: Oracle High Availability Services has been started.
ohasd is starting
ADVM/ACFS is not supported on oraclelinux-release-6Server-3.0.2.x86_64


oracle11gr2     2013/04/03 14:45:50     /u01/app/11.2.0/grid/cdata/oracle11gr2/backup_20130403_144550.olr
Successfully configured Oracle Grid Infrastructure for a Standalone Server
Updating inventory properties for clusterware
Starting Oracle Universal Installer...


Checking swap space: must be greater than 500 MB.   Actual 4020 MB    Passed
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oraInventory
'UpdateNodeList' was successful.
[root@oracle11gR2 grid]#

# ./root.sh 
Running Oracle 11g root.sh script...
 
The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/11.2.0/grid
 
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
 
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2013-04-03 14:45:16: Checking for super user privileges
2013-04-03 14:45:16: User has super user privileges
2013-04-03 14:45:16: Parsing the host name
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
/etc/profile: line 6: ulimit: max user processes: cannot modify limit: Operation not permitted
LOCAL ADD MODE 
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
CRS-4664: Node oracle11gr2 successfully pinned.
Adding daemon to inittab
CRS-4123: Oracle High Availability Services has been started.
ohasd is starting
ADVM/ACFS is not supported on oraclelinux-release-6Server-3.0.2.x86_64
 
oracle11gr2     2013/04/03 14:45:50     /u01/app/11.2.0/grid/cdata/oracle11gr2/backup_20130403_144550.olr
Successfully configured Oracle Grid Infrastructure for a Standalone Server
Updating inventory properties for clusterware
Starting Oracle Universal Installer...
 
Checking swap space: must be greater than 500 MB.   Actual 4020 MB    Passed
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oraInventory
'UpdateNodeList' was successful.
[root@oracle11gR2 grid]#
root.sh脚本执行成功


按照方法一的实施方法,会net配置错误,在安装完成后还需要手动netca


所以比较推荐方法二


http://www.itpub.net/forum.php?mod=viewthread&tid=1480563

你可能感兴趣的:(oracle数据库)