5.2 如何利用DBCA创建数据库
Oracle提供了一个图形化的实用工具—DBCA(Database Configuration Assistant),利用这个实用工具,用户可以方便地创建数据库,而不必记忆复杂的命令,不必了解每个初始化参数的意义,也不必了解SGA的分布,用户只需要输入少量的信息,通过键盘、鼠标进行简单的操作,便可轻松地对创建数据库。
DBCA实用工具能够减少用户工作量的真正原因是它提供了许多数据库模板,这些模板为用户提供了一些创建数据库的方案,在每个方案中对数据库的各个设置都指定了合理的默认值,如初始化参数、数据文件、SGA等。用户只需要根据数据库的用途,选择其中一个模板,并根据需要输入少量信息,或者修改少量信息,DBCA便可根据默认方式或用户希望的方式创建数据库。用户也可以创建自己的模板,甚至可以从一个数据库创建模板。
在Windows系统中启动DBCA实用工具的方法是在开始菜单中选择“Oracle—<ORACLE_HOME>”->“Configuration and Migration Tools”->“Database Configuration Assistant”。在UNIX/Linux系统中启动DBCA的方法是:以oracle用户登录系统,在命令提示符下输入命令dbca。在DBCA运行时首先显示的是欢迎信息,在这个窗口中单击“下一步”按钮,将打开“操作”窗口,如图5.1所示。从这个窗口中提供的菜单可以看出,DBCA具有以下功能:
·创建数据库
·配置数据库选项
·删除数据库
·管理数据库模板
在接下来的各节中,我们将详细介绍DBCA提供的每个功能。
图 5.1 DBCA操作的选择
在图5.1中选择“创建数据库”,并单击“下一步”按钮,将开始创建数据库的过程。在这个过程中,DBCA将按照我们选择的模板创建实例,按照默认的初始化参数创建参数文件,然后创建数据库,创建SYS和SYSTEM用户,并使数据库具有该模板指定的功能。
在接下来的窗口中,用户可以根据自己的实际情况,选择其中一个模板,使自己的数据库具有该模板指定的功能,如图5.2所示。模板实际上是一组配置信息,它包含了创建数据库所必须指定的一些参数和选项。
在图5.2中显示的模板都是Oracle预先提供的。如果用户创建了自己的模板,这个模板也将显示在这个窗口中。各个模板的适用情况如表5.3所示。
上述模板按照是否包含数据文件可以分为两种类型:不包含数据文件的模板和包含数据文件的模板。在不包含数据文件的模板中,只有数据库结构的信息,用户可以任意指定和修改所有的数据库设置,也可以将数据库的设置信息保存为脚本文件。如果选择不包含数据文件的模板,则创建数据库需要花费较长的时间,因为必须运行脚本文件来创建所有的数据库对象。
图 5.2 选择数据库模板
在包含数据文件的模板中,既包含数据库的结构信息,也包含它的数据文件。如果选择该类模板,创建数据库的速度较快,因为在数据文件中已经存在数据库对象的信息。另外,控制文件和重做日志文件也将自动创建。用户可以添加或删除控制文件和日志组,也可以修改数据文件的位置和名称,但是不能添加或删除数据文件、表空间。
Oracle预定义的每个模板都提供了一些默认的设置,包括公共选项、初始化参数、字符集、数据文件、控制文件和重做日志文件。其中公共选项指定了数据库应该具有的标准功能;初始化参数提供了最重要的初始化参数值;字符集为数据库指定了默认的数据库字符集和国家字符集;而数据文件、控制文件和重做日志文件则是根据该模板创建数据库时将产生的一组文件。
如果希望了解每个模板的详细信息,可以在图5.2中选择一个模板,然后单击“显示详细资料”按钮,该模板提供的默认设置将在另一个窗口中列出来。图5.3显示了“Custom Database”模板的详细信息。为了查阅方便,用户还可以将每个模板的默认设置存储为一个HTML文件。
在图5.2中选择“Custom Database”模板后,单击“下一步”按钮,进入“数据库标识”窗口,如图5.4所示。在这个窗口中,用户需要输入数据库的全局名称和实例名称(SID)。
Oracle数据库通过“全局数据库名”来唯一地标识。全局数据库名是当前数据库区别于其他数据库的数据库全称。全局数据库名的形式为“数据库名.域名”,其中数据库名是为数据库取的一个简称,域部分指定数据库所处的数据库域,Oracle建议将数据库域映射为网络域。SID是当前实例的标识,对于任何数据库,至少需要一个实例,每个实例对应一个SID和一组文件。例如,当创建SID为TEST的数据库时,将同时创建实例以及数据库文件(包括参数文件、控制文件、重做日志文件和数据文件)。一般情况下SID与数据库名相同。
图 5.3 模板详细信息的查看
图 5.4 指定数据库标识
注意,如果希望通过命令的方式访问数据库,在操作系统中必须设置ORACLE_SID环境变量,使其等于要访问的SID,否则将不能登录数据库。
数据库在创建之后,可以通过浏览器,以Web方式对其进行远程管理,这时需要对EM(企业管理器)进行设置,如图5.5所示。
Oracle在创建数据库的同时,也创建了几个用户,其中包括SYS和SYSTEM用户。在为这些用户指定口令时,可以为所有用户指定相同的口令,也可以分别指定不同的口令。无论是哪种情况,都需要再次输入口令以确认,如图5.6所示。Oracle 11g对口令的要求是:口令长度至少为8个字符,至少包含一个大写字符,一个小写字母,一个数字字符。
图 5.5 对EM进行配置
图 5.6 为用户指定口令
接下来,需要为数据库指定存储方式及存储位置,如图5.7所示。数据库中的文件最终是存储在磁盘上的,数据库文件在磁盘上有两种存储方式:文件系统和自动存储管理(ASM)。其中文件系统方式是传统方式,在操作系统中先对磁盘进行分区,或者创建逻辑卷,然后创建文件系统,数据库文件就存储在文件系统对应的目录中。自动存储方式是利用Oracle的ASM功能,把若干个磁盘组织为一个磁盘组,数据库文件存储在磁盘组上,这些文件对操作系统是不可见的。从Oracle 11g开始,不再支持裸设备,但是如果在以前版本的数据库中使用了裸设备,那么将其升级到11g时,可以继续使用裸设备。
如果在图5.7中选择了“文件系统”方式,那么数据库文件的存储位置有两种设置方法,一种是按照模板的设置,将文件存储在默认的位置。第二种方式是将所有文件存储在同一个目录中。如果选择“ASM”方式,那么需要选择一个已经存在的磁盘组,数据库中的所有文件将存储在这个磁盘组中。
图 5.7 存储方式的选择
接下来需要指定快速恢复区,如图5.8所示。快速恢复区是一个目录或者一个磁盘组,用来为备份文件和恢复文件指定默认存储位置,也可以作为归档日志文件的默认存储位置。当数据库发生故障时需要利用这里的文件对数据库进行恢复,管理员也可以通过Flashback技术,利用这里的文件,使数据库回到过去某个时间点。在图5.8中,需要指定快速恢复区的位置和大小,还可以同时启动归档日志模式。在默认情况下,数据库处于非归档模式下,如果选择了“启动归档”,那么数据库在创建之后即处于归档模式下。
图 5.8 快速恢复区设置
如果单击“编辑归档模式参数”按钮,可以进一步设置归档模式的相关信息,如图5.9所示。在这里指定归档日志文件的存储位置和文件名,点击“OK”返回。
在图5.8所示的窗口中单击“下一步”,接下来需要选择在数据库中可以执行的一些脚本(如果利用另外两个模板创建数据库,则没有这一步),如图5.10所示。在这个窗口中用户可以选择数据库需要具备的附加功能。例如,Oracle Spatial提供了一种在数据库中存储和检索多维数据的方法,这个功能主要用于在地理信息系统(GIS)来实现地理参考并解决某些查询。
图 5.9 归档日志文件的位置和名称
图 5.10 数据库附加功能的选择
在图5.10所示的窗口中单击“下一步”按钮,接下来需要对数据库可使用的内存大小以及数据库的属性进行设置,如图5.11所示。
图 5.11 SGA及数据库属性的设置
在图5.11中,可以分别设置SGA大小、数据块大小、数据库字符集和连接模式。分别单击窗口上部的四个标签,可以分别对这四种信息进行设置。
在Oracle数据库中,有很多的初始化参数,这些参数就是用来对SGA、数据库属性等信息进行设置的,大部分参数都具有默认值,用户可以根据需要对它们进行修改,或者采用它们的默认值。在图5.11中单击“所有初始化参数”按钮,将打开另外一个窗口,在这个窗口中列出了所有的初始化参数,如图5.12所示。在这个窗口中用户可以查看和修改所有的初始化参数的设置。如果需要修改某个初始化参数,在这个窗口中选择对应的行,并在对应的值列中输入新的参数值。初始化参数修改完毕后,单击“关闭”按钮,所有的修改将被保存起来。
内存设置用于指定SGA和PGA的大小,以及SGA中各种缓冲区的大小。从图5.11可以看出,有两种方案可供选择,一种是典型设置,一种是自定义设置。
典型设置是按照物理内存的大小将一定百分比或者指定大小的内存分配给SGA和PGA,并按照自动管理的方法自动指定SGA的各个缓冲区的大小。这种设置的好处是用户不必关心SGA中每种缓冲区的大小,只需要指定可分配给Oracle的最大内存大小即可,实例将对SGA和PGA进行自动管理。这就是在第4章中介绍的“自动内存管理”方法。
自定义设置允许用户根据自己的需要,分别为各个缓冲区以及PGA指定大小。这种方法更为灵活,用户可以根据数据库的实际用途控制SGA中各个缓冲区的大小。自定义设置又包括两种方法,一种是“自动共享内存管理”,另一种是“手工共享内存管理”。如果选择“自动共享内存管理”,只需要指定SGA的最大大小和PGA的大小,实例将自动指定SGA中各种缓冲区的大小。如果选择“手工共享内存管理”,那么SGA中各种缓冲区的大小都需要手工指定。
在图5.13中,可以设置数据块的大小和用户进程的数量。数据块的大小在数据库创建之前必须确定,而且在数据库创建之后不能再修改。进程数目是指将来可能访问数据库的进程的最大数目,其中包括DBWR等后台进程,所以这个数目至少需要设置为(后台进程数量加一个用户进程)。
图 5.12 所有的初始化参数
图 5.13 数据块大小和进程数目设置
字符集的设置用于设置数据库字符集和国家字符集,如图5.14所示。数据库字符集有三种设置方法,一种是采用默认字符集,这是Oracle根据操作系统的字符集自动指定的,第二种方法是采用unicode编码方式,第三种方法允许用户在多个字符集中选择其中一个。
国家字符集目前只有两个选择,一个是AL16UTF16,一个是UTF8。
字符集是在计算机屏幕上显示字符时所使用的编码方案,一种语言可以有多个不同的字符集,选择字符集首先要考虑的是希望在数据库中存储哪种语言。Oracle在以下情况中使用数据库字符集:
·对象的标识符,如表名、列名、PL/SQL变量等。
·CHAR、VARCHAR2、CLOB和LONG类型的列中存储的数据。
·输入并存储SQL和PL/SQL程序源代码。
在Oracle中,原来采用国家字符集的数据类型(NCHAR、NVARCHAR2和NCLOB)已重新定义为专有的Unicode数据类型。可以将Unicode字符集存储到这些数据类型的列中。Unicode数据类型(NCHAR、NVARCHAR2、和NCLOB)的国家字符集仅限于AL16UTF16或UTF8。默认的国家字符集是AL16UTF16。
图 5.14 字符集的设置
Oracle提供了两种数据库连接模式,即专用服务器模式和共享服务器模式。在专用服务器模式下,每个用户进程都需要有一个专用服务器进程为其服务。Oracle建议在数据仓库中,或者用户进程比较少的情况下采用这种模式。在共享服务器模式下,多个用户进程可以共享一个服务器进程,并且在数据库服务器中可以启动多个服务器进程。连接模式的选择如图5.15所示。
图 5.15 连接模式的选择
如果用户选择了共享服务器模式,数据库服务器将按照默认设置启动调度程序和服务器进程。当然,用户也有机会指定调度器和服务器进程的数目。在图5.15所示的窗口中选择共享服务器模式,并单击“编辑共享服务器参数”,进入“共享服务器模式”的设置窗口,如图5.16所示。
在共享服务器模式中可以对共享服务器进程和调度器的数目进行序设置,图5.16表示共享服务器进程数目的配置。可以根据情况指定服务器进程及调度器的最大数目和最小数据。如果需要修改某个设置,用鼠标选中对应的复选框,并在对应的文本框中输入相应的数目,然后单击“确定”按钮即可。
在对内存、数据块大小、字符集和连接模式进行设置后,单击“下一步”按钮,将进入“数据库存储”窗口,如图5.17所示。在这个窗口中列出了将要被创建的数据库中所包含的控制文件、数据文件、重做日志文件和表空间。在这里也可以对表空间、数据文件、重做日志文件进行增加、删除和修改等操作。
图 5.16 共享服务器模式设置
图 5.17 数据库的文件和表空间
在窗口左侧以树形列表的形式列出了即将被创建的数据文件、控制文件、重做日志文件和表空间,每一类对象都以文件夹的形式组织在一起。随着所选模板的不同,树形列表的内容也不完全相同。
单击窗口左侧的某个文件夹,在窗口右侧将列出这个文件夹中包含的所有对象。此时如果单击树型列表下侧的“创建”按钮,可以向该文件夹中添加成员。如果双击某个文件夹,或单击该文件夹前面的“+”标志,该文件夹即被展开。如果选择其中一个成员,该成员的详细信息将被显示在窗口右侧。此时如果单击树型列表下侧的“删除”按钮,可以将该成员删除。
这里仅以控制文件的处理为例来说明对数据库存储的设置。在图5.17中的窗口左侧选择“控制文件”,在窗口右侧将列出所有的控制文件。用户可以修改这些文件的名称和位置,在文件列表的最后一行也可以添加新的控制文件。单击窗口右侧的“选项”标签,可以修改最大数据文件数、最大重做日志文件数和最大日志成员数这三个参数。
在图5.17中单击“下一步”按钮,将进入“创建选项”窗口,如图5.18所示。在这个窗口中用户可以控制数据库的创建操作。有三种创建操作可供用户选择:
·创建数据库。
·另存为数据库模板。
·生成数据库创建脚本。
这三个操作可以单独执行,也可以同时执行。如果要执行某个或某几个操作,只要选种对应的复选框,然后单击“完成”按钮即可开始执行所选操作。
“创建数据库”操作将按照模板提供的设置和用户的设置创建数据库,包括创建数据文件、控制文件、参数文件、用户等。这个操作将需要较长的一段时间才能完成。
“另存为数据库模板”操作提供了一种创建模板的方法,用户可以将前面所有的设置存储为一个模板,这样以后就可以利用这个新的模板创建数据库。创建的模板将在下一次启动DBCA时出现在图5.2所示窗口的模板列表中。用户需要为这个模板指定一个名称,也可以为模板指定一段描述信息。在默认情况下模板文件将存储在Oracle安装目录下的assistants/dbca/templates子目录中。
“生成数据库创建脚本”将把这次数据库创建过程转化为一些脚本文件,在这些脚本文件中包含了创建数据库的命令序列。通过执行这些脚本文件,也可以创建数据库。在这些文件中有一个Shell脚本文件,文件名为<SID>.sh,它是这些文件中第一个需要执行的文件,通过这个文件可以调用其他脚本文件,其中SID为实例名称。在Windows系统中,这个文件是一个批处理文件,文件名为<SID>.bat。以后用户创建数据库时,只需要在操作系统的命令行中执行这个脚本文件,其他脚本文件将被自动调用执行,数据库将被自动创建。读者如果对命令行创建数据库的方式不太熟悉,可以把这些文件作为参考。在这里也生成了一个文本参数文件。
在图5.18的窗口中选择“创建数据库”,然后单击“Finish”按钮,接下来将显示当前数据库的属性信息,如图5.19所示。
图 5.18 数据库的创建
在图5.19中单击“OK”按钮,便开始创建数据库,如图5.20所示。这个过程需要持续较长时间。在创建结束后,将出现一个窗口,显示数据库所使用的各个端口号。至此,整个创建过程结束。
图 5.19 数据库的属性总结
图 5.20 开始创建数据库