创建Oracle数据库【学习目标】在一个Oracle服务器上,可同时运行多个Oracle数据库实例,第二个数据库只有在服务器安装以后才能创建出来。通过学习本章的内容,我们可以使用工具或手工独立的完成数据库的创建、删除和修改配置任务,这是DBA的基本任务之一。【本章要点】•使用DBCA创建、删除和配置Oracle数据库•Oracle数据库管理员身份验证方式•实例的NT服务和口令文件管理【关键术语】Passwordfile口令文件Authentication验证Manually手工SID系统标识符DBCA数据库配置助理Operatingsystemauthentication操作系统验证Initializationparameterfile初始化参数文件1.1使用工具创建Oracle数据库如果在安装Oracle服务器的过程中没有创建数据库,就需要在之后创建新的数据库。创建新的数据库可以使用数据库创建工具DBCA(OracleDatabaseConfigurationAssistant)和手工两种方式。本节介绍第一种方式。1.1.1规划和组织数据库在创建Oracle数据库之前,需要先对数据库进行规划。首先要根据具体的用途,确定数据库的类型,有3种典型的数据库应用类型:数据仓库、联机事务处理和一般用途。如果是一个熟练的DBA,对数据库的初始化参数有比较深入的了解,那么在创建数据库时,就可以自己规划内存(SGA)的分配和使用,并对数据库的工作方式进行手工配置。其次还需要规划数据库的存储结构,根据数据类别和用途来组织文件在磁盘的分布和存储位置。控制文件、数据文件和日志文件是3类需要进行重点考虑的文件。通过把文件分布到不同的磁盘,可以减少系统I/O竞争,改进数据库性能;通过把镜像分布到不同的目录或物理磁盘,可以保证单点磁盘故障不会影响到其他镜像,这对数据库在发生介质故障时进行数据恢复是至关重要的。以控制文件为例,在创建数据库时,我们需要考虑控制文件需要几个镜像,是否需要分布到不同的物理磁盘。最后要决定新数据库的全局数据库名称,全局数据库名称是数据库在网络中的唯一标识。在确定全局数据库名称的同时,也要确定数据库的系统标识符(SID)。如果数据库只有一个实例,那么通常和数据库名一致。1.1.2创建Oracle数据库创建新的数据库,需要以SYSDBA身份连接,并在服务器端完成。并要考虑是否有足够的磁盘空间可以存放数据库文件,以及足够的内存来运行实例。在安装数据库服务器的过程中,我们已经创建了一个数据库db01。根据需要我们可以在同一个服务器上,创建新的Oracle数据库,也可以删除或重新配置已经存在的数据库。以上操作可以使用管理工具Oracle数据库配置助手DBCA(DatabaseConfigurationAssistant)来完成。DBCA是一个基于Java和图形用户界面的工具,具有跨平台的特性。该工具可以在数据库服务器的Oracle程序组菜单下的ConfigurationandMigrationTools子菜单下找到。DBCA的主要功能是:•创建数据库•配置数据库选项•删除数据库•管理模板注意,在安装创建Oracle服务器的过程中,UniversalInstaller也是通过启动DBCA来完成第一个数据库的创建的。【实例3-1】使用DBCA创建新的Oracle数据库步骤1:启动DBCA在服务器上执行Oracle程序组→ConfigurationandMigrationTools→OracleDatabaseConfigurationAssistant命令,启动DBCA。出现欢迎面板,如图3-1所示,按“下一步”继续。图3-1DBCA欢迎面板步骤2:选择操作在接下来的对话中出现4种操作,如图3-2所示:•创建数据库-创建新的数据库。•在数据库中配置数据库选项-修改数据库配置参数。•删除数据库-删除已经存在的数据库实例。•管理模板-管理、创建或删除数据库的模板,以后可以用该模版直接创建新的数据库。•本实例中选择“创建数据库”,然后继续。图3-2操作选择步骤3:选择数据库模版在接下来的对话框中,出现4个选项,这4个选项选择了不同的数据库模版,如图3-3所示:•DataWarehouse-应用于创建数据仓库的环境,及决策支持系统(DSS)。•NewDatabase-创建新的数据库,该类型的模板只包含数据库的结构,您可以任意指定和更改所有的数据库参数,创建数据库花费的时间较长,因为必须运行所有脚本来创建数据库中的模式(Schema)。•TransactionProcessing-应用于联机事务处理(OLTP)环境。•GeneralPurpose-创建一般目的数据库,同时具有DSS和OLTP特性。•本例中选择“GeneralPurpose”选项,然后继续。图3-3数据库模版选择步骤4:指定数据库名称和标识接下来填写数据库名称和数据库SID,如图3-4所示,两者可以使用同一个名称,在本练习中输入db02作为名称。SID是数据库系统标识符,区别于该计算机上的其他任何实例。按“下一步”按钮继续。图3-4指定数据库名称和标识步骤5:选择数据库的连接模式有两种数据库的连接模式,如图3-5所示,它们是:•专用服务器模式,为每个连接客户分配专用资源,当连接用户较少,请求连续时间较长,可以选择此模式。•共享服务器模式,多个客户共享数据库资源,当并行用户较多,连接时间较短,可以采用此模式,此模式启动Oracle数据库的多线程特性。在本实例中选择“专用服务器模式”继续。图3-5选择连接模式步骤6:设置数据库创建参数在接下来的初始化参数对话框中(如图3-6所示),可以设置内存(SGA)参数、数据库块大小、文件位置、归档日志模式等信息,这些参数用来对数据库进行初始化。高级管理人员可以通过“所有初始化参数”按钮来直接修改所有参数。在本实例中,不修改任何参数,采用默认的配置,按“下一步”按钮继续。图3-6初始化参数设置步骤7:修改数据库文件的名称位置接下来可以修改“控制文件”、“数据文件”和“重做日志组”文件的名称和位置,及进行相关的设置,如图3-7所示。不作修改,按“下一步”按钮继续。图3-7数据库存储参数设置步骤8:开始创建数据库按“完成”按钮开始数据库的创建,创建过程如图3-8所示。最好在开始创建之前关闭其他的数据库例程,这样可以加快数据库的创建。创建过程分成四个步骤:•复制数据库文件•初始化数据库•创建并启动NT服务•创建数据库图3-8创建数据库步骤9:完成创建数据库创建成功后,出现一个总结对话框,如图3-9所示:•全局数据库名称:db02•系统标识符(SID):db02•服务器端参数文件:d:\oracle\ora92\database\spfiledb02.ora可以在此步骤修改新数据库的SYS和SYSTEM管理员账户口令,这里为了便于记忆,均输入ORACLE。单击“退出”按钮结束创建。图3-9数据库创建完成信息步骤10:显示实例服务检查NT的服务列表,将会出现新的实例db02的NT服务:OracleServicedb02。图3-10实例的NT服务信息步骤11:登录新创建的数据库。在DOS命令窗口输入命令并执行:SQLPLUS/NOLOGSQL*Plus:Release9.2.0.1.0-Productionon星期六2月1117:18:212006Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.SQLCONNsys/oracle@db02ASSYSDBA已连接。选项ASSYSDBA代表管理员身份,以SYS帐户登录必须有该选项。步骤12:通过查询动态性能试图,验证登录的数据库。SQLSELECTnameFROMv$database;NAME---------DB02说明:用以上方法可以登录db02数据库。在同时存在多个Oracle实例的情况下,在操作系统中,默认的实例是用环境变量ORACLE_SID来惟一标识的。通过在注册表中打开项HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0之后,查看字串ORACLE_SID可以取得默认实例的名称。如果在你的平台上包含了多个实例,并且你要管理自己的实例,那么可以在注册表中修改ORACLE_SID。或者在命令行设置环境变量ORACLE_SID,如图所示的命令行窗口中,将默认的实例设置为DB02。之后就可以使用CONN/ASSYSDBA直接登录db02了。试在命令行窗口中输入以下命令并执行:SETORACLE_SID=db02SQLPLUS/NOLOGSQLCONN/ASSYSDBA已连接。1.1.3删除Oracle数据库使用DBCA同样可以删除已经创建的数据库,但要注意,一旦删除数据库就不能恢复。【实例3-2】使用DBCA删除Oracle数据库步骤1:启动DBCA同实例3-1步骤1。进入下一步。步骤2:选择删除数据库操作选择要删除的数据库例程名,在本实例中,选择刚创建的数据库db02,如图3-11所示。单击“完成”按钮就可以开始删除工作。图3-11选择要删除的数据库步骤3:删除数据库删除的过程如图3-12所示。图3-12删除数据库过程完成后,可以检查NT服务列表,原来的实例的NT服务:OracleServicedb02也同时被删除。1.2实例的服务和口令文件1.2.1数据库管理员认证方式如果在客户端机器上完成管理工作,因为管理命令必须通过网络传送,这种方式称为远程数据库管理。显而易见,远程管理的安全性尤为重要,必须考虑是否具有可靠的网络连接。Oracle数据库对具有SYSDBA和SYSOPR权限的用户的验证方式,分为操作系统验证方式和口令文件验证方式。图3-13显示了管理方式、身份验证方式及其关系。操作系统身份验证是由操作系统完成的,而口令文件身份验证是在Oracle服务器中完成的。口令文件验证方式是最常见的方式,要使用该方式,初始化参数REMOTE_LOGIN_PASSWORDFILE应该设置为EXCLUSIVE。以管理员身份登录数据库,即使实例和数据库没有启动,也可以登录到空闲实例,因为管理员的身份验证是在数据库之外进行的,所以只有SYSDBA和SYSOPR身份才能完成实例和数据库的启动和关闭等任务。图3-13管理员认证方式当安装Oracle数据库产品时,默认的管理员身份认证方式是口令文件验证。默认具有SYSDBA权限的账户是SYS。1.2.2管理口令文件在口令文件验证方式下,所有具有SYSDBA和SYSOPR权限的用户被记录在服务器上面一个经过加密处理的口令文件中。使用口令文件的好处是,因为口令不是记录到数据库中,所以身份验证是在数据库之外进行的,这样管理员就可以进行数据库启动之前的管理工作。另外,因为所有具有DBA权限的用户口令都是记录到口令文件中的,所以一旦要回收所有的SYSDBA和SYSOPR权限,只需删除口令文件,并重新建立新的口令文件。在新建口令文件的同时为SYS账户分配新的口令,此时SYS账户成为唯一具有SYSDBA权限的用户。当SYS账户的口令遗忘,也可以采取这种方式重建。要保护好口令文件和保密口令文件位置变量,以免其他能够登录到数据库服务器的人,远程数据库管理本地数据库管理YesYesNoNo是否有可靠连接?使用操作系统验证使用口令文件验证是否使用操作系统验证?重建口令文件,威胁到系统的安全。使用口令实用程序ORAPWD创建口令文件的命令如下:ORAPWDFILE=filenamePASSWORD=passwordENTRIES=max_users其中:filename:口令文件的名称(必需)password:SYSOPER和SYSDBA的口令(必需)max_users:允许作为SYSDBA或SYSOPER连接的不同用户的最大数目。如果超过该值,则必须创建一个新的口令文件。所以设置较大的值较为稳妥。等号(=)字符的两侧不应有空格。【实例3-3】口令文件管理。步骤1:删除口令文件口令文件的位