200 likes | 414 Views
第 3 章 管理 Oracle 数据库. Oracle 数据库系统由实例和数据库两部组成。为了使客户程序能够访问 Oracle 数据库系统,必须在服务器端启动实例并打开数据库,即启动 Oracle 数据库系统。由于 Oracle 数据库的启动是分步骤进行的,其中会涉及到实例的启动、数据库的加载和打开 3 种状态。. 本章知识要点:. 参数文件的类型 常用的参数 创建参数文件 显示和设置初始化参数文件 启动数据库的步骤 启动模式 转换启动模式 数据库的关闭步骤 各种关闭数据库的方式 数据库的特殊状态 启动与关闭数据库服务. 3.1 管理初始化参数.
E N D
第3章管理Oracle数据库 Oracle数据库系统由实例和数据库两部组成。为了使客户程序能够访问Oracle数据库系统,必须在服务器端启动实例并打开数据库,即启动Oracle数据库系统。由于Oracle数据库的启动是分步骤进行的,其中会涉及到实例的启动、数据库的加载和打开3种状态。
本章知识要点: • 参数文件的类型 • 常用的参数 • 创建参数文件 • 显示和设置初始化参数文件 • 启动数据库的步骤 • 启动模式 • 转换启动模式 • 数据库的关闭步骤 • 各种关闭数据库的方式 • 数据库的特殊状态 • 启动与关闭数据库服务
3.1 管理初始化参数 • 初始化参数用于设置实例和数据库的特征。通过设置初始化参数,不仅可以定义例程和数据库特征,还可以定义许多其他特征和限制。例如,通过使用初始化参数,可以定义SGA尺寸,设置数据库名称,定义用户和进程限制,定义控制文件,跟踪文件和警告日志的位置等。在Oracle数据库中,初始化参数是存储在参数文件中的,启动实例、打开数据库时都必须提供相应的参数文件。
3.1.1 常用初始化参数 • Oracle 11g提供了200多个初始化参数,并且多数初始化参数都具有默认值。使用Oracle数据库时,只需要根据特定需求设置相应的参数即可,并且多数参数都可以保留默认值。
3.1.2 初始化参数文件 • 在传统上,Oracle在启动实例时将读取本地的一个文本文件,并利用从中获取初始化参数对实例和数据库进行设置,这个文本文件称为初始化参数文件(简称为PFILE)。如果要对初始化参数进行修改,必须先关闭数据库,然后在初始化参数文件中进行编辑,再重新启动数据库使修改生效。
3.1.3 创建初始化参数文件 • 如果当前实例正在使用SPFILE,那么使用ALTER SYSTEM命令将无法修改某些初始化参数,如DB_NAME。为了修改这些初始化参数,必须建立PFILE,并且手工修改该PFILE文件的相应参数。可以使用CREATE PFILE命令可以建立文本参数文件,其语法如下: create pfile [='pfile_name'] from spfile [='spfile_name']
3.1.4 显示和设置初始化参数文件 • 为了显示所有初始化参数的位置,可以直接执行SHOW PARAMETER命令。例如: SQL>show parameter NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_writer_processes integer 1 dbwr_io_slaves integer 0 ddl_lock_timeout integer 0 dg_broker_config_file1 string D:\APP\MANAGER\PRODUCT\11.1.0\ DB_1\DATABASE\DR1ORCL.DAT dg_broker_config_file2 string D:\APP\MANAGER\PRODUCT\11.1.0\ DB_1\DATABASE\DR2ORCL.DAT dg_broker_start boolean FALSE ….
3.2 启动数据库与实例 • 由于Oracle数据库的启动过程是分步进行的,因此数据库可以有多种模式启动。不同的启动模式之间能够相互切换。此外,除正常方式启动数据库外,还能够将数据库设置为受限状态或只读状态,以满足特殊管理工作的需要。
3.2.1 启动数据库的步骤 • 由于实例是Oracle用来管理数据库的一个实体,在启动数据库时将在内存中创建与该数据库所对应的实例。Oracle数据库的完整启动过程分为如下3个步骤: • 创建并启动与数据库对应的实例。 • 为实例加载数据库。 • 将数据库设置为打开状态。
3.2.2 启动模式 • 由上面的介绍可知,数据库和实例的启动过程可以分为3个步骤:启动实例,加载数据库,打开数据库。数据库管理员可以根据实际情况的需要,以不同的模式启动数据库。启动数据库所使用的STARTUP命令格式如下: startup [nomount | mount | open | force] [resetrict] [pfile=filename]
3.2.3 转换启动模式 • 在进行某些特定的管理和维护操作时,需要使用某种特定的启动模式来启动数据库。但是当管理或维护操作完成后,需要改变数据库的启动模式。例如,为一个未加载数据库的实例加载数据库,或者将一个处于未打开状态的数据库设置为打开状态等。 SQL> startup nomount ORACLE 例程已经启动。 Total System Global Area 376635392 bytes Fixed Size 1333312 bytes Variable Size 310380480 bytes Database Buffers 58720256 bytes Redo Buffers 6201344 bytes SQL> alter database mount; 数据库已更改。
3.3 关闭数据库与实例 • 与数据库的启动相对应,关闭数据库时也是分步骤进行的。在关闭数据库与实例时,需要使用一个具有SYSDBA权限的用户账户连接到Oracle中,然后使用SHUTDOWN语句执行关闭操作。
3.3.1 数据库的关闭步骤 • 与启动数据库实例的3个步骤相同,关闭数据库与实例也可以分为3步:关闭数据,实例卸载数据库,最后终止实例。 shutdown [normal | transactional | immediate | abort]
3.3.2 正常关闭方式(NORMAL) • 如果对关闭数据库的时间没有限制,通常会使用正常方式来关闭数据库。使用带有NORMAL子句的SHTUDOWN语句将以正常方式关闭数据库,下面显示了在SQL*Plus中以正常方式关闭过程: SQL> shutdown normal 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。
3.3.3 立即关闭方式(IMMEDIATE) • 立即方式能够在尽可能短的时间内关闭数据库。以立即方式关闭数据库时,Oracle将执行如下操作: • 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。 • 任何未提交的事务均被回退。 • Oracle不再等待用户主动断开连接,而是直接关闭、卸载数据库,并终止实例。 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。
3.3.4 事务关闭方式(TRANSACTIONAL) • 事务方式介于正常关闭方式与立即关闭方式之间,它能够在尽可能短的时间内关闭数据库,但是能够保证当前所有的活动事务都可以被提交。使用事务方式关闭数据库时,Oracle将等待所有未提交的事务完成后再关闭数据库。
3.3.5 终止关闭方式(ABORT) • 如果上述三种关闭方式都无法关闭数据库,说明数据库产生了严重的错误,这时只能使用终止方式来关闭数据库。终止关闭方式将丢失一部分数据信息,会对数据库的完整性造成损害。因此,如果重新启动实例并打开数据库时,后台进程SMON会执行实例恢复。一般情况下,应当尽量避免使用这种方式来关闭数据库。
3.4 数据库的特殊状态 • 静默状态和挂起状态是两种特殊的数据库状态。当数据库处理静默状态时,只有SYS和SYSTEM用户能够在数据库中进行操作。当数据库处于挂起状态时,数据库I/O操作都会被暂时停止。利用这两种数据库状态,数据库管理员可以完成一些特殊的管理和维护操作。
3.4.1 静默状态 • 在静默状态下,只有具有管理员权限的用户才能够在数据库中执行查询、更新操作,运行PL/SQL程序,任何非管理员用户都不能在数据库中执行任何操作。 • 在数据库运行过程中,执行如下的语句将进入静默状态: SQL> alter system quiesce restricted; 系统已更改。
3.4.2 挂起状态 • 当数据库处于挂起状态时,数据库所有的物理文件(控制文件、数据文件和重做日志文件)的I/O操作都被暂停,这样能够保证数据库在没有任何I/O操作的情况下进行物理备份。挂起状态与静默状态的区别是:挂起状态并不禁止非管理员用户进行数据库操作,只是暂时停止所有用户的I/O操作。