购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 Oracle的安装

本章将介绍Oracle的安装及安装过程中遇到的疑难问题。如果你使用的是Windows操作系统,最重要的是理解与安装相关的一些概念;如果你使用的是Linux、UNIX操作系统,除了理解Oracle安装的一些基本概念外,你的大部分时间应该花费在Oracle安装前的准备上。

2.1.1 Oracle安装的几个概念

在安装Oracle前,必须熟悉与Oracle安装有关的几个概念。

2.1.1.1 Oracle的安装类型

理解Oracle的安装,首先应理解Oracle安装的类型,不同的安装类型满足不同的需求。Oracle的安装类型有:企业版(Enterprise Edition)、标准版(Standard Edition)、标准版1(Standard Edition One)、个人版(Personal Edition)和定制安装(Custom)。下面我们将作一一介绍。

■ 企业版(Enterprise Edition),安装许可的数据库选项、数据库配置和管理工具,还包括所有标准版的安装。企业版安装的选项比较全面,一般我们选择企业版安装。

■ 标准版(Standard Edition),安装集成的管理工具、分布式组件、复制和Web特性。标准版安装可用的Oracle特性(组件)比企业版少。如果从空间的角度考虑,我们可以选择标准版安装。标准版安装适合一个工作组、一个部门或者一家小公司。

■ 标准版1(Standard Edition One),比标准版提供更少的功能。

■ 个人版(Personal Edition),也可以说是限制最多的安装,这种安装只安装企业版的某些特性,且只支持单用户。个人版安装还不支持集群(Oracle Real Application Clusters,RAC)。由于单用户的限制,这种安装只适合学习(其实连学习都不适合)。

■ 以前的版本还有“定制安装(Custom)”,给用户提供一个界面,让用户选择需要安装的组件,给用户更多的自主权。

【小贴士(Tip)】 Oracle公司搞了这么多版本,让人眼花缭乱,还误导读者花太多的时间去弄清楚,到底这几个版本之间有何区别?其实,无论是学习还是生产环境的部署,只需选择“企业版”就足矣。

2.1.1.2 Windows安装和UNlX安装的差异

Oracle在Windows上和UNIX上的安装是不同的,如有些设置在UNIX平台需要手工进行,而Windows平台却不需要手工设置。这些差异如下。

(1)服务的自动启动

安装Oracle时,在Windows平台,Oracle会把数据库设置成自动启动;而在UNIX平台,这项工作需要管理员来完成。

(2)环境变量设置

在Windows平台,环境变量在安装时被Oracle自动写到注册表中;在UNIX平台,环境变量需要系统管理员进行手工设置。

(3)DBA账号的不同

在Windows平台,Oracle自动创建ORA_DBA组(DBA Group);在UNIX平台,需要管理员手工创建DBA组。

2.1.1.3 Oracle根目录(Oracle Base Directory)

Oracle根目录(也叫基目录)就是Oracle的顶级目录。第一次安装Oracle时,Oracle Universal Installer会提示创建该目录。下次再安装Oracle其他组件时,Oracle Universal Installer会自动检测到Oracle根目录。如果使用多个用户(如oracle、grid)安装Oracle软件,则每个用户都应该有自己的根目录,也就是说,oracle用户有一个根目录,grid用户也有自己的根目录。oracle用户通常用于数据库软件的安装,grid用户用于集群软件(Oracle Grid Infrastructure)的安装。我们把grid用户的根目录叫 网格根目录 (Grid base,GRID_BASE)。

2.1.1.4 Oracle主目录(Oracle Home Directory)

Oracle主目录(也叫 家目录 )就是Oracle软件的存放目录。安装数据库时,Oracle软件会安装到这个目录。这个目录必须是Oracle根目录(Oracle Base)的子目录。在默认情况下,主目录的路径是:$ORACLE_BASE/product/11.2.0/dbhome_1(ORACLE_BASE是oracle的根目录)。

在集群环境下,主目录又分为 共享主目录和非共享主目录 。共享主目录可以被多个节点所共享;非共享主目录也叫本地主目录,本地主目录只被当前节点所拥有,不被其他节点所共享。安装集群时,可以选择使用共享主目录或本地主目录。通常,我们推荐使用本地主目录。

2.1.1.5 Oracle清单目录(Oracle lnventory Directory)

Oracle清单目录用于存放已经安装的Oracle软件的列表清单。下次安装Oracle其他组件时,Oracle会读取这些信息,所以这些信息非常重要,用户不得随意删除目录下的内容。清单目录不能放在共享的文件系统上。

2.1.1.6 网格主目录(Grid Home Directory)

在集群环境下,数据库软件(Oracle RAC)和集群软件(Oracle Grid Infrastructure)都有自己的主目录(ORACLE HOME)。我们把集群软件的主目录(ORACLE HOME)叫做网格主目录(Grid Home,对应环境变量GRID_HOME)。网格主目录用于安装集群软件(包括Oracle clusterware和ASM),它不能是任何Oracle根目录的子目录。本书约定:如果没有特殊说明,Oracle H ome(ORACLE_HONE)对应Oracle RAC(就是数据库软件),网格主目录(Grid Home,GRID_HOME)对应Oracle Grid Infrastructure(集群软件)。

【小贴士(Tip)】 在安装Oracle Grid Infrastructure时,在不同的书中,网格主目录的定义比较混乱。本书约定:Grid Home、cluster home、clusterware home、Grid Infrastructure home、ASM home通通都叫网格主目录(Grid Home)。

2.1.1.7 操作系统用户

Oracle安装需要两个操作系统用户(在集群环境下),其中一个是集群软件的安装者,另一个是数据库软件的安装者。通常,集群软件的安装者(拥有者)是grid,数据库软件的安装者(拥有者)是oracle。当然,我们也可以命名成其他名字。

2.1.1.8 架构的选择

几年前,也许我们还在讨论或者犹豫是选择32位平台还是64位平台,操作系统发展到今天,64位平台已经占据了主流。64位平台带来的性能和管理的便利性,打消了我们所有的顾虑。所以,无论我们想把Oracle运行在哪个操作系统上,都应该选择64位平台。

2.1.1.9 操作系统的选择

无论你是学习,还是部署基于Oracle的系统,都应该选择UNIX操作系统(Linux、Solaris、Aix、…)。这里,我们不想详细讨论Windows和UNIX的优劣(这超出了本书的范围)。毋庸置疑,业界的大部分Oracle都部署在UNIX平台,因为UNIX平台能够带来更好的性能和更高的安全性。

2.1.2 Oracle 11g R2(11.2)的安装——Windows篇

写在前面的话

从这里开始,我们将步入Oracle的世界。万丈高楼平地起,对初学Oracle的朋友来说,安装是我们学习Oracle的第一步。安装Oracle本来是一件很容易的事情,你只需要按照Oracle的官方文档一步步地进行。但是,也许你会遇到一些“小小”的麻烦。所谓“一夫当关,万夫莫开”,也许正是这些“小小”的麻烦,挡住了你进军Oracle的去路。本章将帮助你解决这些“小小”的麻烦,带你顺利进入Oracle的世界。

(1)Oracle 11g R2支持的Windows版本

32位操作系统:

■ Windows Server 2003

■ Windows Server 2003 R2

■ Windows XP Professional

■ Windows Vista-Business, Enterprise, and Ultimate editions

■ Windows Server 2008-Standard, Enterprise, Datacenter, Web, and Foundation editions

■ Windows 7-Professional, Enterprise, and Ultimate editions

64位操作系统:

■ Windows Server 2003

■ Windows Server 2003 R2

■ Windows XP Professional

■ Windows Vista

■ Windows Server 2008

■ Windows 7

(2)本例的安装环境

■ OS:Windows XP Professional 64位

■ DB:Oracle 11g R2 64位

(3)安装介质

可以从Oracle的官方网站下载安装文件:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

共有两个文件:win64_11gR2_database_1of2.zip和win64_11gR2_database_2of2.zip。

(4)安装的最低配置要求

■ 至少需要1GB内存。

■ 虚拟内存2GB,所需虚拟内存一般是物理内存的两倍。

■ Oracle软件占用的磁盘空间是6GB(越大越好)。

【小贴士(Tip)】 在大容量硬盘流行的今天,谁还会在乎多几个GB和少几个GB呢?下载的Oracle安装文件会占用一定的磁盘空间,解压也需要磁盘空间,Oracle安装也会占用磁盘空间,用户的数据文件还需要磁盘空间,因此,不要吝啬多给Oracle分配一些磁盘空间,以减少不必要的麻烦。

具体的安装步骤如下。

解压下载的文件。

解压文件win64_11gR2_database_1of2.zip和win64_11gR2_database_2of2.zip。需要注意的是,先解压,后启动安装,不能在压缩文件中启动安装。并且还要切记:两个文件应该解压到相同的路径;否则,安装过程中会报告诸多的异常错误。

启动安装。

在解开的文件夹中,点开目录“database”,双击“setup.exe”启动安装,如图2-1所示。

图2-1 Oracle 11g初始安装

取消勾选“我希望通过My Oracle Support接收安全更新(W)”选项,单击 按钮,出现如图2-2所示的提示框。

图2-2 未指定电子邮件地址提示框

单击“是(Y)”按钮,出现如图2-3所示的“选择安装选项”对话框。

选择安装选项。

安装Oracle软件和创建数据库是两个过程、两回事。

■“创建和配置数据库(C)”,不仅安装Oracle软件,还自动创建数据库,一举两得。

■“仅安装数据库软件(I)”,顾名思义,仅仅安装Oracle软件,并不创建任何数据库。如果选中“仅安装数据库软件(I)”选项,则安装Oracle软件后,需要通过数据库配置助手(DBCA)手工创建数据库。(Oracle软件安装完成后,才有DBCA。)

■“升级现有的数据库(U)”,将对现有的数据库进行升级。

本例中,将一次完成Oracle软件的安装和创建数据库,因此,选中“创建和配置数据库(C)”选项,单击 按钮,出现如图2-4所示的“系统类”对话框。

图2-3 “选择安装选项”对话框

图2-4 “系统类”对话框

系统类。

选中“服务器类”选项,单击 按钮,出现如图2-5所示的“网格安装选项”对话框。

网格安装选项。

在此,选择数据库的安装类型,是选择单实例数据库,还是多实例数据库,多实例数据库其实就是Oracle集群(RAC)。RAC的安装,将在后续的章节中进行详细的讲述。

选中“单实例数据库安装(S)”选项,单击 按钮,出现如图2-6所示的“选择安装类型”对话框。

图2-5 “网格安装选项”对话框

图2-6 “选择安装类型”对话框

选择安装类型。

■“典型安装(T)”,能满足大部分的安装需求,但它忽略了一些配置选项。

■“高级安装(A)”,可以对安装进行更多的个性化设置。

选中“高级安装(A)”选项,单击 按钮,出现如图2-7所示的“选择产品语言”对话框。

选择产品语言。

选择产品运行时使用的语言,通常选择“简体中文”和“英语”。如果是中国台湾或者香港地区,则需要选择“繁体中文”。 用于增加语言, 用于减少语言。单击 按钮,出现如图2-8所示的“选择数据库版本”对话框。

图2-7 “选择产品语言”对话框

图2-8 “选择数据库版本”对话框

选择数据库版本。

可以选择的版本有企业版(Enterprise Edition)、标准版(Standard Edition)、标准版1(Standard Edition One)、个人版(Personal Edition)。

选中“企业版”选项,单击 按钮,出现如图2-9所示的“选择组件”对话框。

图2-9 “选择组件”对话框

在该对话框中,我们可以选择要安装Oracle的哪些组件(特性),例如,可以选择安装“Oracle Partitioning(Oracle分区)”。选择完成后,单击 按钮。

单击 按钮,出现如图2-10所示的“指定安装位置”对话框。

图2-10 “指定安装位置”对话框

指定安装位置。

在第一个输入框中,指定Oracle根目录(根目录也叫基目录);在第二个输入框中,指定Oracle主目录。通常,Oracle主目录是Oracle根目录的子目录。

保持默认值不变,单击 按钮,出现如图2-11所示的“选择配置类型”对话框。

选择配置类型。

选择要创建的是一般的数据库还是数据仓库,不同的选择意味着不用的数据库参数设置。

选择“一般用途/事务处理(G)”选项,单击 按钮,出现如图2-12所示的“指定数据库标识符”对话框。

图2-11 “选择配置类型”对话框

图2-12 “指定数据库标识符”对话框

指定数据库标识符。

■ 全局数据库名,唯一地标识数据库,以使数据库与网络中的其他数据库区分开(一个网络中可能有多个数据库,一个数据库可能对应多个实例)。

■ Oracle服务标识符(SID),唯一地标识Oracle数据库实例。Oracle服务标识符(SID)有助于标识控制文件和定位打开数据库时所需的文件。全局数据库名可以和SID相同,也可以不同。

本例中,输入“nbo”,单击 按钮,出现如图2-13所示的内存设置对话框。

图2-13 内存设置对话框

内存设置。

选中“启用自动内存管理(E)”选项,此选项允许数据库在系统全局区(SGA)和程序全局区(PGA)之间自动分布已分配的内存。“自动内存管理”是Oracle的一个特性,它实现了对Oracle内存的自动化管理,把DBA从内存的琐碎管理中解脱出来。

如果取消选中“启用自动内存管理(E)”选项,则必须手动配置SGA和PGA的大小。

百分比(本例中是40%)表示为数据库分配的内存占整个物理内存的百分比。

本例中,保持默认值不变,单击“字符集(C)”选项卡,出现如图2-14所示的字符集设置对话框。

字符集设置。

图2-14 字符集设置对话框

■“使用默认值(D)”,选择此选项可以利用操作系统语言设置。

■“使用Un icode(AL32UTF8)(U)”,选择此选项可以存储多种语言。如果要支持英语和两种或更多种其他语言,请选择该选项。

■“从以下字符集列表中选择(O)”,可以从下拉列表中选择特定的字符集。

一般选择ZHS16GBK(简体中文字符集)。

单击 按钮,出现如图2-15所示的示例方案设置对话框。

图2-15 示例方案设置对话框

创建示例数据库。

如果选择“创建具有示例方案的数据库(R)”选项,Oracle在安装的过程中将自动创建“示例方案”。“示例方案”其实就是“示例数据库”,“示例数据库”包括一些表和数据。“示例数据库”主要用于学习。

单击 按钮,出现如图2-16所示的“指定管理选项”对话框。

图2-16 “指定管理选项”对话框

指定管理选项。

通过“Database C ontrol”(企业管理器数据库控件),DBA可以从Web界面管理数据库。本例中,安装完成后,可以从浏览器对数据库进行管理。“Database Control”只能管理单个数据库。如果选择“启用电子邮件通知”选项,则当数据库发生问题时,Oracle会把错误信息发送到指定的邮箱(E-mail)中。这项功能比较适合DBA使用。

保持默认值不变,单击 按钮,出现如图2-17所示的“指定数据库存储选项”对话框。

图2-17 “指定数据库存储选项”对话框

存储选项设置。

指定是把数据文件存放在“普通的文件系统”中还是“ASM(自动存储管理)”中。ASM的概念和使用,将在后续的章节中进行讲解。

保持默认值不变,单击 按钮,出现如图2-18所示的自动备份设置对话框。

图2-18 自动备份设置对话框

自动备份设置。

这里选择是否启用数据库的自动备份功能。

保持默认值不变,单击 按钮,出现如图2-19所示的口令设置对话框。

图2-19 口令设置对话框

口令设置。

Oracle中有几个内置的账户(如sys、system等),安装Oracle时,需要为这些账户设置口令。

■“这些账户都使用不同的口令(U)”,可以分别为每个账户指定不同的口令。

■“对所有账户使用相同的口令(M)”,所有的用户使用相同的口令。

本例中,选中“对所有账户使用相同的口令(M)”,设置的口令是Xzzp2012。单击 按钮,出现如图2-20所示的“执行先决条件检查”对话框。

图2-20 “执行先决条件检查”对话框

执行先决条件检查。

