创建一个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、操作系统: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/udump D:/Oracle/oradata/test D:/Oracle/oradata/test/archive 2、手工创建初始化启动参数文件: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.sql connect system/manager @D:/Oracle/Ora81/sqlplus/admin/pupbld.sql connect 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; exit 7、将test实例启动服务设置成自动启动方式 D:/Oracle/Ora81/bin/oradim -edit -sid test -startmode auto