手动创建数据库步骤

创建数据库前的规划:
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等列数据的存储.
创建了SYSTEM表空间、SYSAUX表空间,创建了USERS缺省表空间、临时表空间tempts1、UNDO表空间undotbs.

EXTENT MANAGEMENT LOCAL指定了采用本地管理表空间模式管理表空间,如果省略此子句,缺省则为字典管理表空间模式,此模式oracle不建议使用.

如果忽略UNDO表空间创建,系统会自动创建一个SYS_UNDOTBS的UNDO表空间.

如果忽略临时表空间创建,系统会使用SYSTEM表空间作为缺省的临时表空间(如果SYSTEM表空间为本地管理表空间模式,则SYSTEM表空间不能作为临时表空间,那么必须创建一个缺省的临时表空间).

 

使用OMF(Oracle Managed Files)建库:
需要设置DB_CREATE_FILE_DEST初始化参数,如:DB_CREATE_FILE_DEST='/u01/app/oracle/oradata'
例:

CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE temp
UNDO TABLESPACE undotbs1
DEFAULT TABLESPACE users;


10.创建其他表空间
例如:

CREATE TABLESPACE apps_tbs LOGGING 
     DATAFILE '/u01/app/oracle/oradata/mynewdb/apps01.dbf' 
     SIZE 500M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED 
     EXTENT MANAGEMENT LOCAL;
-- 给索引创建单独的表空间
CREATE TABLESPACE indx_tbs LOGGING 
     DATAFILE '/u01/app/oracle/oradata/mynewdb/indx01.dbf' 
     SIZE 100M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED 
     EXTENT MANAGEMENT LOCAL;


11.使用脚本建立数据字典
使用脚本建立数据字典视图、同义词、PL/SQL系统包等。
SQL*PLUS下执行:

@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql
exit


其中catalog.sql脚本创建了数据字典表,动态性能视图,公共同义词
其中catproc.sql脚本包含了所有PL/SQL运行需要或使用的脚本
其中pupbld.sql脚本是SQL*PLUS使用所需要的.

12.安装其他脚本(可选的)
根据应用需要或者安装其他oracle产品,运行相应的脚本文件

13.备份数据库
在安装完成后,应当进行一次数据库全库备份以防止介质损坏发生.

 

 

你可能感兴趣的:(手动创建数据库步骤)