`
hugang357
  • 浏览: 188460 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

管理一个ORACLE实例

阅读更多
1.oralce数据库其他文件在unix和window系统下的区别
2.pfile和spfile的相关内容以及oracle加载参数文件的顺序
3.启动数据库的三个阶段
4.简单介绍startup命令
5.数据库open状态的选项
6.管理数据库的集中方式
oracle                  unix               window
OS验证的组名     dba                      ora_dba或ora_SID_dba
密码文件名称       orapwSID                pwdSID
参数文件目录       $ORACLE_HOME/dbs        $ORACLE_HOME/database
startup使用spfile和pfile的优先顺序
– 非缺省spfileSID.ora:只能通过一种方式,A PFILE can optionally contain a definition to indicate use of an SPFILE. This is the onlyway to start the instance
with an SPFILE in a nondefault location.其中pfile内容为:SPFILE=$ORACLE_HOME/ADMIN/PFILE/$ORACLE_SID.ora
– 缺省SPFILE:不废话,在$ORACLE_HOME/database
– 非缺省initSID.ora:说句废话:pfile=xx/xx/xx/initSID.ora
– 缺省PFILE:在$ORACLE_HOME/database
修改SPFILE 中的参数
ALTER SYSTEM SET 命令用于更改例程参数的值。
ALTER SYSTEM SET parameter_name = parameter_value [COMMENT 'text'] [SCOPE = MEMORY|SPFILE|BOTH][SID= 'sid'|'*']
parameter_name:要更改的参数的名称
parameter_value:要将参数更改为的值
COMMENT:添加在SPFILE 中被更改的参数旁的注释
SCOPE:确定应在内存中、在SPFILE 中还是同时在这两个位置进行更改
MEMORY:只能在当前运行的例程中更改参数值
SPFILE:只能在SPFILE 中更改参数值
BOTH:在当前运行的例程和SPFILE 中均可更改参数值
SID:标识要使用的SPFILE 的ORACLE_SID
'sid':更改SPFILE 时使用的特定SID
'*':使用缺省SID
从SPFILE 中删除一个参数有以下几种方法:
• 将参数重设为缺省值来模拟使用ALTER SYSTEM SET 的删除操作。
• 使用CREATE SPFILE FROM PFILE 重新创建SPFILE。
• 使用ALTER SYSTEM RESET 从SPFILE 删除参数
ALTER SYSTEM SET parameter_name = parameter_value [COMMENT 'text'] [SCOPE = MEMORY|SPFILE|BOTH][SID= 'sid'|'*']
启动数据库
1.启动例程(NOMOUNT) :
启动例程包括下列任务:
• 按以下顺序从$ORACLE_HOME/dbs 读取初始化文件:
– 首先读取spfileSID.ora
– 如果找不到,则读取spfile.ora
– 如果仍然找不到,则读取initSID.ora
使用STARTUP 指定PFILE 参数以覆盖缺省行为。
• 分配SGA
• 启动后台进程
• 打开alertSID.log 文件和跟踪文件(bdump中的两类文件,一类是alertSID.log,一类是后台进程的trace文件)
note:必须在初始化文件中使用DB_NAME 参数对数据库命名,或使用STARTUP 命令命名。
那种情况下使用nomount启动:
原则上在创建数据库或重新创建控制文件过程中,例程才会在NOMOUNT 阶段启动。当然也可以在正常情况下用nomount启动数据库。
2.加载数据库(MOUNT):
若要执行特定的维护操作,可启动例程并加载数据库,但不要打开数据库。
加载数据库包括以下任务:
• 定位并打开参数文件中指定的控制文件
• 读取控制文件以获取数据文件和重做日志文件的名称和状态。但是,在此时不进行数据文件和联机重做日志文件是否存在的检查。
• 使数据库与以前启动的例程关联
那种情况下使用mount启动:
• 重命名数据文件
• 启用和禁用重做日志归档选项
• 执行完全数据库恢复
3.打开数据库(OPEN):
正常的数据库操作指启动例程、加载数据库和打开数据库。通过正常的数据库操作,任何有效用户都可以连接到数据库并执行一般的数据访问操作。
打开数据库包括以下任务:
• 打开联机数据文件
• 打开联机重做日志文件
如果在尝试打开数据库时有任何数据文件或联机重做日志文件不存在,Oracle 服务器将返回错误消息。
在这个最后阶段中,Oracle 服务器验证所有数据文件和联机重做日志文件是否可以打开,并检查数据库的一致性。如果需要,系统监视(SMON) 后台进程将启动例程恢复操作。

STARTUP 命令
若要启动例程,请使用以下命令:
STARTUP [FORCE] [RESTRICT] [PFILE=filename][OPEN [RECOVER][database]|MOUNT|NOMOUNT](注:这不是完整的语法。)
• OPEN:使用户能够访问数据库
• MOUNT:为某些DBA 活动加载数据库,但不允许用户访问数据库
• NOMOUNT:创建SGA 并启动后台进程,但不允许访问数据库
• PFILE=parfile:允许使用非缺省参数文件配置例程
• FORCE:执行正常启动之前终止运行的例程。
• RESTRICT:只允许具有RESTRICTED SESSION 权限的用户访问数据库。
• RECOVER:在数据库启动时开始进行介质恢复。
自动启动数据库:
在UNIX 上:自动启动和关闭数据库可由特定的操作系统文件进行控制,例如,/var/opt/oracle目录下的oratab。
如果在发出STARTUP 命令时出现错误,则在再次发出STARTUP 命令前必须先发出SHUTDOWN 命令。
注:STARTUP 和SHUTDOWN 命令都是SQL*Plus 命令,而不是SQL 命令。

使用alter database命令改变数据库状态,只能从nomount到mount,从mount到open,open的类型有:
1、read only,所有数据对用户只读,理解为不允许产生重做记录的状态。通常对于备用数据库从生产数据库卸载查询处理
1.1 如果查询要用临时表空间进行排序,则临时表空间必须是本地管理的表空间,如果使用字典管理的表空间,将会在system表空间产生记录而导致需要回滚信息。对于sys用户,需要有本地管理的表空间,即system表空间必须是本地管理的表空间。
1.2 该状态下,可以执行不生成重做数据即可更改数据库状态的数据库恢复或操作,如
    可使数据文件脱机和联机
    执行脱机数据文件和表空间的恢复
1.3 对控制文件以及其他trace,log文件的操作亦可以被执行
2、write read 正常模式
3、restrict 以受限模式打开,通常在执行结构维护和数据库导入导出时打开,受限模式下没有权限的用户将不能登录系统。
受限模式打开数据库的方式:
3.1 alter database open restrict
3.2 在数据库打开方式下进入受限模式
       alter system enable restricted session;
3.3 在数据库打开方式下结束受限模式
       alter system disable restricted session;
3.4 数据库打开方式下进入受限模式,打开前存在的用户会话会继续存在。
3.5 可以使用alter system kill session 'sid,serial#'结束会话,sid是V$SESSION 视图中的SID 列的值,serial#是$SESSION视图中的SERIAL# 列的值,会话ID 和序列号用来唯一地标识会话。这样,即使用户注销身份并且新会话使用相同的会话ID,可以通过serial#区分,可确保ALTER SYSTEM KILL SESSION 命令能够应用于正确的会话。ALTER SYSTEM KILL SESSION 命令一执行,将使后台进程PMON 立即执行以下步骤:
   • 回退用户的当前事务
   • 释放所有当前持有的表或行锁定
   • 释放用户当前保留的所有资源
关闭数据库
处理内容

处理内容小项

abort

immediate

transaction

normal
session

是否允许建立新会话

不允许

不允许

不允许

不允许
已经存在的会话

强制断开

回滚事务并断开

等待事务提交后断开

正常
transaction

是否允许建立新事务

不允许

不允许

不允许

可以开始新的事务
已存在的事务

强制结束

回滚事务并断开

等待提交后断开会话

正常执行
db buffer cache

是否处理高速缓存








log buffer

是否处理日志缓存








checkpoint

是否执行检查点








database文件

是否关闭或卸载数据库








recovery

下次启动是否需要恢复








summary

 

强制关闭会话和事务

回滚所有已经开始的事务并关闭会话,不能开始新的会话和事务

所有已开始的事务正常结束后强制关闭会话,不能开始新的会话和事务

所有已存在的会话正常结束后关闭数据库,可以开始新的事务,不能开始新的会话
alterSID.log:
每个Oracle 例程都有一个警报日志文件。如果该文件尚未创建,将在例程启动过程中进行创建。警报日志文件由您进行管理,并随着数据库的继续运行而不断增长。诊断日常操作或错误时,应该首先查看警报日志文件。警报日志文件还包含指向跟踪文件的指针,从而可获得更详细的信息。
警报日志文件记录了以下信息:
• 数据库启动或关闭的时间
• 所有非缺省初始化参数的列表
• 后台进程的启动
• 例程使用的线程
• 正在向其中写入信息的日志序列号LGWR
• 有关日志切换的信息
• 表空间的创建和撤消段
• 已发出的警报声明
• 有关ORA-600 等错误消息和区错误的信息
后台跟踪文件
后台跟踪文件用于记录后台进程(如SMON、PMON、DBWn 和其它后台进程)遇到的错误。只有出现需要写入跟踪文件的错误时,才会创建后台跟踪文件。您可使用它们来诊断和解决问题。最初创建后台跟踪文件后,文件内包含指示数据服务器和操作系统的版本号的标头信息。
用户跟踪文件的命名约定:sid_processname_PID.trc (db01_lgwr_23845.trc)。
其存储位置由BACKGROUND_DUMP_DEST 初始化参数定义。
用户跟踪文件
– 由用户进程生成
– 可由服务器进程生成
– 包含跟踪的SQL 语句的统计信息
– 包含用户错误消息
• 在用户遇到会话错误时创建
• 存储位置由USER_DUMP_DEST 定义
• 大小由MAX_DUMP_FILE_SIZE 定义
• 用户跟踪文件的命名约定:sid_ora_PID.trc(db01_ora_23845.trc)。
启用或禁用用户跟踪-会话级别:
– 使用ALTER SESSION 命令:
ALTER SESSION SET SQL_TRACE = TRUE
– 执行DBMS 过程:
dbms_system.SET_SQL_TRACE_IN_SESSION(sid,serial#,sql_trace)
启用或禁用用户跟踪- 例程级别
– 设置初始化参数:
SQL_TRACE = TRUE
分享到:
评论

相关推荐

    oracle删除和重建实例

    删除 Oracle 实例是一个复杂的过程,需要遵循一定的步骤,以免出现意外错误。下面是删除 Oracle 实例的步骤: 1. 删除实例记录:可以使用 dbca 工具或手动删除实例记录。使用 dbca 工具需要从图形界面运行 dbca,...

    Oracle 单一主机多个实例多个监听器配置

    默认情况下,一个监听器可以监听多个实例,但通常,每个实例都应有其特定的监听器配置,以避免资源竞争和提供更好的管理界面。 #### 2. 配置多个监听器的必要性 当在同一主机上运行多个Oracle实例时,为了避免实例...

    Linux上建第二个ORACLE实例分析

    在Linux操作系统上创建和管理ORACLE数据库实例是一个技术性较强的任务,涉及到多个步骤和系统级别的配置。以下是对"Linux上建第二个ORACLE实例分析"这一主题的详细解释: 首先,我们要理解ORACLE实例是什么。在...

    linux下oracle安装两个实例一个监听的配置

    在Linux环境下配置Oracle数据库时,有时我们需要在同一台服务器上安装多个Oracle实例,并通过一个监听器进行管理。这种配置可以提高资源利用率并简化网络管理。本文将详细介绍如何在Linux下为两个Oracle实例配置一个...

    手动创建oracle实例

    手动创建Oracle实例是一个涉及多个步骤的过程,这不仅考验着数据库管理员对Oracle数据库系统的理解,也体现了其在系统配置与管理方面的能力。以下将基于提供的文件信息,深入解析手动创建Oracle实例的关键步骤及相关...

    oracle一个监听多个实例

    本文将详细讲述如何在Oracle 11g环境下设置一个监听器对应多个实例的配置方法。 首先,Oracle的网络配置可以分为图形界面配置和命令行配置两种方式。 在图形界面下,主要通过Net Configuration Assistant工具来...

    oracle修改实例名

    实例名(也称作SID,即系统标识符)是数据库安装后在操作系统中唯一标识一个Oracle实例的名称。在Oracle数据库的管理中,正确地修改实例名是数据库维护的关键步骤之一,特别是在迁移或者整合数据库时。 修改Oracle...

    linux下oracle手动建实例

    3. **SID (System Identifier)**:每个Oracle实例都有一个唯一的SID来标识它。 4. **数据库认证方式**:常见的认证方式包括密码文件认证、操作系统认证等。 5. **脚本编写**:创建数据库及执行数据库管理任务通常...

    linux下oracle创建实例总结

    完成以上步骤后,即可成功创建一个新的 Oracle 数据库实例。这涉及到环境变量的配置、必要目录的创建、密码文件的建立以及初始化参数文件的详细设置。通过这些步骤,能够确保 Oracle 实例的安全运行和高效管理。

    oracle实例删除

    Oracle RAC (Real Application Clusters) 是一种高可用性和可扩展性的数据库解决方案,它允许多个Oracle数据库实例同时访问同一个数据库。在Oracle RAC环境中进行实例管理是一项重要的任务,包括添加新的实例或删除...

    ORACLE实例与数据库详解.doc

    3. **实例与数据库的关系**:Oracle实例并不直接包含数据库的数据,但实例提供了一个访问数据库的通道。实例启动时可以不加载数据库(startup nomount),这时只能执行一些管理任务。当实例装载(mount)数据库后,...

    Oracle实例死掉的情况下如何恢复

    当数据库服务器上只有一个Oracle实例时,可以按照以下步骤进行恢复: 1. **终止所有Oracle进程** - 使用命令`kill -9`终止所有Oracle进程。通常只需要杀死其中一个进程(如监听器或某个特定的后台进程),其他相关...

    一个oracle实例

    【Oracle实例】是一个数据库管理系统运行时的环境,它包含了内存结构和后台进程,用于管理和处理数据库。对于初学者来说,了解Oracle实例是学习Oracle数据库的关键步骤。实例与数据库紧密关联,当数据库启动时,...

    oracle数据库_实例_用户_表空间之间的关系

    Oracle 数据库的概念不同于其他数据库,它是一个操作系统只有一个库,可以看作是 Oracle 只有一个大数据库。 实例 Oracle 实例(Oracle Instance)是一组后台进程(Backguound Processes)和内存结构(Memory ...

    实战管理Oracle 12c数据库实例

    Oracle 12c数据库实例管理是 DBA 的核心工作之一,本文将从数据库版本号、参数对比、安装环境、启动数据库阶段等方面详细介绍实战管理Oracle 12c数据库实例的知识点。 1. 数据库版本号 Oracle数据库版本号由五个...

    Oracle10g实例管理ppt

    例如,使用`emctl start dbconsole`命令可以启动Database Control,这是EM的一个组件,用于图形化管理数据库。而停止数据库控制台则使用`emctl stop dbconsole`命令。 Enterprise Manager 是Oracle提供的一种全面的...

    javascript连接Oracle实例

    在文章中,我们可以看到作者使用JavaScript语言编写了一个连接Oracle实例的示例代码。这个示例代码使用了ADODB.Connection对象来连接Oracle实例,并执行了一条SELECT语句来查询数据库中的数据。 标签解释 ...

    oracle精品实例,练习总结

    这个"oracle精品实例,练习总结"的压缩包文件显然包含了nickcheng个人整理的一系列关于Oracle数据库的操作实例和学习心得,旨在帮助用户深入理解和应用Oracle技术。下面我们将深入探讨Oracle数据库的一些关键知识点。...

Global site tag (gtag.js) - Google Analytics