所谓“先决条件检查”,就是在Oracle正式执行安装前,要对所有的条件(包括硬件、软件、参数等)进行检查,看看这些条件是否满足安装要求。如果不满足,Oracle会停止安装,并提示哪些条件(设置)需要修改;如果所有的检查都通过,将会出现如图2-21所示的“概要”对话框。

图2-21 “概要”对话框

单击 按钮,开始安装(前面所有的步骤仅仅是进行安装配置,并未真正启动安装)。

安装进行中,将会显示安装进度,如图2-22所示。单击 按钮,将显示详细的安装进度,如图2-23所示。

图2-22 安装进行中

安装过程中,会自动调用DBCA创建数据库,如图2-24所示。

图2-23 详细的安装进度

图2-24 创建数据库

数据库创建完成。

数据库创建完成后,出现如图2-25所示的数据库的基本信息,如全局数据库名、系统标识符(SID)等。单击 按钮,出现“口令管理”对话框(如图2-26所示),状态为 ,表示账户被锁住,可以单击 进行解锁,再次单击,则账户将被再次锁住。此外,还可以修改账户密码。所有修改完成后,单击 按钮回到图2-25。

图2-25 数据库的基本信息

单击 按钮,出现如图2-27所示的安装完成对话框。

安装完成。

至此,Oracle安装成功!数据库已经启动。我们可以根据安装界面提供的Database Control的地址https://REALxp:1158/em对数据库进行访问,REALxp是数据库服务器的主机名,1158是端口号。

图2-26 “口令管理”对话框

图2-27 安装完成对话框

单击 按钮,将退出Oracle的安装。

访问数据库。

在浏览器中输入https://REALxp:1158/em后按回车键,将出现如图2-28所示的“登录”界面。

图2-28 登录数据库

输入用户名sys,密码Xzzp2012(安装过程中设置的),“连接身份”选择“SYSDBA”,单击 按钮。登录后,可以从Web界面对数据库进行管理,如图2-29所示。

图2-29 企业管理器

2.1.3 Oracle 11g RAC的安装——Linux篇

写在前面的话

在Linux上安装Oracle和在其他UNIX(Aix)平台上安装Oracle的过程相差无几,大同小异。安装Oracle的前期工作,如添加要求的包、打补丁、修改内核参数等极其重要。安装前的准备工作非常重要!很多朋友安装会失败,或者在安装的过程中产生一些奇特的现象或不可预料的错误,都是由前期的准备工作不充分造成的。所以,我们一定要不厌其烦地保证前期工作的正确性。

在本书的第一版中,我们介绍了Oracle在Solaris上的安装。第二版将重点介绍Oracle集群(RAC)在Linux上的安装。Oracle集群的安装比较复杂,一旦学会了集群安装,在任何UNIX平台上安装单机Oracle,将是小菜一碟!

2.1.3.1 安装的总体思路

【小贴士(Tip)】 在开始本节之前,请认真阅读第31章,以对集群的基本概念有一个全面的了解,第31章是Oracle集群安装的基础。

Oracle——数据库中的贵族,以其性能卓越和稳定而著名,Oracle的贵族血统让很多中小企业望而怯却,尤其是昂贵的软件和硬件。即使是硬件价钱日趋低廉的今天,我们也不能自己买一套硬件做Oracle集群实验(即使是二手货,也价值不菲)。好在,虚拟机可以助我们一臂之力!本书将在虚拟机(VirtualBox)上模拟Oracle集群的安装、配置和管理。这是一个 完整 的实验,将帮助我们全方位地把握集群的各个方面。

为了让大家体验什么是集群文件系统,我们将把OCR和Voting Disk放到集群文件系统OCFS2中。通过OCFS的安装、配置和使用,相信你对集群文件系统将有更深刻的理解。

【小贴士(Tip)】 请按照本章的阅读顺序去安装和配置Oracle集群。

2.1.3.2 Oracle集群安装路线图

在生产系统中,Oracle集群的安装步骤如图2-30所示。不要小看这个简单的图示,它揭示的是集群安装的顺序和逻辑,很多人至今还不明白集群软件和数据库软件的区别。

图2-30 生产系统中RAC的安装步骤

生产系统中RAC的安装要经历:硬件(磁盘整列、小型机)安装、操作系统安装、共享存储配置、集群软件安装(Oracle Grid Infrastructure,包括软件Oracle clusterware)、数据库软件(Oracle RAC)安装、创建数据库几个阶段。

本书将依托虚拟机进行实验。本实验中,一个Oracle集群由两个Linux节点组成。我们将在一台性能不错的台式机上安装Windows XP 64位操作系统,然后在Windows上下载并安装虚拟机软件VirtualBox。安装完虚拟机软件后,创建第一台Linux虚拟机,在此虚拟机上安装Linux操作系统,并对第一台Linux虚拟机进行配置,接着创建第二台虚拟机,最后是配置共享存储、安装集群软件、安装Oracle RAC软件并创建数据库。此外,我们还需要另外一台Linux虚拟机做DNS服务器。

【小贴士(Tip)】 再强调一次,集群软件是指Oracle Grid Infrastructure;数据库软件是指Oracle RAC(Oracle Real Application Cluster)。这是两个不同的软件!

2.1.3.3 安装环境和规划

在安装RAC前,需要大家对RAC的软件和硬件做一个规划,如磁盘空间使用、IP地址分配等。本书的安装环境及规划如下。

1.安装环境

■ 台式机:8GB内存,IP地址为192.168.0.105。

■ 台式机操作系统:Windows XP 64位。

■ 虚拟机软件:VirtualBox 44.1.18。

■ Linux虚拟机(3台):CentOS release 5.8(1台DNS,2台RAC节点)。

■ 集群软件:Oracle Grid Infrastructure 11.2。

■ 数据库软件:Oracle RAC 11.2。

■ 集群文件系统:OCFS2。

■ 数据库名:zerodb。

■ 节点:rac1(实例名:zerodb1)、rac2(实例名:zerodb2)。

■ 操作系统用户:grid(Oracle Grid Infrastructure软件的安装者,Grid Infrastructure包括Oracle clusterware和ASM两部分)、oracle(Oracle RAC软件的安装者)。

2.存储规划

(1)本地磁盘

■ sdc

● 对应分区名:sdc1。

● 分区大小:16GB。

● 对应装载目录:/zerodb/11g。

● 用途:用于Oracle Grid Infrastructure软件和Oracle RAC软件的安装。

● 备注:一块磁盘对应一个分区。这是本地磁盘,不共享。

(2)共享磁盘

■ sdd、sde、sdf、sdg、sdh、sdi

● 对应分区名:sdd1、sde1、sd f1、sdg1、sdh1、sdi1。

● 每个分区大小:1GB。

● 对应装载目录:/ocfs1、/ocfs2、/ocfs3、/ocfs4、/ocfs5、/ocfs6。

● 用途:用于OCR和Voting Disk的多路镜像。

● 备注:两个节点共享。一块磁盘对应一个分区。

■ sdj、sdk、sdl、sdm

● 对应分区名:sdj1、sdk1、sdl1、sdm1。

● 每个分区大小:10GB。

● 装载目录:无。

● 用途:用于ASM(自动存储管理)、存放数据文件等。

● 备注:两个节点共享。一块磁盘对应一个分区。

3.网络规划

eth0、eth1做绑定(bonding),生成bond0,用于公有网络;eth2、eth3用于私有网络(interconncect)。每台机器(节点)都有4个网络接口(eth0、eth1、eth2、eth3)。IP地址及网络接口分配的详细情况,请参考表2-1。

表2-1 IP地址及网络接口分配的详细情况

接下来开始安装,我们把安装分为几大阶段,包括:DNS服务器的安装、第一个节点(rac1)的准备、第二个节点(rac2)的准备、安装集群软件、安装Oracle RAC软件、创建数据库等。

【小贴士(Tip)】 在开始下面的所有安装之前,我们假定已经在台式机上安装了Windows XP 64位操作系统,还下载并安装了虚拟机软件VirtualBox。

2.1.3.4 DNS服务器的安装

DNS用于主机名解析。有的朋友要问:为什么要使用DNS服务器,而不使用本地的域名解析(/etc/hosts)机制呢?其实很简单,是为了利用 DNS的“轮询调度算法” 实现 SCAN的负载均衡 (详细信息请参考第31章)。如果使用/etc/hosts进行域名解析,则SCAN只能支持一个IP地址,也就无法实现SCAN负载均衡。有的朋友会问:为什么不使用Oracle提供的GNS呢? 笔者也想过,一方面是DNS提供的功能已经很成熟了,并且大部分公司都有自己DNS服务器;另一方面的考虑是,笔者不想把Oracle的配置搞得更复杂。

【小贴士(Tip)】 在开始安装和配置DNS之前,我们假定已经创建了一台Linux虚拟机,并安装了Linux操作系统,且已经设置好主机名(mydns)和IP地址(192.168.0.88)。如果不知道如何创建Linux虚拟机,请跳到下一节。

安装DNS需要的包。

本文以bind为例,通过yum安装bind,一共需要3个包。

【小贴士(Tip)】 如果你对yum不熟悉,建议花一点工夫研究一下,yum是RPM包安装最便捷的方式,它自动解决包之间的关联问题。

修改DNS的配置文件/etc/named.conf。

编辑/etc/named.conf文件:

修改如下内容:

■ 53是监听的端口号。

■ 192.168.0.88是DNS服务器的IP地址。需要注意:后面要有分号,否则会产生错误。

■ 0.0.0.0/0表示允许任何客户端进行查询。如果没有设置好这一项,当客户端请求域名解析时,则会报告类似的错误“server can't find rac1:REFUSED”。

■/var/named是DNS数据库的存放目录(正向解析文件和反向解析文件存放于此),要记住该路径。

加入如下内容:

■ zerodb.com是我们自己定义的域。

■ file"zerodb.co m"指定正向解析文件的文件名,该文件用于域名的正向解析。所谓正向解析就是根据域名(主机名)得到IP地址。该文件的内容将在后续的步骤中进行定义。

■ forwarders表示如果这台DNS服务器不能解析,则需要传到下一台DNS服务器,让下一台DNS服务器协助解析,这里指定下一台DNS服务器的地址。

■ 0.168.192.in-addr.arpa指定逆向解析文件的文件名。所谓逆向解析就是根据IP地址反向查询出域名(主机名)。该文件的内容将在后续的步骤中进行定义。

创建正向域名解析文件zerodb.com。

创建文件zerodb.com:

加入如下内容:

■ 该文件应位于/var/named之下。

■ 最左边一列表示主机名,第4列表示IP地址。从上面内容可以看出,Oracle集群用到的各种IP地址已经出现,将通过这里进行主机名解析。

【小贴士(Tip)】 特别要注意“myscan”,它是SCAN的名字,或者说是集群的名字。“myscan”对应3个IP地址。DNS轮询调度算法(Round Robin)正是在这里得以实现的。myscan将在后续的安装中用到。

创建反向解析文件0.168.192.in-addr.arpa。

创建文件0.168.192.in-addr.arpa(该文件应位于/var/named之下):

加入如下内容:

■ PTR表示反向解析,即IP地址解析成域名。

■ 第1列是IP地址。

■ 第4列中特别要注意的是,域名后面必须有一个逗点(如:rac1.zerodb.com.)否则会发生错误(逗点太小,可能看不见)。

配置完成以后,要检查上面修改的文件是否正确。

测试配置文件named.conf:

如果不显示任何信息,则表示语法正确。

测试区域文件(也就是正向解析文件):

如果显示“OK”,则表示正确。

启动DNS服务。

设置启动级别,使DNS服务随操作系统自动启动。

设置启动级别:

查看启动级别设置:

配置客户端。

在其他机器(客户端)上,编辑文件/etc/resolv.conf,加入如下内容:

其中,192.168.0.88是DNS服务器的IP地址,zerodb.com是定义的域(特别要注意的是,这里不是域名服务器的地址)。

从客户端测试DNS工作是否正常。

测试是否能进行域名解析。下面是解析正常的例子。

如果解析正常,将会显示如上所示。

DNS的真谛。

DNS配置艰苦完成,但是,我们还没有体会到DNS对Oracle集群的意义。通过一个小小的实验,就会不言自明。

myscan是我们定义的SCAN的名字(也可以说是集群的名字)。上面的输出显示,当每次ping myscan时,都会返回不同的IP地址,这正是DNS的真谛!

【小贴士(Tip)】 前面的步骤中,除了修改/etc/resolv.conf外,其他的修改都是针对DNS服务器的。

2.1.3.5 创建第一个节点(rac1)

节点的准备包括很多任务,我们将从零开始,一步一个脚印,遍历节点准备的每一个细节。细节是烦琐的、冗余的、浪费篇幅的,但是,也是必要的!正所谓“细节决定成败”!

我们准备了3个目录,用于存放虚拟机的磁盘文件。

■ K:\VM_ZERODB_RAC\RAC1,存放节点1(rac1)的虚拟机磁盘文件。

■ K:\VM_ZERODB_RAC\RAC2,存放节点2(rac2)的虚拟机磁盘文件。

■ K:\VM_ZERODB_RAC\SHARED,用于共享存储。

第1个任务 :创建第一个节点(rac1)。

我们将在虚拟机软件中创建第一个节点rac1,并安装Linux操作系统。

双击桌面快捷方式图标 ,打开虚拟机软件。

在打开的图形界面左上角,单击 进入创建虚拟机界面。

单击 按钮,输入虚拟机的名字rac1,在下拉框中选择操作系统 ,然后选择操作系统版本

单击 按钮,设置虚拟机的内存大小 ,单击 按钮。

选择 ,单击 按钮。

选择 ,单击 按钮。

选择 ,单击 按钮。

输入虚拟机磁盘文件的名字rac1,单击 ,选择虚拟机磁盘文件的存放路径(本例中是K:\VM_ZERODB_RAC\RAC1),并设置磁盘文件的大小,单击 按钮。

单击 按钮,创建虚拟机。创建完成后,我们将会看到虚拟机的图标

选中虚拟机 ,单击 ,选中 ,单击 上面的加号,添加一个光驱,再单击 按钮,光驱添加完成。按照类似的方法添加第二个光驱。

选中第一个 ,单击最右边的 ,添加Linux安装镜像文件CentOS-5.8-x86_64-bin-DVD-1of2.iso。

选中第二个 ,单击最右边的 ,添加Linux安装镜像文件CentOS-5.8-x86_64-bin-DVD-2of2.iso。所有设置完成后,单击 按钮。

单击 ,启动虚拟机rac1,开始安装Linux操作系统。Linux安装的细节不在本书讨论的范围内,本书将省略。

第2个任务 :网卡设置。

操作系统安装完成后,我们需要对网卡进行设置。网卡设置包括:添加网卡、绑定网卡、设置IP地址、设置DNS域名解析。

(1)增加网卡

选中 ,单击 ,再单击 ,然后单击 ,选中 ,设置下拉框 。依次对 做类似的设置。在默认情况下,虚拟机只启用了一块网卡,前面的步骤往系统中添加3块网卡、4块网卡都应选择桥接(Bridged Adapter)。网卡添加完成后,单击 按钮。

【小贴士(Tip)】 当往虚拟机中设置、添加硬件等时,都需要停止正在运行的虚拟机。

(2)将网卡eth0、eth1绑定成bond0

4块网卡设置成功后,选择 ,单击 ,启动第一个节点rac1,登录操作系统。接下来,我们将把eth0、eth1绑定(bonding)成虚拟网卡bond0。bond0用于公有网络。绑定的具体步骤如下。

创建bond0的配置文件。

创建或者编辑bond0的配置文件:

加入或者修改成如下内容(记得去掉注释):

指定的bond0的IP地址是192.168.0.81。

创建eth0的配置文件。

创建或者修改eth0的配置文件。注意:真实网卡不能再设置IP地址。

把配置文件修改成如下内容(记得去掉注释):

创建eth1的配置文件。

创建或者修改eth1的配置文件。注意:真实网卡不能再设置IP地址。

把配置文件修改成如下内容(记得去掉注释):

修改模块的配置文件。

编辑配置文件:

加入如下内容:

■ miimon=100,每100毫秒(即0.1秒)检查一次网络。

■ mode共有7种模式,常用的模式是0和1。

