第03章Oracle实例
初始化参数文件
要启动实例并打开数据库,必须以sysdba身份连接并输入startup命令。然后,Oracle服务器将读取初始化参数文件,并根据其中包含的初始化参数准备实例。
两种类型的初始化参数文件:
- 静态参数文件,pfile
- 持久服务器参数文件,spfile
静态参数文件:initSID.ora
介绍:
- 文本文件
- 使用操作系统编辑器修改
- 手动修改
- 更改将在下次启动时生效
- 仅在实例启动期间打开
- 默认位置为$ORACLE U HOME/DBS
创建文件:
- 从init.ora示例文件创建
由Oracle Universal安装程序安装的示例
使用操作系统copy命令复制示例
由SID数据库唯一标识
cp init.ora$oracle home/dbs/initdb101.ora - 修改initsid.ora文件
编辑参数
特定于数据库需求
静态参数文件例子
//初始化参数文件:initba01.ora #Initialization Parameter File: initdba01.ora //数据库名称=dba01 db_name = dba01 //实例名=dba01 instance_name = dba01 //控制文件=(/主页/dba01/oradata/u01/control01dba01.ctl,主/dba01/oradata/u02/control01dba02.ctl) control_files = ( /home/dba01/ORADATA/u01/control01dba01.ctl, /home/dba01/ORADATA/u02/control01dba02.ctl) //数据库块大小=4096 db_block_size = 4096 //数据库缓存大小=4M db_cache_size = 4M //共享池大小=50000000 shared_pool_size = 50000000 //java_pool_大小=50000000 java_pool_size = 50000000 //最大转储文件大小=10240 max_dump_file_size = 10240 //后台转储目标=/home/dba01/admin/bdump background_dump_dest = /home/dba01/ADMIN/BDUMP //用户转储目标=/home/dba01/admin/udump user_dump_dest = /home/dba01/ADMIN/UDUMP //核心转储目标=/home/dba01/admin/cdump core_dump_dest = /home/dba01/ADMIN/CDUMP //撤消管理=自动 undo_management = AUTO //撤消表空间=撤消 undo_tablespace = UNDOTBS
持久服务器参数文件
介绍:
- 二进制文件
- 由Oracle服务器维护
- 始终驻留在服务器端
- 能够在关闭和启动期间持续进行更改
- 可以自动调整参数值
- 可以让恢复管理器支持备份到初始化参数文件
创建SPfiles:
- 从pfile文件创建
SQL> CREATE SPFILE = ‘ORACLE_HOME/dbs/initDBA01.ora’;
参数说明:
SPFILE-NAME: SPFILE to be created
PFILE-NAME: PFILE creating the SPFILE - 可以在实例启动之前或之后执行
spfile示例:
*.background_dump_dest= '/home/dba01/ADMIN/BDUMP' *.compatible='9.2.0' *.control_files='/home/dba01/ORADATA/u01/ctrl01.ctl' *.core_dump_dest= '/home/dba01/ADMIN/CDUMP' *.db_block_size=4096 *.db_name='dba01' *.db_domain= 'world' *.global_names=TRUE *.instance_name='dba01' *.remote_login_passwordfile='exclusive' *.java_pool_size=50000000 *.shared_pool_size=50000000 *.undo_management='AUTO' *.undo_tablespace='UNDOTBS'
修改spfile中的参数
从操作系统层面不能修改,只能通过数据库内部参数文件修改
SYSTEM SET parameter_name = parameter_value [COMMENT 'text'] [SCOPE = MALTER SYSTEM SET 命令用于更改实例参数的值。
ALTER EMORY|SPFILE|BOTH] [SID= 'sid'|'*']
参数说明:
- parameter_name: 要更改的参数的名称
- parameter_value: 将参数更改为的值
- COMMENT: 要添加到要更改的参数旁边的spfile中的注释。
- SCOPE: 确定是在内存、spfile中还是在这两个区域中进行更改
- MEMORY: 仅在当前运行的实例中更改参数值
- SPFILE 仅更改spfile中的参数值
- BOTH: 更改当前运行的实例和spfile中的参数值。(静态参数不能同时用于修改,例如日志缓冲区。)
- SID: 标识正在使用的spfile的Oracle_sid
- 'sid': 更改spfile时使用的特定sid
- '*': 使用默认的spfile文件
显示在spfile中参数:
show parameter 命令用于更改实例参数的值。
show parameter [参数名称]
从spfile创建pfile:
pfile在服务器端创建为文本文件。此命令可以在实例启动之前或之后执行。这提供了一种查看spfile并通过以下方式进行修改的简单方法:
- 将spfile导出到pfile
- 编辑pfile
- 从已编辑的pfile重新创建spfile
优先顺序:
- spfilesid.ora文件
- 默认spfile
- 初始ID.ORA
- 默认文件
指定的pfile可以覆盖优先级。
startup pfile=$oracle_home/dbs/initba1.ora
pfile可以指示使用spfile。
spfile=/database/startup/spfiledba1.ora
启动数据库
启动数据库时,您可以选择它的启动状态。以下场景描述了启动实例的不同阶段。
启动实例(nomount)
只有在创建数据库或重新创建控制文件时,才会在nomount阶段启动实例。
启动实例包括以下任务:
- 按以下顺序从$oracle_home/dbs读取初始化文件:
第一个spfilesid.ora
如果找不到,则spfile.ora
如果找不到,则initsid.ora
使用startup指定pfile参数将覆盖默认行为。 - 分配SGA
- 启动后台进程
- 打开alertsid.log文件和跟踪文件
必须使用初始化参数文件或启动命令中的db_name参数来命名数据库。
启动数据库时,您可以选择它的启动状态。以下场景描述了启动实例的不同阶段。
装入数据库(装入)
只有在创建数据库或重新创建控制文件时,才会在nomount阶段启动实例。
要执行特定的维护操作,可以启动实例并装载数据库,但不打开数据库。
例如,在执行以下任务时,必须装入数据库,但不能打开:
- 重命名数据文件
- 启用和禁用联机重做日志文件存档选项
- 正在执行完整的数据库恢复
装载数据库包括以下任务: - 定位并打开参数文件中指定的控制文件
- 读取控制文件以获取数据文件和联机重做日志文件的名称和状态。但是,此时不执行任何检查来验证数据文件和联机重做日志文件的存在。
打开数据库(打开)
正常的数据库操作意味着一个实例被启动,数据库被装入并打开。通过正常的数据库操作,任何有效的用户都可以连接到数据库并执行典型的数据访问操作。
打开数据库包括以下任务:
- 打开联机数据文件
- 打开联机重做日志文件
如果试图打开数据库时没有任何数据文件或联机重做日志文件,Oracle服务器将返回一个错误。
在最后一个阶段,Oracle服务器将验证所有数据文件和联机重做日志文件是否都可以打开,并检查数据库的一致性。如有必要,SMON后台进程将启动实例恢复。
启动命令:
STARTUP [FORCE] [RESTRICT] [PFILE=filename] [OPEN [RECOVER][database] |MOUNT |NOMOUNT]
参数说明:
- OPEN:允许用户访问数据库
- mount:为某些DBA活动装载数据库,但不提供用户访问数据库的权限
- nomount:创建SGA并启动后台进程,但不提供对数据库的访问
- pfile=parfile:启用用于配置实例的非默认初始化参数文件
- force:在执行正常启动之前中止正在运行的实例
- RESTRICT:仅允许具有受限会话权限的用户访问数据库
- RECOVER:在数据库启动时开始媒体恢复
alter database命令
要将数据库从nomount移到mount阶段或从mount移到open阶段,请使用alter database命令:
ALTER DATABASE (安装/打开)
为了防止用户事务修改数据,可以以只读模式打开数据库。
要启动实例,请使用以下命令:
ALTER DATABASE OPEN [读写只读]
参数说明:
- READ WRITE:以读/写模式打开数据库,用户可以生成在线重做日志文件。
- READ ONLY:限制用户只读事务,防止用户生成联机重做日志文件信息。
关闭数据库
关闭数据库以使操作系统脱机备份所有物理结构,并在重新启动时使修改的静态初始化参数生效。要关闭实例,必须以sysoperar或sysdba身份连接,并使用以下命令:
SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]
使用诊断文件监视实例
诊断文件
- 包含有关遇到的重要事件的信息
- 用于解决问题
- 用于在日常基础上更好地管理数据库
有几种类型
- alertsid.log文件:数据库日常操作的信息
- 后台跟踪文件:后台进程(如smon、pmon、dbwn等)失败时的重要信息
- 用户跟踪文件:致命用户错误或用户强制跟踪文件的重要信息
警报日志文件
- alertsid.log文件:
记录命令
记录重大事件的结果
用于日常操作信息
用于诊断数据库错误 - 每个条目都有一个与之相关联的时间戳
- 必须由DBA管理
- BACKGROUND_DUMP_DEST(后台转储目标)初始化参数定义的位置。
注意:Oracle 10g中警报日志的默认路径是oracle_sid/bdump,
在Oracle11g中是oracle_sid/$oracle_sid/trace。如果意外删除了警报日志文件,则不需要执行任何操作,该文件将由实例自动创建。更改日志文件
每个Oracle实例都有一个警报日志文件。如果尚未创建,则在实例启动。警报日志文件必须由DBA管理,当数据库继续工作时,它继续增长。警报日志文件应该是您查找的第一个位置。诊断日常操作或错误时。警报日志文件还包含用来跟踪文件以获取更详细的信息的指针。
警报日志文件保存以下信息的记录: - 启动或关闭数据库时间
- 所有非默认初始化参数的列表
- 启动后台流程
- 实例使用的线程
- 日志序列号lgwr正在写入
- 关于日志切换的信息
- 创建表空间和撤消段
- 更改已发布的报表
- 有关错误信息的信息,如ORA-600和扩展数据块错误
后台跟踪文件
- 后台跟踪文件用于记录后台进程遇到的错误,如SMON, PMON, DBWN和其他后台进程。只有当错误需要写入跟踪文件时,这些文件才存在。您可以使用这些文件诊断和排除问题。最初创建后台跟踪文件时,它包含指示数据服务器和操作系统版本号的头信息。
- 用户跟踪文件的命名约定:sid_processname_pid.trc(db01_lgwr_23845.trc)。
- 其位置由BACKGROUND_DUMP_DEST(后台转储目标)初始化参数定义。
用户跟踪文件
- 用户跟踪文件
由用户进程生成
可以由服务器进程生成
包含跟踪的SQL语句的统计信息
包含用户错误消息 - 当用户遇到用户会话错误时创建
- 用户跟踪文件的命名约定:sid_ora_pid.trc(db01_ora_23845.trc)。
- 位置由USER_DUMP_DEST(用户转储)目标定义
- 由MAX_DUMP_FILE_SIZE(最大转储文件大小)定义大小