创建一个Oracle 数据库 
 -由于Oracle是大型的关系型数据库系统(RDBMS),所以在创建数据库时需要设置许多环境参数,有时候这些设置环境的准备工作会让人觉得很繁琐,问题出得也很多,但也正是Oracle公司给出了让用户能灵活的设置数据库环境参数的做法,使得Oracle变得很灵活和高效,能适应不同档次的机器、操作系统。(这里只给出了最基本的步骤,因为在实际中有许多细节,如参数文件的设置等...) 计划和组织创建数据库是DBA应该关心的。
创建数据库的步骤(Unix平台):准备创建数据库 通过表空间组织数据库内容 
设计数据库机构以减少数据竞争和碎片 
为数据库创建准备操作系统环境 
拷贝并编辑参数文件 
启动例程 
执行SQL脚本create database 
通过生成两个以上的Redo log文件和控制文件来保证数据库的安全 
定义数据字典和视图来监视数据库 
定义和创建回退段来保证读一致性 
 实际的创建数据库的步骤: 决定数据库结构
    Oracle 数据库被分成称为表空间的逻辑单元,一个表空间可以包含多个物理数据文件。一般情况一个Oracel数据库应建立至少以下几个表空间:
APP_DATA(主要的数据表存放)
TEMP(临时数据表存放)
APP_INDX(索引存放)
RBS(回退段存放)设计文件存放在系统的位置
创建参数文件
参数文件一般是一个init<sid>.ora文件,存放在$ORACLE_HOME/dbs/下,Oracle有一个sample例子,你可以拷贝它,然后编辑里面的参数,例子里的参数都有详细说明,其中必须指定的有
DB_NAME
CONTROL_FILE
INIT_SQL_FILES
LOG_ARCHIVE_DEST
LOG_ARCHIVE_FORMAT
USER_DUMP_DEST
BACKGROUND_DUMP_DEST决定一个唯一的例程名称
使用适当的系统操作命令设置Oracle例程名
Unix下是:    $ORACLE_SID=sidname启动例程到NOMOUNT状态
调用SQL*DBA,以internal连进Oracle
$sqldba lmode=y
SQLDBA>connect internal
connected创建数据库
启动例程并创建数据库
SQLDBA>startup nomount
SQLDBA>create database test 
        2>datafile 'system.dbs' size 10M
        3>logfile '/u01/oracle/testdb/log1.rdo' size 500K,
        4>logfile '/u02/oracle/testdb/logl2.rdo' size 500K ;创建数据字典
执行一系列的SQL脚本
SQLDBA>@?/rdbms/admin/catalog             --创建常用的数据字典
SQLDBA>@?/rdbms/admin/expview.sql    --创建用于运行export和import工具所需的试图还有其他sql脚本....,不一一列举
必要时,增加另外的Redo log文件和control文件 
创建表空间
SQLDBA>create tablespace class datafile '/u01/ORACLE/testdb/class01.dbf size 300M;
SQLDBA>create tablespace classinx datafile '/u01/ORACLE/testdb/classinx1.dbf size 200M;
SQLDBA>create tablespace rbs datafile '/u01/ORACLE/testdb/rbs01.dbf size 100M;
SQLDBA>create tablespace temp datafile '/u01/ORACLE/testdb/class01.dbf size 100M;
创建回退段
SQLDBA>create rollback segment rbl tablespace rbs ;
以上的是在Unix下用命令行方式建立数据库的方法,当然,你也可以用SQL*DBA或Server manager等Oracle 提供的界面工具来交互的建立数据库。 在NT下,通常是通过各种工具来建立数据库在Oracle 8i中,提供了多种工具,简化了以上烦琐的步骤
这些工具有:
Oracle Database Configuration Assistant 
Instance Manager 
Server Manager 
Oracle Administration Assistant for Windows NT 
Data Management Wizards 等。  
 

