ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle 手动建库详解

oracle 手动建库详解

原创 Linux操作系统 作者:wzhalal 时间:2013-06-29 10:39:51 0 删除 编辑
本文是在windows 下试验。 版本为10.2.0.1  linux 大同小异


在Oracle中建库,通常有两种方法。一是使用Oracle的建库工且DBCA,这是一个图形界面工且,使用起来方便且很容易理解,因为它的界面友好、美观,而且提示也比较齐全。在indows系统中,这个工具可 以在Oracle程序组中打开(”开始”—“程序”—“ Oracle - OraDb10g_home1”—“ Configuration and Migration Tools”—“ Database Configuration Assistant”),也可以在命令行(”开始”—“运行”—“cmd”)工具中直接输入dbca来打开。另一种方法就是手工建库,这也就是下面所要讲 的内容。
手工建库比起使用DBCA建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好地理解Oracle数据库的体系结构。手工建库须要经过几个步骤,每一个步骤都非常关键。它包括:
1、 创建必要的相关目录
2、 创建初始化参数文件
3、 设置环境变量Oracle_sid
4、 创建实例
5、 创建口令文件
6、 启动数据库到nomount(实例)状态
7、 执行建库脚本
8、 执行catalog脚步本创建数据字典
9、 执行catproc创建package包
10、 执行pupbld
11、 由初始化参数文件创建spfile文件
12、 执行scott脚本创建scott模式

实例名字为 dims
 initdims.ora  内容为

sga_target=200M

db_name=dims

background_dump_dest = D:\oracle\product\10.2.0\admin\dims\bdump

core_dump_dest = D:\oracle\product\10.2.0\admin\dims\cdump

user_dump_dest = D:\oracle\product\10.2.0\admin\dims\udump

control_files =D:\oracle\product\10.2.0\oradata\dims\control01.ctl,D:\oracle\product\10.2.0

\oradata\dims\control02.ctl,D:\oracle\product\10.2.0\oradata\dims\control03.ctl

undo_management = auto

undo_tablespace = undotbs

db_block_size = 8192


D:\oracle\product\10.2.0\db_1\cr_dims.sql 脚本内容

CREATE DATABASE DIMS
datafile 'D:\oracle\product\10.2.0\oradata\dims\disk1\system01.dbf' size 350M
sysaux datafile 'D:\oracle\product\10.2.0\oradata\dims\disk2\sysaux01.dbf' size 50M
undo tablespace undotbs datafile 'D:\oracle\product\10.2.0\oradata\dims\disk3\undotbs01.dbf' size 50M
default temporary tablespace temp tempfile 'D:\oracle\product\10.2.0\oradata\dims\disk3\temp01.dbf' size 50M
logfile
  group 1 'D:\oracle\product\10.2.0\oradata\dims\disk1\redo01.log' size 50m,
  group 2 'D:\oracle\product\10.2.0\oradata\dims\disk1\redo02.log' size 50m,
  group 3 'D:\oracle\product\10.2.0\oradata\dims\disk1\redo03.log' size 50m
character set zhs16gbk;C:\Documents and Settings\Administrator>set oracle_sid=dims

D:\oracle\product\10.2.0\db_1\cr_dict.sql脚本内容为

@?\rdbms\admin\catalog.sql
@?\rdbms\admin\catproc.sql
connect system/manager
@?\sqlplus\admin\pupbld.sql




C:\Documents and Settings\Administrator>sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.4.0 - Production on 星期六 6月 29 11:25:20 2013

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

已连接到空闲例程。

SQL> startup nomount
ORACLE 例程已经启动。

Total System Global Area  209715200 bytes
Fixed Size                  1295848 bytes
Variable Size              67111448 bytes
Database Buffers          134217728 bytes
Redo Buffers                7090176 bytes
SQL> @?
SP2-0310: 无法打开文件 "D:\oracle\product\10.2.0\db_1.sql"
SQL> @?\cr_dims.sql
SQL> @?\cr_dims.sql

数据库已创建。
SQL> @?\cr_dict.sqlSQL>

SQL> -- End of pupbld.sql
SQL>

具体内容为下

1、打开命令行工具,创建必要有相关目录
因为在实际环境中可能把数据文件分放在不同的磁盘上 提高I/O  ,控制文件等多放几个位置,提高安全,我这里用disk1 disk2 disk3 disk4 disk5 代替
C:\>mkdir D:\oracle\product\10.1.0\admin\dims
C:\>mkdir D:\oracle\product\10.1.0\admin\dims\adump
C:\>mkdir D:\oracle\product\10.1.0\admin\dims\bdump
C:\>mkdir D:\oracle\product\10.1.0\admin\dims\udump
C:\>mkdir D:\oracle\product\10.1.0\admin\dims\cdump
C:\>mkdir D:\oracle\product\10.1.0\admin\dims\pfile
C:\>mkdir D:\oracle\product\10.1.0\oradata\dims\disk1
C:\>mkdir D:\oracle\product\10.1.0\oradata\dims\disk2
C:\>mkdir D:\oracle\product\10.1.0\oradata\dims\disk3
C:\>mkdir D:\oracle\product\10.1.0\oradata\dims\disk4
C:\>mkdir D:\oracle\product\10.1.0\oradata\dims\disk5

