Exadata的配置工具——onecommand(二)

原文链接: http://www.dbaleet.org/exadata_configuration_tools_onecommand_2

最近陆续收到几名读者的反馈,说我以前的一篇文章Exadata的配置工具——onecommand http://www.dbaleet.org/exadata_configuration_tools_onecommand/ 对于Exadata onecommand的功能描述的不是很具体,希望能更详细的了解每个步骤实现的功能。另外之前那篇文章在介绍onecommand的功能的时候也有一些小错误,所以我这里再旧话重提,一来是更正以前的一些说法,二来则是更详细的介绍一下onecommand每个步骤完成的功能。 以下还是以27个步骤的版本为例进行说明:

Step 0 = ValidateEnv 
Step 1 = CreateWorkDir
Step 2 = UnzipFiles 
Step 3 = setupSSHroot
Step 4 = UpdateEtcHosts
Step 5 = CreateCellipinitora
Step 6 = ValidateIB 
Step 7 = ValidateCell
Step 8 = PingRdsCheck 
Step 9 = RunCalibrate 
Step 10 = CreateUsers 
Step 11 = SetupSSHusers 
Step 12 = CreateGridDisks 
Step 13 = GridSwInstall 
Step 14 = PatchGridHome 
Step 15 = RelinkRDSGI 
Step 16 = GridRootScripts 
Step 17 = DbSwInstall 
Step 18 = PatchDBHomes 
Step 19 = CreateASMDiskgroups 
Step 20 = DbcaDB
Step 21 = DoUnlock 
Step 22 = RelinkRDSDb 
Step 23 = LockUpGI 
Step 24 = ApplySecurityFixes 
Step 25 = setupASR 
Step 26 = SetupCellEmailAlerts
Step 27 = ResecureMachine

注意: 以下信息并非出自官方文档,是我从其安装日志中推断总结出来的,可能不是特别准确,并且可能存在遗漏。

 

Step 0 = ValidateEnv

检查通过db configurator生成的配置文件是否存在合法, 例如onecommand.params;检查ORACLE_HOME, ORACLE_BASE, GRID_HOME, INVENTORY_LOC的位置; 检查db block size;检查和验证网络信息,例如通过*_groups文件对列表中的节点进行ping操作, 检查DNS, NTP, SMTP服务器是否存在, 检查SCAN IP是否被占用;;检查数据库安装包,opatch, 以及和这个onecommand版本对应的Bundle Patch是否已经上传;将其移到onecommand下的patches目录下。

 

Step 1 = CreateWorkDir

创建工作区的一个临时目录,并且修改其权限。实际上这个步骤可能什么都没做,因为其所花费的时间为0。

 

Step 3 = setupSSHroot

适用默认的密码welcome1建立所有节点root用户的ssh用户等效性。实际上最终是通过调用/opt/SupportTools/onecommand/setssh-Linux.sh脚本或者是/opt/oracle.SupportTools/setup_ssh_eq.sh来实现的(不同版本脚本名称可能有差异)。完成以后使用ssh $hostname date命令进行测试。

 

Step 4 = UpdateEtcHosts

备份所有节点原有的/etc/hosts文件到/etc/hosts-orig, 然后将private ip写入到所有节点的/etc/hosts, 然后使用ssh $hostname date命令测试是否完成。

 

Step 5 = CreateCellipinitora

获取所有db节点的bondeib0的ip地址,子网掩码,然后使用Linux下的ipcalc计算出prefix。例如255.255.255.0的prefix就是24
然后在/etc/oracle/cell/network-config目录下创建cellinit.ora和cellip.ora文件,讲上述内容分别更新到这两个文件中, 最后使用ping命令确认这些ip为可以ping通。

 

Step 6 = ValidateIB

执行
/opt/oracle.SupportTools/ibdiagtools/verify-topology –t 验证其拓扑结构
/opt/oracle.SupportTools/ibdiagtools/infinicheck -g检查IB的fabric状态
/usr/sbin/iblinkinfo.pl测试IB链路的速率
/opt/oracle.SupportTools/ibdiagtools/infinicheck 进行性能测试。

 

Step 7 = ValidateCell

执行以下命令列出celldisk, lun, physicaldisk, cell detail griddisk的信息
cellcli –e list celldisk
cellcli –e list lun
cellcli –e list physicaldisk
cellcli –e list cell detail
cellcli –e list griddisk
注意这个时候list grdidisk本来为空,因为griddisk这个时候还没有创建。

 

