成功之路:ORACLE 11g学习笔记
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.3 创建Oracle 11g数据库(Windows平台)

在前面的章节中,我们只是介绍了Oracle数据库服务器的安装,并未涉及数据库的创建。也就是说,到目前为止,我们还没有一个自己的数据库,相信大家期盼创建数据库这一刻已经许久了吧。

有两种方式可以创建数据库:一种是使用图形界面工具DBCA(Database Configuration Assistant),又叫“数据库配置助手”,该工具允许与用户交互,界面友好,是使用频率最高的工具;另外一种方式是使用语句CREATE DATABASE,这是一种基于命令行的方式。两种方式创建数据库的效果几乎相同。由于DBCA简单、易于掌握,本书将重点介绍DBCA,在创建数据库的过程中,将引入Oracle体系结构的一些基本概念,这是本书的特点,希望大家能喜欢这种方式。

创建目录。

在操作系统中,创建目录F:\newdb,该目录用于存放Oracle所有的数据文件。

启动DBCA。

a 以操作系统管理员的身份登录操作系统。

b 依次选择“开始(Start)”➔“所有程序(All Programs)”➔“Oracle主目录(HOME_NAME)”➔“配置和移植工具(Configuration and Migration Tools)”➔“数据库配置助手(Database Configuration Assistant)”,即可启动DBCA。

如果在UNIX、Linux平台,输入命令dbca启动DBCA。dbca命令位于Oracle_home/bin下。启动DBCA后,其界面如图2-9所示。

图2-9 DBCA首页

知识点索引——在Linux下启动DBCA

在Linux平台,执行下面的过程启动DBCA:

1)切换到用户oracle。

    [root@zzp ~]# su – oracle

2)输入命令dbca。

    [oracle@zzp ~]$dbca

DBCA首页。

单击 按钮,进入如图2-10所示的界面。

图2-10 DBCA配置选择

DBCA配置选择。

选择“创建数据库”,单击 按钮,进入如图2-11所示的界面。

图2-11 数据库模板

数据库模板。

我们可以创建三种类型的数据库:

一般用途或事务处理(General purpose or transaction processing)

数据仓库(Data warehouse),也可以叫决策支持系统(Decision Support Systems, DSS)。在这种类型的数据库中,用户执行大量的联机分析处理(Online Analytical Processing,OLAP)。联机分析处理将执行大量的查询(Query),涉及大量的数据。这是一种以“读”为主的数据库。

定制数据库(Custom Database),顾名思义,就是可以根据需要对数据库进行定制。选择“定制数据库”,单击 按钮,进入如图2-12所示的界面。

图2-12 数据库名和实例名

设置数据库名和实例名。

知识点索引——数据库名和实例名

数据库名(Database Name)

数据库名用于标识一个数据库。

实例名(System Identifier,SID)

实例名又叫系统标识符(SID),用于唯一地标识一个实例,实例是内存和后台进程的集合。

数据库名和实例名的关系

数据库名(Database Name)和实例名(SID)是两个概念,在RAC(集群)环境下,多个实例可以同时打开一个数据库。数据库名和实例名可以不同。通常,在单机环境下,数据库名和实例名相同。

本例中,输入全局数据名zdb和实例名zdb以后,单击 按钮,进入如图2-13所示的界面。

图2-13 配置企业管理器

配置企业管理器。

知识点索引——为什么配置企业管理器

如果想通过Web页面管理数据库,请选中“配置Enterprise Manager”。“启用预警通知”是一项比较有用的功能。输入邮箱及SMTP的地址,当Oracle有异常出现的时候,会通过E-mail的形式通知你,说你的数据库哪里出了问题,需要你关注一下。

单击 按钮,进入如图2-14所示的界面。

图2-14 管理员密码设置

设置管理员密码。

本例中,把数据库管理员SYS和SYSTEM的密码都设置成zero,单击 按钮,进入如图2-15所示的界面。

图2-15 存储方式选择

存储方式选择。

知识点索引——存储知识

Oracle提供三种方式对数据进行存储:文件系统(File System)、自动存储管理(Automatic Storage Management,ASM)和裸设备(Raw Device)。

文件系统(File System):文件系统是使用得最频繁的一种存储方式。如果使用文件系统,Oracle将把数据文件存放到文件系统的一个目录中。

✓ 普通文件系统,这是在普通磁盘上创建的文件系统。在分布数据文件的时候,建议大家遵循OFA(Optimal Flexible Architecture)的原则。

✓ 建立在逻辑卷(Logical Volume Manager,LVM)或者RAID设备上的文件系统。如果要使用这样的文件系统,Oracle推荐使用先条块化、后镜像(Stripe-And-Mirror)的机制,使用这种机制在提高性能的同时,还可以提高数据的可靠性。

