How to Install and Use Oracle Configuration Manager

Oracle将之前的Metalink站点升级为My Oracle Support(MOS),借助Flash来获得一些更丰富的用户体验。而其中的Oracle Configuration Manager(OCM)是很重要的一个战略步骤。

通过OCM将客户的产品环境配置(不但包括数据库,还有App Sever等)上传之后,在MOS上对于SR的操作(新建,检索)都可以基于OCM System来进行,直接取代了之前的porfile。OCM还有其它更进一步的用途,在这里不再赘述,本文仅仅梳理出简单的OCM安装及使用方法。

在我们没有配置OCM之前,每次登入MOS页面,可以看到大致如下面的页面。

这一部分正是在提醒你安装configuration manager,点击“Learn More”之后将会跳转到OCM的主题页面,在这个页面上可以找到下载的链接,OCM的介绍,OCM的详细文档。

下载适合自己服务器构架的OCM包以后,安装非常简单,将下载的zip包解压即产生ccr文件夹,将ccr文件夹copy到$ORACLE_HOME下。本文在Windows下测试,如果是UNIX/Linux系统将exe变为sh即可。

注意:在Oracle11g之后,OCM安装包应该已经内置在Oracle Software中,我们只需要检查$ORACLE_HOME下有没有ccr目录即可,如果有说明已经存在安装包,可以直接进行安装。

安装OCM(以下命令没有明确指出的均在ccr/bin目录下执行):

setupCCR -s -d

-d表示以disconnected方式安装OCM,这样的安装会快些。

配置OCM

configCCR 12345678 kamusis@gmail.com us

其中12345678为CSI号,kamusis@gmail.com为登陆MOS的用户名,us为国家(这个没关系随便填)

注意:安装OCM的这台机器应该可以直接连接上internet,否则可以跳过configCCR,直接使用disconnected方式,也就是需要手工上传OCM收集的配置信息。

测试OCM和MOS正常连接

emccr test

Instrument Database(RAC环境只需要在1个节点上执行)

cd ccr\admin\scripts
installCCRSQL.exe collectconfig -s orcl11g -r sys

-s后面需要指定需要收集信息的数据库实例名
-r后面需要指定SYSDBA用户

注意:OCM安装使用文档中提到在Oracle10.2.0.4以后不需要再手工Instrument Database,但是实际上在Oracle11g中存在bug,installCCRSQL脚本仍然是必须执行的。

收集信息并自动上传

emccr collect

正常收集并上传以后会看到“Collection and upload done.”字样。

查看目前OCM在收集的所有target

emccr disable_target

直接回车不disable任何target,就可以看到所有的target列表。在我的例子中,输出如下:

Oracle Configuration Manager - Release: 10.3.2.0.0 - Production
Copyright (c) 2005, 2009, Oracle and/or its affiliates.  All rights reserved.
------------------------------------------------------------------
No.        Category                     Target Name
0          Host                         kamus-pc
1          Database Instance            ORCL11G
2          Oracle Home                  OraDb11g_home1
3          Oracle Configuration Manager Oracle Configuration Manager

Press Enter to exit the command.
Use Comma to separate multiple target numbers.
Enter the number(s) corresponding to the target(s) you wish to disable:

然后等待一段时间,Oracle官方说是大概2个小时,就可以在MOS System page中看到自己的系统了,右键点击系统可以有各种进一步的操作。至此简单的OCM安装和配置就已经完毕了。

修改OCM收集频率

emCCR set collection_interval="FREQ=MONTHLY; BYMONTHDAY=1; BYHOUR=0; BYMINUTE=0"

默认安装以后,是每天在安装时刻进行collection,这个频率可能有些高。我们修改为每个月的1号凌晨0点收集信息。

查看OCM状况

emccr stauts

解决升级后警告信息
如果使用旧版本的OCM做过instrument database,之后才将OCM升级为新版本,那么再次执行emCCR status的时候可能会发现如下告警:

WARN: Oracle Configuration Manager database objects are not in sync with
the installed configuration collection scripts.
Refer to the Installation and Configuration documentation on reloading the
SQL collection packages.

只需要将installCCRSQL再运行一遍即可。

\admin\scripts\installCCRSQL.exe collectconfig -s  -r  

OCM exam guide – Install Grid Control

在上午安装完数据库,配置完监听之后,中午休息,记得中午休息之前把数据库备份一下。

下午的Section是安装Grid Control。在OCM考试的Linux操作系统环境中安装Grid Control应该来说是一件很简单的事情,恩,实际上是我安装Grid Control最顺畅的一次了。

