日期:2014-05-16  浏览次数:20392 次

手动创建数据库步骤

创建数据库前的规划:
1.预估表和索引所占空间大小
2.计划数据库文件在操作系统的分布(如:将REDO日志文件放在单独的磁盘或者磁带上)
3.选择一个全局数据库名(设置DB_NAME和DB_DOMAIN)
4.服务器参数文件配置
5.选择数据库字符集
6.选择支持的时区(缺省时区文件是timezlrg_11.dat)
7.选择标准的数据块大小
8.考虑是否手动指定在线重做日志的块大小
9.决定SYSAUX表空间的初始大小
10.给非SYSTEM用户创建(定义)一个缺省的表空间(不要使用系统表空间)
11.计划使用UNDO表空间来管理UNDO数据
12.规划一个备份和恢复的策略方案
13.熟悉开启/关闭实例、挂载数据库、打开数据库等原理

两种方式创建数据库:
一.使用DBCA工具创建
DBCA有两种运行模式,一种是图形化界面(交互模式);一种是命令界面(静默安装).
DBCA命令行模式安装:
例:

dbca -silent -createDatabase -templateName General_Purpose.dbc
  -gdbname ora11g -sid ora11g -responseFile NO_VALUE -characterSet AL32UTF8
  -memoryPercentage 30 -emConfiguration LOCAL
  
Enter SYSTEM user password:
password
Enter SYS user password:
password
Copying database files
1% complete
3% complete


...
具体命令操作,请看 dbca -help。

二.使用CREATE DATABASE命令创建
使用CREATE DATABASE建库的优点在于可以使用脚本,实现自动建库.
使用CREATE DATABASE建库需要手动建立基于数据字典表的视图以及手动安装PL/SQL系统包.
步骤:
1.指定SID
通常SID名和数据库名是一致的(数据库名最大只能为8个字符).
WIN平台: SET ORACLE_SID=mynewdb
LINUX:   ORACLE_SID=mynewdb
               export ORACLE_SID
2.环境变量设置
ORACLE_SID和ORACLE_HOME必须设置,PATH环境变量最好包含ORACLE_HOME/bin路径,这样SQL*PLUS,NETCA工具才方便运行.
3.选择数据库管理员验证方式
两种方式:密码文件验证、操作系统验证
密码文件验证需要创建密码文件.操作系统验证需要安装用户为Oracle DBA Group组的.
4.创建初始化参数文件
创建文本,编辑文本,输入各个参数,建议至少包含以下3个参数(最小化参数),没有的参数会自动取缺省值:
DB_NAME:最大8个字符,应当与CREATE DATABASE命令中的数据库名一致.
CONTROL_FILES:如果没有此参数,数据库会自动创建一个控制文件在参数文件的目录下.
MEMORY_TARGET:开启自动内存管理,并设置总的使用内存数量.你可以使用更多的内存使用控制参数来代替这个参数.
建议建立参数文件在数据库的缺省位置,使用指定的文件名,这样启动时就不用指定PFILE参数了.
5.(仅针对windows)创建实例
格式:

oradim -NEW -SID sid -STARTMODE MANUAL -PFILE pfile


这样会在windows的服务里产生一个OracleServicesid的服务.
这里请不要设置ORADIM -STARTMODE参数为AUTO,因为这样它会自动开启这个创建的实例,并尝试挂载数据库.
6.连接实例(注意不是数据库)
使用SQL*PLUS:
密码验证方式下:

$ sqlplus /nolog
SQL> CONNECT SYS AS SYSDBA


OS验证方式下:

$ sqlplus /nolog
SQL> CONNECT / AS SYSDBA


成功连接后,SQL*PLUS返回 Connected to an idle instance.
7.创建服务器参数文件

CREATE SPFILE FROM PFILE;


可通过ALTER SYSTEM改变服务器参数文件(SPFILE)内容.
8.启动实例(没有挂载数据库)

STARTUP NOMOUNT;


到这里开始分配实例内存,并启动相关的进程.
9.执行CREATE DATABASE命令
注意DB_NAME要和参数文件中的一致
例:

CREATE DATABASE mynewdb
   USER SYS IDENTIFIED BY sys_password
   USER SYSTEM IDENTIFIED BY system_password
   LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') SIZE 100M BLOCKSIZE 512,
           GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') SIZE 100M BLOCKSIZE 512,
           GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') SIZE 100M BLOCKSIZE 512
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   CHARACTER SET US7ASCII
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE '/u01/app/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
   SYSAUX DATAFILE '/u01/app/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE users
      DATAFILE '/u01/app/oracle/oradata/mynewdb/users01.dbf'
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/u01/app/oracle/oradata/mynewdb/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs
      DATAFILE '/u01/app/oracle/oradata/mynewdb/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;


假定控制文件已经在参数文件中指定了.
从Release 11g开始,SYS或SYSTEM的密码是大小写敏感的.
上面的建库命令指定了3个REDO日志组,每个组2个文件,指定了最大日志文件数、成员数、数据文件数.REDO日志的块大小设置为512(可以设置为512,1024,4096).
数据存储字符集设置为US7ASCII,国家字符集设置为AL16UTF16,影响NCHAR, NCLOB,NVARCHAR2等列数据的存储.
创建