您的位置:首页 > 数据库

手动创建数据库的步骤

2007-05-23 17:14 555 查看
  
手动创建数据库的步骤:
 
第一步:决定数据库实例的SID
数据库实例的SID用来将当前实例和以后可能创建的实例进行区分
% setenv ORACLE_SID mynewdb
 
 
第二步:建立数据库管理员认证方法
 
 
第三步:创建初始化参数文件
实例(由内存结构SAG和后台进程组成)启动过程中要读取初始化参数文件。得到初始化参数文件的一个好办法是修改一个已有的初始化参数文件。为了简化操作,将初始化参数文件放在Oracle默认的位置上,这样的话,当数据库启动时,就没有必要再指定pfile参数了,因为Oracle会自动寻找在默认位置的初始化参数文件。
Platform                  Default Name                  Default Location
UNIX                    init$ORACLE_SID.ora          $ORACLE_HOME/dbs
Windows                  init$ORACLE_SID.ora          $ORACLE_HOME/database
如果一个数据库的名字是mynewdb,下面就是该数据库的初始化文件:
[align=left]# Cache and I/O[/align]
[align=left]DB_BLOCK_SIZE=4096[/align]
[align=left]DB_CACHE_SIZE=20971520[/align]
[align=left] [/align]
[align=left]# Cursors and Library Cache[/align]
[align=left]CURSOR_SHARING=SIMILAR[/align]
[align=left]OPEN_CURSORS=300[/align]
[align=left] [/align]
[align=left]# Diagnostics and Statistics[/align]
[align=left]BACKGROUND_DUMP_DEST=/vobs/oracle/admin/mynewdb/bdump[/align]
[align=left]CORE_DUMP_DEST=/vobs/oracle/admin/mynewdb/cdump[/align]
[align=left]TIMED_STATISTICS=TRUE[/align]
[align=left]USER_DUMP_DEST=/vobs/oracle/admin/mynewdb/udump[/align]
[align=left] [/align]
[align=left]# Control File Configuration[/align]
[align=left]CONTROL_FILES=("/vobs/oracle/oradata/mynewdb/control01.ctl",[/align]
[align=left]"/vobs/oracle/oradata/mynewdb/control02.ctl",[/align]
[align=left]"/vobs/oracle/oradata/mynewdb/control03.ctl")[/align]
[align=left] [/align]
[align=left]# Archive[/align]
[align=left]LOG_ARCHIVE_DEST_1='LOCATION=/vobs/oracle/oradata/mynewdb/archive'[/align]
[align=left]LOG_ARCHIVE_FORMAT=%t_%s.dbf[/align]
[align=left]LOG_ARCHIVE_START=TRUE[/align]
[align=left] [/align]
[align=left]# Shared Server[/align]
[align=left]# Uncomment and use first DISPATCHES parameter below when your listener is[/align]
[align=left]# configured for SSL[/align]
[align=left]# (listener.ora and sqlnet.ora)[/align]
[align=left]# DISPATCHERS = "(PROTOCOL=TCPS)(SER=MODOSE)",[/align]
[align=left]# "(PROTOCOL=TCPS)(PRE=oracle.aurora.server.SGiopServer)"[/align]
[align=left]DISPATCHERS="(PROTOCOL=TCP)(SER=MODOSE)",[/align]
[align=left]"(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)",[/align]
[align=left](PROTOCOL=TCP)[/align]
[align=left]# Miscellaneous[/align]
[align=left]COMPATIBLE=9.2.0[/align]
[align=left]DB_NAME=mynewdb[/align]
[align=left]# Distributed, Replication and Snapshot[/align]
[align=left]DB_DOMAIN=us.oracle.com[/align]
[align=left]REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE[/align]
[align=left]# Network Registration[/align]
INSTANCE_NAME=mynewdb
 
[align=left]# Pools[/align]
[align=left]JAVA_POOL_SIZE=31457280[/align]
[align=left]LARGE_POOL_SIZE=1048576[/align]
[align=left]SHARED_POOL_SIZE=52428800[/align]
[align=left]# Processes and Sessions[/align]
[align=left]PROCESSES=150[/align]
[align=left]# Redo Log and Recovery[/align]
[align=left]FAST_START_MTTR_TARGET=300[/align]
[align=left]# Resource Manager[/align]
[align=left]RESOURCE_MANAGER_PLAN=SYSTEM_PLAN[/align]
[align=left]# Sort, Hash Joins, Bitmap Indexes[/align]
[align=left]SORT_AREA_SIZE=524288[/align]
[align=left]# Automatic Undo Management[/align]
[align=left]UNDO_MANAGEMENT=AUTO[/align]
UNDO_TABLESPACE=undotbs
 
