热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

RedHat+Oracle安装过程中碰到的一些值得总结的问题-mysql教程

昨天大半夜装一个RedHatLinux5+Oracle版本,期间碰到了几件事情,陈述如下,以此为据。安装前需要配置内核参数,可参考Oracle官

昨天大半夜装一个RedHat Linux 5+Oracle版本,期间碰到了几件事情,陈述如下,以此为据。安装前需要配置内核参数,可参考Oracle官

昨天大半夜装一个RedHat Linux 5+Oracle版本,期间碰到了几件事情,陈述如下,以此为据。

1. 安装前需要配置内核参数,可参考Oracle官方文档推荐的最低值来设置,但往往机器自身有些参数值已有了,例如kernel.shmmax、kernel.shmall,也参考过网上不少帖子,设置的值有所差别,此时官方文档中的一句话值得我们注意:

“Note: If the current value of any parameter is higher than the value listed in this table, then do not change the value of that parameter.”

也就是说如果已有的参数值大于文档中推荐的最低值,那么可以不做改动。

2. 包括官方文档,还有网上一些实战贴,都提到了可以修改Shell Limits限制以提高效率。那这是为什么呢?

一般我们需要新增设置的是oracle安装账户对应的nproc和nofile取值,通常还有hard和soft之分,那他们究竟代表什么呢?

其实从/etc/security/limits.conf文件的注释信息就可以得出一些答案:

(1) 格式

其中可以是用户名、组名,通配符*表示默认所有,通配符%表示模糊匹配的选项。

有soft和hard之分,soft表示当前系统生效的设置值,hard表示系统最大可接受的设置值。

则有很多项,例如core、stack、nofile、nproc等,nofile表示最大可打开的文件数量,nproc表示最大进程数量。

3. 配置账户环境变量时,有些帖子写的非常多,即使是PATH、LD_LIBRARY_PATH,可能不同人安装时都加载的不同,确实比较有迷惑性。但实际上,就我个人看来,比较重要的有:ORACLE_HOME、ORACLE_SID、ORACLE_BASE,如果用到一些sqlplus这些命令行工具,那么PATH中添加对应的工具bin路径也是必不可少的,LD_LIBRARY_PATH、CLASSPATH等变量中会有一些库的路径,另外,NLS_LANG则表示了当前的语言环境,其他选项可能未必是必选,我列出了我添加的部分profile内容:

4. 启动Oracle安装图形界面时,有些安装帖子往往说需要DISPLAY参数等,但至少应该用的是“xhost +”,xhost用来控制X Server访问权限的,通常用hostA登录到hostB执行应用程序时,对应用程序来说,hostA是client,但此时安装图形界面,是在hostB上显示,因此需要hostA上先运行xhost +,允许任何其他用户能访问hostA的X Server,或者使用xhost +ip,指定ip上的用户才可以访问。当然,以上操作都是建立在使用root账户切换到oracle安装账户的场景,例如:

root账户执行xhost +

su - oracle

oracle账户执行./runInstaller

如果直接使用oracle账户登录执行安装,则可能不用如上操作。

5. 我开始使用的是MOS上面提供的11.2.0.4安装包安装,但执行./runInstaller后,没有提示任何错误,包括日志,但就是没显示图形界面,等半天,于是换回了原来的11.2.0.1,搜了一下,有人和我的经历比较相像,他的原因是安装介质损坏,这可能需要再下载一次11.2.0.4的安装介质,比较一下大小才能确定了,但早期版本可以使用,至少说明平台不是问题,也许就出在安装介质中,这个暂时存疑。

6. 安装数据库时,会提示配置EM,但前提是需要有一个监听,我用netca配置了LISTENER默认监听后,无论start、status、stop,都提示:

以及Linux Error: 104: Connection reset by peer。

查了很多地方都没有找到原因,后来根据网上的一篇帖子,介绍了一篇MOS的文章(343295.1),指出类似“Linux Error: 104: Connection reset by peer”的错误,往往发生在新安装的过程中,并且提出了三种可能的原因:

1. There is possibly an incorrect IP Address specified for the host in the /etc/hosts file.

For example:

192.168.101.101 prod1.us.oracle.com prod1

Whereas the actual ip address for the host "prod1.us.oracle.com" is 192.168.101.110

2. Also, the localhost reference may be incorrect or missing from the /etc/hosts file.

3. Oracle may not have read access to /etc/nsswitch.conf file.

对应的方法有:

1. Correct the mapping in the /etc/hosts file by adding/correcting the IP address and/or hostname reference for the Unix/Linux Server (both long and short host names).

For example:

# Add or edit the /etc/hosts file to include a valid entry for the Server:

192.168.101.110 prod1.us.oracle.com prod1

2. Check that the localhost loopback name and address are correct (both long and short host names).

An example of a correct localhost entry would be as follows:

127.0.0.1 localhost.localdomain localhost

3. Remember to save the /etc/hosts file and then start the listener.

4. Check permissions on /etc/nsswitch.conf file to ensure group and other have read access.

- If necessary change permisions on /etc/nsswitch.conf as follows:

chmod 644 /etc/nsswitch.conf

在我的安装中,原先listener.ora使用的是HOST=hostname,后来改为实际IP,也是报错,根据上面提到的第一、二点,查看/etc/hosts,存在ip和hostname的对应,但没有127.0.0.1 localhost的这行,被注释了。

#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.27.19.56 dcsopenNode1.localdomain dcsopenNode1

于是,打开注释,重启监听,一切正常。

至于第三点,,没做过研究。

总结:

以上主要说明了本次安装过程中碰到的一些问题点,包括内核参数设置值、limits.conf文件、环境变量、监听启动失败等。

linux

推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文详细介绍了HTML中标签的使用方法和作用。通过具体示例,解释了如何利用标签为网页中的缩写和简称提供完整解释,并探讨了其在提高可读性和搜索引擎优化方面的优势。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 如何在PostgreSQL中查看数据表
    本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 在使用SQL Server进行动态SQL查询时,如果遇到LIKE语句无法正确返回预期结果的情况,通常是因为参数传递方式不当。本文将详细探讨这一问题,并提供解决方案及相关的技术背景。 ... [详细]
author-avatar
bin的心情日记_873
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有