每个人面前会有两台机器,一台称为奇数机(ODD),一台称为偶数机(EVEN),注意,考题上也会这样表述的,要你在ODD机器上做什么或者在EVEN 机器上做什么,偶数还是奇数是依靠机器的hostname最后一位或者两位数字来定的,通常会要求你在奇数机上创建数据库,在偶数机上安装Grid Control的OMS。

偶数机上是没有Oracle软件的,因此OMS需要的Repository这个数据库也需要创建在奇数机上,再加上之后第二天会要求创建的Standby实例,总共会有三个实例运行在奇数机上,正常情况下奇数机的内存是2G,所以请预先考虑好分配给每个实例的内存。

为什么上午就要求配置监听?因为下午的考试中OMS需要通过监听来访问创建的数据库,总之,OCM考试中基本上都是这样环环相扣的,其中某一步做慢了或者没完成就很可能影响接下来的考试。

Grid Control的安装软件会预先放置在偶数机的某个目录下,考题里面会告诉你的。但是,不要着急安装,为了一次就安装成功我们需要预先做一些工作。再次强调一下,安装OMS我们基本上只有一次的机会,因为大部分的错误都会是在等待了一个漫长的Configuration过程之后再报出来,而这时候通常已经没有剩余的时间让你去找到问题发生的原因,然后清理已经安装了残迹再重新安装OMS了。

1. Use DBCA
按照要求,通常会创建一个新数据库在奇数机上(不同于上午的Section中要求创建的SID),用于存储OMS需要的Repository信息,下午的时候应该是已经可以使用图形界面了,所以我们可以用dbca来创建这个数据库。

2. Check Pacakage
数据库创建完毕以后,也许仍然你习惯用手动的方法创建,所以请检查数据库里面有没有dbms_shared_pool这个package,如果没有,运行$ORACLE_HOME/rdbms/admin/dbmspool.sql来创建这个package,因为安装OMS时候某些自动的检查需要调用这个包,没有的话将会报错。

3. Implement SSH
快速地建立两台机器之间的ssh信任关系,如果还不会的,请务必去网上查资料并且牢记每一步操作。这里有个小陷阱,默认情况下,两台机器上的oracle 用户的home目录权限是0777,也就是完全的可读些权限,但是在这种情况下,建立oracle用户的ssh信任关系,即使你完全配正确了,也同样无法正常地不输入密码就登陆到另外一台机器上。据说很多人折在这里,怎么也配不通两机的信任关系,那时候焦躁的心情应该可想而之了。 需要做的是将oracle用户的home目录权限改为0755。

4. Transfer X Window
尽量在一台机器上操作,不要在两台机器面前一会儿敲敲这个的键盘,一会儿动动那个的鼠标。字符界面的话,用terminal ssh过去就可以了,图形界面呢?不需要费劲地去检查vnc server有没有启动,启动在哪个端口了什么的,直接用ssh -X hostname这样的方式,就可以将远程的X界面显示在本机上。

5. Follow the Error Messege
安装OMS,对于Repository库是有一些初始化参数的要求的,比如java池该多大,shared pool该多大,job queue该多大,但是不要去阅读安装文档,那个浪费时间。我们需要做的就是设置SGA_TARGET = 300M,这样内存参数就自动管理了,安装OMS不会报任何错误,另外对于job queue等其它的参数,在点击开始安装之后的某个界面,会弹出一个警告框,告诉你哪些参数不符合要求,需要改为多少多少,OK,安装这个界面里的要求,依次修改数据库的参数,然后重新启动数据库,不需要退出安装界面,在重启完数据库之后,点确定,直接继续安装就可以了。

6. Be Patient
要有耐心,OMS安装的时候,在Configuration那一步时会非常慢,千万不要等不及了就准备关掉重来,时刻监控安装的log文件(log文件的位置在安装界面上应该可以找到),只要不停地有输出,你就可以安心地等待。

7. Install Agent
OMS安装完毕,也启动成功了。还需要在奇数机上安装Grid Control的Agent,有好多种方法可以安装,但是我们需要选择最简单最快速的方法,那就是使用agentDownload.linux程序,将这个程序从偶数机的OMS安装目录中copy到奇数机的某个目录下,随便哪个目录都行。然后运行下面的命令:
./agentDownload.linux -b /u01/app/oracle/product
最后一个参数是我们希望将agent安装到的BASE目录。
用这种方法安装Agent的速度很快,而且无需任何人工参与,简直是杀人越货考取OCM的必备良器。