● mode=0:负载均衡模式,所有网卡一起使用,带宽等于所有网卡带宽的总和,当某个网卡出现故障时,仅降低带宽,不影响其他网卡的正常使用。

● mode=1:热备模式,即一块网卡运行,其他的待命,当运行的网卡出现故障时,其他网卡将代替出现故障的网卡。

装载模块。

查看bond模块是否正在运行。

重启网络服务。

如果SSHD使用有问题,则需要重新启动SSHD。

查看bond0的状态。

从上面内容可以看出,bond0由eth0、eth1组成,且正常运行。从第3行还能看出bond0的工作模式(mode)。

(3)设置私有网口的IP地址

下面我们将对eth2、eth3的IP地址进行设置。eth2、eth3用于私有网络,也就是节点互联、节点间通信。

■ 设置eth2的IP地址10.0.10.1。

编辑配置文件:

添加如下内容:

■ 设置eth3的IP地址10.0.10.2。

编辑配置文件:

添加如下内容:

重启网络:

(4)设置DNS域名解析

在节点rac1上,编辑文件/etc/resolv.conf,加入如下内容:

其中,192.168.0.88是DNS服务器的IP地址,zerodb.com是定义的域(特别要注意的是,这里不是域名服务器的地址)。

第3个任务 :检查交换空间。

交换空间通常要求是物理内存的2倍或1.5倍,如果物理内存超过32GB,则交换空间也应该等于或者大于32GB。查看当前的交换空间:

如果交换空间不够,要对交换空间进行扩展。扩展交换空间的方法有好几种,本例中,将在虚拟机中增加一块硬盘作为交换空间,详细的步骤如下。

打开虚拟机软件,单击 ,再单击 ,然后单击 ,选中 ,单击左面的加号(+) ,选择 ,单击 按钮,打开创建虚拟机新磁盘界面。

选择 ,单击 按钮。

选择 ,单击 按钮。

输入虚拟机磁盘文件的名字(如:RAC1-disk3),单击 ,选择虚拟机磁盘文件的存放路径(本例中是K:\VM_ZERODB_RAC\RAC1),并设置磁盘文件的大小为2GB,单击 按钮。

单击 按钮,创建虚拟机的磁盘。创建完成后,单击 按钮。

启动虚拟机rac1。

本例中,新增加的硬盘是sdb,把sdb全部划分成一个分区(sdb1)。接下来,用新创建的分区扩展交换空间。

关闭交换空间。

对分区进行初始化。

编辑文件/etc/fstab,加入如下内容,使操作系统自动加载交换空间。

重启机器。

当然,如果不想重启机器,也可以使用命令让交换空间立即生效(启用交换空间)。

再次查看交换空间的大小,可以看到交换空间的大小已经发生变化。

交换空间原来是2GB,现在已经变成了4GB。

查看每个交换设备的使用情况。

第4个任务 :检查物理内存。

检查操作系统(OS)的物理内存(Physical Memory)是否满足要求。

当前系统的物理内存是2GB。通常要求至少2.5 GB的内存。不过,2GB的内存也能够成功安装Oracle集群,只是节点运行很慢而已。

第5个任务 :检查临时目录的大小。

至少需要1GB大小的临时目录。

如果临时目录(/tmp)空间不足,则要删除/tmp下多余的文件,或者对/tmp进行扩展。通常,临时目录空间越大越好。

第6个任务 :查看操作系统的架构。

这是64位的系统。

第7个任务 :检查操作系统的版本。

Oracle RAC 11.2支持如下x86-64位Linux版本。

■ Asianux Distributions

● Asianux Server 3,Service Pack 2 (SP2)

■ Oracle Linux Distributions

● Oracle Linux 4 Update 7, kernel 2.6.9 or later

● Oracle Linux 5 Update 2, kernel 2.6.18 or later (compatible with Red Hat Enterprise kernel)

● Oracle Linux 5 Update 5, with the Unbreakable Enterprise

● Kernel for Linux,kernel 2.6.32-100.0.19 or later

■ Red Hat Enterprise Linux Distributions

● Red Hat Enterprise Linux 4 Update 7, kernel 2.6.9 or later

● Red Hat Enterprise Linux 5 Update 2, kernel 2.6.18 or later

● Red Hat E nterprise Linux 5, Update 5, with the Unbreakable Ent erprise Kernel for Linux, 2.6.32 or later

■ SUSE Enterprise Linux Distributions

● SUSE 10, kernel 2.6.16.21 or later

● SUSE 11, kernel 2.6.27.19 or later

检查操作系统的版本:

发行版本是5.8。

查看内核版本:

内核版本是2.6.18-308,满足Oracle的要求。

【小贴士(Tip)】 特别要注意的是,上述限制来自Oracle的官方文档。但是,该文档发布后,Linux的版本在不断变化,所以,上述限制有些过时(不过,必须慎重参考)。另外必须注意的一点是,Oracle要求的Linux的内核版本很严格,如果你使用的Linux的内核版本低于Oracle的官方要求,请停止安装,去解决版本过低的问题。

第8个任务 :包(packages)的检查。

Oracle 11.2需要下列包(包的版本必须等于或者高于下面的要求):

查看包是否存在:

如果包不存在,请安装包:

【小贴士(Tip)】 也许,有些包不在上述列表中,不过没关系。当我们启动Oracle的图形界面(OUI)进行安装时,OUI会做安装前检查,检查所有的包是否已经安装完毕,如果有的包不满足安装条件,OUI会进行提示。

第9个任务 :配置内核参数。

配置内核参数是比较复杂的。这里只是简单地配置内核参数,以使它们能够满足Oracle的最低安装要求。要想获得更好的性能,需要参考相关的操作系统文档,以最优化的配置去提升数据库的性能。下面是需要配置的内核参数说明。

■ shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系。

■ shmmin:表示单个共享内存段的最小值,默认为1字节。

■ shmall:表示整个系统范围内可用共享内存页的总量,单位是页(page),在32位系统上一页等于4KB,也就是4096字节。计算公式是shmmax/PAGE_SIZE。

■ shmmni:表示整个系统范围内内存段的最大数量,一般为4096。

■ file-max:表示文件句柄的最大数量。

■ ip_local_port_range:表示端口的范围。在监听器帮助客户端进程和服务器进程建立连接时,会用到指定范围内的端口。范围从9000~65500。

■ sem:表示设置的信号量,semmsl、semmns、semopm、semmni这4个参数大小固定。

■ rmem_default:表示接收套接字缓冲区大小的默认值(以字节为单位)。

■ rmem_max:表示接收套接字缓冲区大小的最大值(以字节为单位)。

■ wmem_default:表示发送套接字缓冲区大小的默认值(以字节为单位)。

■ wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。

配置内核参数的过程如下。

编辑文件sysctl.conf:

加入如下内容:

配置内核参数后,可以重启操作系统,让内核参数生效。也可以不重启操作系统,而让内核参数马上生效,只需执行下面的命令:

查看内核参数的当前值:

【小贴士(Tip)】 再次申明:上面的内核参数配置只是满足最低安装要求,并不是最优配置。

第10个任务 :设置时间同步。

在Oracle集群中,节点间的时间不相同会导致集群出现许多问题。因此,在安装Oracle之前,我们应该尽量将各个节点的时间设置成相同。其中一种方法就是手工设置,把所有节点设置成相同的时间。例如:

手工同步是一种比较笨拙的方法。更智能的方法是NTP和CTSS(Cluster Time Synchronization Service)。NTP是由第三方提供的时间同步机制,在默认情况下,NTP已经安装在系统中。CTSS是由Oracle自己提供的时间同步解决机制,CTSS是作为Oracle Grid Infrastructure的一部分进行安装的,并被OHAS启动。NTP和CTSS可以同时运行。如果NTP和CTSS都同时运行,那么CTSS只是以一个旁观者(observer m ode)的身份出现,它并不参与时间同步;如果没有NTP,则CTSS将执行时间同步。

如果不想使用NTP,则可以通过下面的步骤禁用NTP(并不是卸载NTP)。

查看NTP是否正在运行。

停止NTP。

去除NTP的自动启动。

移走NTP的配置文件ntp.conf。

删除NTP的进程ID文件。

如果要使用NTP,还需要进行下面的设置。

加入x选项,防止时间被向后调整。

编辑文件:

修改选项类似于如下:

重启NTP服务。

第11个任务 :SSH的设置。

在Oracle集群安装的过程中,远程的节点可能会关闭SSH连接,为了防止这种情况发生,需要设置参数LoginGraceTime。

设置如下参数:

LoginGraceTime表示如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位),0表示没有限制。

第12个任务 :关闭Linux安全增强。

Linux安全增强,简称SELinux(Security-Enhanced Linux)是在Linux内核中实现的一种访问控制机制。SELinux的不恰当配置会影响Oracle集群,因此,建议关闭该功能。关闭SELinux的方法如下。

编辑文件config:

设置:

查看SELinux的配置:

参数SELINUX有下面几个选项。

■ enforcing:警告且阻止可疑行为。

■ permissive:仅记录安全警告,但不阻止可疑行为。

■ disabled:安全增强被禁用。

参数SELINUXTYPE的设置如下。

■ targeted:代表仅针对预制的几种网络服务和访问请求使用SELinux保护。

■ strict:代表所有网络服务和访问请求都要经过SELinux。

查看系统当前的SELinux设置(有2种方法):

临时改变SELinux运行状态,语法如下:

■ Enforcing=1

■ Permissive=0

例如:

第13个任务 :启用Name Service Cache Daemon(nscd)。

nscd(Name Service Cache Daemon)是操作系统的一个后台进程,它提供一种机制,用来缓存命名服务(Name Service)相关的数据(passwd、group、hosts等)。nscd使Oracle集群能够更好地容忍网络失败。如果使用NAS或者NFS,则要启用Name Service nscd。

检查nscd启动级别的设置:

设置启动级别,使nscd能伴随操作系统一起启动:

也可手工启动该进程:

查看nscd进程状态:

第14个任务 :配置本地存储。

本地存储用于Oracle Grid Infrastructure和Oracle RAC软件的安装(节点间共享的数据还是放在共享存储中)。Oracle Grid Infrastructure软件需要6.5GB的磁盘空间,Oracle RAC软件需要4.6GB的磁盘空间。本例中,本地存储用到的目录(加载点)是/zerodb/11g,它 用于软件的安装 (并不存放数据)!配置本地存储的步骤如下。

在虚拟机(rac1)停止的情况下,给rac1添加一块硬盘,虚拟机的磁盘文件NewHardDisk4.vdi放在K:\VM_ZERODB_RAC\RAC1下,文件大小是16GB。

硬盘添加完成后,启动rac1。

对硬盘进行分区,新添加的硬盘是sdc,整个硬盘将分成一个分区(sdc1)。

执行分区:

在分区的界面,依次执行:

查看分区的情况:

创建文件系统。

设置分区sdc1自动加载(mount),加载点是/zerodb/11g。

■ 创建加载点(目录):

■ 编辑文件fstab,使能自动加载sdc1:

加入如下内容:

■ 可以手工加载分区/dev/sdc1:

■ 查看/zerodb/11g的空间大小:

第15个任务 :OCFS的安装。

OCFS是Oracle公司提供的集群文件系统。我们将使用OCFS存放表决盘(Voting Disk)和集群注册表(OCR)。本书用到的版本是OCFS2。安装OCFS2需要如下的3个包。

■ ocfs2console(图形界面接口,版本至少是1.2.7)。

■ ocfs2-tools(命令行接口,版本至少是1.2.7)。

■ ocfs2-kernel_version-version2(内核包),kernel_version是指内核版本, 该版本和Linux内核版本直接相关 。此外,还有另外一个版本(version2),version2必须是1.4.1及以上。

安装OCFS2的过程如下。

查看操作系统内核版本。

下载安装包。

从该网站下载相应的版本:

本例中是直接把包下载到服务器rac1上:

查看下载的文件:

安装3个包。

查看OCFS2的版本信息。

第16个任务 :安装ASMLib。

ASMLib用于标记分区,简化磁盘的管理,它是对ASM的辅助。ASMLib的功能有点类似于udev,可以进行磁盘命名。简单地说,ASMLib用于创建ASMLib磁盘。被ASMLib标记过的分区才能够被ASM使用。ASMLib的原理示意图如图2-31所示。

图2-31 ASMLib的原理示意图

ASMLib的安装和配置如下。

查看操作系统内核版本。

下载所需要的包。

一共需要3个包:

可以从Oracle的官方网站手工下载包:

或者直接用wget把安装包下载到节点rac1上:

如果DNS服务器不能使用,能上网的最快方法如下。

■ 禁用DNS服务器的客户端。

■ 直接编辑网卡配置文件,设置DNS。

如果是在家上网,该地址通常默认是192.168.0.1或者192.168.1.1。

■ 下载完成后,记得还原所有的配置。

本例中,下载了如下3个包:

安装包。

安装完成后,对ASMLib进行配置。

■ grid:拥有ASMLib的用户。

■ dba:拥有ASMLib的组。

■ 第一个y,表示系统启动时自动加载ASMLib。

■ 第二个y,表示ASMLib自动扫描ASMLib磁盘。

上面的命令完成了下面的任务。

■ 创建ASMLib的配置文件/etc/sysco nfig/oracleasm。

■ 创建加载点(mount point)/dev/oracleasm。

加载模块。

也可以使用命令/usr/sbin/oracleasm exit停止模块。

查看模块是否启动。

使用命令:

或者使用命令:

确认是否安装了正确的版本。

第17个任务 :创建用户和组。

(1)创建组

Oracle集群安装共需要3个组:oinstall组,是清单目录组(Oracle I nventory group),用于管理清单目录(Inventory);dba组,用于数据库管理;asmdba组,管理ASM实例。

■ 添加组的命令如下。

-g用于指定组ID(group ID)。

■ 查看组是否存在。

如果组oinstall存在,将显示下列信息。

(2)创建用户

此外,还需要两个用户,其中一个用户是Oracle RAC软件的拥有者(oracle),另外一个用户是Oracle Grid Infrastructure软件的拥有者(grid)。安装软件时,要以软件拥有者的身份进行安装。

■ 添加用户的命令如下。

-u是用户ID(user I D),-g指定用户所属的首选组(Primary Group),-G指定次要组(Secondary Group);grid、oracle是用户名。

■ 也可以通过下面的命令修改用户所属的组。

oracle是用户名,oinstall是首要组,dba和asmdba是次要组。

■ 查看用户是否存在。

如果用户oracle存在,将会显示下列信息。

■ 设置和修改用户的口令。

例如,修改用户grid的口令:

【小贴士(Tip)】 在一个集群中,所有节点中的用户ID必须相同,所有的组ID也必须相同。

第18个任务 :操作系统用户的环境变量配置。

在Linux平台,每个用户都有一个默认的shell(default shell),不同的shell对应不同的shell启动文件(shell startup file)。

shell :Bash shell(bash),对应的shell启动文件为bash_profile。

shell :Bourne shell(sh) or Korn shell(ksh),对应的shell启动文件为profile。

shell :Bash shell(bash),对应的shell启动文件为login。

用户的shell启动文件正是存放该用户环境变量设置的地方,因此,在设置用户的shell启动文件之前,需要按照下面的步骤确认用户在使用哪个shell(以用户oracle为例)。

用户登录。

显示当前用户使用哪个shell。

从上面内容可以看出,用户oracle的默认shell是bash(用户grid的默认shell也是bash),因此,用户oracle的shell启动文件是bash_profile。

【小贴士(Tip)】 shell启动文件bash_profile、profile、login都是隐藏文件,在使用时,在文件名前面要有小数点,例如:.bash_profile(由于印刷问题,小数点可能不太清楚)。

为用户grid设置环境变量。

编辑文件.bash_profile:

在文件末尾加入如下内容:

为用户oracle设置环境变量。

编辑文件.bash_profile:

在文件末尾加入如下内容:

如果想让环境变量立即生效,可以重新登录,过程如下。

退出oracle用户登录:

重新进入:

查看环境变量的设置是否生效:

当然,也可以执行下面的命令,让环境变量的设置立即生效。

为用户root设置环境变量。

有些命令需要用root执行,因此,需要设置root的环境变量。