第四步:连接到实例
[align=left]$ SQLPLUS /nolog[/align]
CONNECT SYS/password AS SYSDBA
 
第五步:启动实例
不mount数据库,仅仅启动实例。通常,只是在创建和维护数据库的时候才这样做。
STARTUP NOMOUNT
此时,数据库并不存在,只有SGA和后台进程被创建。
 
 
第六步:调用create database语句
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY pz6r58
USER SYSTEM IDENTIFIED BY y1tz5p
LOGFILE GROUP 1 ('/vobs/oracle/oradata/mynewdb/redo01.log') SIZE 100M,
GROUP 2 ('/vobs/oracle/oradata/mynewdb/redo02.log') SIZE 100M,
GROUP 3 ('/vobs/oracle/oradata/mynewdb/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/vobs/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE tempts1
DATAFILE '/vobs/oracle/oradata/mynewdb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/vobs/oracle/oradata/mynewdb/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED;
数据库创建之后,数据库名称是mynewdb,它的全局数据库名是mynewdb.us.oracle.com。控制文件通过初始化参数CONTROL_FILES来创建。SYS用户的密码是pz6r58,SYSTEM用户的密码是y1tz5p。这两个子句在Oracle9i中是可选,但是如果设定了任何一个密码,那么两个密码都必须设定。该数据库有三个在线重做日志组,通过LOGFILE子句来指定,MAXLOGFILES, MAXLOGMEMBERS, and MAXLOGHISTORY都是对日志文件的限制。MAXDATAFILES指定了数据库可以打开的数据文件的最大数量,该数量会影响到控制文件的大小。在创建数据库的过程中所设定的参数,有些会受到其他因素的影响。比如,设定了MAXDATAFILES之后,Oracle在控制文件中要分配空间存放数据文件的文件名,即使数据库只有一个数据文件。然而,因为控制文件本身也有大小的限制(跟操作系统有关),很有可能不能把所有CREATE DATABASE的参数都设置为他们理论上的最大值。
MAXINSTANCES指定了只有一个实例能够mount和打开数据库。US7ASCII字符集被指定为数据库保存数据使用的字符集。系统表空间由/vobs/oracle/oradata/mynewdb/system01.dbf组成,如果该文件已经存在,将会被重写。系统表空间是本地化管理的表空间。
DEFAULT_TEMPORARY_TABLESPACE子句创建并命名了一个默认的临时表空间。UNDO_TABLESPACE子句创建并命名了一个撤销表空间,用来存储撤销记录,前提是在初始化参数文件中把UNDO_MANAGEMENT设定为AUTO。因为ARCHIVELOG子句在CREATE DATABASE语句中没有调用,因此重做日志文件并不会被归档,这是数据库创建过程的通常做法,ALTER DATABASE语句可以用来切换到ARCHIVELOG模式。初始化文件中的LOG_ARCHIVE_DEST_1,LOG_ARCHIVE_FORMAT, and LOG_ARCHIVE_START三个参数与归档有关。
 
 
 
 
第七步:创建额外的表空间
为了使数据局效率更高,需要创建额外的表空间和文件
[align=left]CONNECT SYS/password AS SYSDBA[/align]
[align=left]-- create a user tablespace to be assigned as the default tablespace for users[/align]
[align=left]CREATE TABLESPACE users LOGGING[/align]
[align=left]DATAFILE '/vobs/oracle/oradata/mynewdb/users01.dbf'[/align]
[align=left]SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED[/align]
[align=left]EXTENT MANAGEMENT LOCAL;[/align]
[align=left]-- create a tablespace for indexes, separate from user tablespace[/align]
[align=left]CREATE TABLESPACE indx LOGGING[/align]
[align=left]DATAFILE '/vobs/oracle/oradata/mynewdb/indx01.dbf'[/align]
[align=left]SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED[/align]
[align=left]EXTENT MANAGEMENT LOCAL;[/align]
EXIT
 
第八步:创建服务器参数文件
Oracle建议创建一个服务器参数文件,作为维护初始化参数的动态方式。下面的脚本根据初始化参数文件创建了一个服务器初始化参数文件,并把该初始化参数文件放在默认位置。实例关闭后重新启动时,就会使用默认位置的服务器初始化参数文件。
[align=left]CONNECT SYS/password AS SYSDBA[/align]
[align=left]-- create the server parameter file[/align]
[align=left]CREATE SPFILE='/vobs/oracle/dbs/spfilemynewdb.ora' FROM[/align]
[align=left]PFILE='/vobs/oracle/admin/mynewdb/scripts/init.ora';[/align]
[align=left]SHUTDOWN[/align]
[align=left]-- this time you will start up using the server parameter file[/align]
[align=left]CONNECT SYS/password AS SYSDBA[/align]
[align=left]STARTUP[/align]
EXIT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息