5.3.2 实例的管理
在创建数据库之前,首先要创建一个实例,当删除一个数据库时,应该将实例一起删除。实例的管理涉及实例的创建、删除、启动与关闭,以及口令文件管理等方面的内容。需要注意的是,本小节介绍的内容只适用于Windows系统。
Oracle提供了一个实用工具,即oradim,该命令的功能是管理实例,通过这个命令可以创建、删除、启动与关闭实例。这个命令的格式为:
oradim主要选项附加选项
其中主要选项决定了所要进行的操作,而附加选项是依赖于主要选项的。oradim命令有以下主要选项:
-new:创建一个新实例。
-delete:删除一个实例。
-startup:启动一个实例。
-shutdown:关闭一个实例。
-edit:编辑一个实例。
如果需要创建实例,需要执行带-new选项的oradim命令。在创建实例之前,首先要创建一个文本参数文件,为实例提供初始化参数。例如,如果要创建名为ORCL的实例,oradim命令将在默认的目录中搜索名为initORCL.ora的参数文件,如果没有找到这个文件,实例创建将以失败告终。如果这个文件在其他目录下,那么在启动实例时需要通过pfile参数来指定文件的路径。
创建实例的命令格式为:
oradim-new-sid 实例名称-intpwd口令-startmode 启动方式-pfile 参数文件
除了-new为主要选项外,其余选项为附加选项,这些选项的意义如下:
-sid:指定实例的名称。
-intpwd:为特权用户SYS指定口令。
-startmode:指定实例的启动方式,可选方式有自动方式(a)和手工方式(m)。
-pfile:指定一个文本参数文件。在默认情况下使用默认的文本参数文件,否则需要通过这个选项指定另外一个参数文件。
例如:
c:\>oradim-new-sid test-intpwd 1234-startmode m-pfile c:\scripts\init.ora
这条命令创建了实例test,它的启动方式为自动启动,特权用户SYS的口令为1234,在创建实例时使用了非默认的参数文件c:\scripts\init.ora。
SYS用户是数据库的特权用户,它拥有最大的权限,同时具有SYSDBA和SYSOPER身份。这样的用户及其口令存储在数据库的口令文件中。在创建实例时,口令文件将自动产生。
当指定实例的启动方式为自动启动时,实例在创建之后便自动启动到NOMOUNT状态,否则需要手工启动。实例启动后,就可以创建数据库了。
创建实例之后,在系统中产生了以下结果:
·创建了一个实例。
·创建了口令文件。
·创建了一个Windows的系统服务。
如果在创建实例时指定它的启动方式为手工启动,那么实例在创建之后我们需要手工启动它。启动实例的命令格式为:
oradim-startup-sid 实例名称-pfile 参数文件
在Windows系统中,创建实例的同时,也创建了一个系统服务,所以也可以通过这个系统服务来启动、关闭实例。例如,在Windows系统的命令行中执行下面的命令,可以启动系统服务OracleServicetest,同时启动了实例test:
c:\>net start OracleServicetest
其中OracleServicetest为实例test所对应的系统服务名称。系统服务的命名原则是在字符串“OracleService”之后加上实例的名称。
既然在Windows系统中每个实例都有一个对应的系统服务,那么利用“服务”组件也可以启动、关闭实例。方法是打开控制面板,双击“管理工具”组件,然后打开“服务”组件。在列出的所有系统服务中选择要启动的系统服务,再单击启动按钮,该系统服务即可启动,对应的实例也自动启动。利用“服务”组件启动实例的方法如图5.21所示。
实例被关闭后,SGA存储区将被释放,所有后台进程也将终止,用户将暂时无法访问数据库。关闭实例的命令格式为:
oradim-shutdown-sid 实例名称
例如,执行下面的命令将关闭实例test:
c:\>oradim-shutdown-sid test
同样,也可以通过关闭系统服务来关闭对应的实例。例如,执行下面的命令将关闭系统服务OracleServicetes,同时关闭实例test:
c:\>net stop OracleServicetes
利用“服务”组件关闭实例的方法与启动实例的方法类似,在图5.21中选择需要关闭的系统服务,然后单击停止按钮,即可关闭该系统服务及对应的实例。
图 5.21 利用系统服务启动实例
删除实例的命令格式为:
oradim-delete-sid实例名称
在删除数据库时,应该将实例一起删除。实例被删除后,用户将永远无法访问数据库。在Windows系统中,删除实例时,对应的系统服务将被同时删除。
实例在创建之后,我们可以编辑它的一些属性,如实例名称、启动方式等。编辑实例的命令格式为:
oradim-edit-sid 实例名称-newsid 实例的新名称-intpwd 口令
-startmode 启动方式-pfile 参数文件
在编辑实例时,可以通过选项-newsid为实例指定一个新的名称。实例名称被修改后,口令文件的名称随即也被自动修改。在编辑实例时,有时需要提供该实例的口令,选项-intpwd的作用是指定实例原来的口令。需要注意的是,通过这条命令是无法修改口令的,只能修改口令文件名称,如果需要修改口令本身,只能执行命令orapwd。-startmode选项的作用是改变实例的启动方式,可选方式仍然为自动方式和手工方式。如果将实例的启动方式改为自动方式,实例将随即自动启动。选项-pfile的作用是指定一个非默认的参数文件。
需要注意的是,实例的名称被修改后,文本参数文件的名称应该与实例的新名称对应。编辑实例时参数文件的名称是不会自动改变的,需要手工修改。
例如,下面的命令将把实例test的名称改为test1,启动方式改为手工方式:
oradim-sid test-newsid test1-startmode m