加入如下内容:

第19个任务 :修改用户资源限制。

用户资源限制是限制某个用户对资源的消耗。配置文件/etc/security/limits.conf定义用户的资源限制。修改limits.conf以后,将马上生效。但是,如果用户已经登录系统,那么对于该用户的限制将在下一次用户重新登录以后才生效。修改资源限制的过程如下。

编辑资源配置文件:

为用户oracle设置资源限制,加入如下内容:

为用户grid设置资源限制,加入如下内容:

■ nofile:打开文件的最大数量(推荐值:软限制≥1024;硬限制≥65536)。

■ nproc:一个用户的有效进程数(最大进程数)(推荐值:软限制≥2047;硬限制≥16384)。

■ stack:进程的堆栈段(stack segment)的尺寸(推荐值:软限制≥10240KB;硬限制≥10240KB)。

■ hard:表示硬限制(hard limit)。硬限制强制性很强,当达到上限时,执行的命令会失败。

■ soft:表示软限制(soft limit)。当达到软限制的上限时,命令会继续执行,但会收到警告。软限制的上限是硬限制,也就是说,软限制不能超过硬限制。

查看当前用户某个资源的限制(以用户oracle打开的最大进程数为例):

类似的还有下面两个例子。

查看打开的最大文件数:

查看堆栈设置:

第20个任务 :下载并解压安装文件。

从Oracle的官方网站下载安装文件,下载地址如下:

或者

一共下载了3个文件,前两个文件是Oracle RA C软件(数据库软件),最后一个文件是Oracle Grid Infrastructure软件(集群软件GI)。

使用工具(如:winscp)把下载的文件上传到rac1的目录/zerodb/11g下。

解压文件。

解压完成后,linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip生成目录database;linux.x64_11gR2_grid.zip生成目录grid。

第21个任务 :cvuqdisk的安装。

cvuqdisk到底是什么东西?为什么要安装它呢?和读者朋友一样,笔者也曾经疑惑过。cvuqdisk是一个安装包,如果没有cvuqdisk,集群验证工具CVU(Cluster Verification Utility)将不能发现共享磁盘,并且会报告“Package cvuqdisk not installed”错误。

在对Oracle的安装文件进行解压后,将会生成目录database,cvuqdisk包就放在该目录下。安装该包的过程如下(需要创建用户和组后才能安装该包)。

安装完成后,要设置环境变量。cvuqdisk的拥有者是oinstall。

2.1.3.6 创建第二个节点(rac2)

经历了漫长、冗余、烦琐的步骤后,第一个节点(rac1)基本准备就绪。如果在生产环境下,也需要在第二个节点(rac2)上重复相同的“故事”(仅仅是少数参数的值设置不同而已)。接下来,我们将创建第二个节点(rac2)。第二个节点的创建也包含很多步骤,不过,相对第一个节点而言,已经简单很多!我们将通过VirtualBox的导出、导入功能创建第二个节点,具体过程如下。

第1个任务 :导出rac1。

打开虚拟机软件VirtualBox。

关闭节点rac1。

选择

单击 ,再单击 ,打开导出虚拟机界面。

选中 ,rac1是即将被导出的虚拟机,然后单击 按钮。

设置导出文件的名字和路径 ,本例中的导出文件是racnewversion.ova。

单击 按钮,再单击 按钮,开始导出rac1。

导出完成后,将在指定路径下生成文件racnewversion.ova。

第2个任务 :通过导入创建rac2。

通过VirtualBox,我们可以轻易地“ 克隆 ”出一台新的虚拟机,该虚拟机的配置和老虚拟机的配置完全相同。采用这样的方式,避免了重复劳动。接下来,我们将根据rac1“克隆”出节点rac2(第二个节点),具体的过程如下。

打开虚拟机软件VirtualBox。

单击 ,再单击 ,打开导入虚拟机界面。

单击 按钮,选择虚拟机rac1的镜像文件(K:\temp\racnewversion.ova,导出时创建的文件),单击 按钮。

在Name后,输入新的虚拟机名字 ,本例中,新的虚拟机名字是rac2(也就是集群的第二个节点)。在Virtual Disk Image后面,设置新虚拟机的磁盘文件存放路径 ,文件名可以保持不变,把路径替换成K:\VM_ZERODB_RAC\RAC2。

选中 ,重新初始化网卡的物理地址。单击 按钮,开始导入。

导入完成后,将在路径K:\VM_ZERODB_RAC\RAC2下生成多个磁盘文件。至此,已经成功创建节点rac2。

【小贴士(Tip)】 导入时,可能会失败,并报告类似的错误“......could not open the medium storage unit......VERR_TAR_END_OF_FILE......”。在讲解决方法之前,我们先简单了解一下导出文件的后缀ova和ovf的区别。导出时,如果指定文件后缀为ovf,则会生成多个文件;如果指定文件后缀为ova,则只生成一个文件。简单地说,ova是一个包,包括多个文件。因此,解决方法就是:对ova进行解压(WinRAR),然后再执行导入。

2.1.3.7 创建共享存储

通过前面的步骤,我们准备了本地存储/zerodb/11g,它用于软件的安装,不被多个节点共享。接下来,我们将创建 共享存储 ,用于存放多个节点共享的数据。创建共享存储是通过VirtualBox的命令来实现的,具体步骤如下。

第1个任务 :在节点rac1上创建共享磁盘。

打开Windows的命令行窗口。

在虚拟机关闭的情况下,创建共享磁盘。VBoxManage是VirtualBox的命令,用于管理磁盘文件。特别要注意的是,在下面的命令中,指定文件大小时,单位是MB。

在操作系统命令行输入如下的命令,为OCR和Voting Disk创建共享磁盘。

【小贴士(Tip)】 在Windosws的命令行窗口执行VirtualBox命令时,可能会提示命令不存在,我们需要指定命令的全路径或者设置环境变量PATH。

在操作系统命令行输入如下的命令,为ASM创建共享磁盘。

--filename指定磁盘文件的名字和位置,--size指定文件大小。

在操作系统命令行执行下面的命令,把磁盘连接到虚拟机rac1。

■ 把磁盘连接到虚拟机的意义是,在磁盘和虚拟机(rac1)之间建立联系。在把磁盘连接到虚拟机之前,我们无法从虚拟机(rac1)的图形界面中看到这些增加的磁盘;连接到虚拟机以后,就可以从虚拟机(图形界面)看到这些磁盘了。

■--port用于设置端口号,随便设置,只要不被占用就行。端口的设置会影响盘符。

■ 可以在操作系统命令行,使用命令VBoxManage showvminfo rac1查看控制器的名字或者类型。

【小贴士(Tip)】 控制器的名字有时候是“SATA Controller”,有时候是“SATA控制器”,区别很大。如果指定一个名字时发生错误,请尝试使用另外一个名字。

在操作系统命令行执行下面的命令,使磁盘可以被多个节点共享。

由于我们想安装Oracle集群,因此,磁盘要能被多个节点共享。执行上面几个步骤后,我们一共往rac1中增加了10块磁盘。

【小贴士(Tip)】 在VirtualBox中添加硬盘时,盘符会发生变化,可以在磁盘文件的属性处调整SATA Port x x 是数字)。这样可以使磁盘按照我们需要的顺序出现。不过,这种方法只在虚拟机中适用!

启动rac1,使用Linux命令fdisk对磁盘进行分区。

本例中,一块硬盘对应一个分区。分区完成后,将会产生下列分区:/dev/sdd1、/dev/sdf1、/dev/sdg1、/dev/sdh1、/dev/sdi1、/dev/sdj1、/dev/sdk1、/dev/sdl1、/dev/sde1、/dev/sdm1。

【小贴士(Tip)】 分区只需在一台服务器(节点)上执行!

第2个任务 :把共享磁盘连接到rac2。

配置第一个节点rac1时,我们往rac1中增加了多块共享磁盘。那么,这些磁盘如何才能被rac2所共享呢?通过下面的方法,rac2将和rac1一起共享这些磁盘。

在共享前,可以到VirtualBox中查看节点rac2的磁盘列表,如图2-32所示。

图2-32 磁盘列表

从图2-32中我们可以看出,rac2只有3块磁盘。随便查看一块磁盘的属性(单击 ),可以看到 ,从这里不难看出,这是一块本地磁盘。查看其他磁盘,也都是本地磁盘,不能被共享。

使共享磁盘能够被rac2共享。

在两个节点(rac1、rac2)关闭的情况下,在Windows操作系统命令行执行如下的命令,把共享磁盘连接到rac2。

上面的命令把10块磁盘连接到rac2。

【小贴士(Tip)】 这里要特别注意磁盘和端口的对应关系(例如:zerodb10.vdi对应port 12),此处的对应关系要和前面步骤中的对应关系保持一致!

再次到VirtualBox中查看节点rac2的磁盘列表,如图2-33所示。

图2-33 磁盘列表

从图2-33(截图)中我们可以看出,rac2中增加了10块磁盘。随便查看磁盘(zerodb x .vdi, x 从1到10)的属性 ,都是“Sharable”,说明这些磁盘已经被rac2共享。这里共享的10块磁盘,正是在rac1中增加的10块磁盘。

2.1.3.8 启动rac2并配置

由于节点rac2是由节点rac1“克隆”而来的,因此,rac2的配置要做相应的修改。根据我们的规划,rac2的公有网卡(bond0)地址是192.168.0.82,私有网卡地址是10.0.10.3和10.0.10.4。接下来,我们需要对IP地址和主机名进行调整,具体步骤如下。

启动rac2。

登录操作系统。

修改主机名。

修改公有网络IP地址。

把IPADDR=192.168.0.81改成IPADDR=192.168.0.82。

修改私有网络IP地址。

把IPADDR=10.0.10.1改成IPADDR=10.0.10.3。

把IPADDR=10.0.10.2改成IPADDR=10.0.10.4。

重启网络。

重启网络后,客户端以新的IP地址重新登录。

登录rac2,如果主机名还没有改变,请执行下面的命令,然后重新登录。

请使用下面的命令验证网络配置是否正确。

查看共享磁盘是否正常。

如果共享磁盘配置正常,这里将列出共享磁盘及其分区 (分区是在创建节点rac1时完成的,只需分区一次 )。

修改用户grid的环境变量:

将ORACLE_SID=+ASM1变成ORACLE_SID=+ASM2;ORACLE_HOSTNAME=rac1.zerodb.com变成ORACLE_HOSTNAME=rac2.zerodb.com。

修改用户oracle的环境变量:

将ORACLE_SID=zerodb1变成ORACLE_SID=zerodb2;ORACLE_HOSTNAME=rac1.zerodb.com变成ORACLE_HOSTNAME=rac2.zerodb.com。

2.1.3.9 启动rac1

从VirtualBox中启动rac1。为什么要先启动rac2(前面已经完成),然后再启动rac1呢?其原因是,防止两台机器的IP地址冲突。先启动rac2,对其网络进行配置,然后再启动rac1,这样两个节点的IP地址就不会发生冲突。

2.1.3.10 配置集群文件系统OCFS

OCFS本身就是一个小小的集群,有完整的体系结构。在创建第一个节点时,我们只安装了OCFS相关的包(到目前为止,两个节点已经安装了这些包),但并没有对其进行配置。接下来,我们将完成OCFS的配置。

第1个任务 :配置OCFS集群的结构。

ocfs2console需要图形界面的支持,远程桌面工具有Xmanager、VNC等。本例将使用Xmanager用root用户登录远程节点rac1(有关Xmanager的配置和使用,请参考相关文档,本书不做介绍)。

■ 使用Xmanager,以root登录rac1。

■ 单击桌面左下角的 ,再单击 ,然后单击 ,打开终端,如图2-34所示。

打开OCFS控制台。

在命令行输入如下命令,打开OCFS控制台,如图2-35所示。

图2-34 终端

图2-35 OCFS控制台

单击 ,再单击 ,将出现如图2-36所示的节点配置界面。

单击 按钮,将出现如图2-37所示的添加节点界面。

在此输入节点1的私有IP地址:10.0.10.2,然后单击 按钮,就完成了一个节点(节点1,rac1)的添加。

重复上面的步骤,添加第二个节点(节点2,rac2),节点二的私有IP地址为10.0.10.4。两个节点添加成功后,结果如图2-38所示。

生成OCFS的配置文件/etc/ocfs2/cluster.conf。

图2-36 节点配置界面

图2-37 添加节点界面

图2-38 节点添加完成

查看配置文件cluster.conf是否存在:

从上面可以看出,配置文件cluster.conf不存在。

单击 按钮,再单击 按钮,将会生成OCFS的配置文件/etc/ocfs2/cluster.conf。

再次查看配置文件:

从上面可以看出,配置文件/etc/ocfs2/cluster.conf已经生成,但是只存在节点rac1中,不存在节点rac2中。

同步配置信息(cluster.conf)。单击 ,再单击 ,rac1的配置信息/etc/ocfs2/cluster.conf将被自动同步到rac2。这两个文件的内容要完全相同。

查看配置文件cluster.conf。

cluster.conf描述了OCFS的架构,如由几个节点组成,节点IP地址是多少,端口号是多少等信息。上面的信息正好反映了我们在OCFS控制台所做的设置。

第2个任务 :集群超时配置(O2CB Cluster Timeout Configuration)。

使用命令service o2c b configure配置集群超时,该命令实际上是修改配置文件/etc/sysconfig/o2cb。

对于上面有关时间的设置,通常保持默认值不变。

y ”表示将O2CB设置成自动启动。

【小贴士(Tip)】 在进行上面的配置时,即使是默认值,也需要手工输入,否则配置看似成功,但最终结果还是失败的(也就是没有把正确的值写入/etc/sysconfig/o2cb),这是该版本的一个局限。

配置文件/etc/sysconfig/o2cb的内容如下:

【小贴士(Tip)】 注意:也需要在另外一个节点上重复上面的过程。

第3个任务 :OCFS集群的维护(在每个节点上)。

启动O2CB(启动所有的服务):

查看O2CB的状态:

停止O2CB(停止所有的组件):

第4个任务 :创建集群文件系统OCFS。

还记得前面的安装规划吗?根据我们的规划,共有6个分区用于OCR(集群注册表)和Voting Disk(表决盘),这6个分区是sdd1、sde1、sdf1、sdg1、sdh1、sdi1,它们对应的装载点(装载目录)是/ocfs1、/ocfs2、/ocfs3、/ocfs4、/ocfs5、/ocfs6(创建了这么多路径,其实只是为了后续的练习)。接下来,我们将创建集群文件系统OCFS。

在分区上创建文件系统( 只在一个节点上执行 )。

在分区/dev/sdd1上创建OCFS文件系统:

VOL_1是卷标的名字(随意命名)。本例中,分区和卷标的对应关系如下:sdd1→VOL_1、sde1→VOL_2、sdf1→VOL_3、sdg1→VOL_4、sdh1→VOL_5、sdi1→VOL_6。和普通的文件系统一样,我们也可以使用卷标装载(mount)文件系统。

依次对剩余的分区执行上面的操作:

可以使用下面的命令对文件系统进行检查。

装载文件系统。

创建装载点(加载点)( 在两个节点上都要执行 )。

普通加载。

按卷标进行加载。

自动加载的实现( 在两个节点上都要执行 )。

编辑文件:

添加如下内容:

■ datavolume,如果该文件系统用于存放OCR,Voting Disk一定要指定该选项。启用该选项,数据库将会使用Direct I/O(直接I/O)。

■ nointr,集群操作期间,不允许信号中断。

■ noatime,关闭访问时间的更新。

加载所有的/etc/fstab中列出的文件系统:

加载完成后,查看文件系统的使用情况:

【小贴士(Tip)】 既然是集群文件系统,大家不妨做一个小实验:在rac1的/ocfs1下创建一个文件,看看在rac2的/ocfs1下能不能看见该文件的内容。

第5个任务 :心跳小实验。

在所有的OCFS文件系统没加载(mount)的情况下,查看O2CB的状态:

从上面可以看出,心跳没有活动。

加载OCFS文件系统:

再次查看O2CB的状态:

从上面可以看出,心跳已经启动。

2.1.3.11 创建ASMLib磁盘

