第七讲Oracle实例管理本章学习目标每个实例对应一个ORACLE数据库,用户对数据库的操作由实例完成。本章将介绍登录数据库、初始化参数文件、启动和关闭数据库的基本知识。7.1用户身份认证7.2初始化参数文件7.3启动数据库7.4关闭数据库7.1用户身份认证在数据库创建之后,只有具有合法身份的用户才能够访问数据库。用户身份认证方式有:(1)操作系统认证(2)口令认证(3)数据库服务器认证在执行如启动实例、加载和打开数据库等操作时(这些操作数据库还没打开)就不能使用数据库服务器的认证方式,只能使用操作系统和口令认证方式操作系统认证以下情况使用该方法:(1)管理远程数据库时,具有安全的网络连接(secureconnection)。(2)管理本地数据库时,想使用OS认证。操作步骤:(1)建立一个OS系统用户(2)将这个用户加入到OSDBA或者OSOPER的OS组。(3)设置参数REMOTE_LOGIN_PASSWORDFILE=NONE(4)CONNECT/ASSYSDBA关于OSDBA和OSOPER组OSDBA对应:UNIX为dba;WINDOWS为ORA_DBAOSOPER对应:UNIX为oper;WINDOWS为ORA_OPER这些用户组在安装数据库的时候手工或者自动创建,这些组的成员以assysdba/sysoper连接数据库后,自动授予sysdba/sysoper的管理权限。口令文件认证以下情况使用该方法:(1)管理远程数据库时,没有安全的网络连接(secureconnection),比如TCP/IP和DECnet协议。(2)管理本地数据库时,不想使用OS认证。Oracle数据库的密码文件存放有超级用户SYS及其他特权用户的用户名/口令,一般存放在ORACLE_HOME\DATABASE目录下。在创建数据库实例的时侯,在ORACLE_HOME\DATABASE目录下还自动创建了一个与之对应的密码文件,文件名为PWDSID.ORA,其中SID代表相应的Oracle数据库系统标识符。此密码文件是进行初始数据库管理工作的基础。在此之后,管理员也可以根据需要,使用工具ORAPWD.EXE手工创建密码文件,操作步骤:(1)使用ORAPWD创建密码文件(其中的password选项是为SYS用户设置的)CORAPWDFILE=<FILENAME>PASSWORD=<PASSWORD>ENTRIES=MAX_USERS(2)设置参数REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE(3)使用sys用户登陆(4)在数据库中创建用户createuserdonny1identifiedbydonny1;(5)赋予其SYSDBA/SYSOPER权限grantsysdbatodonny1;这样就将用户和密码加入到密码文件中。(6)使用自己的密码logonconnectdonny1/donny1assysdba;V$PWFILE_USERS使用该视图查看密码文件中的memberselect*fromv$pwfile_users;数据库服务器认证DBA需要为每个想登录Oracle服务器的用户创建用户和口令,登录时用户必须提供用户名和口令,该方式是最常用的用户身份验证方式7.2初始化参数文件在每一个数据库中都有一个初始化参数文件,该文件决定数据库的物理结构、内存、数据库的极限及系统大量的默认值,是进行数据库设计与性能调节的重要文件。7.2.1文本参数文件7.2.2服务器端参数文件7.2.1文本参数文件在安装Oracle数据库时,系统自动创建了一个传统的文本参数文件pfile,Oracle9i提供了200多个初始化参数,并且每个初始化参数都有默认值。PFILEInitSID.ora文本文件使用操作系统编辑器打开、修改手工修改内容所做修改在下次启动时生效在实例启动时打开缺省位置ORACLE_HOME\database\initSID.ora创建参数文件根据init.ora样例文件创建样例文件由OracleUniversalInstaller安装使用操作系统命令拷贝使用数据库SID做为标识修改InitSID.ora文件编辑参数为数据库指定参数PFILE例子#InitializationParameterFile:initdba01.oradb_name=dba01instance_name=dba01control_files=(/home/dba01/ORADATA/u01/control01dba01.ctl,/home/dba01/ORADATA/u02/control01dba02.ctl)db_block_size=4096db_cache_size=4Mshared_pool_size=50000000java_pool_size=50000000max_dump_file_size=10240background_dump_dest=/home/dba01/ADMIN/BDUMPuser_dump_dest=/home/dba01/ADMIN/UDUMPcore_dump_dest=/home/dba01/ADMIN/CDUMPundo_management=AUTOundo_tablespace=UNDOTBS...7.2.2服务器端参数文件文本参数文件的限制使用altersystem语句对初始化参数进行的修改并不能保存在初始化参数文件中。因此,在下一次启动数据库时,Oracle依然会使用初始化参数文件中的参数设置对实例进行配置。对于文本初始化参数文件,无论是启动本地数据库还是远程数据库,都会读取本地的初始化参数文件,并使用其中的设置来配置数据库。SPFILEspfileSID.oraOracle9i的新特点二进制文件保存在服务器上,由Oracle服务器管理、维护可以通过altersystem语句来修改其中的初始化参数RMAN能备份此参数文件缺省文件位于ORACLE_HOME\database下创建SPFILE从PFILE文件创建sqlcreatespfile=d:\oracle\ora90\database\spfilestudent.orafrompfile=d:\oracle\ora90\database\initstudent.ora实例启动前后均可以执行执行命令者必须具有SYSDBA权限修改SPFILE中参数改变参数的命令ALTERSYSTEMSETundo_tablespace=UNDO2;指明是临时改变还是长期改变SCOPE=MEMORY(只对当前实例生效)SCOPE=SPFILE(只对SPFILE文件生效)SCOPE=BOTH(对两者均生效)例:ALTERSYSTEMSETundo_tablespace=UNDO2SCOPE=BOTH;数据库启动时spfile和pfile的加载顺序在windows系统中数据库启动时会按如下顺序查找启动参数文件:%ORACLE_HOME%\database\SPFILESID.ora%ORACLE_HOME%\database\SPFILE.ora%ORACLE_HOME%\database\initSID.oraunix或linux系统中数据库启动时会按如下顺序查找启动参数文件:%ORACLE_HOME%\dbs\SPFILESID.ora%ORACLE_HOME%\dbs\SPFILE.ora%ORACLE_HOME%\dbs\initSID.ora也就是说,先找spfilesid.ora文件,如果spfilesid.ora没有则找spfile.ora文件,最后才会去找initsid.ora的pfile文件.7.3启动数据库服务器Oracle服务器的启动是分步骤进行的,包括实例的启动、数据库的加载和数据库打开3个步骤。因此Oracle服务器可能处于三种状态:实例已启动、数据库已加载、数据库已打开。启动实例启动实例包括以下任务:读取参数文件initsid.ora或spfilesid.ora分配SGA启动后台进程打开alert文件以及跟踪文件装载数据库装载数据库包括以下任务:使数据库与以前启动的例程关联定位并打开参数文件中指定的控制文件读取控制文件以获取数据文件和重做日志文件的名称和状态,为打开数据库做好准备打开数据库正常数据库操作是指启动例程、装载并打开数据库,它允许任何有效用户连接数据库并执行一般的数据访问操作打开数据库包括以下任务:打开联机数据文件打开联机重做日志文件STARTUPNOMOUNT该模式下启动实例不加载数据库。如果要执行下列维护工作:创建数据库重建控制文件则必须在该模式下进行只有SYSDBA才可以连接到数据库,普通的数据库用户是无法访问的STARTUPMOUNT启动实例加载数据库但不打开数据库。普通用户不能正常连接,一般是DBA用于出错故障时进行恢复,例如:命名数据文件改变数据库的归档模式执行完全数据库恢复添加、删除或重命名重做日志文件NOMOUNTMOUNTSTARTUP或STARTUPOPEN这是正常的启动模式。普通用户要对数据库进行操作,数据库必须处于OPEN启动模式MOUNT-OPEN只读和读写模式切换在数据库运行过程中切换为只读模式ALTERDATABASEOPENREADONLY将数据库设置为读写模式ALTERDATABASEOPENREADWRITESTARUPRESTRICT约束方式启动,这种方式能够启动数据库,但只允许具有一定特权的用户访问非特权用户访问时,会出现以下提示:ERROR:ORA-01035:ORACLE只允许具有RESTRICTEDSESSION权限的用户使用把数据库启动到限制状态,这时只允许本机进行连接和查询,远程终端不能连接,一般用于升级数据库或给数据库打小补丁。STARTUPFORCE强制启动方式。当不能关闭数据库时,可以用startupforce来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令(这一强制过程由系统自动完成)。STARTUPPFILE=参数文件名带初始化参数文件的启动方式。先读取参数文件,再按参数文件中的设置启动数据库例:startuppfile=E:\init.ora这种方式通常用于一些特殊任务,如更改了init.ora参数文件的位置,或者测试init.ora文件的配置等等。7.4关闭数据库关闭数据库Oracle服务器将数据库数据缓冲区中的更改及重做日志缓冲区中的条目写入数据文件和联机重做日志文件。此后,关闭所有联机数据文件和联机重做日志文件。卸载数据库关闭控制文件,但例程仍保留关闭实例Alert文件和跟踪文件将关闭,SGA被回收并且后台进程被终止。SHUTDOWNNORMAL缺省模式不允许建立新的连接在完全关闭前,等待所有用户断开连接正常关闭(在实例关闭前,关闭、卸载数据库)下次启动不需要实例恢复SHUTDOWNTRANSACTION客户端不能再启动新事务客户端结束当前执行的事务后,服务器为其断开连接所有事务结束后(即所有连接断开),开始正常关闭下次启动时,不需要实例恢复SHUTDOWNIMMIDIATE当前被Server处理SQL语句不能完成OracleServer不等待当前连接用户断开激活回滚事务,回滚未提交操作,断开所有连接正常关闭数据库下次启动时,不需要实例恢复SHUTDOWNABORT当前被Server处理SQL语句被立即终止不等待所有用户断开连接未提交事务不回退不关闭文件就终止实例下次启动需实例恢复下课了。。。追求休息一会儿。。。