自动存储管理(Automatic Storage Management,ASM):在这里,我们把它叫做“自动存储管理”。ASM是一种Oracle存储的解决机制,它免去了DBA对磁盘I/O的手动调整,简化了数据库的动态管理,如:创建和分布数据库、磁盘空间管理。ASM是Oracle 10g的新特性之一。

裸设备(Raw Device):裸设备也是应用得比较广泛的一种存储技术。它绕过了操作系统,由Oracle直接对存放在裸磁盘上的数据进行读/写。对于文件系统来说,如果我们要写数据,Oracle首先把数据交给操作系统,再由操作系统写磁盘。裸设备的读写机制正好绕过了操作系统这一层。

Oracle三种存储机制各有千秋,不能一概而论。在对系统进行设计的时候,我们应该进行测试(各个厂商提供的设备不尽相同),系统的部署是建立在测试基础之上的。只有测试以后,我们才能选择使用何种机制来分布Oracle的数据。

选择“文件系统”,单击 按钮,进入如图2-16所示的界面。

图2-16 数据文件的分布方式

指定数据文件的分布方式。

知识点索引——数据文件的分布方式

✓ 选择“使用模板中的数据库文件位置(Use Database File Locations from Template)”,则使用Oracle预先设置好的模板进行文件的分布。

✓ 选择“所有数据库文件使用公共位置(Use Common Location for All Database Files)”,则所有的数据文件都放在相同的目录之下。

✓ 选择“使用Oracle-Managed Files”,则使用Oracle管理的文件,这种方法可以简化文件的管理。例如,当删除一个表空间的时候,Oracle将自动删除该表空间相应的数据文件(操作系统文件),而不需要DBA手工使用操作系统命令删除这些文件。

在本例中,选择“所有数据库文件使用公共位置”,输入F:\newdb,单击 按钮,进入如图2-17所示的界面。

图2-17 配置恢复区和归档

配置恢复区和归档。

指定快速恢复区,这是Oracle 10g的新特性,这个特性可以把数据库闪回(Flash)到以前的某个状态。

启用归档,则使创建的数据库运行于归档模式。“启用归档”涉及数据库的备份和恢复,是数据库备份/恢复机制的组成部分。有关归档的相关知识,请参考本书22.6.1节的内容。

选中“指定快速恢复区”,指定快速恢复区的路径和大小。启用归档,单击 按钮,进入如图2-18所示的界面。

图2-18 配置数据库组件

配置数据库组件。

选择安装的数据库组件及这些组件存放的表空间(表空间的概念,请参考本书第7章的内容)。单击 按钮,进入如图2-19所示的界面。

图2-19 内存设置

内存设置。

有两种方式设置内存的大小,一种是“典型”,另外一种是“定制”。“定制”允许用户分别对SGA(系统全局区)和PGA(程序全局区)进行单独设置。

初始化参数SGA_TARGET控制是否启用内存自动管理。

SGA(系统全局区)和PGA的介绍,请参考本书第9章的内容。

单击 标签,出现如图2-20所示的界面。

图2-20 块和进程数的设置

块和进程数的设置。

知识点索引——块(Block)

数据块,本书简称为“块”,是Oracle最小的存储单位,Oracle数据存放在“块”中。一个块占用一定的磁盘空间。特别注意的是,这里的“块”是Oracle的“数据块”,不是操作系统的“块”。

Oracle每次请求数据的时候,都是以块为单位。也就是说,Oracle每次请求的数据是块的整数倍。如果Oracle请求的数据量不到一块,Oracle也会读取整个块。所以说,“块”是Oracle读写数据的最小单位或者最基本的单位。

块的标准大小由初始化参数DB_BLOCK_SIZE指定。具有标准大小的块称为标准块(Standard Block)。块大小和标准块大小不同的块叫非标准块(Nonstandard Block)。在同一数据库中,Oracle9i及以上版本支持同一数据库中同时使用标准块和非标准块。Oracle允许指定5种非标准块。

操作系统每次执行读写(I/O)的时候,是以操作系统的块为单位;Oracle每次执行读写(I/O)的时候,都是以Oracle的块为单位。

如果是数据仓库,块越大越好。

在数据库创建完成以后,就不能够对块的尺寸进行修改。

把进程数设置成200,其他选项保留默认设置,单击 标签,进入如图2-21所示的界面。

图2-21 字符集设置

字符集设置。

通常的简体中文字符集是ZHS16GBK,国家字符集选择AL16UTF16。 国家字符集允许在一个数据库中存放多国语言表示的数据。

