第5章 数据库的创建
我们知道,一个数据库服务器包括实例和数据库两部分,其中数据库是存储在硬盘上的文件,而实例则是一组内存结构和后台进程的集合。数据库的创建意味着要创建实例和数据库两部分。
在安装Oracle 11g软件时,安装向导将引导用户创建一个数据库。此后,数据库管理员可以根据需要再创建一个数据库。在一台计算机上可以运行多个数据库服务器。
通常所说的“创建数据库”实际上就是指创建一个新的数据库服务器。创建数据库服务器涉及两方面的内容,即创建实例和创建数据库。创建实例涉及创建参数文件、创建口令文件、指定SGA、启动实例等。而创建数据库则涉及创建数据文件、创建控制文件、创建重做日志文件等操作。数据库管理员应该首先创建实例,在实例启动后再创建数据库。考虑到数据库服务器运行的安全、高效等要求,在创建数据库之前需要进行详细、周密的规划。
Oracle提供了两种创建数据库的方式,一种是利用DBCA(Database Configuration Assistant)工具的方式,另一种是利用命令行的方式。其中DBCA是Oracle提供的一个图形化工具,利用这个工具可以方便地创建实例和数据库,而不必记忆复杂的命令,这个工具对初学者非常合适。命令行的方式比较复杂,需要用户执行大量的操作系统命令和SQL命令,这种方式要求用户对命令的用法十分熟悉。初学者可能会感到第二种方式很困难,但是只要读者能克服困难,坚持用命令行的方式创建数据库,直到成功,那么你对实例和数据库的结构将会有更深刻的理解,你所获得的成就感是用DBCA方式时所体会不到的。
5.1 数据库的规划
在创建数据库之前,应该进行详尽的规划,因为数据库一旦投入运行,很多信息是根本无法改变的,或者需要耗费大量的人力、财力和时间才能修改。实践证明,许多系统集成公司的工程师在创建数据库时仅仅凭一纸安装文档,虽然能够成功,但是这样的数据库由于缺少规划,在运行一段时间后,就会暴露出很多问题。因此,创建数据库之前的规划可以使数据库管理的工作更加轻松。
数据库的规划涉及多方面的内容,如内存的布局、硬盘空间的使用等,数据库设计人员需要在日常工作中不断积累经验,制定最佳的计划。
5.1.1 SGA的规划
SGA规划的内容包括为各个缓存区指定大小。SGA设置是否合理对数据库服务器的运行性能有很大的影响。
SGA是内存中的一段存储区域,而且这段存储区域只能由数据库服务器使用,这就意味着操作系统可以使用的内存减少了。由于现在的计算机硬件配置都比较高,所有可以将SGA的大小直接设置为物理内存的1/2,随后对数据库的运行情况进行监视,在不带来额外的内外存交换的情况下,逐步增加SGA的大小。
如果SGA太大,操作系统可以使用的内存将大大减少,这时系统将使用虚拟内存来弥补内存的不足,将SGA的一部分放在外存上,这时在内外存之间将进行频繁的交换,系统的性能将降低。这种做法显然违背了建立SGA的初衷。
在Oracle 11g中,有三种方法对SGA进行设置,所有的设置都是通过一些初始化参数来完成的。相关设置方法请参考第4章的相关内容。
SGA由数据库高速缓存、重做日志缓冲区、共享池、Java池、大池等组成,这几部分大小的总和就是SGA的大小。与这些存储区域有关的初始化参数如表5.1所示。