日期:2014-05-16 浏览次数:20416 次
创建数据库前的规划:
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等列数据的存储.
创建