1. 在不同的平台的安装的软件不一样,甚至还有版本上的区别,还要看操作系统支持的寻址位数。
2. 在Windows上安装不需要创建oracle用户组和用户,也不需要改用户文件限制大小,不需要授权目录等
3. 同样可以用dbca来创建,安装的过程都是一样的,目录结构也一样。
dbca创建数据库的过程其实就是生成数据库相关的文件和目录:
dump文件
数据文件
控制文件
联机重做日志
等等。 flash_recovery_area、oradata、admin 这个几个目录存放的文件内容和结构应该要很清楚。
flash_recovery_area/SID/ --快复恢复区,用户存放归档日志的地方
admin --存放警告文件和日志文件
oradata -- 存放数据库控制文件、数据文件、联机重做日志
还会在$ORACLE_HOME/dbs/ 生成二进制的参数文件
除了生成这个目录和文件外,同时创建一个数据库的实例(实例+后台进程),并启动这个实例,这个可以通任务管理器可以看出来。其中的进程不像Unix平台上一样,它是一个总的进程名oracle。
4. 在windows下手工创库。
windows下的参数文件和口令文件在下面的这个目录下:
C:\oracle\product\10.2.0\db_1\database
5. 当存在多个数据库实例时(创建实例oradim /?查看使用方法),可用set ORACLE_SID来设置启动哪个数据库实例。
如果判断是否存在多个实例:有服务中查看
OracleServicexiao和OracleServiceZHOU
C:\Documents and Settings\Administrator>oradim -DELETE -SID xiao
实例已删除。
C:\Documents and Settings\Administrator>oradim -new -sid xiao --OracleServicexiao是启动状态
实例已创建。
C:\Documents and Settings\Administrator>set ORACLE_SID --前提是set ORACLE_SID=xiao的时才有。
ORACLE_SID=xiao
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 4月 4 19:08:02 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接到空闲例程。
一、查看所有环境变量的名称和值:
Linux下:export
Windows下:set
二、根据名称查该环境变量的值:
Linux下:echo $环境变量名
比如:echo $ORACLE_HOME
Windows下:set 环境变量名
(以下为转载)
注意:请将此教程与DBCA下创建的脚步对照进行试验,体会其中的意义,深刻理解oracle数据库创建的过程!
在Oracle中创建数据库,通常有两种方法。
一是:使用Oracle的DBCA,这是一个图形界面工且,使用起来方便且很容易理解,因为它的界面友好、美观,而且提示也比较齐全。(ps:可以从开始菜单中进入DBCA,也可以在CMD中敲入dbca命令启动DBCA)
二是:手动创建数据库,手工建库比起使用DBCA建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好地理解Oracle数据库的体系结构。
使用DBCA与手工建库的区别就像使用傻瓜相机与单反相机照相的区别,作为一个资深的oracle DBA必须学会手动建库,以更好的适应企业业务的需要。
手工建库须要经过几个步骤,每一个步骤都非常关键。它包括:
1、创建必要的相关目录
2、创建初始化参数文件
3、设置环境变量Oracle_sid
4、创建实例(windows服务)
5、创建口令文件
6、启动数据库到nomount(实例)状态
7、执行建库脚本
8、执行catalog脚步本创建数据字典
9、执行catproc创建package包
10、执行pupbld脚本设置sqlplus
11、由初始化参数文件创建spfile文件
12、执行scott脚本创建scott模式
做完了以上的步骤之后就可以使用“SQL>alter database open;”打开数据库正常的使用了。
这里我们就创建一个sid为xiao的数据库,具体的目录根据自己安装oracle情况决定:
1、创建必要的相关目录
首先,创建admin目录下的xiao,xiao下的子文件夹
这几个子目录主要用于存放数据库运行过程中的跟踪信息。最重要的两上子目录是bdump和udump目录,bdump目录存放的是数据库动行过程中的各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_book.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。Udump目录存放特定会话相关的跟踪信息。
第二,在oradata下创建数据库文件存放目录
C:/oracle/product/10.1.0/oradata/xiao 目录用于存放各种数据库文件,包括控制文件、数据文件、重做日志文件。
2、创建初始化参数文件
数据库系统启动时须要用初始化参数文件的设置分配内存、启动必要的后台进程的。因此,初始化参数文件创建的是否正确、参数设置是否正确关系着整个建库的“命运”。创建初始化参数文件可以通过拷贝现在的初始化参数文件并将其做适当的修改即可,从而不必要用手工去一句一句地写出来,因为初始化参数文件的结构体系基本上都是一样的。在我们安装Oracle的时候,系统已经为我们安装了一个名为orcl的数据库,于是我们可以从它那里得到一份初始化参数文件。打开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下,并将其改名为initxiao.ora。接着用记事本的方式打开initxiao.ora,根据自己情况修改内容。如:必须修改db_name=xiao
注意:如果script文件中的init.ora文件路径比较乱(既有斜杠也有反斜杠)的情况,可以从C:/oracle/product/10.1.0/bd_1/dbs中拷贝复制。作为一个dba来说这个参数文件的主要参数是要背下来的。或者自己创建,备份,
3、打开命令行,设置环境变量oracle_sid
命令:set ORACLE_SID=xiao
4、创建实例服务(即后台控制windows服务)
命令:oradim -new -sid mydb
oradim是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定实例的名称。
命令执行完毕可以验证服务是否创建成功:
5、创建口令文件
命令为:orapwd file=C:/oracle/product/10.1.0/db_1/database/PWDmydb.ora password=oracle entries=2
orapwd是创建口令文件的程序名称,file参数指定口令文件所在的目录和文件名称,password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数。请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的中令单独存放于口令文件中,这样数据库末打开时也能进行口令验证。
注意:这里要十分注意,在使用orapwd工具时,很容易出错!!尽量不要换行。一次不行,多试几次,在windows上很奇怪。
C:\Documents and Settings\Administrator>orapwd file=C:\oracle\product\10.2.0\db
1\database\PWDxiao.ora password=oracle
^C终止批处理操作吗(Y/N)? y
C:\Documents and Settings\Administrator>cd ..
C:\Documents and Settings>cd ..
C:\>orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDxiao.ora password=pas
C:\> --表示已经OK, 查看文件已经创建了。
6、启动数据库到nomount(实例)状态
如图所示:
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 167775108 bytes
Database Buffers 436207616 bytes
Redo Buffers 7135232 bytes
SQL>
7、执行建库脚本
执行建库脚本,首先要有建库的脚本。那怎么去找到脚本呢?得到一个符合自己要求的建库脚本有两种方法,一种方法是利用原来orcl创建数据库DBCA生成的数据库创建脚本,并参照oracle文档。另一种方法就是自己手工去写一份建库脚本,并将其保存为文件名任取而后缀名为(*.sql)的SQL脚本,名称为mydbcreate.sql。
CREATE DATABASE xiao
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE 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/oradata/mydb/redo03.log') SIZE 100M
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'C:/oracle/product/10.2.0/oradata/xiao/SYSTEM01.DBF' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'C:/oracle/product/10.2.0/oradata/xiao/SYSAUX01.DBF' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1
DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE 'C:/oracle/product/10.2.0/oradata/mydb/TEMP01.DBF' SIZE 20480K REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
UNDO TABLESPACE UNDOTBS1
DATAFILE 'C:/oracle/product/10.2.0/oradata/xiao/undotbs01.dbf' 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脚步本创建数据字典
SQL>@C:/oracle/product/10.1.0/db_1/rdbms/admin/catalog.sql
9、执行catproc创建package包
SQL>@C:/oracle/product/10.1.0/db_1/rdbms/admin/catproc.sql
10、执行pupbld
在执行pupbld之前要把当前用户(sys)转换成system,即以system账户连接数据库。因为此数据库是刚建的,所以system的口令是oracle(参加创建数据库代码)。
SQL>connect system/oracle
SQL>@C:/oracle/product/10.1.0/db_1/sqlplus/admin/pupbld.sql
11、由pfile创建spfile
SQL>create spfile from pfile
12、执行scott脚本创建scott模式(如果需要练习环境)
SQL>@C:/oracle/product/10.1.0/db_1/rdbms/admin/scott.sql
13、把数据库打开到正常状态
SQL>alter database open;
OK,手动创建数据库成功!请多加练习,体会oracle创建的过程,理解oracle的体系架构。
ORA-1092 signalled during: CREATE DATABASE mydb