上面创建目录的过程也可以在Windows的图形界面中去创建。其中D:\oracle\product\10.1.0\admin\dims目录下的几个子目录主

要用于存放数据库运行过程中的跟踪信息。最重要的两上子目录是bdump和udump目录,bdump目录存放的是数据库动行过程中的

各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_dims.log,当数据库出现问题时,首先就可以去查

看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。Udump目录存放和特定会话相关

的跟踪信息。D:\oracle\product\10.1.0\oradata\dims目录存放各种数据库文件,包括控制文件、数据文件、重做日志文件。
2、创建初始化参数文件
数据库系统启动时须要用初始化参数文件的设置分配内存、启动必要的后台进程的。因此,初始化参数文件创建的是否正确、参

数设置是否正确关系着整个建库的“命运”。
创建初始化参数文件可以通过拷贝现在的初始化参数文件并将其做适当的修改即可,从而不必要用手工去一句一句地写出来,因

为 初始化参数文件的结构体系基本上都是一样的。在我们安装Oracle的时候,系统已经为我们安装了一个名为orcl的数据库,

于是我们可以从它那里得到一 份初始化参数文件。打开D:\oracle\product\10.1.0\admin\orcl\pfile,找到init.ora文件,把

它拷贝到 D:\oracle\product\10.1.0\bd_1\databse下,并将其改名为initdims.ora。接着用记事本的方式打开 initdims.ora

,修改以下的内容:
sga_target=200M

db_name=dims

background_dump_dest = D:\oracle\product\10.2.0\admin\dims\bdump

core_dump_dest = D:\oracle\product\10.2.0\admin\dims\cdump

user_dump_dest = D:\oracle\product\10.2.0\admin\dims\udump

control_files =D:\oracle\product\10.2.0\oradata\dims\control01.ctl,D:\oracle\product\10.2.0

\oradata\dims\control02.ctl,D:\oracle\product\10.2.0\oradata\dims\control03.ctl

undo_management = auto

undo_tablespace = undotbs

db_block_size = 8192

              
3、打开命令行,设置环境变量oracle_sid
C:\>set oracle_sid=dims
设置环境变量的目地是在默认的情况下,指定命令行中所操作的数据库实例是dims。
4、创建实例(即后台控制服务)
C:\>oradim –new –sid dims
orad
im是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定害例的名称。
5、创建口令文件
C:\>orapwd file=D:\oracle\product\10.1.0\db_1\database\pwddims.ora password=oracle entries=3
orapwd是创建口令文件的工肯程序各称,file参数指定口令文件所在的目录和文件名称,password参数指定sys用户的口令,

entries参数指定数据库拥用DBA权限的用户的个数,当然还有一个force参数,相信您不指即明,这里就不再细述。
请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。
口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的中令单独

存放于口令文件中,这样数据库末打开时也能进行口令验证。
6、启动数据库到nomount(实例)状态
C:\>sqlplus /nolog
SQL>connect sys/oracle as sysdba ---这里是用sys连接数据库
已连接到空闲例程
SQL>startup nomount
ORACLE 例程已经启动。

SQL>
7、执行建库脚本
执行建库脚本,首先要有建库的脚本。(去哪找建库脚本呢?我又没有!)不用着急,请接着往下看。
得到一个符合自己要求的建库脚本有两种方法,一种方法是在自己的电脑上用DBCA来建,接照它的提示一步步地去做,
另一种方法就是自己手工去写一份建库脚本,这也是这里要见意使用的方法,用记事本编辑如下的内容,并将其保存为文件名任
取而后缀名为(*.sql)的SQL脚本,文件名称cr_dims.sql。
CREATE DATABASE DIMS
datafile 'D:\oracle\product\10.2.0\oradata\dims\disk1\system01.dbf' size 350M
sysaux datafile 'D:\oracle\product\10.2.0\oradata\dims\disk2\sysaux01.dbf' size 50M
undo tablespace undotbs datafile 'D:\oracle\product\10.2.0\oradata\dims\disk3\undotbs01.dbf' size 50M
default temporary tablespace temp tempfile 'D:\oracle\product\10.2.0\oradata\dims\disk3\temp01.dbf' size 50M
logfile
  group 1 'D:\oracle\product\10.2.0\oradata\dims\disk1\redo01.log' size 50m,
  group 2 'D:\oracle\product\10.2.0\oradata\dims\disk1\redo02.log' size 50m,
  group 3 'D:\oracle\product\10.2.0\oradata\dims\disk1\redo03.log' size 50m
character set zhs16gbk;
接着就执行刚建的建库脚本:两个脚本内容上面都有
SQL>@?\cr_dims.sql 
8、执行catalog脚步本创建数据字典,执行catproc创建package包,执行pupbld
SQL>@?\cr_dict.sql  
9、执行scott脚本创建scott模式
SQL>start D:\oracle\product\10.1.0\db_1\rdbms\admin\scott.sql
10、把数据库打开到正常状态 
SQL>alter database open;
11、以scott连接到数据库(口令为tiger),测试新建数据库是否可以正常运行
至此,整个数据库就已经建好了。接着你就可以在此数据库上建立自己的账户和表空间啦以及数据库对象,这里就不再作更多地
叙述。






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28894640/viewspace-765095/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-06-06

  • 博文量
    60
  • 访问量
    249508