创建ASM磁盘,其实就是用ASMLib对分区进行标记,使它成为一个ASM磁盘。一个分区成为ASM磁盘后,就可以被ASM使用了。创建磁盘的过程如下。

【小贴士(Tip)】 创建ASM磁盘只需在一个节点上执行。

列出操作系统分区。

最后4个分区将被ASM使用,因此,需要用ASMLib进行标记。

标记磁盘。标记完成以后,这些分区就变成了ASM磁盘。

■ DISK1是ASM磁盘的名字,可以随意命名。

■/dev/sdj1是操作系统磁盘分区的名字。

列出ASM磁盘。

上面列出了ASM磁盘,ASM能够直接使用这些磁盘做存储。

当然,如果不满意这种现状,可以使用命令oracleasm deletedisk删除ASM磁盘,删除ASM磁盘就是把设备返回给操作系统。

或者

查找匹配的ASM磁盘。

在指定路径下查找匹配的ASM磁盘,前缀ORCL是必需的、不可缺少的,冒号后面是磁盘(标签)的名字,可以是通配符(本例中使用了星号)。

列出ASM磁盘和物理设备的对应关系。

分区和ASM磁盘有一一对应的关系,从上面可以看出,分区/dev/sdj1对应的ASM磁盘是DISK1。

【小贴士(Tip)】 如果在一个节点上添加了ASM磁盘,则需要在另外一个节点上执行扫描,另外一个节点才能发现ASM磁盘。扫描命令如下:

扫描完成后,执行下面的命令,将会列出所发现的ASM磁盘:

2.1.3.12 目录和权限

注:下面的步骤需要在两台机器上执行。

从底层的硬件开始,到文件系统,经过许多步骤,到目前为止,我们共有下面几个目录。

■/zerodb/11g用于软件的安装。

■/ocfs1、/ocfs2、/ocfs3、/ocfs4、/ocfs5、/ocfs6用于存放OCR(集群注册表)和Voting Disk(表决盘)。

接下来,我们对目录进行细化,并设置相应的权限。

(1)创建Oracle Grid Infrastructure(GI)的安装路径

创建网格根目录(grid base):

创建网格主目录(grid home):

(2)创建Oracle RAC的安装路径(同时创建了Oracle根目录和主目录)

修改目录的属主:

修改目录的权限:

2.1.3.13 VNC的配置

介绍到这里,很多朋友估计早已迫不及待地想看到Oracle的安装界面了,但是不要着急,磨刀不误砍柴工,如果急于求成,可能耗费的时间会更多(这仅仅是笔者的个人体会)。对于一个初学者来说,在集群环境下要想出现Oracle的安装界面还真有点不容易,需要配置的东西还真不少!

远程桌面工具很多,应用比较广泛的是Xmanager和VNC。Xmanager的配置看似简单,但是,一旦出现问题,排查有点困难。VNC则方便、适用,因此,推荐大家使用VNC。VNC由服务器端和客户端两部分组成。VNC的配置过程如下(只需在一个节点上进行配置)。

1.服务器端配置(本例中的服务器是rac1,IP地址:192.168.0.81)

服务器端的配置过程如下。

检查VNC服务器端RPM包是否安装。

如果没有安装,请执行包的安装:

启动VNC服务。

■ vncserver命令中的1表示桌面编号,在客户端连接服务器端时,需要指定桌面编号。VNC使用从5900开始的端口。桌面编号和端口号有对应关系,如:桌面1对应的端口号为5901,桌面2对应的端口号为5902。

■ 第一次启动VNC时,必须设置密码,本例中的密码是 500000

■ 第一次启动VNC时,会创建配置文件/root/.vnc/xstartup。

查看VNC的状态。

如果不知道VNC的桌面编号,可以从上面的信息中获得。

如果需要,可以修改密码。

设置VNC自动启动。

查看VNC是否自动启动:

如果需要,可以修改VNC使用的桌面类型。

修改文件xstartup:

修改xstartup文件的最后一行。如果修改成“startkde&”,将可以使用KDE桌面环境;如果修改成“startkde&”,将可以使用GNOME桌面环境。

关闭VNC,然后重启VNC:

2.客户端登录

打开VNC客户端软件(RealVNC)的VNC Viewer。

在登录界面的VNC Server处 ,设置VNC服务器的IP地址(192.168.0.81)和桌面编号(1)。

单击 按钮,出现密码提示框 ,在此输入VNC的密码,该密码是第一次启动VNC时设置的,本例中是 500000

单击 按钮,登录192.168.0.81的桌面。

2.1.3.14 建立节点间的对等访问

在安装期间,OUI将会使用ssh和scp远程运行命令(如:把安装文件拷贝到另外一个节点),因此,必须配置好节点间的对等访问(也叫SSH连通性、对等连接);否则,执行这些远程命令时,就会提示需要输入口令,从而中断Oracle的安装。建立节点间对等访问的意义是,执行远程命令时,不需要提示口令。对等访问在以后的数据库管理任务中也将被大量使用,因此,有必要配置好对等访问。在Oracle 11g中,在OUI界面Oracle会自动帮助我们建立对等访问,这样的举措简化了Oracle的安装。但是,为了能够让不太熟悉对等访问配置的朋友了解手工配置的流程,还是有必要介绍一下对等访问的手工配置。尤其在以后的工作中,DBA需要经常配置对等访问。

为用户grid创建对等连接(oracle用户也要做类似的操作),流程如下。

1.在集群中的每个节点上

以用户grid登录。

查看进程sshd是否正在运行。

创建目录并设置权限。

创建key。

通常只需一路回车,保持默认设置。

产生的key放在文件id_dsa.pub中。

2.在rac1上

执行下面的命令,把key的内容拷贝到本地文件authorized_keys中:

把authorized_keys拷贝到远程节点rac2中:

输入yes和grid用户口令,并回车。

3.在rac2上

把rac2上产生的key追加到本地文件authorized_keys中:

这时,文件authorized_keys拥有两个节点产生的key。

把authorized_keys拷贝回节点rac1:

注意: 如果是为用户oracle创建对等访问,那么这一步中的关键字“grid”要换成“oracle”。

4.测试连通性

注:下面所有的命令,当第一次执行时,如果出现如下提示,请输入“yes”。

如果第二次执行相同的命令还是出现相同的提示,则说明对等访问配置不正确。

从rac1到rac2。

从rac2到rac1。

上面的命令是去获得远程节点的时间。在没有提示密码输入的情况下,如果能够显示远程节点的时间,则说明对等访问配置正确。

本地到本地(rac1)。

如果执行成功,会显示本地时间。

本地到本地(rac2)。

如果执行成功,会显示本地时间。

2.1.3.15 安装Oracle Grid lnfrastructure前的最后检查

马上就要启动Oracle的安装界面了,但是,在启动安装界面之前,我们最好对前面所做的所有配置进行手工检查,确认所需要的进程(服务)正在运行。除了手工检查,Oracle还提供了一个工具,叫做集群验证工具(Cluster Verification Utility,CVU)。使用CVU,我们可以验证当前的环境是不是满足Oracle的安装要求(如:是不是缺少某些RPM包)。但是,CVU不能完全代替手工检查。

【小贴士(Tip)】 安装完成以后,也可以使用CVU对Oracle的安装进行检查,确认安装是否成功。

以grid进行登录。

到解压目录(本例中是/zerodb/11g)。

进入安装目录。

执行安装前检查。

【小贴士(Tip)】 runcluvfy.sh的输出太多,不太可能一眼就看出失败的地方,因此,我们可以把前面的命令改写成:

这样就可以实现只输出错误信息。

■-pre表示安装前的检查。

■-post表示安装后的检查。

■-n rac1,rac2是节点的名字,all表示所有节点。

■-fixup表示生成fixup脚本,fixup脚本可以用于修改内核参数(如果内核参数还没有配置好),以使操作系统满足Oracle的安装要求。

■-verbose表示显示详细信息。

【小贴士(Tip)】 不要过分迷信CVU,它仅仅是辅助我们进行配置检查,它的检查结果仅供参考!

2.1.3.16 安装集群软件Oracle Grid lnfrastructure

在安装Oracle RAC软件之前,必须先安装集群软件Oracle Grid Infrastructure。Oracle Grid Infrastructure软件是Oracle RAC软件的前提。安装Oracle Grid Infrastructure软件的过程如下。

用远程桌面工具(本例使用RealVNC)从PC(192.168.0.105)以root身份登录远程服务器rac1。

【小贴士(Tip)】 如果使用RealVNC,请确认VNC服务器端是否正在运行,命令如下:

如果没有运行,请手工启动VNC:

登录以后,打开终端(或许终端已经打开)(如图2-39所示)。

图2-39 终端

设置环境变量DISPLAY。

变量DISPLAY的作用是,在哪台机器的哪个窗口显示远程桌面,因此涉及两个方面:主机IP地址和终端编号(显示编号,桌面编号)。DISPLAY相当于一个指针,它指向哪儿,就在哪台客户端机器上显示图形桌面。设置DISPLAY时,如果指定的终端不存在,将会产生错误。经常发生的现象是,执行命令xhost+,该命令就一直挂起。

■ 如果使用的远程桌面工具是RealVNC,则需要进行如下的设置。

这里的终端编号1就是VNC的显示编号(在VNC Viewer的图形界面左上角可以看到,见图2-40),也是启动VNC时(vncserver:1)指定的编号。这里的localhost就是rac1。

■ 如果使用的远程桌面工具是Xmanager,则需要进行如下的设置。

在Xmanager的终端界面,查看终端编号(在Xmanager的图形界面左上角也可以看到,见图2-41):

最后一行的2.0就是终端编号。

图2-40 终端编号

图2-41 终端编号

设置DISPLAY:

后面的0可以省略,192.168.0.105是PC的IP地址。

【小贴士(Tip)】 特别注意:192.168.0.105既不是rac1的IP地址,也不是rac2的IP地址。

访问控制设置。

上述设置完成以后,要执行xhost命令。xhost命令的作用是,设置允许哪些机器的哪些用户进行远程桌面的连接,未授权的用户是不能打开X-Window的。加号(+)表示允许所有用户进行远程连接。

切换用户到grid。

这一步很重要,grid用户将成为Oracle Grid Infrastructure的安装者和拥有者。

进入安装路径。

/zerodb/11g是解压目录,解压linux.x64_11gR2_grid.zip以后,将生成目录grid。

启动安装。

执行上面的命令,将首次弹出Oracle Grid Infrastructure的安装界面,如图2-42所示。

选择 ,表示要配置和安装一个集群。单击 按钮,出现如图2-43所示的选择安装类型界面。

选择安装类型。

是典型安装, 是高级安装。选中 ,单击 按钮,出现如图2-44所示的定义SCAN界面。

图2-42 选择安装选项界面

图2-43 选择安装类型界面

图2-44 定义SCAN界面

定义SCAN。

在SCAN Name处,指定SCAN的名字,本例中是myscan,此处定义的SCAN的名字要和DNS中的名字相同。

定义节点。

单击 按钮,出现如图2-45所示的添加节点界面。

图2-45 添加节点界面

在Hostname处,输入主机名,本例中是rac2.zerodb.com(公有地址);在Virtual IP Name处,输入VIP,本例中是rac2-vip.zerodb.com(公有地址)。输入完成后,单击 按钮,将成功添加一个节点的信息。单击 按钮,可以编辑节点的配置信息。单击 按钮,将删除节点的配置信息。

SS H连通性设置。

单击 按钮,出现SSH连通性测试界面,如图2-46所示。

图2-46 连通性测试界面

所谓连通性,其实就是节点间的对等访问。我们在前面已经对对等访问的配置做了详细的描述。如果已经配置好对等访问,则输入用户密码 ,单击 按钮,开始测试节点的连通性。如果连通性配置正确,将会返回如图2-47所示的信息。

图2-47 连通性测试结果

如果我们还没有手工配置好对等访问,那么,不用浪费时间了,Oracle可以帮我们这个小忙。只需单击 (单击之前,记得输入口令),Oracle将自动帮我们配置好对等访问。

网卡类型设置。

单击 按钮,将弹出网卡类型设置界面,如图2-48所示。

图2-48 网卡类型设置界面

在此界面中,我们可以选择哪些网卡作为私有网卡(选择 ),哪些网卡作为公有网卡(选择 )。本例中,bond0作为公有网卡;eth2和eth3作为私有网卡。

【小贴士(Tip)】 特别要注意的是,对于私有网络,我们选择了两块网卡(eth2、eth3),两块网卡互为冗余。“网卡冗余”的思想正是在这里得以实现!

网卡类型设置完成后,单击 按钮。

单击 按钮,进入安装路径设置界面,如图2-49所示。

安装路径设置。

处,输入/zerodb/11g/grid_base(如果环境变量ORACLE_BASE已经设置好,那么,在此处就已经自动填入);在 处,输入/zerodb/11g/grid_home(其实就是GRID_HOME)。

图2-49 安装路径设置界面

【小贴士(Tip)】 需要特别注意的是,安装Oracle Grid Infrastructure软件,需要一个Oracle Base(对应环境变量ORACLE_BASE,GRID_BASE);安装Oracle RAC软件,也需要一个Oracle Base(对应环境变量ORACLE_BASE)。虽然有两个名字完全相同的ORACLE_BASE,但是,它们指向的路径是不同的,第一个ORACLE_BASE与Oracle Grid Infrastructure相关,第二个ORACLE_BASE与Oracle RAC相关。第一个ORACLE_BASE需要在操作系统用户grid下进行设置,第二个ORACLE_BASE需要在操作系统用户oracle下进行设置。

处,可选择 ,本例中将把集群注册表(OCR)和表决盘(Voting Disk)放在集群文件系统OCFS中,因此,此处选择“File System”。并在 处输入集群文件系统的路径,本例中是/ocfs1/storage。

【小贴士(Tip)】 在此阶段,如果把集群注册表(OCR)和表决盘(Voting Disk)放在ASM中,Oracle将自动帮助我们创建ASM实例。但是,为了大家更好地学习和理解ASM,我们把ASM创建的相关部分独立出来,后续会做专门介绍。

处,选择ASM的管理组 。然后单击 按钮,出现清单目录设置界面,如图2-50所示。

图2-50 清单目录设置界面

设置清单目录。

清单目录的路径格式是:U02/oraInventory,U02通常是文件系统的加载点,本例中是/zerodb/11g,全路径就是/zerodb/11g/oraInventory。当然,我们也可以设置其他路径。设置完成后,单击 按钮,进行先决条件检查,如图2-51所示。

图2-51 先决条件检查

先决条件检查。

此处“先决条件检查”和“CVU检查”异曲同工,就是检查操作系统的各项设置是否满足Oracle的安装要求(如:有的包是不是已经安装,需要的服务是不是正在运行等),如果某些条件不满足,Oracle会列出错误信息;如果“先决条件检查”全部通过,将会出现如图2-52所示的配置汇总界面。

图2-52 配置汇总界面

保存响应文件。

在前面的步骤中,我们做了许多设置,例如:选择网卡类型,设置SCAN的名字等。我们可以把这些设置保存到一个文件中,该文件叫做“响应文件”。下次再安装Oracle时,不必重复上面的设置,只需调用安装命令runInstaller读取“响应文件”的内容,便能实现Oracle的快速安装。命令格式如下:

单击 按钮,出现如图2-53所示的保存界面。

在此窗口中设置响应文件的名字,本例中是:zerodb_grid.rsp。响应文件保存完成后,我们可以到节点rac1中看看响应文件的内容:

在响应文件zerodb_grid.rsp中,可以看到我们设置的SCAN的名字是myscan。

图2-53 保存响应文件

开始安装。

单击 按钮,开始集群软件的安装,如图2-54所示。

图2-54 安装进行中

安装期间,我们可以单击 按钮,查看安装的详细信息,如图2-55所示。

手工运行脚本。

安装期间,会弹出如图2-56所示的界面,该界面要求以root身份运行两个脚本:orainstRoot.sh和root.sh。

在一个新窗口中,以root身份登录rac1。

图2-55 详细信息

图2-56 运行脚本界面

在另外一个新窗口中,以root身份登录rac2。