解决方案 »

  1.   

    手工创建数据库的全部脚本及说明  
    系统环境: 
    1、操作系统:Windows 2000 Server,机器内存128M
    2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
    3、安装路径:D:\ORACLE建库步骤: 
    1、手工创建相关目录
    D:\Oracle\admin\test
    D:\Oracle\admin\test\adhoc
    D:\Oracle\admin\test\bdump
    D:\Oracle\admin\test\cdump
    D:\Oracle\admin\test\create
    D:\Oracle\admin\test\exp
    D:\Oracle\admin\test\pfile
    D:\Oracle\admin\test\udumpD:\Oracle\oradata\test
    D:\Oracle\oradata\test\archive2、手工创建初始化启动参数文件:D:\Oracle\admin\test\pfile\inittest.ora,内容:3、手工创建D:\Oracle\Ora81\DATABASE\inittest.ora文件,   内容:IFILE='D:\Oracle\admin\test\pfile\inittest.ora'4、使用orapwd.exe命令,创建D:\Oracle\Ora81\DATABASE\PWDtest.ora   命令:D:\Oracle\Ora81\bin\orapwd file=D:\Oracle\Ora81\DATABASE\PWDtest.ora password=ORACLE entries=5
    5、通过oradim.exe命令,在服务里生成一个新的实例管理服务,启动方式为手工
       set ORACLE_SID=test
       D:\Oracle\Ora81\bin\oradim -new -sid test -startmode manual -pfile "D:\Oracle\admin\test\pfile\inittest.ora"6、生成各种数据库对象
    D:\>svrmgrl--创建数据库
    connect INTERNAL/oracle
    startup nomount pfile="D:\Oracle\admin\test\pfile\inittest.ora"
    CREATE DATABASE test
    LOGFILE 'D:\Oracle\oradata\test\redo01.log' SIZE 2048K,
        'D:\Oracle\oradata\test\redo02.log' SIZE 2048K,
        'D:\Oracle\oradata\test\redo03.log' SIZE 2048K
    MAXLOGFILES 32
    MAXLOGMEMBERS 2
    MAXLOGHISTORY 1
    DATAFILE 'D:\Oracle\oradata\test\system01.dbf' SIZE 58M  REUSE AUTOEXTEND ON NEXT 640K
    MAXDATAFILES 254
    MAXINSTANCES 1
    CHARACTER SET ZHS16GBK
    NATIONAL CHARACTER SET ZHS16GBK;控制文件、日志文件在上面语句执行时生成
    connect INTERNAL/oracle
    --修改系统表空间
    ALTER TABLESPACE SYSTEM DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 50);
    ALTER TABLESPACE SYSTEM MINIMUM EXTENT 64K;--创建回滚表空间
    CREATE TABLESPACE RBS DATAFILE 'D:\Oracle\oradata\test\rbs01.dbf' SIZE 256M REUSE
    AUTOEXTEND ON NEXT 5120K
    MINIMUM EXTENT 512K
    DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);--创建用户表空间
    CREATE TABLESPACE USERS DATAFILE 'D:\Oracle\oradata\test\users01.dbf' SIZE 128M REUSE
    AUTOEXTEND ON NEXT 1280K
    MINIMUM EXTENT 128K
    DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);--创建临时表空间
    CREATE TABLESPACE TEMP DATAFILE 'D:\Oracle\oradata\test\temp01.dbf' SIZE 32M REUSE
    AUTOEXTEND ON NEXT 640K
    MINIMUM EXTENT 64K
    DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY;--创建工具表空间
    CREATE TABLESPACE TOOLS DATAFILE 'D:\Oracle\oradata\test\tools01.dbf' SIZE 64M REUSE
    AUTOEXTEND ON NEXT 320K
    MINIMUM EXTENT 32K
    DEFAULT STORAGE ( INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);--创建索引表空间
    CREATE TABLESPACE INDX DATAFILE 'D:\Oracle\oradata\test\indx01.dbf' SIZE 32M REUSE
    AUTOEXTEND ON NEXT 1280K
    MINIMUM EXTENT 128K
    DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);--创建回滚段
    CREATE PUBLIC ROLLBACK SEGMENT RBS0 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS1 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS2 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS3 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS4 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS5 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS6 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS7 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS8 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS9 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS10 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS11 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS12 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS13 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS14 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS15 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS16 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS17 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS18 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS19 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS20 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS21 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS22 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS23 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
    CREATE PUBLIC ROLLBACK SEGMENT RBS24 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );--使回滚段在线
    ALTER ROLLBACK SEGMENT "RBS0" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS1" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS2" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS3" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS4" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS5" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS6" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS7" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS8" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS9" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS10" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS11" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS12" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS13" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS14" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS15" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS16" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS17" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS18" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS19" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS20" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS21" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS22" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS23" ONLINE;
    ALTER ROLLBACK SEGMENT "RBS24" ONLINE;--修改sys用户的临时表空间为TEMP
    alter user sys temporary tablespace TEMP;--创建数据字典表
    @D:\Oracle\Ora81\Rdbms\admin\catalog.sql;
    @D:\Oracle\Ora81\Rdbms\admin\catexp7.sql
    @D:\Oracle\Ora81\Rdbms\admin\catproc.sql
    @D:\Oracle\Ora81\Rdbms\admin\caths.sqlconnect system/manager
    @D:\Oracle\Ora81\sqlplus\admin\pupbld.sqlconnect internal/oracle
    @D:\Oracle\Ora81\Rdbms\admin\catrep.sql
    exit--生成SQL*Plus帮助系统
    sqlplus SYSTEM/manager
    @D:\Oracle\Ora81\sqlplus\admin\help\helpbld.sql helpus.sql
    exit--修改system用户默认表空间和临时表空间
    svrmgrl
    connect internal/oracle
    alter user system default tablespace TOOLS;
    alter user system temporary tablespace TEMP;
    exit7、将test实例启动服务设置成自动启动方式
    D:\Oracle\Ora81\bin\oradim -edit -sid test -startmode auto 
      

  2.   

    利用oracle的database configuration tools,最后选择生成建库脚本。