




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章管理Oracle实例(1)实例(instance)是一组Oracle后台进程和内存结构(SGA)的集合。后台进程主要包括SMON、PMON、DBWR、CKPT和LGWR等;而其内存结构则包括数据缓冲区、重做日志缓冲区、共享池,它们合称为系统全局区(SGA)。(2)OracleServer是由实例和数据库组成的。我们已经知道数据库实际上就是三种物理文件:控制文件、数据文件和联机重做日志文件。(3)一个实例只能访问一个数据库,而一个数据库可以由多个实例同时访问。(4)启动数据库时将在内存中创建与该数据库所对应的实例。实例是通过初始化参数control_files与数据库建立关联的。该参数用于指定数据库的控制文件名,控制文件中又指出了数据文件和联机重做日志文件的名称和位置。4.1Oracle用户身份认证
在数据库创建之后,只有具有合法身份的用户才能够访问数据库。用户身份认证方式有(1)操作系统认证、(2)口令认证和(3)数据库服务器认证三种方式。
数据库服务器的认证方式需要每个连接到Oracle的用户都在数据库中有一个账户,但这些帐户的信息都保存在数据库内部,在打开数据库之前,不能使用这些信息来对用户进行身份认证。
因此在执行如启动实例、加载和打开数据库等操作时(这些操作数据库还没打开)就不能使用数据库服务器的认证方式,只能使用操作系统和口令认证方式。
具体选用哪种认证方式主要取决于两个因素:用户的操作是在本地进行还是通过网络进行。如果需要在本地执行管理操作,或通过网络进行,但是有安全的网络连接,可以使用操作系统认证方式。
如果需要从其它计算机上远程执行数据库管理操作,而又没有安全的网络连接,就只能使用口令文件认证的方式。
在口令文件认证方式下,Oracle使用口令文件来对具有SYSDBA或SYSOPER权限的用户进行身份认证。在操作系统认证方式下,由操作系统的安全机制来对具有SYSDBA或SYSOPER权限的用户进行身份认证。4.1.1特殊系统权限:SYSDBA和SYSOPER在Oracle中,有两个特殊的系统权限:SYSDBA和SYSOPER,它们包含了一些最基本的管理操作权限。1。SYSDBA权限可执行的操作(1)使用STARTUP或SHUTDOWN语句启动或关闭数据库与实例(2)使用ALTERDATABASE语句执行打开、卸载、备份数据库等操作。(3)使用CREATEDATABASE语句以手工方式创建数据库。(4)对数据库进行归档或恢复。(5)具有RESTRICTEDSESSION权限,可以在受限状态下连接数据库。2。SYSOPER权限可执行的操作(1)使用STARTUP或SHUTDOWN语句启动或关闭数据库与实例。(2)使用CREATESPFILE语句创建服务器端初始化参数文件。(3)使用ALTERDATABASE语句执行打开、卸载、备份数据库等操作。(4)对数据库进行归档或恢复。(5)具有RESTRICTEDSESSION权限,可以在受限状态下连接数据库。注意:(1)具有SYSDBA和SYSOPER系统权限用户,能够在不打开数据库的情况下直接访问实例,可见他们的身份认证是与数据库完全无关的。(2)用户在使用SYSDBA或SYSOPER权限连接实例时,实际上并不是进入到用户所属的模式中,而是进入默认的模式。对于SYSDBA来说是SYS模式,对于SYSOPER来说是PUBLIC模式。4.1.2操作系统认证方式
(1)如果需要在本地执行管理操作,或者可以通过安全网络连接来执行远程管理操作,则可以使用操作系统认证方式。
(2)Oracle可以利用运行数据库的WindowsNT/2000操作系统来验证用户身份。在操作系统认证方式下,当用户试图建立到Oracle服务器的连接时,Oracle服务器不会向用户要求用户名和口令,而是从操作系统中获得用户的登录信息。
在操作系统认证方式下,Oracle在操作系统中创建一个特殊的用户组(ORA_DBA),所有属于这个组的用户都将被授予SYSDBA或SYSOPER权限。如果登陆到操作系统中的用户属于这个组,他将自动具有SYSDBA或SYSOPER权限,因此,当他试图建立到Oracle服务器的连接时,就不必再提供用户名和口令,也不需要在数据库中创建相应的用户帐户。所有的用户认证工作都由操作系统本身来完成,不需要在数据库中保存任何相关的信息。用操作系统认证方式的步骤如下:(1)在WindowsNT/2000的计算机管理中,添加一个用户如abc,将其加入ora_dba组。(2)注销系统,以abc用户登录。(3)然后输入以下命令c:\>sqlplus/nologsql>connect/assysdba或sql>connect/assysoper
这样abc用户就以sysdba或sysoper的角色登录Oracle了。不过这时abc实际上是以sys模式连接到数据库中的。
注意:(1)操作系统验证,要将初始化参数remote_login_passwordfile设置为none。
(2)如果不是ora_dba组,则使用connect/assysdba命令时会出现权限不足的情况,另外要把Oracle服务启动,TNSLISTERNER可以不启动4.1.3用口令文件认证
在口令文件认证方式下,具有SYSDBA和SYSOPER权限的用户被记录在一个经过加密处理的口令文件中,这个口令文件保存有SYS用户的口令,并利用SYS用户的口令来访问数据库。口令文件是一个操作系统文件,它被存储在服务器中(不是数据库中)。当用户连接数据库时,Oracle使用口令文件对用户的身份进行认证。Oracle数据库在运行过程中将参与口令文件的管理和维护工作。使用口令文件认证方式,按照如下的步骤进行操作:(1)在WindowsNT/2000中为DBA创建一个新的用户账户,如jxf。(2)使用口令实用程序orapwd创建口令文件。Oracle提供了一个口令实用程序,允许用标准的用户名和口令连接到Oracle服务器,其语法如下:orapwdfile=fnamepassword=passwordentries=entries其中,fname参数是口令文件完整的路径和文件名。file参数是必须的。password参数指定sys用户的口令。sys用户的默认口令为change_on_install。如果数据库中使用alteruser语句修改了sys用户的口令,Oracle会自动更新口令文件中sys用户的口令。password参数是必须的。entries参数指定能够具有SYSDBA或SYSOPER权限的最大数据库用户数量,在向口令文件中添加用户时,不能超过这个数目,如果需要包含更多的用户,必须重新建立口令文件。该参数是可选的。
例:用口令admin为用户sys创建的口令文件,并接受10个不同口令的用户c:\>orapwdfile=%oracle_home%/database/pwdstudentpassword=adminentries=10注意:口令文件的位置通常在oracle主目录的database目录下(口令文件的位置和文件名都可以随便取)
(3)将初始化参数remote_login_passwordfile设置为exclusive或shared。如果将该参数设置为none,表示没有口令文件被使用,使用操作系统认证方式时将该参数设置为none。如果将该参数设置为exclusive,表明只有一个实例可以使用该口令文件,并且该口令文件可以包含除sys以外的用户。如果将该参数设置为shared,表明可以由多个实例使用口令文件,但是这时不能向口令文件加入除sys用户外的其它用户,口令文件可以识别的用户只有sys。这种设置适用于只有一位DBA同时管理多个实例的情况。
(4)使用一个具有DBA权限的用户(如sys)连接到数据库,如以sysdba身份用操作系统认证方式来连接到数据库服务器。sql>connect/assysdba(5)在数据库中创建同名的数据库用户,然后为该用户授予sysdba或sysoper系统权限。只有以sysdba身份连接,Oracle才允许管理员给用户授予sysdba或sysoper权限,否则不允许。即使以system账户连接也不行。(很重要,所以要有connectassysdba。)例:创建特权用户jxfc:\>sqlplus/nologsql>connectsys/adminassysdbasql>createuserjxfidentifiedbygyr&mothersql>grantsysdbatojxf;当授权时,用户jxf就被添加到口令文件中了,其口令为gyr&mother。如果要查看口令文件中的用户信息,可以查询动态性能视图v$pwfile_users。例如
sql>select*fromv$pwfile_users;如果已授予sysdba权限,动态视图v$pwfile_users有用户名,在sysdba列有true值;如果授予sysoper权限,在sysoper列有true值。
如果想撤销某用户管理员权限可以使用命令"revokesysdbafrom用户名"实现。例如:sql>revokesysdbafromjxf;(6)完成上述操作后,如果使用jxf账户登录WindowsNT/2000,可以通过如下命令连接到数据库:sql>connectjxf/gyr&motherassysdba当通过使用sysdba权限连接到数据库时,被连接到sys模式上而不是用户名jxf所提供的方案;而当使用sysoper权限连接时,被连接到public模式。
4.1.4数据库服务器认证
Oracle可以通过数据库服务器来验证用户身份。在数据库验证方式下,DBA需要为每个想登录Oracle服务器的用户创建用户和口令,登录时用户必须提供用户名和口令,该方式是最常用的用户身份验证方式。
如果采用数据库验证,那么创建用户时必须为新用户指定一个口令,口令以加密方式保存在数据库中。当用户连接到数据库时,Oracle从数据库中提取口令来对用户的身份进行验证。例如,下面的语句将创建一个数据库验证的用户peter,同时为他指定了口令、默认表空间、临时表空间、空间配额和配置文件:
createuserpeteridentifiedbymylstsondefaulttablespacedatatemporarytablespacetempquota15mondataprofileaccounting_user;新创建的用户peter并不能立即连接到数据库中,因为他还不具有CREATESESSION系统权限。因此,在建立新用户之后,通常使用GRANT语句为他授予CREATESESSION系统权限,使他具有连接到数据库中的能力。如下所示:
grantcreatesessiontopeter;
一种更为便捷的方式是直接授予新用户Oracle中预定义的CONNECT角色,该角色包含了CREATESESSION系统权限。如下所示:
grantconnecttopeter;
然后peter用户就可连接数据库了,如下所示:
SQL>connectpeter/mylstson
4.2初始化参数文件
在每一个数据库中都有一个初始化参数文件,该文件决定数据库的物理结构、内存、数据库的极限及系统大量的默认值,是进行数据库设计与性能调节的重要文件。例如可以在初始化参数文件中定义SGA尺寸,设置数据库名称,定义用户和进程限制,定义控制文件、跟踪文件和警告日志的位置等。4.2.1Oracle9i文本参数文件
在安装Oracle数据库时,系统自动创建了一个传统的文本参数文件pfile,Oracle9i提供了200多个初始化参数,并且每个初始化参数都有默认值。在修改或增加初始化参数时,必须要遵从特定的规则。如果违反了参数设置原则,在启动实例时可能会显示错误信息,或者会导致配置不起任何作用。修改或增加初始化参数的原则如下:
所有的初始化参数都是可选的,只有需要设置的参数才在初始化参数文件中列出,没有列出的参数,采用默认值。
每行只能设置一个参数。
字符型参数的值如果包含空格或制表位,必须用单引号或双引号将字符串括起来,但数字型参数则不能用引号。例如:nls_territory="CZECHREPUBLIC"
如果一个初始化参数有多个值,则用逗号隔开。例如:rollback_segments=(seg1,seg2,seg3)
初始化参数文件中只能有赋值语句和注释语句,注释语句以“#”符号开头,是单行注释。初始化参数文件中列出的参数是不分次序的。初始化参数是一个可以编辑的文本文件,在WindowsNT/2000系统中参数文件存储在:oracle_base\admin\db_name\pfile\init.ora或%oracle_home%\database\initSID.ora。启动实例时可以指定相应的参数文件,如:
sql>connectsys/testassysdbasql>startuppfile=%oracle_home%\database\initstudent.ora如果不指定初始化参数文件,就采用默认位置的参数文件启动实例。
在初始化参数文件中主要指定以下参数:
1.指定全局数据库名和实例名sid
全局数据库名通常由本地数据库标识和网络域名组成,全局数据库名在网络中用于惟一地标识一个Oracle数据库。本地数据库标识由db_name参数指定,在只有一个实例的情况下,本地数据库标识与实例标识sid相同。网络域名由db_domain参数指定。instance_name参数用于指定实例名,应该与db_name保持一致。比如创建的新数据库需要具有全局数据库名,则应当在初始化参数文件中设置如下参数:
db_name=studentinstance_name=studentdb_domain=
2.指定控制文件control_files参数用于指定控制文件名,Oracle使用该参数在实例和数据库之间建立关联,在控制文件中保存有关于数据库物理结构的基本信息。例如,使用下面的参数设置,在创建数据库时将在指定的位置建立三个控制文件:control_files=("d:\oracle\oradata\control01.ctl","e:\oracle\oradata\control02.ctl","f:\oracle\oradata\control03.ctl")
因为控制文件对于数据库来说是至关重要的,Oracle建议至少为数据库建立两个控制文件,并且应当将它们分别存在不同的硬盘中。
3.指定数据块的大小
数据库块(Block)是Oracle用来管理存储空间的最小单元,一个数据库块可以由一个或多个操作系统块组成。数据库块的大小在创建数据库时由初始化参数db_block_size指定,并且在数据库建立后不能再更改.
db_block_size参数所指定的值将作为标准数据库块的大小,system表空间以及其他表空间默认地使用标准数据库块大小。数据库块大小在数据库创建后就无法改变。比如,如下设置的db_block_size参数将标准数据库块指定为4KB:
db_block_size=4096
对于I/O密集的操作来说,使用双倍大小的数据库块可以提高40%左右的I/O性能。需要注意的是,随着数据库块大小的增加,数据库对内存(SGA区)的需求也会随之增加,因此数据库块过大也会对系统性能产生负面的影响
4.指定与SGA区相关的参数
SGA区是被所有进程共享的内存区,是实例的组成部分。它由数据缓冲区、日志缓冲区和共享池组成。
(1)db_cache_size参数指定数据缓冲区的大小,它是一个动态参数,可以在实例运行过程中动态改变,它的大小对数据库性能影响很大。使用较大的db_cache_size可以有效地减少Oracle读写硬盘的次数,但是同时也会占用过多的物理内存。例如:
db_cache_size=32M
如果要在数据库中使用非标准块,除了使用db_cache_size参数外,至少还要指定—个db_nK_cache_size参数。db_nK_cache_size参数一共有5个:db_2K_cache_size、db_4K_cache_size、db_8K_cache_size、db_16K_cache_size、db_32K_cache_size。
以上5个参数用于指定具有非标准块大小的数据缓冲区的大小。比如:
db_block_size=4096db_cache_size=12Mdb_2K_cache_size=8Mdb_8K_cache_size=4M通过以上参数的设置,为数据库指定标准块大小为4k,标准块对应的数据缓冲区大小为12MB,此外2KB和8KB大小的非标准块对应的数据缓冲区的大小分别为8MB和4MB。
(2)shared_pool_size参数用于设置SGA区中共享池的大小,shared_pool_size参数也是一个动态参数。此外,如果数据库被设置为共享服务器操作模式,还需要设置large_pool_size参数,以创建大池。
(3)log_buffer参数用于指定重做日志缓冲区的尺寸。例如:
log_buffer=32768通过以上参数的设置,日志缓冲区指定的大小为32768字节。
(4)sga_max_size参数用于限制SGA区所能使用的最大内存空间。尽管SGA区中数据缓冲区、共享池等组件的大小在Oracle9i中都能动态调整,但是它们的总和不能超过由sga_max_size参数所指定的值。如果用户没有指定sga_max_size参数,则sga_max_size参数的默认值为初始化参数文件中设置的SGA区各组件大小的总和。
5.指定最大并发进程数
由process参数指定Oracle能够并发执行的操作系统进程的最大数目。process参数的最小值是6(每个数据库至少要启动5个后台进程,再加上1个用户进程)。比如,如果预测最多会有50个用户进程并发连接数据库,则process参数至少需要设置为55。
6.指定撤销表空间的管理方式
在Oracle9i中,有两种管理撤销表空间的方法:自动撤销空间管理或手工撤销空间管理。参数undo_management用于指定管理undo数据的方式,该参数是Oracle9i新增加的参数。
如果设置该参数为manual,则管理undo数据仍然使用回滚段;如果设置为auto,则使用undo表空间自动管理undo数据。
在手工撤销管理方式下,必须使用rollback_segments参数为数据库指定回退段。rollback_segments参数通常是一个可用回退段的名称列表。如果没有在初始化参数文件中设置rollback_segments参数,Oracle将使用system回退段。
建议在数据库中应用自动撤销管理方式,使用撤销表空间而不是回退段来存储撤销信息。例如:
undo_management=autounto_tablespace=undotbs以上参数设置撤销表空间的管理方式为自动,使用撤销表空间undotbs来存储撤销记录。
如果参数undo_management被设置为auto,必须使用undo_tablespace参数为数据库指定撤销表空间,而且undo_tablespace所对应的undo表空间必须存在,否则会导致OracleServer无法启动。在创建数据库时,默认情况下Oracle会自动创建一个名称为undotbs的默认撤销表空间。
7.跟踪文件和警告文件的存放位置
background_dump_dest参数用于指定后台进程跟踪文件和警告文件所在的目录。
user_dump_dest该参数用于指定用户进程跟踪文件所在的目录。例如:
background_dump_dest=d:\oracle\admin\student\bdumpuser_dump_dest=d:\oracle\admin\student\udump以上参数设置,将后台进程跟踪文件和警告文件所在的目录设置为d:\oracle\admin\student\bdump将用户进程跟踪文件所在的目录设置为d:\oracle\admin\student\udump8.归档日志文件的存放位置
参数log_archive_dest_1由于存放归档日志文件的位置。例如:
log_archive_dest_1="location=d:\oracle\oradata\master\“9.指定特权用户的认证方式
如果特权用户通过口令文件的方式认证,要将参数remote_login_passwordfile设置为exclusive或shared。如果该参数设置为shared表示多个实例共享一个口令文件,且特权用户只能有一个sys。如果该参数设置为exclusive表示口令文件只能由一个实例专用,并且可以配置多个特权用户。如果将该参数设置为none,表示特权用户使用操作系统认证方式。例如:
remote_login_passwordfile=exclusive将特权用户的认证方式设置为口令文件,并且可以设置多个特权用户。
下面为参数文件的部分内容:
db_name=studentinstance_name=studentcontrol_files=("d:\oracle\oradata\control01.ctl","e:\oracle\oradata\control02.ctl","f:\oracle\oradata\control03.ctl")log_archive_dest_1="location=d:\oracle\oradata\student\"db_block_size=2048db_cache_size=30Mshared_pool_size=15728640log_buffer=32768background_dump_dest=d:\oracle\admin\student\bdumpremote_login_passwordfile=exclusiveundo_management=autounto_tablespace=undotbs…4.2.2服务器端参数文件1.服务器端参数文件
从Oracle8i开始,有许多初始化参数都成为了动态参数,也就是说可以在数据库运行期间利用altersystem或altersession语句来修改初始化参数,并且不需要重新启动数据库,修改就可以立即生效。但是使用altersystem语句对初始化参数进行的修改并不能保存在初始化参数文件中。因此,在下一次启动数据库时,Oracle依然会使用初始化参数文件中的参数设置对实例进行配置。如果要永久性地修改某个初始化参数,DBA必须通过手工方式对初始化参数文件进行编辑,这就为初始化参数的管理带来了不便。并且对于文本初始化参数文件,无论是启动本地数据库还是远程数据库,都会读取本地的初始化参数文件,并使用其中的设置来配置数据库。也就是说如果DBA需要以远程方式启动数据库,必须在本地的客户机中保存一份初始化参数文件的备份。由于文本初始化参数文件存在的这些不便,因此在Oracle9i中引入了服务器端初始化参数文件spfile。
服务器端初始化参数文件以二进制形式保存在服务器端,用户不能直接对它进行修改,只能通过altersystem语句来修改其中的初始化参数,尽管能够打开它查看其中的内容,但是任何用户都不应当手工对其中的内容进行编辑,否则实例将无法启动。
服务器端初始化参数文件始终存放在数据库服务器端,默认地保存在%oracle_home%\databases目录中,默认名称为spfile<SID>.ora。启动实例时,默认读服务器端初始化参数文件。
如果DBA需要远程启动实例,不需要在客户机中保留一份初始化参数文件,实例会自动从服务器中读取服务器端初始化参数文件的内容。这样做的另一个优点是能够确保同一个数据库的多个实例都具有完全相同的初始化参数设置。
2.用初始化参数文件启动实例
数据库启动时,Oracle9i默认读取服务器参数。如果没有定义服务器参数,或服务器参数文件破坏,则自动读取文本参数文件。如果要使用文本参数启动数据库,则必须使用pfile指出数据库文本文件名及路径。在执行startup语句启动数据库时,它将按照如下顺序寻找初始化参数文件:
(1)首先检查是否使用了pfile参数指定了文本初始化参数文件。如果有pfile参数,就用pfile参数指定的文本初始化参数文件启动实例。
(2)如果没有pfile参数,在默认位置检查是否存在服务器端初始化参数文件。如果存在,就用默认位置的服务器端参数文件启动实例。
(3)没有使用pfile参数,也没有服务器端初始化参数文件,或该文件被破坏了,则在默认位置寻找默认名称的文本初始化参数文件,用该文本文件启动实例。使用服务器参数文件spfileSID.ora启动数据库命令如下:c:\>sqlplus/nologsql>connect/assysdbasql>startup
使用文本文件pfile启动数据库:c:\>sqlplus/nologsql>connect/assysdbasql>startuppfile=d:\oracle\ora90\database\initstudent.ora但是,不得使用spfile参数指出服务器参数文件名及路径。例如:
sql>startupspfile=d:\oracle\ora90\database\spfilestudent.ora结果显示:
sp2-0714:invalidcombinationofstartupoptions3.创建服务器参数
Oracle9i服务器可以自动调整数据库参数。数据库创建后,可以使用命令createspfile从文本文件转换为数据库创建服务器参数,也可以从spfile创建文本型参数文件,实现参数文件的相互转换。
在数据库创建或安装成功后,启动数据库,使用服务器参数文件创建文本文件的命令如下:
sql>createpfilefromspfile='d:\oracle\ora90\database\spfilestudent.ora'则在默认路径中创建系统默认的文本参数文件init$oracle_sid.ora。
也可以使用pfile指出要创建的文本参数文件名以及路径:
sql>createpfile="d:\oracle\ora90\database\initstudent.ora"fromspfile="d:\oracle\ora90\database\spfilestudent.ora“或
sql>createpfile="d:\oracle\ora90\database\initstudent.ora"fromspfile在上述命令执行成功后,自动产生了数据库的文本文件。创建服务器参数文件有多种方法:方法1:创建默认的服务器参数文件sql>createspfilefrompfile="d:\oracle\ora90\database\initstudent.ora"执行上述命令后,在默认路径中创建了一个系统默认的服务器参数文件,文件名为spfile$oracle_sid.ora。方法2:使用默认的文本参数文件在默认路径中创建服务器参数文件。sql>createspfilefrompfile;方法3:使用spfile指出要创建的文本参数文件名及路径。sql>createspfile="d:\oracle\ora90\database\spfilestudent.ora"frompfile="d:\oracle\ora90\database\initstudent.ora“或sql>createspfile="d:\oracle\ora90\database\spfilestudent.ora"frompfile可以使用show命令检测数据库中是否使用服务器参数文件,如果显示为空值,则表示该数据库使用文本类型参数文件。例如:
sql>showparameterspfile如果数据库正在使用文本类型参数运行,可以按下面方法,将数据库修改为使用服务器参数方式运行:
sql>createspfilefrompfile;sql>shutdownimmediatesql>startup4.在线修改数据库参数
在Oracle9i中,使用服务器端参数文件后,可以像修改数据一样对初始化参数进行在线修改。可以执行altersystem指令在线更改某些初始化参数,而且修改后的参数可以立即生效,或者在下一个实例启动后生效。这可以利用在set子句中scope选项来进行控制。
scope选项的设置有三种选择:
(1)当scope=spfile时,对参数的修改仅记录在服务器端初始化参数文件中。该选择同时适用于动态初始化参数与静态初始化参数。修改后的参数只有在下一次启动数据库时更改的参数才会生效。在修改静态初始化参数时,只能将scope选项设置为spfile。
(2)当scope=memory时,对参数的修改仅记录在内存中,不会写入spfile。对于动态初始化参数,更改将立即生效,并且由于修改并不会被记录在服务器端初始化参数文件中,在下一次启动数据库时仍然会使用修改前的参数设置。对于静态初始化参数,不能使用这个选项值。
(3)当scope=both时,对参数的修改将同时记录在内存和服务器端初始化参数文件中。对于动态初始化参数,更改将立即生效,并且在下一次启动数据库时将使用修改后的参数设置。对于静态初始化参数,不能使用这个选项值。如果数据库使用了服务器端初始化参数文件,在执行altersystem语句时,Oracle默认地将scope选项设置为both。
注意:(1)在修改动态初始化参数时,还可以指定deferred关键字,这样对参数所做的修改将延迟到新的会话产生时才生效。(2)如果数据库没有使用服务器端初始化参数文件,在altersystem语句中将scope选项设置为spfile或both将会产生错误。
(3)还可以在运行实例时使用altersession命令对动态初始化参数进行修改。使用altersession命令修改的参数只对当前会话有效,altersystem命令修改的参数一直到实例关闭都有效,altersystemdeferred命令对将来连接的会话有效,当前会话无效。
例如,利用下面的语句对动态初始化参数log_checkpoint_interval进行修改,修改结果不仅在当前实例中有效,而且还将记录在服务器端初始化参数文件中:sql>altersystemsetlog_checkpoint_interval=50comment="SpecifiesthefrequencyOfcheckpoints";如果要修改静态初始化参数db_files,必须将scope选项设置为spfile:
sql>altersystemsetdb_files=100scope=spfile;
查看初始化参数的设置(1)在SQL*PLUS中使用SHOWPARAMETERS命令(2)查询V$PARAMETER或V$PARAMETER2动态性能视图,V$PARAMETER2视图的格式更加简洁。(3)使用CREATEPFILE语句将服务器端初始化参数文件导出为可读的文本初始化参数文件。(4)查询v$SPPARAMETER动态性能视图,其中包括在服务器端初始化参数文件中的初始化参数设置。4.3启动和关闭Oracle服务器
启动和关闭Oracle服务器的方法有多种,可以使用OEM、Sql*plus、命令行或操作系统的服务。启动或停止一个Oracle服务器的用户必须具有sysdba或sysoper权限。
4.3.1启动Oracle服务器的步骤
Oracle服务器的启动是分步骤进行的,包括实例的启动、数据库的加载和数据库打开3个步骤。因此Oracle服务器可能处于三种状态:实例已启动、数据库已加载、数据库已打开。
1.启动实例启动实例包括下列任务:(1)读取参数文件init<sid>.ora或spfile<sid>.ora(2)分配sga(3)启动后台进程(4)打开alert文件以及跟踪文件在实例的启动过程中只会使用到初始化参数文件,数据库是否存在对实例的启动并没有影响。如果初始化参数设置有误,实例将无法启动。2.为实例装载数据库装载数据库包括以下任务:(1)使数据库与以前启动的例程关联(2)定位并打开参数文件中指定的控制文件(3)读取控制文件以获取数据文件和重做日志文件的名称和状态,为打开数据库做好准备。加载数据库时,实例将打开控制文件,从控制文件中获取数据库的名称、数据文件的位置和名称等关于数据库物理结构的信息,为打开数据库做好准备。如果控制文件损坏,实例将无法加载数据库。在加载阶段,实例并不会打开数据库的物理文件——数据文件和重做日志文件。3.打开数据库正常数据库操作是指启动例程、装载并打开数据库,它允许任何有效用户连接数据库并执行一般的数据访问操作。打开数据库包括以下任务:(1)打开联机数据文件(2)打开联机重做日志文件如果在控制文件中列出的任何一个数据文件或重做日志文件无法正常打开,数据库将返回错误信息,这是需要进行数据库恢复。只有将数据库设为打开状态后,数据库才处于正常运行状态,这时普通用户才能够访问数据库。由于管理方面的要求,DBA要根据不同的情况决定以不同的方式启动数据库:(1)启动实例不加载数据库(NOMOUNT模式)使用的命令:SQL>startupnomount如果要执行下列维护工作:A:创建数据库B:重建控制文件则必须在该模式下进行(2)启动实例加载数据库但不打开数据库(MOUNT模式)若要执行特定的维护任务,可启动例程并装载数据库,但不要打开数据库。例如:(1)命名数据文件(2)改变数据库的归档模式(3)执行完全数据库恢复(4)添加、删除或重命名重做日志文件Sql>startupmount3.启动实例加载数据库并打开数据库(OPEN模式)这是正常的启动模式。普通用户要对数据库进行操作,数据库必须处于OPEN启动模式。Sql>startup(1)实例在nomount阶段启动时,就可以从内存访问读取动态性能视图(与SGA有关的视图),例如:v$parameter、v$sga、v$option、v$process、v$session、v$version和v$instance。
(2)当实例在mount阶段启动时,就可以从控制文件读取动态性能视图,例如:v$thread、v$controlfile、v$database、v$datafile、v$datafile_header、v$logfile。(3)当实例在open阶段启动时,就可以从数据字典读取动态性能视图。
动态性能视图说明v$parameter包含关于初始化参数的信息v$sga包含关于SGA的摘要信息v$option列出Oracle服务器安装的选项v$process包含有关当前活动进程的信息v$session列出当前会话信息v$version 列出版本号及组件v$instance列出当前实例的状态v$thread包含线程信息v$controlfile列出控制文件名称v$database包含数据库信息v$datafile 包含来自控制文件的数据文件信息v$datafile_header包含来自控制文件的数据文件标题的信息v$logfile包含关于联机重做日志文件的信息转换启动模式在数据库的各种启动模式之间切换需要使用ALTERDATABASE语句,执行该语句的用户必须具有ALTERDATABASE系统权限。1、为实例加载数据库在执行一些特殊的管理或维护操作时,需要进入NOMOUNT启动模式。切换到MOUNT模式:ALTERDATABASEMOUNT2、从加载状态进入打开状态为实例加载数据库后,数据库可能仍然处于关闭状态。为了使用户能够访问数据库,可以使用如下语句切换到OPEN启动模式:ALTERDATABASEOPEN;切换到受限和只读状态1、受限状态在正常启动模式(OPEN)下,可以选择将数据库设置为非受限状态或受限状态。在受限状态下,只有具有管理权限的用户(DBA)才能访问数据库。当执行下列维护操作时,必须将数据库置于受限状态:(1)执行数据导入或导出操作(2)使用SQL*Loader提取外部数据(3)需要暂时拒绝普通用户访问数据库(4)进行数据库移植或者升级操作在默认情况下,普通数据库用户只具有CREATESESSION系统权限。只有具有CREATESESSION权限的用户才能够连接到一个打开的数据库中,并且连接的数据库必须处于非受限状态。当打开的数据库被设置为受限状态时,仅具有CREATESESSION权限的用户在访问数据库时将被拒绝。只有同时具有CREATESESSION和RESTRICTEDSESSION系统权限的用户才能够访问受限状态的数据库。通常只将RESTRICTEDSESSION系统权限授予DBA用户。A:使用下面的语句,数据库将进入受限状态:STARTUPRESTRICTB:如果需要将数据库恢复为非受限状态ALTERSYSTEMDISABLERESTRICTEDSESSIONC:由非受限状态切换到受限状态ALTERSYSTEMENABLERESTRICTEDSESSION2、只读状态可以使用ALTERDATABASE语句在数据库运行过程中切换为只读模式:ALTERDATABASEOPENREADONLY使用下面语句将数据库设置为读写模式:ALTERDATABASEOPENREADWRITE3、强行启动数据库在各种启动模式都无法成功启动数据库时,需要强行启动数据库,在如下几种情况下需要强行启动数据库:
无法使用shutdownnormal、shutdownimmediate或者shutdowntransactional语句关闭数据库实例。
在启动实例时出现无法恢复的错误
STARTUPFORCE
如果在强行启动时,数据库已经有一个实例正在运行,Oracle将首先关闭该实例,然后再重新为这个数据库启动一个新的实例
关闭数据库按阶段关闭数据库与数据库的启动相对应,关闭数据库也是分步骤进行的1.关闭数据库Oracle服务器将缓冲区高速缓存中的更改及操作日志缓冲区高速缓存中的条目写入数据文件和联机重做日志文件。此后,关闭所有联机数据文件和联机重做日志文件。在数据库关闭但仍装载时,控制文件一直打开。2.卸载数据库关闭控制文件,但例程仍保留3.关闭实例Alert文件和跟踪文件将关闭,sga被回收并且后台进程被终止。关闭Oracle服务器的四种方式
1.执行normal模式关闭禁止新的用户连接,当所有的用户自愿断开时,oracle才关闭数据库。sql>shutdownnormal这是一种最有耐心的关闭方式,这种方式不许新的用户连接,但是要等已有的所有用户连接自愿断开时,Oracle才能够关闭数据库。一旦所有的用户都断开连接,立刻关闭数据库、卸载数据库,并终止实例。
2.执行immediate模式关闭这种方式不允许新的用户连接,任何未提交的事务均被回退;不在等待用户主动断开连接,直接关闭、卸载数据库,并终止实例。在正常关闭失效的情况下,最常使用的一种。sql>shutdownimmediate3.执行abort模式关闭数据库立即关闭,对数据库的服务被突然终止;所有的用户被断开连接,所有的过程被终止,所有的资源被释放。为一种最后的手段使用。当数据库实例被破坏时,可用此方式关闭数据库sql>shutdownabort由于当前未完成的事务并不会被回退,需要进行实例恢复。4.执行transactional模式关闭等待当前所有活动事务都提交后再关闭数据库。时间介于正常方式与立即方式之间。sql>shutdowntransactional启动和关闭Oracle服务
在WindowsNT/2000平台中,只有在启动了Oracle的OracleOraHome90TNSListener和OracleServicemath服务(假如数据库名为math)后,才能连接到实例。如果没有启动监听器服务OracleOraHome90TNSListener就连接到Oracle会出现Ora-12541:TNS:没有监听器错误。如果没有启动OracleServicemath服务就连接到Oracle会出现ORA-12560:TNS:协议适配器错误。
服务的启动方式有多种,(1)可以使用oradim命令启动服务,(2)也可以使用netstart命令启动服务,(3)还可以使用Windows的操作系统服务来启动服务。A:如果用oradim命令可以决定是只启动服务,还是服务和实例一起启动。B:如果用netstart命令只启动服务。C:如果用操作系统启动服务,实例也随着启动了。如果实例已经启动,再用startup命令去启动实例,会发生“ORA-01081:无法启动已在运行的Oracle-请先关闭”的错误。
同样,服务的关闭方式也有多种,(1)可以使用oradim命令关闭服务,(2)也可以使用netstart命令关闭服务,(3)还可以使用Windows的操作系统服务来关闭服务。A:如果用oradim命令可以决定是只关闭服务,还是服务和实例一起关闭。B:如果用netstart命令只关闭服务。C:如果用操作系统关闭服务,实例也随着关闭了
设置oracle_sid(1)一个实例只能与一个数据库关联,一个数据库可以有多个实例。在操作系统中,实例是用环境变量oracle_sid来唯一标识的。(2)在注册表中打开项hkey_local_machine\software\oracle\home0之后,查看字串oracle_sid可以取得默认实例的名称。(3)如果你的平台上包含了多个实例,并且你要管理自己的实例,那么可以在命令行设置环境变量oracle_sid或者在注册表中修改oracle_sid。在windows环境下,提供设置oracle_sid环境变量来指定启动或终止的是哪一个数据库实例。例:设置当前实例变量并查看当前实例变量值c:\>setoracle_sid(显示当前的实例)c:\>setoracle_sid=math(设置当前实例为math)
2.使用命令行netstart启动和关闭Oracle服务c:\>lsnrctlstart(启动OracleOraHome90TNSListener服务)c:\>netstartOracleServicemath(启动OracleServicemath服务)当执行了以上命令后会将实例服务math启动。
c:\>lsnrctlstop(关闭OracleOraHome90TNSListener服务)c:\>netstopOracleServicemath(关闭OracleServicemath服务)当执行了以上命令后会将实例服务math关闭。
3.用命令行oradim启动和关闭服务(1)c:\>oradim–startup–sidmath–starttypesrvc 当执行了以上命令后只启动服务math。(2)c:\>oradim–startup–sidmath–starttypesrvc,inst或c:\>oradim–startup–sidmath当执行了以上的命令以后会将实例和服务一起启动。(3)c:\>oradim–startup–sidmath–starttypeinst执行以上命令表示在服务已经启动的条件下,只启动实例。
(4)c:\>oradim–shutdown–sidmath–shuttypesrvc 当执行了以上命令后只关闭服务math。
(5)c:\>oradim–shutdown–sidmath–shuttypesrvc,inst或c:\>oradim–shutdown–sidmath当执行了以上的命令以后会将实例和服务一起关闭。
4.用命令行oradmin删除实例
当在WindowsNT/2000平台上要删除Oracle数据库时,应该首先删除实例服务,然后再删除数据库所有物理文件。假如我们在服务器上安装了两个数据库一个是math,另一个是study,现在不想要study数据库了,应该先删除study实例,然后手工删除study的物理文件。删除实例服务的具体命令如下:
oradmin–delete–SIDstudy当执行了上述命令之后,会删除实例服务OracleServicestudy。
5.使用操作系统服务启动和关闭Oracle服务
在WindowsNT/2000中,一个数据库实例以一个系统服务形式实现。通过对系统服务进行操作,可以便捷地实现数据库的启动和关闭。
以操作系统管理员身份登录到WindowsNT/2000中,打开“服务”对话框。
4.4数据库的创建
在Windows下可以使用DBCA向导创建数据库,也可以使用手工创建数据库。手工创建数据库必须先确定实例名、初始化参数文件、创建数据库实例,启动实例,然后使用CREATEDATABASE语句创建数据库、运行脚本以创建数据字典视图。
4.4.1确定数据库名、实例名、服务名和DBA认证方式db_name、instance_name、service_name和db_domain分别表示数据库名、实例名、服务名和域名。DBA认证方式可以使用操作系统认证方式或口令文件认证方式。例如:db_name=exleinstance_name=exle
4.4.2创建初始化参数文件在安装完毕Oracle服务器软件后,可以在oracle_home\admin\sle\pfile目录中找到一个名为initsle.ora的文件,该文件是Oracle所提供的一个初始化参数样本文件。首先拷贝一个参数文件到d:\oracle\admin\exle\pfile目录,并且文件名为init.ora。然后修改其中的参数。有些必要的参数必须在创建数据库之前确定,因为这些参数在数据库创建之后将不能修改。需要修改的参数有:db_name、instance_name、db_domain、service_name、control_files、db_block_size、user_dump_dest和background_dump_dest。按下面的方法修改参数,创建exle数据库。其他的参数可以在创建完数据库后再修改。db_name=exleinstance_name=exlecontrol_files=("c:\oracle\oradata\exle\control01.ctl","d:\oracle\oradata\exle\control02.ctl","e:\oracle\oradata\exle\control03.ctl")db_block_size=4096user_dump_dest=d:\oracle\admin\exle\udumpbackground_dump_dest=d:\oracle\admin\exle\bdump4.4.3创建数据库实例在Windows下,用oradim命令创建数据库实例exle,启动方式为手工。c:\>oradim-new-sidexle-startmodemanual-pfiled:\oracle\admin\exle\pfile\init.ora4.4.4启动实例、创建数据库使用oradim启动服务c:\>oradim-startup-sid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全保卫知识考试题及答案
- 安全测试题及答案学校
- 医疗行业的远程化数字化服务建设
- 在线教育中如何利用数字资源提高学习效率的探讨
- 医疗行业中的数字化营销SEO、SEM与社交媒体的运用
- 商业智能化背后的编程力量-数字乐园揭秘
- 性别角色对英语学习动机影响的研究
- 山西晋中传统民居:生态智慧与当代启示
- 小学语文课堂理答行为:新手教师与专家型教师的差异与启示
- 小先生制:初中生物理语言表达能力提升的创新路径
- 2024详解反电信诈骗及预防电信诈骗主题课件
- 2024年(学习强国)思想政治理论知识考试题库与答案
- 《文物学概论》习题与答案
- 2024年中考地理二轮复习专题-地理实践与跨学科主题学习(解析版)
- 最简单封阳台安全免责协议书
- SH/T 3533-2024 石油化工给水排水管道工程施工及验收规范(正式版)
- 用友人力资源管理HR解决方案样本
- 维保服务方案及维保体系
- 药物残留溶剂分析报告书
- 肺结核的真菌感染与治疗
- 2022年甘肃省天水市中考生物真题含答案2
评论
0/150
提交评论