先在第一个节点rac1上运行orainstRoot.sh。

再在第二个节点rac2上运行orainstRoot.sh。

先在第一个节点rac1上运行root.sh。

再在第二个节点rac2上运行root.sh。

【小贴士(Tip)】 运行脚本时,不要在多个节点上同时运行脚本,请按照上面的顺序执行。

第一个脚本orainstRoot.sh用于改变权限设置,该脚本的运行过程如下:

第二个脚本root.sh的执行过程如下:

只有看到最后一行的“......successful”,才表示脚本执行成功。root.sh脚本的成功执行非常重要!如果root.sh执行失败,切记: 请不要执行后续的安装 ,停下来,找出root.sh执行失败的原因,直到root.sh成功执行。

两个脚本成功执行后,单击 按钮,安装继续进行。

安装成功。

安装成功后,会弹出如图2-57所示的界面。

图2-57 安装成功界面

单击 按钮,结束安装。至此,集群软件的安装全部完成。与此同时,VIP已经创建,SCAN监听器也已经自动配置完成,并正在运行。

确认集群软件是否正常运行。

在每个节点上,以grid登录操作系统:

检查集群状态,如果集群组件全部运行正常,将会显示如下的信息:

备份root.sh脚本。

【小贴士(Tip)】 切记:安装完成后,不要马上删除临时目录下的文件和目录(例如:/tmp/.oracle或/var/tmp/.oracle)。如果删除这些文件和目录,正在运行的集群很可能被挂起!

查看VIP的使用情况。

在节点rac1上,查看VIP的使用情况:

在节点rac2上,查看VIP的使用情况:

根据我们早些时候的规划,192.168.0.83、192.168.0.84是普通VIP,而192.168.0.85、192.168.0.86、192.168.0.87是SCAN VIP。普通VIP 192.168.0.83在rac1上,192.168.0.84在rac2上;而SCAN VIP共有3个,2个在节点rac1上,1个在rac2上。

查看监听器的使用情况。

查看rac1上的监听器:

查看rac2上的监听器:

从上面可以看出,每个节点上都有一个本地监听器(名字是:LISTENER)。共有3个SCAN监听器,2个在节点rac1上(LISTENER_SCAN2、LISTENER_SCAN3),1个在rac2上(LISTENER_SCAN1)。这也验证了我们在RAC管理篇所说的“一个SCAN VIP对应一个SCAN监听器”的说法。通过下面的命令,可以查看某个监听器的详细信息。

【小贴士(Tip)】 通过上面的介绍,我们应该明白,VIP(SCAN VIP)和SCAN监听器都是在安装集群软件时配置完成的(并不是在安装Oracle RAC软件或者创建数据库时配置的)。

2.1.3.17 创建ASM实例

安装完集群软件以后,接下来的任务是安装Oracle RAC软件和创建数据库。由于我们计划把数据放在ASM中,因此,在此之前,我们要创建好ASM和磁盘组。

创建ASM有多种方法,其中一种是手工创建,另一种是通过ASM助手(ASMCA)创建。ASMCA是一个图形界面工具,用于ASM的管理。接下来,我们将通过ASMCA创建ASM实例。

用远程桌面工具登录节点(rac1)。

设置变量DISPLAY,切换用户到grid。

启动ASM助手。

在图2-58中,设置管理员密码。在需要输入密码的地方输入密码,本例中的密码是:Xzzp2012(Oracle 11g的密码规则更加严格),请记住密码,在创建数据库阶段需要该密码。

图2-58 管理员密码设置界面

磁盘组设置。

单击 按钮,进入磁盘组设置界面,如图2-59所示。

图2-59 磁盘组设置界面

处,输入磁盘组的名字:DG_zero。在 中,选择冗余级别(镜像级别)。 表示2路镜像(数据有2份相同的拷贝), 表示3路镜像(数据有3份相同的拷贝), 表示没有镜像。本例中,选择 ,并选择组成磁盘组的磁盘,DISK1、DISK2构成失败组fg1;DISK3、DISK4构成失败组fg2。设置完成后,单击 按钮。

ASM初始化参数设置。

单击 按钮,将出现ASM初始化参数设置界面,如图2-60所示。在此界面中,可以设置ASM的初始化参数。

图2-60 ASM初始化参数设置界面

单击 按钮,还可以看到更多的初始化参数。初始化参数设置完毕后,单击 按钮,关闭初始化参数设置界面。

创建ASM实例。

所有设置完成后,单击 按钮,开始创建ASM实例,如图2-61所示。

ASM实例创建完成后,将出现如图2-62所示的创建成功界面,该界面显示:ASM实例被成功创建并已经启动;磁盘组DG_zero也已经成功创建。

图2-61 创建ASM实例

图2-62 ASM实例创建成功

依次单击 按钮、 按钮、 按钮退出ASM助手。创建结束后,我们可以在操作系统中看到ASM的进程。

【小贴士(Tip)】 需要注意的是,ASMCA会帮助我们在集群中的所有节点上自动创建ASM实例,不用我们在每个节点上都运行一次ASMCA。

2.1.3.18 安装Oracle RAC软件(数据库软件)

ASM实例的成功创建,让我们又向Oracle集群安装的终点迈进了一步。接下来,我们将安装Oracle RAC软件。

用RealVNC登录节点rac1,打开终端,并执行下面的命令。

Oracle RAC软件安装前的检查。

在安装Oracle RAC软件之前,也要使用CVU进行配置检查。

只有检查通过,或者确认有的提示可以忽略,才能执行后续的安装步骤。

进入安装路径。

/zerodb/11g是解压目录,解压linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip以后,将生成目录database。

启动安装。

执行上面的命令,将首次弹出Oracle RAC的安装界面,如图2-63所示。

图2-63 安装首页

如果不希望接收安全更新,则取消选中选项 ,单击 按钮,出现如图2-64所示的安全更新提示框。

图2-64 安全更新提示框

单击 按钮,进入如图2-65所示的选择安装选项界面。

图2-65 选择安装选项界面

选择安装选项。

■ 第一个选项 :安装数据库软件,并创建数据库。

■ 第二个选项 :只安装数据库软件。

■ 第三个选项 :对现有的数据库进行升级。

选择 ,只安装数据库软件,并不创建数据库,然后单击 按钮,出现如图2-66所示的节点选择界面。

图2-66 节点选择界面

【小贴士(Tip)】 安装数据库软件和创建数据库是两个过程。

节点选择。

首先要选择安装的是单实例数据库,还是集群数据库。本例中是安装集群数据库,当然要选择 。如果选择安装集群数据库,则请选择安装集群数据库的节点,本例中是rac1和rac2。

SS H连通性设置。

单击 按钮,打开连通性设置界面,如图2-67所示。

图2-67 连通性设置界面

处,输入用户oracle的密码。如果还没有配置好SSH连通性(也就是对等访问),则请单击 按钮,Oracle将自动为用户oracle配置好节点的对等访问。如果对等访问配置成功,则可以单击测试 按钮,测试配置是否正确,如果配置正确,则会弹出如图2-68所示的提示框。

图2-68 连通性测试通过提示框

单击 按钮,再单击 按钮。

语言选择。

在如图2-69所示的语言选择界面,选择产品语言,默认的语言是英语。对于中国大陆来说,通常还需选择 ,然后单击 按钮添加选中的语言(也就是共有两种语言)。语言设置完成后,单击 按钮,出现如图2-70所示的数据库版本选择界面。

数据库版本选择。

共有两个版本:企业版( )和标准版( )。相信大家都知道,企业版拥有更多的功能。为了简化安装,无论是在学习环境还是生产环境下,都请选择“企业版”。

此外,可以单击 按钮,选择安装的组件,如图2-71所示。

图2-69 语言选择界面

图2-70 数据库版本选择界面

图2-71 组件选择界面

单击 按钮,再单击 按钮,出现如图2-72所示的安装路径选择界面。

安装路径选择。

处,输入路径/zerodb/11g/db_base,这里输入的是Oracle根目录( 也叫基目录 )。如果已经设置好环境变量(ORACLE_BASE=/zerodb/11g/db_base),则此处会自动填入。

【小贴士(Tip)】 这里的Oracle根目录( )只是数据库软件的根目录,而不是集群软件(Oracle Grid Infrastructure)的根目录。

图2-72 安装路径选择界面

处,输入/zerodb/11g/db_base/db_home,这里输入的是Oracle主目录( 也叫家目录 )。此处的输入要与环境变量的设置相匹配(ORACLE_HOME=/zerodb/11g/db_base/db_home)。

路径设置完成后,单击 按钮,出现如图2-73所示的组设置界面。

图2-73 组设置界面

组的选择。

选择数据库管理员组和数据库操作员组,无论哪个组都选择dba,然后单击 按钮,进行先决条件检查。

先决条件检查。

先决条件检查的过程如图2-74所示,它会检查安装包、检查磁盘空间等。

图2-74 先决条件检查的过程

如果检查没有通过,Oracle将会显示详细的提示信息;如果检查通过,则会显示如图2-75所示的安装汇总界面。

图2-75 安装汇总界面

单击 按钮,开始安装。

开始安装。

安装过程如图2-76所示,安装会耗费较长的时间。安装期间,我们可以单击 按钮,查看安装的详细信息、详细进度。

图2-76 安装过程

运行脚本。

安装期间,会弹出对话框(如图2-77所示),要求我们运行脚本/zerodb/11g/db_base/db_home/root.sh。脚本运行的步骤如下。

■ 打开另外一个窗口(终端),以root身份登录rac1,执行脚本/zerodb/11g/db_base/db_home/root.sh。

■ 等节点rac1上的脚本执行完成后,打开另外一个窗口(终端),以root身份登录rac2,执行脚本/zerodb/11g/db_base/db_home/root.sh。

root.sh脚本在两个节点上都成功执行后,单击 按钮。

图2-77 运行脚本

安装成功。

如果安装成功,将会弹出如图2-78所示的安装成功界面。单击 按钮,结束安装,至此,数据库软件安装成功。但是,我们仅仅安装了数据库软件,并未创建数据库。

图2-78 安装成功界面

2.1.3.19 创建数据库

创建数据库有两种方法:一种是手工创建,利用CREATE DATABASE命令;另一种是通过图形界面工具DBCA创建。本节主要讲述如何利用DBCA创建数据库。详细过程如下。

用RealVNC登录节点rac1,打开终端,执行下面的命令。

【小贴士(Tip)】 需要留意的是,数据库软件的安装和数据库的创建都是在操作系统用户oracle下进行的。

打开数据库助手DBCA的界面。

执行如下命令,打开DBCA的界面,如图2-79所示。

图2-79 DBC A首页

创建的数据库类型有单实例数据库和集群数据库,如果想安装单实例数据库,则选择 ;本例中,要安装集群数据库,因此选择 ,然后单击 按钮。

选择数据库管理任务。

在如图2-80所示的选择数据库管理任务界面中,选择 ,然后单击 按钮,出现如图2-81所示的模板选择界面。

图2-80 选择数据库管理任务

图2-81 模板选择界面

模板选择。

创建的数据库可以是一般数据库、定制化数据库或者数据仓库。本例中,只想创建一般数据库,因此选择 ,然后单击 按钮,出现如图2-82所示的数据库名和SID设置界面。

图2-82 数据库名和SID设置界面

数据库名和数据库标识符SID设置。

处,输入数据库的名字(zerodb);在 处,输入数据库标识符SID的前缀(zerodb)。

单击 按钮,选择rac1和rac2作为集群数据库的节点。

所有设置完成后,单击 按钮,出现如图2-83所示的管理选项界面。

管理选项。

保持默认值不变,单击 按钮,出现如图2-84所示的密码设置界面。

图2-83 管理选项界面

图2-84 密码设置界面

密码设置。

安装期间,会自动创建一些内置账户,在此界面中可以设置这些内置账户的密码。可以分别设置每个账户的密码,也可以把所有的内置账户的密码设置成相同的。如果把所有内置账户的密码设置成相同的,则选择 ,输入口令(Xzzp2012),然后单击 按钮,出现如图2-85所示的文件位置设置界面。

图2-85 文件位置设置界面

指定数据库文件的位置。

数据库文件(包括数据文件、控制文件等)可以放在集群文件系统中(例如OCFS),也可以放在自动存储管理ASM中。在 处,可以选择ASM ,也可以选择集群文件系统 ,本例中,我们选择

通常,当DBA创建一个表空间时,需要指定构成该表空间的数据文件的详细信息(如路径、名字等),这是数据文件的常规管理方式。数据文件管理的另一种方式是OMF(Oracle-Managed Files),又称“Oracle管理的文件”。顾名思义,OMF就是数据文件的管理由Oracle自动完成,不需要DBA的干预。例如:当我们创建表空间tbs_zero时,只需输入如下命令:

不需要指定数据文件的名字和位置,Oracle会自动帮我们在指定路径(由参数DB_CREATE_FILE_DEST确定)下创建相应的数据文件,这就是OMF的优势。OMF是数据库文件的一种管理方式,并不仅仅针对数据文件,还针对其他文件等(如控制文件、重做日志文件)。

【小贴士(Tip)】 我们只是举例说明OMF的原理,有关OMF的详细配置,请参考相关书籍。OMF虽然有明显的优势,但是在生产环境下,还是不推荐使用,因为OMF产生的文件名(如数据文件)可读性差,不利于DBA对数据库的手工维护!

如果使用普通的数据库文件管理方式,则选择 ;如果使用“Oracle管理的文件(OMF)”,则选择 。在 或者 处,输入路径,或者单击 按钮,选择路径,Oracle将把数据库文件放到该路径下。如果选择的存储方式是ASM,当单击 按钮时,会弹出如图2-86所示的磁盘组选择界面,该界面中列出了ASM中的磁盘组,请选择所列出的磁盘组。本例中,选择DG_ZERO,DG_ZERO正是我们在“创建ASM实例”阶段创建的磁盘组。从该界面中,我们还可以看到磁盘组DG_ZERO的详细信息(如剩余空间等)。

单击 按钮,出现如图2-87所示的文件位置变量界面,该界面显示了有关文件位置的变量。

图2-86 磁盘组选择界面

图2-87 文件位置变量界面

本例中,选择 ,输入磁盘组的名字“+DG_ZERO”(注意:有一个加号),然后单击 按钮,将弹出如图2-88所示的ASMSNMP口令界面。

图2-88 ASMSNMP口令界面

输入ASMSNMP的密码,本例中是Xzzp2012,单击 按钮。

闪回区设置。

在如图2-89所示的闪回区设置界面中,选择 ,在 处,输入或者选择闪回区的位置;在 处,指定闪回区的大小。

图2-89 闪回区设置界面

选中 ,使数据库处于归档状态,最后单击 按钮,出现如图2-90所示的样例数据库界面。

图2-90 样例数据库界面

样例数据库的安装。

样例数据库主要用于学习,在生产环境下没有必要安装样例数据库。保持默认值,单击 按钮,出现如图2-91所示的内存设置界面。

图2-91 内存设置界面

内存设置。

Oracle的内存设置有3种方式。

方式1 :选择 ,拖动 ,设置分配给Oracle的内存大小。再选择 。“自动内存管理(Automatic Memory Management)”是Oracle的一个特性,它实现了Oracle内存(SGA、PGA)的自动化管理,把DBA从内存的琐碎管理中解脱出来。

方式2 :选择 ,再选择 ,则可以分别设置SGA和PGA的大小(如图2-92所示)。

方式3 :选择 ,再选择 ,则可以分别对组成SGA的各个内存池进行单独设置(如图2-93所示)。

图2-92 设置SGA和PGA的大小

图2-93 内存池设置

方式2和方式3适合经验丰富的DBA,并且,Oracle推荐使用“自动内存管理”,因此,本书选择方式1。

最大进程数设置。

单击 ,出现如图2-94所示的进程设置界面,可以设置最大进程数,最大进程数影响最大会话数。

字符集设置。

单击 ,进入字符集设置界面,如图2-95所示。

图2-94 进程设置界面

图2-95 字符集设置界面

■ Use the Default:则选择此选项可以利用操作系统语言设置。

■ Use Unicode(AL32UTF8):选择此选项可以存储多种语言。如果要支持英语和两种或更多种其他语言,请选择该选项。

