1、WINDOWS下手动创建oracle10g数据库注意:请将此教程与DBCA下创建的脚步对照进行试验,体会其中的意义,深刻理解oracle数据库创建的过程!在Oracle中创建数据库,通常有两种方法。一是:使用Oracle的DBCA,这是一个图形界面工且,使用起来方便且很容易理解,因为它的界面友好、美观,而且提示也比较齐全。(ps:可以从开始菜单中进入DBCA,也可以在CMD中敲入dbca命令启动DBCA)二是:手动创建数据库,手工建库比起使用DBCA建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好地理解Oracle数据库的体系结构。使用DBCA与手工建库的区别就像使用傻
2、瓜相机与单反相机照相的区别,作为一个资深的oracle DBA必须学会手动建库,以更好的适应企业业务的需要。手工建库须要经过几个步骤,每一个步骤都非常关键。它包括: 1、创建必要的相关目录 2、创建初始化参数文件 3、 设置环境变量Oracle_sid 4、 创建实例(windows服务) 5、创建口令文件6、启动数据库到nomount(实例)状态 7、 执行建库脚本 8、执行catalog脚步本创建数据字典 9、执行catproc创建package包 10、 执行pupbld 脚本设置sqlplus11、 由初始化参数文件创建spfile文件 12、执行scott脚本创建scott模式做完了
3、以上的步骤之后就可以使用“SQLalter database open;”打开数据库正常的使用了。这里我们就创建一个sid为mydb的数据库,具体的目录根据自己安装oracle情况决定:1、创建必要的相关目录 创建admin目录下的mydb以及mydb下的子文件夹C:mkdir C:oracleproduct10.2.0adminmydbadump C:mkdir C:oracleproduct10.2.0adminmydbbdump C:mkdir C:oracleproduct10.2.0adminmydbcdump C:mkdir C:oracleproduct10.2.0adminmy
4、dbdpdump C:mkdir C:oracleproduct10.2.0adminmydbudump C:mkdir C:oracleproduct10.2.0adminmydbpfile 在oradata下创建数据库文件存放目录C:mkdir C:oracleproduct10.2.0oradatamydb2、创建初始化参数文件创建初始化参数文件可以通过拷贝现在的初始化参数文件并将其做适当的修改即可,从而不必要用手工去一句一句地写出来,因为初始化参数文件的结构体系基本上都是一样的。在我们安装Oracle的时候,系统已经为我们安装了一个名为orcl的数据库,于是我们可以从它那里得到一份初始
5、化参数文件。打开C:/oracle/product/10.1.0/admin/orcl/pfile,找到init.ora文件,把它拷贝到C:/oracle/product/10.1.0/bd_1/databse与C:/oracle/product/10.1.0/bd_1/dbs下,并将其改名为initmydb.ora。接着用记事本的方式打开initmydb.ora,根据自己情况修改内容。如:必须修改db_name=mydb注意:如果script文件中的init.ora文件路径比较乱(既有斜杠也有反斜杠)的情况,可以从C:/oracle/product/10.1.0/bd_1/dbs中拷贝复制。
6、或者自己创建,备份。3、打开命令行,设置环境变量oracle_sid 命令:set ORACLE_SID=mydb4、创建实例服务(即后台控制windows服务)命令:oradim -new -sid mydboradim是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定实例的名称。命令执行完毕可以验证服务是否创建成功:5、创建口令文件 命令为:orapwd file=C:/oracle/product/10.1.0/db_1/database/PWDmydb.ora password=oracle entries=2 orapwd是创建口令文件的
7、程序名称,file参数指定口令文件所在的目录和文件名称,password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数。 请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。 口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的中令单独存放于口令文件中,这样数据库末打开时也能进行口令验证。6、启动数据库到nomount(实例)状态C:sqlplus /nolog SQLconn / as sysdba SQL startup nomount pfile=C:oracleproduct1
8、0.2.0adminmydbpfileinitmydb.ora7、执行建库脚本CREATE DATABASE mydbUSER SYS IDENTIFIED BY oracleUSER SYSTEM IDENTIFIED BY oracleLOGFILE GROUP 1 (C:/oracle/product/10.2.0/oradata/mydb/redo01.log) SIZE 100M,GROUP 2 (C:/oracle/product/10.2.0/oradata/mydb/redo02.log) SIZE 100M,GROUP 3 (C:/oracle/product/10.2.0/
9、oradata/mydb/redo03.log) SIZE 100MMAXINSTANCES 8MAXLOGHISTORY 1MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100CHARACTER SET AL32UTF8NATIONAL CHARACTER SET AL16UTF16DATAFILE C:/oracle/product/10.2.0/oradata/mydb/SYSTEM01.DBF SIZE 325M REUSEEXTENT MANAGEMENT LOCALSYSAUX DATAFILE C:/oracle/product/10.2.0
10、/oradata/mydb/SYSAUX01.DBF SIZE 325M REUSEDEFAULT TABLESPACE tbs_1DEFAULT TEMPORARY TABLESPACE TEMPTEMPFILE C:/oracle/product/10.2.0/oradata/mydb/TEMP01.DBF SIZE 20480K REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITEDUNDO TABLESPACE UNDOTBS1DATAFILE C:/oracle/product/10.2.0/oradata/mydb/undotbs01.dbf
11、 SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;执行上面的代码有两种方法,一种为直接复制粘贴到sqlplus中执行,另一种为用命令执行。执行完第七步已经成功创建数据库文件,但是还没有创建数据字典。(在第8步之前,执行了sql.bsq脚本,D:/oracle/product/10.2.0/db_1/RDBMS/ADMIN文件夹下,用于创建oracle数据字典基表,在create database 时自动调用)8、执行catalog脚步本创建数据字典SQLC:/oracle/product/10.1.0/db_1/rdbms/admin/catal
12、og.sql9、执行catproc创建package包SQLC:/oracle/product/10.1.0/db_1/rdbms/admin/catproc.sql10、执行pupbld 在执行pupbld之前要把当前用户(sys)转换成system,即以system账户连接数据库。因为此数据库是刚建的,所以system的口令是oracle(参加创建数据库代码)。SQLconnect system/oracleSQLC:/oracle/product/10.1.0/db_1/sqlplus/admin/pupbld.sql11、由pfile创建spfileSQLcreate spfile from pfile12、执行scott脚本创建scott模式 (如果需要练习环境)SQLC:/oracle/product/10.1.0/db_1/rdbms/admin/scott.sql13、把数据库打开到正常状态 SQLalter database open;OK,手动创建数据库成功!请多加练习,体会oracle创建的过程,理解oracle的体系架构。ORA-1092 signalled during: CREATE DATABASE mydb