• OracleRAC 安装配置过程中的问题


    OS RHAS 3.2 DB 9204

    在RAC的安装配置过程中,虽然是严格仔细按照文档来实施,但还是出现不少问题,现整理出来。

    现象一 :

    在节点一安装数据库的时候出现以下错误

    1. [oracle@rac1 dbs]$ sqlplus "/nolog"
    2. SQL*Plus: Release 9.2.0.4.0 - Production on Thu Feb 23 14:09:08 2006
    3. Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    4. SQL> connect / as sysdba
    5. Connected to an idle instance.
    6. SQL> startup nomount pfile="/home/oracle/9.2.0.4/dbs/init.ora"
    7. ORA-00444: background process "LMD0" failed while starting
    8. ORA-07446: sdnfy: bad value '' for parameter .
    9. SQL> exit
    10. Disconnected

    查找了错误原因

    1. [oracle@rac1 dbs]$ oerr ora 444
    2. 00444, 00000, "background process "%s" failed while starting"
    3. // *Cause: Usually due to a bad (or non-existent) background process image.
    4. // *Action: Get a good background process image.

    竟然是LMD0进程有问题,重新分析了一下参数文件,没有发现有错误的地方,于是怀疑在安装的过程中出现问题。
    尝试在节点二创建数据库,

    1. [oracle@rac2 dbs]$ sqlplus "/nolog"
    2. SQL*Plus: Release 9.2.0.4.0 - Production on Thu Feb 23 14:20:32 2006
    3. Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    4. SQL> connect / as sysdba
    5. Connected to an idle instance.
    6. SQL> startup nomount pfile="/home/oracle/9.2.0.4/dbs/init.ora"
    7. ORACLE instance started.
    8. Total System Global Area 319923400 bytes
    9. Fixed Size 451784 bytes
    10. Variable Size 201326592 bytes
    11. Database Buffers 117440512 bytes
    12. Redo Buffers 704512 bytes

    使用一样的参数文件,在节点二却是可以的,这说明推断还是正确的。

    现象二:

    从节点二创建数据库成功,然后在节点一启动数据库

    1. SQL> startup mount pfile="/home/oracle/9.2.0.4/dbs/init.ora"
    2. ORACLE instance started.
    3. Total System Global Area 319923400 bytes
    4. Fixed Size 451784 bytes
    5. Variable Size 201326592 bytes
    6. Database Buffers 117440512 bytes
    7. Redo Buffers 704512 bytes
    8. ORA-00439: feature not enabled: Real Application Clusters

    以上错误,我平台是RH AS3.2,DB是企业版的9204,所以不会是版本出现问题。在节点一安装的过程中,发现
    $ srvconfig -init 这个命令不能使用,应该是某些组件还没有安装好,删除后重装,保留共享磁盘上节点一的REDO和UNDO数据文件,然后直接在节点一进行startup mount pfile="/home/oracle/9.2.0.4/dbs/init.ora",这下成功了。

    小插曲:在节点一MOUNT的过程中,还出现报控制文件出错的,很纳闷,节点二和节点一用的是同样的参数文件,后来发现是参数文件中,控制文件部分有换行的错误,重新整理后,错误就解决了。

    现象三 监听的配置

    监听的配置耗了一个上午的时间折腾,按照文档去配置,就是不行。。其间有时候监听可以起来,但是建了TEST用户,执行sqlplus test/test@rac 报错

    1. [oracle@rac2 admin]$ sqlplus test/test@rac2
    2. SQL*Plus: Release 9.2.0.4.0 - Production on Fri Feb 24 14:09:13 2006
    3. Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    4. ERROR:
    5. ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect
    6. descriptor

    说明监听还是配置不正确,监听配置的成功必须辅以tnsping rac 这个命令成功执行为准,下面是最后我两个节点的配置参数

    节点一:

    listener.ora

    1. LISTENER =
    2. (DESCRIPTION_LIST =
    3. (DESCRIPTION =
    4. (ADDRESS_LIST =
    5. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    6. )
    7. )
    8. )
    9. SID_LIST_LISTENER =
    10. (SID_LIST =
    11. (SID_DESC =
    12. (SID_NAME = PLSExtProc)
    13. (ORACLE_HOME = /home/oracle/9.2.0.4)
    14. (PROGRAM = extproc)
    15. )
    16. (SID_DESC =
    17. (ORACLE_HOME = /home/oracle/9.2.0.4)
    18. (SID_NAME = rac1)
    19. )
    20. )


    tnsnames.ora

    1. LISTENERS_RAC =
    2. (ADDRESS_LIST =
    3. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    4. (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1522))
    5. )
    6. LISTENER_RAC1 =
    7. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    8. LISTENER_RAC2 =
    9. (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    10. RAC1 =
    11. (DESCRIPTION =
    12. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    13. (CONNECT_DATA =
    14. (SERVICE_NAME = rac)
    15. (INSTANCE_NAME = rac1)
    16. )
    17. )
    18. RAC2 =
    19. (DESCRIPTION =
    20. (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    21. (CONNECT_DATA =
    22. (SERVICE_NAME = rac)
    23. (INSTANCE_NAME = rac2)
    24. )
    25. )
    26. RAC =
    27. (DESCRIPTION =
    28. (ADDRESS_LIST =
    29. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    30. (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    31. (LOAD_BALANCE = on)
    32. (FAILOVER = on)
    33. )
    34. (CONNECT_DATA =
    35. (SERVER = DEDICATED)
    36. (SERVICE_NAME = rac)
    37. )
    38. )
    39. EXTPROC_CONNECTION_DATA =
    40. (DESCRIPTION =
    41. (ADDRESS_LIST =
    42. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    43. )
    44. (CONNECT_DATA =
    45. (SID = PLSExtProc)
    46. (PRESENTATION = RO)
    47. )
    48. )

    节点二:

    listener.ora

    1. LISTENER =
    2. (DESCRIPTION_LIST =
    3. (DESCRIPTION =
    4. (ADDRESS_LIST =
    5. (ADDRESS = (PROTOCOL = tcp)(HOST = rac2)(PORT = 1521))
    6. )
    7. )
    8. )
    9. SID_LIST_LISTENER =
    10. (SID_LIST =
    11. (SID_DESC =
    12. (SID_NAME = PLSExtProc)
    13. (ORACLE_HOME = /home/oracle/9.2.0.4)
    14. (PROGRAM = extproc)
    15. )
    16. (SID_DESC =
    17. (ORACLE_HOME = /home/oracle/9.2.0.4)
    18. (SID_NAME = rac2)
    19. )
    20. )

    tnsnames.ora

    1. LISTENERS_RAC =
    2. (ADDRESS_LIST =
    3. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    4. (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    5. )
    6. LISTENER_RAC2 =
    7. (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    8. LISTENER_RAC1 =
    9. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    10. RAC2 =
    11. (DESCRIPTION =
    12. (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    13. (CONNECT_DATA =
    14. (SERVICE_NAME = rac)
    15. (INSTANCE_NAME = rac2)
    16. )
    17. )
    18. RAC1 =
    19. (DESCRIPTION =
    20. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    21. (CONNECT_DATA =
    22. (SERVICE_NAME = rac)
    23. (INSTANCE_NAME = rac1)
    24. )
    25. )
    26. RAC =
    27. (DESCRIPTION =
    28. (ADDRESS_LIST =
    29. (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    30. (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    31. (LOAD_BALANCE = on)
    32. (FAILOVER = on)
    33. )
    34. (CONNECT_DATA =
    35. (SERVER = DEDICATED)
    36. (SERVICE_NAME = rac)
    37. )
    38. )
    39. EXTPROC_CONNECTION_DATA =
    40. (DESCRIPTION =
    41. (ADDRESS_LIST =
    42. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    43. )
    44. (CONNECT_DATA =
    45. (SID = PLSExtProc)
    46. (PRESENTATION = RO)
    47. )
    48. )

    在监听配置的过程中,还出现这样一个现象,发现在节点二上无论怎么配置都出现以下故障

    1. [oracle@rac2 admin]$ lsnrctl start
    2. LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 24-FEB-2006 14:40:20
    3. Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
    4. Starting /home/oracle/9.2.0.4/bin/tnslsnr: please wait...
    5. TNSLSNR for Linux: Version 9.2.0.4.0 - Production
    6. System parameter file is /home/oracle/9.2.0.4/network/admin/listener.ora
    7. Log messages written to /home/oracle/9.2.0.4/network/log/listener.log
    8. Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac2)(PORT=1521)))
    9. TNS-12542: TNS:address already in use
    10. TNS-12560: TNS:protocol adapter error
    11. TNS-00512: Address already in use
    12. Linux Error: 98: Address already in use
    13. Listener failed to start. See the error message(s) above...

    起初以为是端口的问题,更改了监听的端口,监听是成功了。但是后来想想,两台不同的机器,怎么会可能存在地址占用呢,于是又去搜索故障原因,检查配置文件,最后 netstat -lpn发现有个1521的端口一直开着,却什么事情也不干,于是强制把这个进程给KILL掉,再重新配置,成功!

  • 相关阅读:
    微服务系列之初探“微服务架构”
    express创建服务器,以及前后端联调
    Redis-列表
    有氧运动与无氧运动的区别
    智慧公厕是什么?智慧公厕对智慧城市的意义
    安卓案例:选项菜单
    9/4 经典dp+线性筛求质数+混合背包
    nuxt作为主应用接入qiankun的实践(附代码)
    CentOS部署MySQL 5.7(详细)
    pytorch-10.卷积神经网络
  • 原文地址:https://blog.csdn.net/caryxp/article/details/133957014