■ Choose from the list of character sets:可以从下拉列表中选择特定的字符集。如果是中国大陆,一般选择ZHS16GBK(简体中文字符集)。

■ National Character Set:选择AL32UTF8。

■ Default Language:选择简体中文。

所有设置完成后,单击 按钮,出现如图2-96所示的存储设置界面。

修改数据库存储。

在此界面中,我们可以修改控制文件、数据文件、重做日志文件的路径和文件名。在数据库安装完成后,我们也可以进行类似的操作,因此,本例中,保持默认值不变,单击 按钮,出现如图2-97所示的创建选项界面。

图2-96 存储设置界面

图2-97 创建选项界面

创建选项。

如果想生成创建数据库的脚本,则请选择 ,并设置脚本的名字和路径。选中 ,然后单击 按钮。

安装汇总。

安装汇总界面如图2-98所示,其中显示了前面步骤的所有设置,如数据库的名字、节点的名字、存储类型等。单击 按钮,开始创建数据库。

创建数据库进行中。

如图2-99所示,数据库创建进行中。

修改口令。

安装结束后,我们可以再次修改内置账户的口令(见图2-100),单击 按钮,打开口令修改界面。本例不需要修改口令,因此,单击 按钮结束安装。

图2-98 安装汇总界面

图2-99 创建数据库界面

图2-100 口令设置界面

安装结束后,查看实例是否正在运行。

查看实例是不是运行在所有的节点上,如果实例正在运行,则将显示如下信息:

zerodb是数据库的名字。实例zerodb1运行在节点rac1上,实例zerodb2运行在节点rac2上。

2.1.4 Oracle安装疑难解析

实务1 安装Oracle时,为什么不能启动安装界面
〖环境(Environment)〗
〖现象(Symptom)〗

运行runInstaller安装Oracle时,提示如下信息:

〖原因(Cause)〗

没有正确设置好操作系统的环境变量DISPLAY,导致不能启动Oracle安装界面。

〖方法(Action)〗

正确设置环境变量DISPLAY。

把your_IPaddress换成你的IP地址。

注意: 这里的IP地址是客户端的IP地址,不是服务器的IP地址。

实务2 为什么Oracle安装界面无法显示中文,都是“□□□”
〖环境(Environment)〗
〖现象(Symptom)〗

运行runInstaller安装Oracle,出现Oracle的安装界面,但是,界面上的字体是乱码,如:“□□□”。

〖原因(Cause)〗

这是环境变量设置不当造成的。

〖方法(Action)〗

(1)设置环境变量。

(2)运行runInstaller。

实务3 安装Oracle时,报告错误“ORA-12547: TNS: lost contact”
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle时,提示下面的错误:

忽略上面的错误,完成安装,使用DBCA创建数据库,提示如图2-101所示的错误。

图2-101 错误提示

〖方法(Action)〗

下载并安装包libaio-0.3.93-4.i386.rpm就能解决这个问题。

实务4 如何下载Oracle的安装文件
〖原因(Cause)〗

网上有很多朋友经常会问,从哪里下载Oracle的安装文件?Oracle支持主流的各种操作系统(OS)。Oracle官方也提供了各个操作系统平台相应Oracle软件的下载,其中包括数据库(Database)、开发工具(Developer To ols)、中间件(Middleware)。不过,从Oracle官方下载的软件只供个人学习,不得用于商业用途。如果用户把这些软件用于商业用途,则会引起版权纠纷,涉及法律问题,严重的会引起Oracle官方的起诉。

〖方法(Action)〗

在Oracle的官方网站免费注册一个账户。

打开下面的网址,这个网页将会列出Oracle可供下载的软件。

选择我们要下载的软件。

出现一个界面,其中有一个复选框“YES,I accept the License Terms and Export Restrictions…”,选中这个复选框,然后单击“I Accept”按钮,出现下一个界面。

在这里,选择我们要下载的文件进行下载。

注意: 在上面的过程中,会提示我们输入用户名和密码,我们只需按照提示输入注册的用户名和密码即可。

实务5 Oracle安装完成后,用户sys与system默认的密码是什么
〖方法(Action)〗

Oracle安装完成后,用户sys与system默认的密码分别是

■ sys/change_on_install(change_on_install是用户sys的默认密码)

■ system/manager(manager是用户system的默认密码)

实务6 如何找到Oracle安装时生成的日志文件
〖原因(Cause)〗

安装Oracle的时候,Oracle会把安装的详细过程记录到一些文件中,这些文件就是“安装日志文件”。这些文件可以帮助我们快速定位安装过程中遇到的疑难问题,使我们能够顺利进行安装,因此,我们必须找到这些日志文件。

〖方法(Action)〗

◆ 安装日志文件的查找(Windows平台)

Windows中的安装日志文件存放在SYSTEM_DRIVE:\Program Files\Oracle\Inventory\logs下,不需要进行额外的查找。SYSTEM_DRIVE表示Windows系统所在的盘符,一般是C盘。

◆ 安装日志文件的查找(UNIX平台)

找到文件oraInst.loc。

oraInst.loc文件的位置如下。

■ 对于AIX、Linux x86或Linux Itanium,文件的位置是/etc/oraInst.loc。

■ 对于其他UNIX操作系统,文件的位置是/var/opt/Oracle/oraInst.loc。

从文件oraInst.loc中,找到Inventory的位置。

这里的Inventory目录是/Oracle/app/Oracle/oraInventory。

进入Inventory目录,找到安装日志文件。

查看安装日志文件的内容。

注意: 每次安装产生的日志文件的名称都不同。

实务7 安装Oracle时,是否需要安装JDK
〖原因(Cause)〗

安装Oracle时,无须另外安装JDK,因为Oracle自带JDK。

实务8 解压安装文件时,报告无权限
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle之前,需要解压缩安装文件,解压缩安装文件时,发生错误,具体过程如下。

〖原因(Cause)〗

把安装文件上传到服务器上时使用用户root的身份,解压缩时使用用户Oracle的身份,所以解压缩会失败。

〖方法(Action)〗

以用户root的身份登录操作系统。

重新解压安装文件。

实务9 安装Oracle软件并创建完数据库后,服务内的ORACLESID显示“启动”而不是“已启动”
〖环境(Environment)〗

OS:Windows

DB:Oracle 10g

〖现象(Symptom)〗

当数据库创建完成后,在Windows的服务(Services)列表中,ORACLESID显示“启动”而不是“已启动”。

〖原因(Cause)〗

这个问题可能是由下面的两个原因造成的。

原因一 :数据库正在启动。

原因二 :数据库启动出现错误。

〖方法(Action)〗

■ 如果是“原因一”造成的,则请稍等一会儿,然后单击“开始”→“控制面板”→“管理工具”→“服务”→“操作”→“刷新”,这时候就会看到服务的状态变成“已启动”。

■ 如果是“原因二”造成的,则需要查看alter文件或者trace文件等,以获得更多的错误信息。

实务10 安装Oracle时,报告错误“Thrown when the IP address of a host cannot be determined”
〖现象(Symptom)〗

安装Oracle时,出现错误提示“Thrown when the IP address of a host cannot be determined”。

〖原因(Cause)〗

这是因为把服务器的IP地址设置成了动态IP地址(dynamic IP address)所造成的。

〖方法(Action)〗

不要使用DHCP,把要安装数据库的机器的IP地址设置成固定IP地址。如果不知道如何设置静态IP,则请联系系统管理员。

实务11 安装Oracle时,报告错误“无法读取C: /Program Files/Oracle/Inventory/ContentsXML/comps.xml,丢失某些产品清单信息”
〖原因(Cause)〗

Inventory目录存放已经安装的Oracle组件的信息。这个信息由Oracle进行维护,用户不能够手工更改Inventory目录及其文件。如果修改了这些信息,则Oracle Universal Installer将不能够定位已经安装的Oracle产品。

实务12 安装时,提示“安装程序交换区C:\Documents and Settings\Administrator\Local Se ttings\Temp\OraInstall没有足够的磁盘空间,请再装备一些磁盘空间,然后再试”
〖原因(Cause)〗

安装的源路径或者目标路径中含有中文(乱码)造成的。

〖方法(Action)〗

把与安装有关的路径全部改成英文。

实务13 创建数据库时,出现错误“ORA-03113: en d-of-file on communication channel”
〖现象(Symptom)〗

创建数据库的时候,出现错误“ORA-03113:end-of-file on communication channel”。

〖方法(Action)〗

解决办法有以下两种。

方法一 :修改核心参数,加大相应核心参数的值(Oracle推荐的核心参数)。

方法二 :减小init.ora参数Processes的值。

实务14 安装Oracle时,报告错误“ORA-27102: out of memory”
〖现象(Symptom)〗

安装Oracle的时候,报告内存不足(ORA-27102:out of memory)。

〖原因(Cause)〗

SGA的值设置得太大。

〖方法(Action)〗

减小SGA的值。

实务15 在Linux(UNIX)环境下成功安装了Oracle 10g,从Windows下用IE登录Oracle 10g的em时,按钮显示为“□□”
〖方法(Action)〗

打开IE浏览器,选择“工具”→“Internet选项”→“常规”,单击“语言”按钮,默认只有“中文”,单击“添加”按钮,加入“英语(美国)”,调整顺序,把“英语(美国)”移动到最上面,单击“确定”→“确定”按钮。

启动em。

实务16 在Linux AS4 安装Oracle 9i(9.2.X.X),当执行runInstaller时,出现错误
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle时,出现如下错误:

〖原因(Cause)〗

缺少两个补丁包:compat-libcwait-2.0-2.i386.rpm与compat-Oracle-rhel4-1.0-5.i386.rpm。

〖方法(Action)〗

从http://oss.Oracle.com/projects/compat-Oracle/files/RedHat/下载补丁包,p4198954_21_Linux.zip中也包含这两个包。

安装补丁包:compat-libcwait-2.0-2.i386.rpm与compat-Oracle-rhel4-1.0-5.i386.rpm。

重新启动Oracle安装。

实务17 是否可以在同一机器上既安装Oracle 8i又安装Oracle 9i
〖原因(Cause)〗

答案是肯定的,但是安装时一定要选择不同的Oracle主目录(Oracle home)。但是,不推荐在同一台机器上安装Oracle的两个版本。

实务18 安装Oracle 9i时,遇到错误“invalid end header format”
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle的过程中,安装到“配置工具”,启动服务时,Oracle database configuration assistant启动很慢,停止后再重试,提示“invalid end header format”,如图2-102所示。

〖方法(Action)〗

创建数据库时,选择data warehouse模板则可以避免这个错误。

图2-102 错误提示

实务19 在同一台机器上同时安装Oracle 9i与Oracle 10g
〖现象(Symptom)〗

已经在机器上安装好Oracle 9i,现在想在同一台机器上安装Oracle 10g,却遇到下面的问题:

〖原因(Cause)〗

不能把不同版本的两个Oracle安装在同一个主目录(Oracle Home)下。

〖方法(Action)〗

把Oracle 9i安装在一个主目录(Oracle Hom e)下,Oracle 10g安装在另外一个主目录(Oracle Home)下。

实务20 安装Oracle时,报告错误“ORA-27123: u nable to attach to shared memory segment”
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle时,报告如图2-103所示的错误。

图2-103 错误提示

〖原因(Cause)〗

这种错误是由于SGA的值设置得太大所造成的。

〖方法(Action)〗

返回到SGA设置界面,如图2-104所示。

图2-104 SGA设置界面

适当调小SGA。

选择“Custom”。

在“SGA Size”处,设置一个更小的值。

继续完成后续的安装。

实务21 安装Oracle时,报告错误,不能够写/tmp目录
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle,执行./runInstaller以后,产生下面的错误:

〖原因(Cause)〗

Oracle对/tmp目录没有读写权限,或者/tmp目录的空间不足。

〖方法(Action)〗

用df-h命令查看/tmp还有多少剩余空间。如果/tmp的空间不足,则删除多余的文件或者扩大/tmp的大小。

如果/tmp的空间很多,则用ls-l命令查看/tmp的权限。

如果是因为权限的问题,则以用户root的身份登录,用chmod-R 777命令改变/tmp的权限,使任何用户都可以读写这个目录。

重新启动安装程序。

实务22 安装Oracle 10g时,报告操作系统版本(operating system version)检查失败之案例一
〖环境(Environment)〗
〖现象(Symptom)〗

执行./runInstaller以后,报告下面的错误:

从上面的提示可以看出,操作系统的版本检查失败。

〖原因(Cause)〗

出现这样的问题,算是Oracle的一个小缺陷。

Oraparam.ini是安装时的一个初始化安装文件,它设置了安装时的一些参数,在安装时,Oracle Software Installer将会读取这个文件的内容。理解这个文件的内容可以帮助我们解决安装过程中的一些疑难问题。在一般情况下,不需要修改这个文件的内容。这个文件位于解压目录的子目录install下。

从安装的提示可以看出,应该和操作系统的版本号有关。

〖方法(Action)〗

查看安装日志。

当Oracle安装出现问题的时候,首先应该查看安装日志。安装日志通常会给我们某些提示,快速地帮助我们排查安装失败的原因所在。本例中,查看安装日志/tmp/OraInstall2005-11-12_09-45-32AM/installActions2005-11-12_09-45-32AM.log,我们发现参数Solaris=5.6,5.7,5.8,5.9,没有5.10。

修改oraparam.ini的参数,在后面加上5.10。

重新启动Oracle安装程序。

实务23 在安装Oracle 10g时,报告补丁包(Service Pack)检查失败
〖环境(Environment)〗
〖现象(Symptom)〗

在Windows中,双击Setup.exe,开始安装,出现下面的错误信息:

〖原因(Cause)〗

出现这样的问题,算是Oracle的一个小缺陷。

oraparam.ini是安装时的一个初始化安装文件,它设置了安装时的一些参数,在安装时Oracle Software Installer将会读取这个文件的内容。理解这个文件的内容可以帮助我们解决安装过程中的一些疑难问题。在一般情况下,不需要修改这个文件的内容。这个文件位于解压目录的子目录install下。

从安装的提示可以看出,应该和操作系统的补丁包(Service Pack)有关。

〖方法(Action)〗

修改oraparam.ini的SERVICE_PACK参数,在后面加上4。

oraparam.ini的内容如下:

实务24 安装Oracle时,报告显示器(monitor)设置检查失败
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle时出现错误,具体如下:

〖原因(Cause)〗

环境变量DISPLAY设置错误会导致显示器检查失败。

〖方法(Action)〗

设置DISPLAY参数。

DISPLAY要设置成运行X-Window的那台机器的IP地址,并不是服务器的IP地址,这一点要切记!

重新运行安装程序。

实务25 Oracle安装完成以后,为什么在提示符下输入sqlplus,提示命令不存在
〖环境(Environment)〗
〖现象(Symptom)〗

启动SQL*Plus,却提示这个命令不存在。

〖原因(Cause)〗

提示sqlplus命令不存在,有以下两方面的原因。

原因一 :执行sqlplus命令的操作系统用户不是oracle,其他用户没有权限执行这个命令。

原因二 :没有设置好用户oracle的环境变量ORACLE_HOME和PATH。

〖方法(Action)〗

◆ “原因一”的解决方法:对于想执行sqlplus命令的非oracle用户,建议先以oracle的身份登录,然后再启动SQL*Plus。

以操作系统用户oracle登录。

启动SQL*Plus。

◆ “原因二”的解决方法:对于用户oracle的环境变量设置不正确,可执行下面的过程来完成环境变量的设置。

根据文件oraInst.loc找到Inventory的位置。

oraInst.loc文件的位置如下:

■ 对于AIX、Linux x86或Linux Itanium,文件的位置是/etc/oraInst.loc;

■ 对于其他UNIX操作系统,文件的位置是/var/opt/Oracle/oraInst.loc。

找到Inventory的路径。

这里的Inventory目录是/Oracle/app/Oracle/oraInventory。

进入Inventory目录,找到安装日志文件。

注意: Oracle在Windows上的安装日志文件存放在目录:SYSTEM_DRIVE:\Program Files\Oracle\Inventory\logs下,其中,SYSTEM_DRIVE一般指C盘。