单击 标签,进入如图2-22所示的界面。

图2-22 配置共享服务器模式

配置共享服务器模式。

知识点索引——专有服务器模式

专有服务器模式(Dedicated Server Mode)是Oracle一种特殊的进程结构。其体系结构如图2-23所示。

图2-23 专有服务器模式的体系结构

在专有服务器模式中,用户进程运行在客户端的机器上,专有服务器进程运行在数据库服务器端的机器上。用户进程和专有服务器进程是两种不同类型的进程。当客户端发出连接数据库请求的时候,监听器把客户端(用户进程)连接到专有服务器进程。即使这个服务器进程很空闲,这个专有服务器进程也只为这个用户进程服务。用户进程和专有服务器进程之间是一一对应的关系。

专有服务器模式有自己的优点,它适合于下面的应用:

✓ 批处理,批处理使服务器进程一直处于忙碌的状态,这就不会造成服务器进程的空闲,导致系统资源的浪费。

✓ 使用Recovery Manager(RMAN)进行备份或者恢复。

当第一个用户登录的时候,监听器会启动一个专有服务器进程为这个用户服务;当第N个用户登录的时候,监听器会启动第N个专有服务器进程为这个用户服务。随着登录用户数量的增加,系统的负担也相应增加。到了一定的时候,数据库服务器将不堪重负,所以,专有服务器模式限制了应用的可扩展性。

有关进程的信息,请参考本书第10章的内容。

知识点索引——共享服务器模式(Shared Server Mode)

共享服务器模式中,调度进程(Dispatcher)接受多个客户端(用户进程)的连接请求,并把这些请求放到一个公共队列中。空闲的服务器进程从这个公共队列中抓出这些请求,然后完成请求的任务,并把结果放到响应队列中,调度进程再从响应队列中把完成的结果返回给用户进程(客户端)。

由于一个服务器进程不再专为一个用户进程服务,而是为所有的用户进程服务,因此,共享服务器模式在不消耗太多系统资源的情况下,能够支持更多的并发用户连接,提高应用程序的可扩展性。

一个共享服务器模式的系统由下面三个部分组成。

✓ 监听器

✓ 一个或者多个调度进程(Dispatcher Processes)

✓ 一个或者多个共享服务器进程(Shared Server Processes)

共享服务器的框架结构如图2-24所示。

图2-24 共享服务器模式的体系结构

选择“共享服务器模式”,输入初始创建的服务器进程数为5,单击 按钮,进入如图2-25所示的界面。

图2-25 安全设置

安全设置。

选择“保留增强的11g默认安全设置(建议)”,单击 按钮,进入如图2-26所示的界面。

图2-26 自动维护任务

启用自动维护任务。

知识点索引——自动维护任务

自动维护任务(Automatic Maintenance Tasks)指Oracle会自动地对数据库进行维护。这些维护包括:自动收集统计信息、自动地对段(Segment)进行监控、自动标识效率低下的SQL语句。这是11g的新特性。

选择“启用自动维护任务”,单击 按钮。

数据库存储设置。

单击 ,出现如图2-27所示的界面,在该界面中可以修改控制文件的名字和路径,还可以添加新的控制文件。本例中,增加控制文件mycontrol.ctl,路径是F:\newdb。展开 ,出现如图2-28所示的界面。

图2-27 增加控制文件

图2-28 设置表空间

在该界面中,可以修改组成表空间的数据文件的名字、位置及尺寸等参数。

展开 ,出现如图2-29所示的界面。

图2-29 修改数据文件

在该界面中,可以修改数据文件的名字、路径和尺寸,还可以添加新的数据文件。

展开 ,出现如图2-30所示的界面。

图2-30 修改重做日志组文件

在默认情况下,有三组重做日志组,每组中只有一个成员(文件),但每组中至少需要两个成员。本例中,往重做日志组1中添加文件F:\newdb\myredo02.log。

单击 按钮,进入如图2-31所示的界面。

图2-31 创建选项

单击 按钮并确定,出现如图2-32所示的界面,开始创建数据库。

图2-32 开始创建数据库

正在创建数据库。

创建数据库的过程较为漫长,需要我们耐心等待。安装完成后,出现如图2-33所示的界面。

图2-33 安装完成

安装完成。

我们可以单击 按钮设置Oracle内置用户的口令。单击 按钮,Oracle数据库创建成功完成。至此,我们创建了一个名叫zdb的数据库,实例名(SID)也是zdb。配置监听器和Oracle客户端时,将会用到数据库名和实例名,这些信息就是从这里产生的。