1.4 安装
大话Oracle Grid:云时代的RAC
环境准备好后,就可以动手安装了。顺序是先装Grid、再装Database。这两个软件都支持图形化安装和Silent的静默安装。就个人体会而言,Oracle 11.2的各种安装卸载功能都比以前好了许多,基本都能做到了一次通过。所以,Silent方式也是个不错的体验,我放在后面的附录中。
1.4.1 安装Grid
以grid用户登录系统,在shelll下执行./runInstaller,启动安装程序。
(1)Metalink账号的设置,如图1-5所示。
Oracle 11.2的Database和Grid与Oracle服务体系(Metalink)结合得更紧密,比如,我们可以在安装过程中让OUI帮着去Metalink查看更新的补丁包,然后下载补丁并安装它。基本上类似于Windows中的各种自动更新。当然你需要先购买Oracle的服务、拥有MOS的账号才行。
这里先跳过这一步,保持安装过程的简洁。
(2)选择安装类型,如图1-6所示。这一步没什么可说的,我们就选第一项【Install and Configure Oracle Grid Infrastructure for a Cluster(安装并配置集群下的Grid)】。
(3)选择安装方式,如图1-7所示。这里我们要选第二项【Advanced Installation(高级安装)】,其实就是自定义安装。之所以不选第一项【Typical Installation(典型安装)】,是因为我想给这个集群起个牛气烘烘的名字(也叫SCAN名字),而不使用典型安装提供的缺省名字。
(4)选择安装语言,如图1-8所示。如果在上一步中选择了【Advanced Installation(高级安装)】,就会进入到这个界面,如果选择【Typical Installation(典型安装)】,会直接跳到步骤(6)。这里选择【English】,Oracle软件还是在英文环境下感觉最流畅自然。
(5)定义集群的名字、SCAN名字及监听端口和GNS,如图1-9所示。如果步骤(3)中选择了【Typical Installation】,那么我们是不会看到这个界面的。
在这里输入集群的名字、SCAN、SCAN端口号。在这个例子中不使用GNS,所以应取消【Configure GNS】复选框。
(6)定义集群的节点列表(如图1-10所示)以及身份等价。如果步骤(3)中选择【Typical Installation】,那么就会直接跳到这个界面。这里需要把集群中的4个节点都加进去,提供每个节点的节点名和VIP名。
4个节点都加好后,就要配置SSH等价了。这一步配置的是grid用户的等价性。单击【SSH Connectivity..】按钮,页面上就会多出一些内容,输入grid用户的密码,单击【Setup】按钮,然后就开始配置SSH等价(如图1-11所示),最后弹出如图1-12所示的配置成功通知。
配置成功!
之前在做环境准备时,我们有意在用户等价性一节只留个标题,原因就在这里。SSH等价本身并不属于Oracle内容,但它是做RAC配置必需的。Grid、Database在本机安装好后,会通过SSH把本地的这些文件目录复制到其他节点上去,这本身也是一个登录其他节点的过程,因此需要某种身份验证的机制。最简单的就是输入用户名、密码,但安装过程就会不断地被打断,输入每个节点的用户名和密码后才能继续,非常麻烦。SSH等价可以通过证书、密钥等方式去掉了手工输入密码的麻烦,使得后台的文件复制得以悄悄地进行。
SSH等价虽然简单,但配置繁琐,尤其当节点多的时候,于是Oracle干脆替我们全部搞定。对于安装人员来说确实是简单了,不过生生地把新人知晓SSH等价的机会给剥夺了,不知道算是好事还是坏事。
(7)配置网卡,如图1-13所示。这个界面用来定义共有网络和私有网络,不再细说。
(8)定义OCR保存位置,如图1-14所示。这里有两个选项,这里选择第一个【Oracle Automatic Storage Management(Oracle ASM)】。
Oracle 11.2已经放弃对裸设备的支持,从这一步就看出来了。以前在Oracle 、Oracle 11gR1时,这里是能够支持裸设备的。
(9)配置ASM,如图1-15所示。到这一步,Grid会扫描系统,把所有可用的ASM磁盘都列在这里,我们需要创建个磁盘组来保存OCR文件。创建磁盘组必不可少的选项有:冗余方式和ASM磁盘。
(10)指定ASM管理员密码,如图1-16所示。
(11)是否要使用IPMI,如图1-17所示。选择第二项【Do not use Intelligent Platform Management Interface(IPMI)】,一般情况都不需要使用IPMI。关于IPMI的更多内容可以参见第2章。
(12)指定ASM用户组,如图1-18所示。之前在准备主机环境时,我们已经在操作系统中创建了这3个用户组,确保你的选择与我一致。这些用户组的含义见2.1小节。
(13)指定安装位置,如图1-19所示。grid用户的环境里已经定义好了ORACLE_BASE
和ORACLE_HOME两个环境变量,OUI会读出参数值自动填在这里。
(14)指定产品清单位置,如图1-20所示。我们会在第2章中详细介绍产品清单,这里就不多说了。保证这个目录的属组是【oinstall】,如图1-20所示。
到此,所有安装前的设置就结束了,已经可以开始安装了,不过为了确保一次过,OUI还要做一次完整的检查以确保能够安装成功。其实我们也可以自己做这样的检查,检查工具是cluvfy,OUI检查用的也是这个工具。
(15)系统检查,如图1-21所示。检查的内容包括操作系统内核参数、必需的包。如果有哪一项检查无法通过,解决之,然后再检查,尽量让所有的检查都通过。
有可能检查结果总是抱怨ASM磁盘检查失败,无法发现磁盘,如图1-22所示。
这是因为遇到了bug10310848 ,在我做这次安装时未发布补丁,可以直接跳过。具体可以参考文档1267569.1。
(16)开始安装Oracle ,如图1-23所示。安装过程很快,最后会看到执行配置脚本的提示界面,如图1-23所示。
打开新窗口,以root身份执行要求的第一个脚本orainstRoot.sh:
root@indexserver4 oraInventory]# ./orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
然后执行第二个脚本root.sh:
[root@indexserver1 grid]# ./root.sh
Running Oracle root script...
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app//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 ...
Creating /etc/oratab file...
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//grid/crs/install/crsconfig_params
Creating trace directory
LOCAL ADD MODE
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
OLR initialization - successful
root wallet
root wallet cert
root cert export
peer wallet
profile reader wallet
pa wallet
peer wallet keys
pa wallet keys
peer cert request
pa cert request
peer cert
pa cert
peer root cert TP
profile reader root cert TP
pa root cert TP
peer pa cert TP
pa peer cert TP
profile reader pa cert TP
profile reader peer cert TP
peer user cert
pa user cert
Adding daemon to inittab
ACFS-9200: Supported
ACFS-9300: ADVM/ACFS distribution files found.
ACFS-9307: Installing requested ADVM/ACFS software.
ACFS-9308: Loading installed ADVM/ACFS drivers.
ACFS-9321: Creating udev for ADVM/ACFS.
ACFS-9323: Creating module dependencies - this may take some time.
ACFS-9327: Verifying ADVM/ACFS devices.
ACFS-9309: ADVM/ACFS installation correctness verified.
CRS-2672: Attempting to start 'ora.mdnsd' on 'indexserver1'
CRS-2676: Start of 'ora.mdnsd' on 'indexserver1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'indexserver1'
CRS-2676: Start of 'ora.gpnpd' on 'indexserver1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'indexserver1'
CRS-2672: Attempting to start 'ora.gipcd' on 'indexserver1'
CRS-2676: Start of 'ora.cssdmonitor' on 'indexserver1' succeeded
CRS-2676: Start of 'ora.gipcd' on 'indexserver1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'indexserver1'
CRS-2672: Attempting to start 'ora.diskmon' on 'indexserver1'
CRS-2676: Start of 'ora.diskmon' on 'indexserver1' succeeded
CRS-2676: Start of 'ora.cssd' on 'indexserver1' succeeded
ASM created and started successfully.
Disk Group DATA created successfully.
clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4256: Updating the profile
Successful addition of voting disk 06de730377e12bf4d915dc383006d.
Successfully replaced voting disk group with +DATA.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 06de730377e12bf4d915dc383006d (ORCL:WXXRINDEX1) [DATA]
Located 1 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'indexserver1'
CRS-2676: Start of 'ora.asm' on 'indexserver1' succeeded
CRS-2672: Attempting to start 'ora.DATA.dg' on 'indexserver1'
CRS-2676: Start of 'ora.DATA.dg' on 'indexserver1' succeeded
ACFS-9200: Supported
ACFS-9200: Supported
CRS-2672: Attempting to start 'ora.registry.acfs' on 'indexserver1'
CRS-2676: Start of 'ora.registry.acfs' on 'indexserver1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
看到了最后的succeeded,说明这个节点没问题。
继续在剩下的第2、3和4节点上执行这两个脚本,确保都没问题。这还没有结束,再回到刚才的安装界面,单击【OK】按钮,还有一点后续任务要做,如图1-24所示。
进度条终于到了100%,如果看到【Status】列表中有两个刺眼的红色x图标图标,不要担心,单击【Details】按钮查看详细内容。
如果看到最后(如图1-26所示)失败的是OCVU,那还是之前那个bug问题,可以忽略掉,我们就安装成功了。
可以收工了,不过因为之前有失败的地方,虽然我们知道这是个bug,但是OUI还是会友好地提示一下,如图1-27所示。不过我们也只能这样了。
目前看起来软件是装上了,但是不是真的成功了,Grid是不是真的跑起来了?我们得借助一些手段进行完整的调查后才能确认。这些检查方法可以参考3.4节,这里就先不细说了。
1.4.2 安装Database
这次要以Oracle用户身份执行:
[oracle@indexserver1 database]$ ./runInstaller
(1)捆绑MOS服务。
这又是和Metalink有关的内容,我们设置一下看看什么效果。在如图1-8和图1-29所示的界面中输入Metalink的账号和密码,然后可以通过【Test Connection】按钮测试一下是不是能连接并登录Metalink系统。
如果用户名、密码没问题,则OUI会自动搜索最新补丁,并提示下载(如图1-30所示)。下载补丁与否并不影响后续的安装,不过起码我们心里有数了。
(2)选择安装方式,如图1-31所示,这里选第二项【Install database software only(只安装数据库软件)】,后面会通过DBCA来创建数据库。
(3)确定部署规模,如图1-32所示。
这里当然要选择第二项【Oracle Real Application Clusters database installation(Oracle RAC数据库安装)】,第一项是单实例数据库安装方式,第三项是Oracle RAC One Node数据库安装方式(后面有专门介绍)。
此外,还要确定规模,也就是都要在哪些节点上安装。这里在集群节点列表中选中所有的节点。
最后是配置Oracle用户的SSH等价性,与之前Grid完全一样,这里就不再赘述。
(4)接下来就是选择语言、指明安装目录以及Oracle用户所属的组,比较简单,没什么需要特殊说明的,如图1-33所示。
到此,安装前的信息收集工作就算完成了,接下来就可以安装了。不过为了保证安装的一次过,OUI还是会做一次环境检查工作。对检查结果中的不合格项,DBA需要做出整改。然后再检查,直至全部检查通过为止(如图1-34所示)。
和Grid的OUI一样,Database的也是通过cluvfy进行的检查,DBA也可以手工执行这个脚本来检查。
接下来就是正式的安装了(如图1-35所示),最后会弹出一个对话框,提示我们现在安装过程暂停,需要我们手工在每个节点上执行一个名为root.sh的脚本(如图1-36所示)。执行完毕后单击【OK】按钮关闭这个提示对话框,安装过程才能够继续进行。
以root身份执行这个脚本:
[root@indexserver1 ~]# /u01/app/oracle//product/root.sh
Running Oracle root script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle//product
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.
Finished product-specific root actions.
4个节点都执行之后,返回到如图1-30所示的界面,关闭该对话框,安装过程会继续进行,最后弹出安装成功的界面,如图1-37所示,大功告成。
应该说Database的安装要比之前的版本简单,因为ASM配置已经被移走了,和Grid放在了一起,包括监听器也被移到了Grid中,所以Database本身配置项就少了很多。
最后,我们创建数据库。
1.4.3 创建数据库
以Oracle的身份登录到任何一个节点上,并以Oracle的身份执行DBCA,出现的第一个界面应该是集群数据库的欢迎界面,如图1-38所示。
一定要确保看到的是这个界面,换句话说,就是要确保DBCA能够识别出这是一个集群环境而不是单机环境。我们会在2.2节中解释什么叫DBCA识别出集群环境,以及不能识别时的解决办法,如果现在看到的不是如图1-38所示的界面,那么可以参考2.2节的内容。
(1)选择哪种数据库。我们当然选择第一项【Oracle Real Application Clusters(RAC) database(RAC数据库)】。第二项是【Oracle RAC One Node database】,后面会专门介绍,第三项是 【Oracle single instance database(单实例数据库)】。
(2)在如图1-39所示的界面中,选择要执行什么操作,这里选择第一项【Creat a Database(创建数据库)】。
(3)选择如何创建数据库,如图1-40所示。我一般喜欢选择第二项【Custom Database】,这样我对数据库具有哪些功能可以做到心里有底。而第一项、第三项都是根据特定的数据库模板来创建数据库。
这个界面和之前的版本有点区别。Oracle 中这里是4个选项,General Purpose和Transaction Processing两个是分开的,因为这两种模板非常相似,所以Oracle 11.2将给它们合并了。
这些数据库模板位于$ORACLE_HOME/assistants/dbca/templates,可以看一看:
[oracle@indexserver1 templates]$ ll
……
-rw-r--r-- 1 oracle oinstall 5104 Sep 5 2010 Data_Warehouse.dbc
-rw-r--r-- 1 oracle oinstall 4984 Sep 5 2010 General_Purpose.dbc
……
两个.dbc文件就是这两个模板。这是两个XML文件,可以打开来读读看。
这个目录下还有两个文件,英文名字Seed_Database,就是所谓的种子数据库。你可以把它们看成是RMAN创建出来的备份集。于是这两种数据库的创建就成了RMAN的数据库恢复。所以这种库的创建速度会很快,如果只是个测试数据库,可以考虑这两种创建方式。
[oracle@indexserver1 templates]$ ll
……
-rwxr-xr-x 1 oracle oinstall 9748480 Nov 16 2010 Seed_Database.ctl
-rwxr-xr-x 1 oracle oinstall 263118848 Nov 16 2010 Seed_Database.dfb
这两个模板的区别就在于STAR_TRANSFORMATION_ENABLED参数值1,对于Data Warehouse是True,而General Purpose中这个参数是False。
如果选择定制方式创建数据库,数据库建成后,会执行$ORACLE_HOME/rdbms/admin目录下的许多脚本创建数据字典,比如catproc.sql、catalog.sql等。所以尽管建的库不大,但是时间会很长,就是因为要执行这些脚本。生产环境下最好使用这种方式来创建,对每个细节都做到心中有数。
(4)在如图1-41所示的界面中选择管理策略。这个界面是Oracle 11.2中新亮相的,而这个特性也是Oracle 11.2新提出来的,我们会在后面的章节中专门讲解它。这里就选择第一项【Admin-Managed】。
目前我们只需要知道Admin管理策略和我们以前熟悉的管理方式一致,需要我们提供数据库名、SID前缀、节点列表。
数据库名最好不要以数字结尾,因为实例的名字是在数据库名后面加上数字。比如,testdb1、testdb2。如果数据库名是test1、test2,那实例的名字就成了test11、test12,会把人搞糊涂的。
(5)是否使用EM,以及是用DB Controle还是Grid Control(如图1-42所示)。EM是Oracle提供的一种基于浏览器的、企业级的管理工具。
二者的区别在于DB Control是一个轻量级的管理方式,我喜欢叫它寄生的管理方式。DB Control不需要安装特殊的软件,它是作为数据库的一个选项而存在的,只需在建库过程中打开而已。缺点是每个DB Control只能管理它所在的那个宿主数据库,并且可靠性也取决于宿主数据库。
Grid Control是集中的管理方式,它本身是一个单独的软件,需要单独安装,它可以管理企业内所有数据库。而且Grid Control的定位是一个通用的管理平台,不仅仅管理数据库,还可以管理主机、防火墙、存储等资产。
对于我们这个测试数据库,采用DB Control方式就够了,选中如图1-42所示的选项。
(6)设置管理员密码,如图1-43所示。
(7)定义数据文件存放方式。
这一步在Oracle 11.2中也有了一点变化,Grid中的ASM提供了卷管理器(ADVM)和集群文件系统(ACFS)。尽管ACFS是个集群文件系统,但却不支持自家的数据库文件。如果做了这种尝试,就会遇到如图1-44所示的错误。
因此,这里只能选择ASM磁盘组,如图1-45所示。
要想在ASM磁盘组里创建文件,必须能连接到ASM实例,因此需要提供必要的身份信息,如图1-46所示。
注意,图1-46中要求的用户是ASMSNMP,不是我们想当然的sys,因此要保证ASM数据库里有ASMSNMP这个用户,账户没有锁定,而且要有DBA权限。这么做:
[grid@indexserver2 ~]$ export ORACLE_SID=+ASM1
[grid@indexserver2 ~]$ sqlplus " / as sysdba"
SQL> create user asmsnmp identified by Yourpassword ;
User created.
SQL> grant sysdba to asmsnmp;
Grant succeeded.
如果没有这个用户或者权限不足,就会遇到如图1-47所示的这个错误,ASMSNMP验证不通过。
(8)再接下来的步骤就简单了,包括是不是要使用归档模式、是否打算使用FRA,是否需要预装的Schema、对初始化参数的调整、对数据文件的调整。相信对本书的读者来说,这些内容太浅显了,而且和之前版本没有变化,所以我就一带而过,参考图1-48即可。
接下来就开始安装。终于要见到了胜利的曙光了!如果看到如图1-49所示的界面,那么就可以开香槟庆祝了。
大功告成了!安装就讲到这了,下一章我们讲为什么要这么安装、装好了怎么删除或者 卸载。