从安装日志中就可以找到ORACLE_HOME指向的路径。

从安装日志中,知道ORACLE_HOME=/Oracle/app/Oracle/product/10.1.0/Db_1。

编辑用户oracle的启动文件(startup file)。

加入如下内容:

其中,ORACLE_HOME用于设置Oracle的主目录(Oracle Home)。PAHT用于设置命令的查找路径。

使用户oracle的启动文件(startup file)生效。

重新启动SQL*Plus。

SQL*Plus启动成功。

实务26 安装Oracle时,报告打开共享对象文件libawt.so: libXp.so.6错误
〖环境(Environment)〗
〖现象(Symptom)〗

当执行./runInstall时,出现下面错误:

〖原因(Cause)〗

缺少xorg-x11-deprecated-libs包所造成的。

〖方法(Action)〗

从网上下载RPM包xorg-x11-deprecated-libs。

用rpm命令安装这个包。

重新启动安装程序。

实务27 安装Oracle时,报告错误“…cannot restore seg ment prot after reloc: Permission denied”
〖环境(Environment)〗
〖现象(Symptom)〗

在安装过程中,报告如下错误:

〖原因(Cause)〗

如果激活SELinux,则新内核可能无法加载SELinux。

〖方法(Action)〗

◆ 方法一:

将/etc/selinux/config中的参数设置成SELinux=disabled。

重新启动系统。

◆ 方法二:

如果不想禁用SELinux,下载RPM包selinux-policy-targeted-1.25.2-4.noarch.rpm的高版本。

用rpm命令升级已经存在的包。

实务28 安装Oracle时,报告错误“…libaio.so.1: cannot open shared object file”
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle时,报告如下错误:

〖原因(Cause)〗

产生这样的错误,可能有以下两方面的原因。

原因一 :libaio和libaio-devel包没有安装。

原因二 :如果libaio和libaio-devel包已经存在,则可能是库函数的缓存(cache)没有更新。

共享函数库放在不同的目录,应用程序执行的时候,要去查找共享函数库。这些函数库的路径信息被放在/etc/ld.so.conf文件里面,我们可以修改这个文件,加入我们的一些特殊的路径要求。

应用程序启动时,搜索所有的目录,这样会降低效率,于是Linux系统使用一种高速缓存的机制。Ldconfig在默认情况下读出/etc/ld.so.conf相关信息,设置适当的符号链接,然后写一个cache到/etc/ld.so.cache这个文件中,而/etc/ld.so.cache则可以被其他应用程序高效地使用。这样的做法可以大大提高函数库的访问速度。这就要求每次新增加一个函数库的时候,就要运行ldconfig来更新这个cache,如果要删除某个函数库,或者某个函数库的路径修改了,都要重新运行ldconfig来更新这个cache。

〖方法(Action)〗

◆ “原因一”的解决办法:

到网上搜索并下载libaio和libaio-devel的RPM包。

用rpm命令安装下载的包。

◆ “原因二”的解决办法:

以用户root的身份登录。

执行ldconfig命令更新库函数的缓存(cache)。

实务29 在Windows上安装Oracle,临时目录的空间充足,却报告不能够写临时目录
〖环境(Environment)〗
〖现象(Symptom)〗

双击setup.exe,启动Oracle安装程序(Oracle Universal Installer),报告下面的错误:

〖原因(Cause)〗

有人认为是临时目录空间不足的问题,换了一个更大的临时目录仍然会出现上面的错误。用Google查找了许多资料,都没有找到真正的原因。可能是安装介质(CDROM)有问题。

〖方法(Action)〗

把光盘放到局域网中的另一台机器上。

把插入光盘的那台机器的光驱映射(map)到本地。

按照常规方法进行安装,就不会再出现上面的问题。

实务30 安装Oracle到一定进度时,报告错误“加载数据库时出错: areasQueries”
〖环境(Environment)〗
〖现象(Symptom)〗

执行Oracle安装,当安装到一定进度时,报告如图2-105所示的错误提示。

图2-105 错误提示

〖原因(Cause)〗

在安装路径中含有汉字等非英文字符会产生这样的错误。

〖方法(Action)〗

去掉安装的源路径和目标路径中的汉字(乱码),把它们都换成英文,然后重新启动安装程序。

实务31 Oracle 8i在奔腾4(P4)机器上安装的异常处理
〖环境(Environment)〗
〖现象(Symptom)〗

在P4机器上安装Oracle,当双击“setup.exe”时,安装界面挂起或者消失,给人一种莫名其妙的感觉。

〖原因(Cause)〗

这是Oracle的一个缺陷。Intel的官方已经证实,Oracle 8i安装文件中的库文件symcjit.dll不能很好地标识P4处理器。

〖方法(Action)〗

方法一

从微软主页中下载Windows 2000的最新补丁。下载地址是http://www.microsoft.com/windows2000/downloads/。

在要安装的机器上,创建一个临时目录d:\temp。

把Oracle 8i的安装文件从光盘复制到硬盘上的这个目录。

在这个临时目录中搜索文件SYMCJIT.dll。

将文件SYMCJIT.dll的名字改成SYMCJIT.OLD。

双击d:\TEMP\install\win32下的setup.exe进行安装。

方法二

在要安装的机器上,创建一个临时目录d:\temp。

把Oracle 8i的安装文件从光盘复制到硬盘上的这个目录。

在d:\temp目录下查找文件symcjit.dll,会搜索到两个文件。

下载JDK的补丁(最好是最新的)。新的补丁能更好地支持P4,下载地址是http://www.java.sun.com/products/archive/jdk/1.1.8_007/jre/index.html。

解压缩并安装下载的JDK。从JDK的安装路径中找到文件symcjit.dll。

将JDK安装路径中的symcjit.dll文件替换d:\temp下的symcjit.dll文件(共两个)。

双击d:\TEMP\install\win32下的setup.exe,开始安装。

方法三

下载bug fixed以后的动态链接库Symcjit.dll。下载地址是http://www.jcay.com/symcjit.zip。

新下载的文件已经修复了Oracle的这个缺陷。

实务32 安装Oracle时,报告先决条件检查失败
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle时,出现如图2-106所示的界面,并提示下面的信息。

图2-106 先决条件检查

〖原因(Cause)〗

在Oracle 10g中,引入了Oracle安装的一个新特性——“先决条件检查”。在安装Oracle以前,OUI会对系统的安装条件进行全面检查,如果检查的结果不满足Oracle的要求,则Oracle会给出提示。在本例中,即使网络已经全部配置好,Oracle还是会给出上面的提示。

〖方法(Action)〗

选中“正在检查网络配置需求”,如图2-107所示。

图2-107 先决条件检查设置

这时候的状态已经变成“用户已验证”。“用户已验证”表示用户已经确认操作系统的网络配置没有问题。

继续Oracle的安装。

实务33 如何标识已经存在的Oracle根目录(Oracle Base Directory)
〖方法(Action)〗

Oracle安装完毕以后,有时需要找出Oracle的根目录(Oracle Base Directory),通过下面的方法,可以找出Oracle的根目录。

◆ 在Windows平台,按照下面的步骤找出Oracle根目录。

打开注册表。

单击屏幕左下角的“开始”→“运行”,在“运行”中输入命令“regedit”,单击“确定”按钮,打开注册表。

在注册表中进行搜索。

在注册表编辑器中单击“编辑”→“查找”,在查找对话框中输入“ORACLE_BASE”,然后进行查找,这时候我们就可以找到Oracle根目录,如图2-108所示。

图2-108 标识Oracle

本例中的根目录是D:\oracle\product\10.2.0。

◆ 在UNIX平台,按照下面的步骤找出Oracle根目录。

在操作系统中,输入下面的命令:

将会显示类似于下面的信息:

“inventory_loc”标识出Oracle清单目录的路径。本例中,Oracle清单目录的路径是/Oracle/app/oracle/oraInventory。

在一般情况下,清单目录(Oracle Inventory Directory)的格式如下:

其中,oracle_base表示Oracle根目录。由此,我们可以断定,本例中的Oracle根目录是/Oracle/app/oracle/。

实务34 如何标识已经存在的Oracle清单目录(Oracle Inventory Directory)
〖方法(Action)〗

Oracle清单目录(Oracle Inventory Directory)存放已经安装的Oracle组件信息。通过下面的方法,可以知道Oracle清单目录的位置。

◆ 在Windows平台,按照下面的步骤找出Oracle的清单目录。

打开注册表。

单击屏幕左下角的“开始”→“运行”,在“运行”中输入命令“regedit”,单击“确定”按钮,打开注册表。

在注册表中进行搜索。

在注册表编辑器中单击“编辑”→“查找”,在“查找”对话框中输入“inst_loc”,然后进行查找,这时候我们就可以找到Oracle的清单目录。本例中,inst_loc的值是C:\Program Files\Oracle\Inventory,如图2-109所示。

图2-109 Inventory的位置

默认的清单目录的路径是C:\Program Files\Oracle\Inventory。

◆ 在UNIX平台,按照下面的步骤找出Oracle的清单目录。

在操作系统中,输入下面的命令:

将会显示类似于下面的信息:

“inventory_loc”标识出Oracle清单目录的路径。本例中,Oracle清单目录的路径是/Oracle/app/oracle/oraInventory。

实务35 如何标识已经存在的Oracle主目录(Oracle Home Directory)
〖方法(Action)〗

Oracle主目录(Oracle Home Directory)用于Oracle软件的安装,在设置操作系统用户oracle的环境变量(UNIX平台)时,需要知道Oracle主目录的位置。通过下面的方法,可以找出Oracle主目录的位置。

◆ 在Windows平台,按照下面的步骤找出Oracle主目录。

打开注册表。

单击屏幕左下角的“开始”→“运行”,在“运行”中输入命令“regedit”,单击“确定”按钮,打开注册表。

在注册表中进行搜索。

在注册表编辑器中单击“编辑”→“查找”,在查找对话框中输入“ORACLE_HOME”,然后进行查找,这时候我们就可以找到Oracle主目录,如图2-110所示。

图2-110 Oracle主目录的位置

本例中,Oracle的主目录是D:\oracle\product\10.2.0\db_1。

◆ 在UNIX平台,按照下面的步骤找出Oracle主目录。

输入下面的命令。

如果这个文件存在,将会显示类似于下面的内容,从这里我们就可以知道Oracle主目录。

实务36 口令(P):[INS-30011] 输入的ADMIN口令不符合Oracle建议的标准
〖环境(Environment)〗
〖现象(Symptom)〗

安装Oracle时,报告错误“The password entered does not conform to the Oracle recommended standards”,如图2-111所示。

图2-111 错误提示

〖原因(Cause)〗

在Oracle 11g中,Oracle实行了更加严格的口令规则,我们必须遵守这些规则。口令设置的要求如下。

■ 至少包含一个小写字母。

■ 至少包含一个大写字母。

■ 至少包含一个数字。

■ 长度至少为8个字符。

■ 使用可包括下画线()、美元符号($)和井号(#)字符的数据库字符集。

■ 如果包含特殊字符(包括以数字或符号作为口令的开头),则将口令加双引号。

■ 不应为实际单词。

实务37 未找到文件WFMLRSVCApp.ear
〖环境(Environment)〗
〖现象(Symptom)〗

在安装过程中,弹出错误提示:找不到文件WFMLRSVCApp.ear,如图2-112所示。

图2-112 错误提示

〖原因(Cause)〗

没有进行正确地解压,两个安装文件(本例中是win64_11gR2_database_1of2.zip和win64_11gR2_database_2of2.zip)要解压到相同的目录下。其实,就是压缩文件中,database下面的内容要在同一路径下(解压后)。需要特别注意的是,很多“.ear”错误都和本例类似,都是解压引起的问题。

〖方法(Action)〗

把两个压缩文件解压到相同的路径下。

实务38 出现PRVF-7531、PRVF-7574错误
〖环境(Environment)〗
〖现象(Symptom)〗

在安装数据库的过程中,报告如下错误:

〖原因(Cause)〗

出现PRVF-7531、PRVF-7574错误,表示节点间的连通性有问题。在RAC安装过程中,可能会出现见所未见、闻所未闻的错误,而在这些错误中,许多与节点间的连通性有关。连通性有的地方也叫SSH的对等访问。如果配置好SSH的对等访问,两台机器之间不需要密码,就可以相互远程执行命令。RAC安装期间,执行安装的节点会远程执行命令,如果连通性有问题,就会报告莫名其妙的错误。因此,在启动安装之前,请花时间配置和确认节点间的连通性。

〖方法(Action)〗

有关SSH连通性的配置,在Oracle的安装阶段我们已经做了详尽描述,请参考相关的章节。

实务39 Instantiating disk: failed
〖环境(Environment)〗
〖现象(Symptom)〗

创建ASMLib磁盘时,报告错误“Instantiating disk:failed”,详细的过程如下:

〖原因(Cause)〗

ASMLib没有启动:

〖方法(Action)〗

启动ASMLib:

重新创建ASMLib磁盘:

ASMLib磁盘DISK1创建成功。

实务40 None of its nodes were considered local
〖环境(Environment)〗
〖现象(Symptom)〗

配置OSFS2:

报告如下错误信息,说明主机名和节点名不匹配。

查看节点的主机名:

查看OCFS配置文件中的主机名:

从上面可以看出,OCFS配置文件中指定的主机名(如rac1-priv2)和实际的主机名(rac1)不匹配。

〖原因(Cause)〗

在OCFS中,配置文件cluster.conf中的主机名一定要和命令“hostname”输出的结果相匹配(也就是一定要和实际的主机名相匹配,IP地址没有这种要求)。

〖方法(Action)〗

如果发生上述错误,则请按照下面的步骤解决。

从所有的节点上删除配置文件cluster.conf。

重新生成cluster.conf。

■ 用远程桌面工具登录节点rac1,打开终端。

■ 启动OCFS的配置界面。

在主机名处,指定的主机名一定要和实际的相匹配(本例中一定是rac1或者rac2)。如果不用ocfs2console,则也可以直接修改配置文件cluster.conf。

实务41 unable to open display
〖环境(Environment)〗
〖现象(Symptom)〗

执行xhost命令时,报告如下错误:

〖原因(Cause)〗

先要设置好环境变量DISPLAY,才能运行xhost命令。但是,即使设置了DISPLAY,也可能会出现上述错误,因为DISPLAY的设置比较讲究,DISPLAY的格式如下:

在此,我们就不详细描述DISPLAY的设置了,要想获得DISPLAY的详细设置,请阅读“安装集群软件Oracle Grid Infrastructure”一节。

〖方法(Action)〗

设置环境变量DISPLAY:

重新执行xhost命令:

实务42 The new nodes 'rac2' are already part of the cluster
〖环境(Environment)〗
〖现象(Symptom)〗

从已经存在的节点rac1往集群中添加节点rac2(即:把数据库软件扩展到节点rac2)时,报告节点已经存在集群中的错误,详细错误如下:

〖原因(Cause)〗

卸载rac2不干净造成的。通常是清单目录(inventory)错误。

〖方法(Action)〗

在存在的任意节点上,以oracle身份执行下面的命令:

rac1是被保留下来的节点。ORACLE_HOME是数据库软件的主目录。只有看到信息“...successful”才算执行成功。

实务43 Location"/ocfs1/storage/ocr"not shared on node(s) to be added
〖环境(Environment)〗
〖现象(Symptom)〗

从节点rac1往新节点rac2上添加集群软件,在添加(扩展)集群软件之前,需要执行安装前检查,但是报告OCR不能共享的错误,详细信息如下:

〖原因(Cause)〗

OCR所在的路径不可访问或者存在权限问题。OCR的正确权限设置如下:

〖方法(Action)〗

如果是在安装期间,则可以忽略上述错误,因为在安装过程中,Oracle会提示你以root身份运行脚本root.sh,root.sh脚本将会设置OCR正确的权限。当然,也可以手工修改OCR的权限: c22TiLPTZSOZKA7b6h3MK77EqwwUxhs+RevSI76zxWI+urGxfW24x4/A4NA0qT4j

点击中间区域
呼出菜单
上一章
目录
下一章
×