首页 > Linux操作系统 > Linux操作系统 > 向DBCA学习手动建库
利用DBCA建库可以生成建库脚本,这一点为手工创建数据库提供了条件,按照一般逻辑,手工建库应该就是将DBCA所做的工作由DBA手工重做一遍。在DBCA建库的时候,可以看到Oracle所列出的建库工作流程:
Ø 正在创建并启动Oracle实例
Ø 正在创建数据库文件
Ø 正在创建数据字典视图
Ø 正在添加Oracle JVM
Ø 添加Oracle XML DB
Ø 正在添加Oracle Intermedia
Ø 添加EM资料档案库
Ø 正在进行数据库创建
1. 正在创建并启动Oracle实例
DBCA建库的操作日志文件位于$oracle_home/cfgtoollogs/dbca/
接下来,从脚本中印证这些操作。
执行的起点是从
执行的第二阶段是设置了oracle_sid环境变量。
执行的下一步是创建实例,使用的是oradim,登录sqlplus,执行脚本,BAT结束。
接下来就是使用orapwd创建口令文件,然后调用CreateDB.sql实际创建数据库。
CreateDB.sql的第一步就是以SYSDBA身份连接到空闲例程,然后启动刚创建好的实例,这里指定pfile的位置,在手工建库的时候这个参数文件是要先创建好的,里面的内容可以由其它参数文件修改而来。
实例成功启动到NOMOUNT后,开始创建数据库。工作流第一步到此结束。
2. 正在创建数据库文件
CREATE DATABASE命令创建数据库即可。这里有一点说明,如果使用OMF管理,那么是没有文件名显示出来的。
CREATEDBFiles.sql随后被调用。它创建的是USERS表空间,创建后执行了
Alter database default tablespace “USERS ;
在Oracle 10g之前,如果创建用户不指定缺省的数据表空间,那么用户的缺省表空间会被指向系统表空间,增加了数据库缺省数据表空间后,如果不指定,那么创建用户的缺省数据表空间会被指向这里。
3. 正在创建数据字典视图
通过CreateDBCatalog.sql创建数据字典。
它依次调用了:
Catalog.sql:create data dictionary views.must be run when connected as sysdba.
Catblock.sql:create views of oracle locks
Catproc.sql:run all sql scripts for the procedural option. must be run when connected as sysdba.
Catoctk.sql:contains scripts needed to use the PL/SQL cryptographic toolkit interface
Owminst.plb:create user ovm_sys for storing metadata.This will help in export
还有两个以SYSTEM身份运行的SQL:
Pupbld.sql:它的作用是为SQL*PLUS服务。当在SQL*PLUS中以普通用户身份连接和使用数据库时,工具本身需要使用PRODUCT_USER_PROFILE表,我们需要登录system用户执行该SQL。
在执行pupbld之前要把当前用户(sys)转换成system,即以system账户连接数据库。因为此数据库是刚建的,所以system的口令是系统默认的口令,即manager。
SQL>connect system/manager
SQL>start D:\oracle\product\10.1.0\db_1\sqlplus\admin\pupbld.sql
Hlpbld.sql : 自述中,建立相关的SQLhelp表及视图 。helpbld.sql调用hlpbld.sql,往相应的表中插入帮助数据。另外,还有两个SQL,helpdrop.sql在同目录下,它的作用是删除帮助表,helpus.sql则是用英文写帮助信息。帮助文件可以使用如下语句查看:
Sqlplus system/password@hlpbld.sql helpus.sql
Helpus.sql是参数
查询时使用SQL>help即可。
重建帮助系统,只要以SYSTEM身份连接,然后执行一下hlpbld.sql脚本即可
4. 正在添加ORACLE JVM
ORACLE内置的JAVA虚拟机,并非每次都需要装这个,创建数据库时非必要。
5. 添加ORACLE XML DB
同样也不是创建一个数据库必须的。
6. 正在添加Oracle Intermedia
和WEB应用开发相关的工具,也不是创建数据库必须的。
7. 添加EM资料档案库
因为使用DB control 进行一对一的管理,所以,EM档案库必须建立。
emRepository.sql调用了emreposcre.sql来完成这一工作。
这个SQL里的内容放到后面手工创建EM中探讨。
8. 正在进行数据库创建
执行最后一个postDBCreation.sql。
首先,以SYSDBA身份连接数据库,然后创建SPFILE从PFILE中,关闭数据库,以SPFILE启动数据库,设置sysman、dbsnmp密码及解锁,继续配置EM。
注意到有一步execute utl_recomp.recomp_serial();
UTL_RECOMP包有两个存储过程:RECOMP_SERIAL和RECPMP_PARALLEL,从存储过程的名字一个是非并行,一个是并行方式。用并行方式编译失败过程速度快一些。
数据库创建完成。
以上大致地回顾一下DBCA建库的流程,从中进行梳理,就得出了手工创建数据库的流程:
1、创建必要的相关目录
C:\>mkdir D:\oracle\product\10.1.0\admin\hongww\adump
C:\>mkdir D:\oracle\product\10.1.0\admin\hongww\bdump
C:\>mkdir D:\oracle\product\10.1.0\admin\ hongww \cdump
C:\>mkdir D:\oracle\product\10.1.0\admin\hongww\dpdump
C:\>mkdir D:\oracle\product\10.1.0\admin\hongww\udump
C:\>mkdir D:\oracle\product\10.1.0\oradata\ hongww
2、参数文件
通常的做法是找一份参数文件进行修改就可以了,记得,这个参数文件要在指定的目录下,database/dbs。
3、设置环境变量Oracle_sid
Set oracle_sid=OOXX
4、创建实例
C:\>oradim –new –sid hongww –startmode auto –srvcstart system
5、创建口令文件
C:\>orapwd file=D:\oracle\product\10.1.0\db_1\database\pwdbook.ora password= entries=2
PS:password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数,关于这个值,在后面口令文件的相关文章里会做说明,还有一个force参数, 决定如果文件存在是否覆盖。
PS2:这里的命令要一行输入,中间不得换行。
6、启动数据库到nomount
Conn sys/password@XXOO as sysdba
Startup nomount
7、创建数据库
CREATE DATABASE ……
8、创建数据字典
Catalog.sql:create data dictionary views.must be run when connected as sysdba.
SQL>start D:\oracle\product\10.1.0\db_1\rdbms\admin\catalog.sql
9、创建package包
Catproc.sql:run all sql scripts for the procedural option. must be run when connected as sysdba.
SQL>start D:\oracle\product\10.1.0\db_1\rdbms\admin\catproc.sql
10、 执行pupbld
因为要使用SQLPLUS,所以这个也要执行,以SYSTEM身份连接
SQL>connect system/manager
SQL>start D:\oracle\product\10.1.0\db_1\sqlplus\admin\pupbld.sql
11、创建spfile文件
SQL>create spfile from pfile;
12、编译失败过程
可以使用utlrp.sql在RDBMS/ADMIN下。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24355950/viewspace-670104/ ,如需转载,请注明出处,否则将追究法律责任。