8. Learning GUI
OMS也启动了,Agent也启动了,通过浏览器去检查一下Grid Control的管理界面是不是好用吧,到这里,基本上就没什么问题了,下面会是一些要求你通过Grid Control来创建一些表空间或者一些用户或者一些什么别的操作,按照要求来就好。不过,对于命令行死忠派来说,还是预先去熟悉一下图形界面的操作吧,否则到时候找个按钮都要找半天。

9. Lucky
运气很重要,点儿背的同学就不要去考了 😀

OCM exam guide – Create database

开始描述手工创建数据库的快速过程,在这个过程中你只有命令行窗口,如果不习惯使用vi的话,可以用Gnome下的Text Editor,还有本机可以访问的Oracle联机文档。

1. 设置环境变量ORACLE_SID
参照考题中需要创建的数据库SID,设置操作系统环境变量,假设要求创建的数据库的SID是TEST。

2. 创建最简单的initTEST.ora文件
在$ORALCE_HOME/dbs下可以找到一份已经存在的init.ora文件,这是一份样本(在正式考试的机器上你也可以找到)。打开这份文件可以看到很多被注释的行,让人烦躁,一行一行地修改这个文件比较耗时,使用下面的命令,把所有以#开头和所有的空行全部过滤掉,同时生成最简单的initTEST.ora初始化参数文件。

$> cat init.ora | grep -v ^# | grep -v ^$ > initSID.ora

然后修改该文件的db_name参数和control_files参数(控制文件放在哪里,需要多少份控制文件,在考题中会清楚地提出要求),其它的参数保持原状不需要修改。

3. 启动数据库到nomount状态

此时已经有可供启动的初始化参数文件了,将数据库启动到nomount状态。

SQL> startup nomount;

4. 创建spfile
实例启动以后立刻创建spfile,然后重启一次数据库,让数据库能够使用到spfile。

5. 修改其它必须的初始化参数
为什么需要先快速地将实例启动到nomount状态?因为我们需要使用show parameter命令,在记不清楚那些初始化参数具体怎么敲的时候,show parameter命令能够来帮助我们快速定位其它必须要修改的初始化参数名字的写法。
因为用到了spfile,所以此处我们已经可以使用alter system命令来修改初始化参数了。

db_create_file_dest = 考题中要求你创建数据文件时存放的目录
db_create_online_log_dest_1 = 考题中要求你创建联机重做日志文件时存放的目录
audit_file_dest = …
background_dump_dest = …
core_dump_dest = …
user_dump_dest = …
db_block_size = 考题中可能会要求创建特定block大小的数据库

不要一条命令一条命令在SQL*Plus里面敲,用vi或者Text Editor将所有的alter system命令都编辑好,然后一次执行。
执行完毕以后,关闭实例,再重新启动到nomount状态,让刚才修改的初始化参数生效。

6. 创建密码文件
用orapwd程序创建orapwTEST密码文件,如果记不清楚orapwd程序怎么用,直接敲orapwd然后回车,会告诉你语法是怎样的。

7. 创建数据库
在这里有两种方法可以选择,依靠个人喜好了。
一种就是直接编辑create database命令,将考试的各项要求在这个命令中事先编辑好。
一种是创建完默认的数据库以后再用alter database命令去逐条修改以符合考试中对于数据库的各项要求。

第一种方法的技巧在于,要快速找到例句,如果你去查SQL Reference文档中的create database的语法,时间肯定是比较紧张的,我们要查的是Administrator’s Guide这本文档中第二章 Creating an Oracle Database -> Creating the database -> Step 7: Issue the CREATE DATABASE Statement,这里有完整的一条SQL语句,copy出来,然后按照考试要求去编辑相应的地方,然后执行,这样出来的命令基本上不会出现问题。

第二种方法的技巧在于,因为是10g数据库,因为我们在前面设置了db_create_file_dest和db_create_online_log_dest_1参数,所以,只需要输入最简单的“create database;”命令,回车,就会有一个可以使用的数据库创建出来,当然比如redolog的组数和member个数,比如temp表空间的名字,比如undo表空间的名字都可能会跟考试的要求不太一样,然后用alter database以及一些其它的命令逐条修改就行。要知道数据库起来了,其中的某些检查项跟考试要求不符,不会得0分。

8. 运行catalog.sql 和 catproc.sql
只需要运行这两个SQL,都在$ORACLE_HOME/rdbms/admin中,创建必须的数据字典和内置的package等,千万不要忘了执行这一步。

9. 创建监听

考试可能会要求你创建非默认端口(1521)的监听,并且要求实例自动注册到这个监听上,那么这时候需要配置listener.ora和tnsnames.ora文件,去$ORACLE_HOME/network/admin/sample目录下把示例文件copy出来,然后按照要求修改。如果考试没有要求,那么无需修改任何配置文件,直接lsnrctl start把监听启动即可。

10. 其它的一些要求
比如创建额外的表空间,比如创建临时表空间组。
此处需要注意的是,对于数据文件,考试可能都会有详细的要求,比如第一个extent应该多大,每次扩展多少,初始化时数据文件多大,最终能够扩展到多大。要求详细阅读考试的要求,至于这里的语法,如果不记得,没有什么好的办法,只能去查SQL Reference文档了。

基本上上午的工作就是这些,最后提醒一点,考试的结果是美国那边直接用脚本连到你的服务器上,通过数据字典抓取结果,然后判断你哪些错了,所以,一定要保证在最后的时候,数据库是OPEN的,监考老师说还有5分钟结束考试的时候,不要再做什么其它操作了。如果之前你创建完数据库,想要shutdown以后冷备一下的话,请估算好时间。我听到的案例是冷备刚完成,数据库还未startup,结果美国那边开始抓取考试结果,因为无法连接数据库,因此第一天上午的section得了零分。

下一篇文章介绍安装Grid Control的一些经验。

OCM exam guide – Prepair

今天开始在OU参加为期四天的Oracle 10g OCM考试的培训,这个培训是第一次在OU举办,并不是对OCM中牵涉到Oracle数据库技术进行培训而是专门针对如何应对OCM考试的培训。

OCM考试全称为Oracle Certified Master(Oracle认证大师),是在OCA(Oracle认证专员Oracle Certified Associate)、OCP(Oracle认证专家Oracle Certified Professional)之后更高一级的Oracle技术认证,也是Oracle技术认证最高的一个级别。

考试是两天的时间,全部为实际操作的考试,第一天是创建数据库和安装Grid Control,第二天是创建RAC以及部署Data Guard,其中穿插着几乎所有Oracle数据库管理需要用到的常用知识。

其实,技术上来说OCM的考试并不很难,考试涉及的内容也是很喜闻乐见的技术架构。但是问题就在于时间,一个数据库管理员用dbca这样的图形化界面在一个小时里面创建完一个数据库这基本上没有难度,但是要求你不能使用图形界面只能用命令行方式呢?你能记得所有create database的语法吗?你能记得所有storage参数的语法吗?你能记得设定ASSM属性那个四个单词的前后顺序吗?

也许有人会说,我不需要记得啊,我有Oracle Online Documentation可以查询哦,是的,没错,OCM考试允许你查询Oracle的联机帮助文档(仅仅限于联机文档而不允许使用internet去做搜索),但是你能在几分钟内定位到你想要找的内容呢?又一共有多少个知识点你需要去查文档呢?而两个小时的考试时间又允许你去查多少次联机文档呢?我个人认为我对联机文档已经颇为熟悉了,但是今天上午的经验让我必须承认,如果我不继续加以练习,我绝对无法在规定时间内创建出完全符合考试要求的数据库。而如果第一天上午考试结束的时候你没有创建出需要的数据库,那么这次OCM考试你就失败了,因为后面考试的内容是要使用到这个数据库的。

最后,只要是考试就会有压力,当时间一点一滴流逝的时候,你能确保自己在最后的半小时里面还能像刚开始考试时候那样冷静吗?本来一次就能输入正确的SQL语句,会不会就要多输错几个单词,多按几次Delete键,多看到几次ORA报错信息才能完成输入呢?

好吧,这一系列文章的目的并不是给大家施加压力,而是准备告诉大家如何应对OCM考试,这几乎已经无关乎技术,而更多的是技巧了。

1. 保持平常心和信心,这很重要,当然也要意识到信心是通过考试前多次的自我实验而逐渐累积出来的。

2. 请一定在坐到考试桌前之后,尽快检查你面前的机器,会是两台RHEL4的Linux服务器,Gnome的图形界面(喜欢用KDE的兄弟们请去熟悉一下Gnome的操作),有鼠标有键盘,检查你的键盘输入是否顺畅,检查你的鼠标移动是否顺畅,检查机器的电源插座是否插牢,检查Oracle 10gR2的软件是否已经安装,检查$ORACLE_HOME等环境参数是否已经设置好,检查联机文档是否可以正常读取。按照常理来说,这些都不应该出问题,但是万一你运气好碰到有问题的机器,一旦考试开始计时,那损失的就只能是你自己了。哦,为什么是两台机器呢?因为一台是用来创建数据库,而另外一台是用来安装Grid Control的OMS。

下面一篇文章开始正式介绍,如何快速使用命令行方式创建一个数据库,再次强调,这无关乎技术,不是告诉你create database的语法该怎么写。