手动建库其实也可以分为两种,一种是不使用OMF创建,另一种是使用OMF创建。
一、不使用OMF手动创建数据库
1、创建文件夹。(根据刚才/ora01/db/oracle/admin/ocp中的目录,我们也同样创建)
$ mkdir /ora01/db/oracle/admin/mydb $ cd /ora01/db/oracle/admin/mydb $ mkdir bdump $ mkdir udump $ mkdir cdump $ mkdir pfile $ mkdir script $ mkdir /ora02/oradata/mydb |
2、创建参数文件,其实参数文件各各数据库的内容差不多,我们只需要改中间的一些内容就可以,所以我们把ocp的参数文件Copy过来,改成我们需要的。
$ cp /ora01/db/oracle/admin/ocp/scripts/init.ora /u01/db/oracle/admin/mydb/pfile $ vi /ora01/db/oracle/admin/mydb/pfile/init.ora |
根据上面我们所看到的init.ora进行如下修改:
########################################### # Copyright (c) 1991, 2001, 2002 by Oracle Corporation ########################################### ########################################### # Cache and I/O ########################################### db_block_size=8192 db_file_multiblock_read_count=16 ########################################### # Cursors and Library Cache ########################################### open_cursors=300 ########################################### # Database Identification ########################################### db_domain="" db_name=mydb ########################################### # Diagnostics and Statistics ########################################### background_dump_dest=/ora02/oradata/mydb/bdump core_dump_dest=/ora02/oradata/mydb/cdump user_dump_dest=/ora02/oradata/mydb/udump ########################################### # File Configuration ########################################### control_files=("/ora02/oradata/mydb/control01.ctl", "/ora02/oradata/mydb/control02.ctl", "/ora02/oradata/mydb/control03.ctl") db_recovery_file_dest=/ora01/db/oracle/flash_recovery_area db_recovery_file_dest_size=2147483648 ########################################### # Job Queues ########################################### job_queue_processes=10 ########################################### # Miscellaneous ########################################### compatible=10.2.0.1.0 ########################################### # Processes and Sessions ########################################### processes=150 ########################################### # SGA Memory ########################################### sga_target=262144000 ########################################### # Security and Auditing ########################################### audit_file_dest=/ora01/db/oracle/admin/mydb/adump remote_login_passwordfile=EXCLUSIVE ########################################### # Sort, Hash Joins, Bitmap Indexes ########################################### pga_aggregate_target=87031808 ########################################### # System Managed Undo and Rollback Segments ########################################### undo_management=AUTO undo_tablespace=UNDOTBS1 |
3、如果电脑开起的时候实例被启动,请关闭,如果没有,则跳过此步。
|
4、设置环境变量,把SID指向现在的mydb。
$ export ORACLE_SID=mydb |
5、创建口令文件。
$ orapwd file=/ora01/db/oracle/product/10.2.0/db/dbs/orapwmydb.ora password=liguanghu entries=2 |
文件命名规则:orapw+实例名,所以我们这里是orapwmydb.ora。
entries:密码文件中可以存放的最大用户数,对应允许以sysdba/Sysoper权限登陆数据库的最大用户数,如果超过此限制,必须重建密码文件。
。
6、现在一切问题都搞定,那让我们来开启实例吧。
|
7、创建数据库脚本。
脚本虽然是同一种样式,但方法当然会有两种。
第一种,聪明偷懒的方法,学着上面的把CreateDB.sql文件给Copy到script目录下,进行修改一下,呵呵,就成了我们这个数据库的脚本生成代码。
第二种,手敲吧。。。(这里,我选第二种,老Copy学不到东西了)
$ vi /ora01/db/oracle/admin/mydb/script/createdb.sql |
新建的一个空的createdb.sql文件,写入。
|
8、执行创建数据库脚本。
|
9、执行catalog.sql,创建数据库的数据字典视图。
|
10、执行catproc.sql,创建执行PL/SQL程序所需的所有包。
|
二、使用OMF手动创建数据库
1、启动数据库到mount。
|
出错拉!!!为什么呢,如果细心的话会发现其实在上一个手动建库的过程中间我们也有一步这样的步骤。当时我们用的是
|
当时指明了init.ora参数文件的位置,也就是说,当实例被启动需要参数文件的时候系统会自己到/ora01/db/oracle/product/10.2.0/db/dbs/下去寻找一个名字init.ora的参数文件,前面因为要和DBCA建库的文件放置位置一样,所以我们用了那种方法,在这里我们改过来,用这种让系统自动去找的方便的方法。
$ cp /ora01/db/oracle/admin/mydb/pfile/init.ora /ora01/db/oracle/product/10.2.0/db/dbs/initmydb.ora |
OK!这样我们就可以启动数据库mount。
|
2、将数据库设置为restricted session模式
|
3、使用drop database命令删除数据库,这个操作将删除所有的数据文件(不包括参数和密码文件)
|
4、修改pfile文件/ora01/db/oracle/product/10.2.0/db/dbs/initmydb.ora,添加下列内容:
db_create_file_dest='/ora02/oradata/' db_create_online_log_dest_1='/ora02/oradata/' |
5、修改createdb.sql脚本的内容。(因为我们这里是用的OMF方式创建,上一步我们已经指定了安装位置,Oracle会自动把数据文件等内容放到指定目录下)
|
6、连入数据库,并启动数据库到nomount
|
7、根据刚刚修改的pfile文件创建spfile文件
|
关于spfile文件,在上一个的手动创建中就可以生成,本博中有另个文章进行详解,请看“Oracle初始化参数文件”。
8、执行createdb.sql脚本
|
9、验证一下我们创建的数据库(这种方法好多了,做了上面手动创建数据库的朋友一定对最后的SQL的刷屏记忆犹新吧,呵)
在线日志文件查询:
|
数据文件查询:
|
临时文件查询:
|
OK!收工,终于搞定手动创建数据库,有前面DBCA的SQL脚本做帮助,感觉也不是很难,多练习下吧。
最后给个create database的语法给大家(Copy来的大家研究下):
|