Step 8 = PingRdsCheck

在每个节点上都使用ping命令进行测试看是否有丢包;
在每个节点上都使用rds-ping命令进行测试看是否有报错或者丢包。
其中rds-ping封装在DoRdsPing.sh 这个脚本中。

 

Step 9 = RunCalibrate

在每个cell节点上运行
cellcli –e calibrate force
对cell节点的单个磁盘/闪盘进行性能测试,并给出单个磁盘/闪盘以及单个cell的总体性能。

 

Step 10 = CreateUsers

/opt/oracle.SupportTools/onecommand目录的权限是否正确;
使用groupadd命令创建必须的用户组并且使用useradd命令创建必须的用户及其家(HOME)目录;
创建GRID_HOME和ORACLE_HOME;
备份/etc/security/limit.conf到/etc/security/limits.conf-orig。

 

Step 11 = SetupSSHusers

使用/opt/SupportTools/onecommand/setssh-Linux.sh脚本或者是/opt/oracle.SupportTools/setup_ssh_eq.sh建立oracle用户和grid用户的等效姓,然后使用ssh $hostname date来测试其等效姓。

 

Step 12 = CreateGridDisks

测试重启 RS, CELLSRV, and MS 确保其能正常工作;
cellcli -e list physicaldisk列出physicaldisk
cellcli -e drop flashcache删除flashcache;
cellcli -e drop celldisk ALL HARDDISK force和cellcli -e drop celldisk ALL FLASHDISK force删除所有的harddisk和flashdisk;
cellcli -e alter cell name=××× 修改cell的名称并且使用cellcli -e create celldisk all重新创建celldisk。
cellcli -e create flashlog all 和cellcli -e create flashcache all重新创建flashcache和flashlog;
创建DATA, RECO, DBFS_DG为前缀的griddisk。

 

Step 13 = GridSwInstall

再次验证SCAN IP和DNS;
通过VIP网段和SCAN得出VIP地址所在的网卡,并将这些信息写入到静默安装的response文件;
创建Grid软件所需的目录以及赋予正确的权限;
在所有的DB节点以静默的方式运行runInstaller安装Grid软件。

 

Step 14 = PatchGridHome

在所有DB节点运行opatch命令,应用onecommand版本所对应的Grid的Bundle Patch。

 

Step 15 = RelinkRDSGI

在所有DB节点将Grid relink,使得RDS协议生效;
/usr/bin/make -f ins_rdbms.mk ipc_rds ioracle

 

Step 16 = GridRootScripts

在所有DB节点运行
$GRID_HOME/orainstroot.sh
$GRID_HOME/root.sh
$GRID_HOME/bin/crsctl set css logfilesize 157286400
然后启动Grid。

 

Step 17 = DbSwInstall

创建RDBMS软件所需的目录以及赋予正确的权限;
使用静默方式在第一个节点安装RDBMS数据库软件,并将其拷贝到其它DB节点。

 

Step 18 = PatchDBHomes

在所有DB节点运行opatch命令,应用onecommand版本所对应的RDBMS的Bundle Patch。

 

Step 19 = CreateASMDiskgroups

使用asmca创建ASM磁盘组:
例如设置其兼容性, AU size 冗余级别等。

 

Step 20 = DbcaDB

确认ASM的diskgroup是否mount,如果没有mount则将其mount,然后使用配置好的最佳实践模板通过dbca创建数据库;

 

Step 21 = DoUnlock

对除第一个DB节点以外的所有DB节点的Grid unlock
并将misscount设置为60, 然后unlock第一个DB节点;
停止Grid;

 

Step 22 = RelinkRDSDb

在所有DB节点将RDBMS relink,使得RDS协议生效;
/usr/bin/make -f ins_rdbms.mk ipc_rds ioracle

Step 23 = LockUpGI

在所有节点运行
$GRID_HOME/crs/install/rootcrs.pl –patch
将Grid Lock住, 并重新启动Grid。

Step 24 = ApplySecurityFixes

删除sys, system, sysman, outlm, dbsnmp, wmsys, oracle_ocm以外的用户。

 

Step 25 = setupASR

配置ASR

 

Step 26 = SetupCellEmailAlerts

验证并配置SNMP和SMTP。

 

Step 27 = ResecureMachine

对一体机进行安全加固:
主要是对系统的密码长度,过期策略等;
移除了ssh用户等效性;
设置ssh登录超时和错误锁定的策略;
在用户profile中设置会话空闲超时。


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *