OCM exam guide – Create database

on

开始描述手工创建数据库的快速过程,在这个过程中你只有命令行窗口,如果不习惯使用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的一些经验。

10 Comments Add yours

  1. 睡貓 says:

    好資料,多謝分享了
    不過為何要做冷備份呢,還是因為考試不要求開起archive mode呢?

  2. kamus says:

    没有要求做冷备份,只是创建完一个数据库以后,有些人为了保险,习惯down库然后做一个冷备。

    对了,需要记住的是,第一天下午完成考试之前,一定要做一份全库的完整备份,无论是冷备也好,RMAN备份也好。因为第二天早上一来,可能你昨天创建的数据库就起不来了,因为会有远程的破坏操作,比如删除一些数据文件或者重做日志,这就是考备份恢复的时刻了。

  3. dbf says:

    用冷备份的对rman也太不熟悉了
    这么短的时间内全都通过命令行真有点变态,好点的公司都有统一脚本来做这些,要考试的只能自己去操练了

  4. cityvigil says:

    好文:

    竟然发象oracle 9i 的官方文档上的(我的9i的文档是Release 2 (9.2.0.2))
    创建数据库的脚本有问题

    eg:
    16 DEFAULT TEMPORARY TABLESPACE tempts1
    17 DATAFILE ‘/opt/oracle/oradata/ZHOU/temp01.dbf’
    18 SIZE 20M REUSE
    19 UNDO TABLESPACE undotbs
    20 DATAFILE ‘/opt/oracle/oradata/ZHOU/undotbs01.dbf’
    21 SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED;
    DATAFILE ‘/opt/oracle/oradata/ZHOU/temp01.dbf’
    *
    ERROR at line 17:
    ORA-25139: invalid option for CREATE TEMPORARY TABLESPACE

  5. Rain@DNA says:

    有你这个中文版的指引,后面再要考的人心里有数多了~

    谢谢~

  6. luzp says:

    第8步只需要运行catalog.sql 和 catproc.sql就够了吗?我看dbca自动生成的scripts里,还额外执行了几个sql,如下:
    。。。
    @D:\oracle\ora10g\rdbms\admin\catalog.sql;
    @D:\oracle\ora10g\rdbms\admin\catblock.sql;
    @D:\oracle\ora10g\rdbms\admin\catproc.sql;
    @D:\oracle\ora10g\rdbms\admin\catoctk.sql;
    @D:\oracle\ora10g\rdbms\admin\owminst.plb;
    connect “SYSTEM”/”&&systemPassword”
    @D:\oracle\ora10g\sqlplus\admin\pupbld.sql;
    connect “SYSTEM”/”&&systemPassword”
    set echo on
    spool D:\oracle\admin\orcl\scripts\sqlPlusHelp.log
    @D:\oracle\ora10g\sqlplus\admin\help\hlpbld.sql helpus.sql;
    。。。

  7. luzp says:

    这个 《OCM exam guide 》系列很不错。非常期待。应该还有后文吧?希望能继续看到博主的后文。谢谢。

  8. kamus says:

    @luzp
    只需要catalog和catproc,其它那些都不是必须的。

  9. overmars says:

    请问下:联机文档使用的是HTML格式的还是PDF? 另外,考试要求创建的数据库是归档模式吗?(因为后面要使用rman备份)

  10. Kamus says:

    @overmars
    HTML格式的,其实就是那个机器可以访问oracle的联机帮助文档站点。

    自然是归档模式。

Leave a Reply to 睡貓 Cancel reply

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