Oracle数据库初始化参数更改的注意事项
一般只有在大型应用中或者数据据库性能明显下降时才需要修改这个初始化参数。所以从这个角度来讲,初始化参数的调整算是Oracle数据库中的一个高级应用。但是这也是一个Oracle数据库管理员必须要掌握的内容。为了更高的调整数据库的初始化参数,笔者认为管理员在了解各个初始化参数的用途以及调整规则之前,需要先了解一些初始化参数调整的一些共性的内容。具体来说,主要有以下几个方面。
一、需要了解哪些参数不用重新启动即可生效。
在Oracle数据库中,根据生效的时间不同,可以把参数大致分为两类。一类是必须重新启动后才能够修改或者生效的参数;另外一类就是修改后不用重新启动即生效的参数。一般来说,数据库管理员比较喜欢第二类参数,即修改后不需要重新启动立即生效的参数。为什么呢?因为数据库服务器投入生产使用之后,不能够随意重新启动。如果修改后需要重新启动才能够生效,或者需要重新启动后才能够修改参数,那么在调整参数的过程中显然需要中断用户的访问,会增加停机时间。这对于数据库部署来说,打击会非常的大。因为从稳定性与可用性出发,数据库管理员是以最小的停机时间为目标的。而此时人为的增加停机时间,显然跟这个目标有冲突。所以,数据库管理员就需要知道哪些参数是不用重新启动就可以修改与生效的;而哪些参数则必须重新启动才可以。这是数据库管理员再调整参数之前首先需要知道的内容。一方面管理员可以根据这个特性,来评估停机的损失与调整参数可能带来的收益。如果收益大于损失的话,那么仍然有调整初始化参数的必要。二是来确定参数调整的时间。哪些不需要重新启动,即调整参数不会导致停机的情况下,则参数的调整时间相对来说灵活一点,限制不多。但是如果需要调整重新启动才能够生效或者修改的参数,那么就需要选择一个合适的时机了。如需要选择晚上12点以后的时间,这个时段往往使用数据库的用户并不是很多。当然这个时间每个起夜都可能不同。总之就是选择一个使用数据库用户尽量少的时候。如此的话,才能够在最大程度上降低数据库停机造成的损失。
那么哪些参数不需用重新启动就可以被修改呢?其实,数据库管理员只需要查询动态视图,即可以知道哪些参数不用关闭或者重新启动就可以更改。如在动态视同v$parameter中,存储着初始化参数的值。一般来说,可以在查询语句中加入条件issys_modifiable<>’FALSE’ or isses_modifiable<>’FALSE’(注意他们之间是or的关系,而不是and关系),最后查询出来的参数就是不用关闭或者重新启动数据库就可以设置的初始化参数。同时这些参数也是可以利用ALTER SYSTEM与ALTER SESSION命令可以更改的部分初始化参数。也就是说,不用关闭或者重新启动数据库就可以修改的参数都可以使用上面两个命令来进行重新设置。但是并不是说,利用这两个命令都可以在不用重新启动或者关闭数据库的情况更改初始化参数。简单的说,就是可以利用这两个命令来更改的参数,有些需要重新启动或者关闭数据库,而有些则不用。
二、根据20/80原则来确定需要更改的参数。
Oracle数据库中的初始化参数有上百个。无论出于什么目的,去一一调整这些参数往往是不现实的。一个优秀的数据库管理员,只需要掌握其中少数几个参数的修改即可。往往掌握这几个参数的修改方法、原则以注意事项,就可以完成大部分的数据库维护任务。这就是20/80的规律在其作用。也就是说,只需要掌握20%的参数(其实还远远不到这个比例),就可以完成80%的任务(其实远远高于这个比例)。也就是说,10/90规则对这个Oracle初始化参数来说,可能更加的适用。总之笔者要说的就是,只需要掌握众多初始化参数中的少数几个即可。即使需要通过调整初始化参数来提高数据库性能或者其他目的的,也就是在这几个少数的初始化参数中。对于其他的参数,数据库管理员只需要了解其用途,而不需要了解该如何调整这些参数。因为遇到的几率可以说基本没有。
那么这些重要的参数到底有哪些呢?主要有以下几个参数。最重要的一个参数就是 DB_CACHE_SIZE。这是一个用来调整数据库缓存大小的参数。在必要的时候,调整这个参数的大小,可以提高数据缓存的命中率,从而大幅度的提高数据库的性能。第二个参数是DB_BLOCK_SIZE。这个参数主要是用来指定数据库在建立时所默认的块大小。如果块设置的比较小,则有可能会发生行链化现象,从而降低数据库的性能;也有可能增加数据库的碎片,浪费表空间的存储空间以及降低数据库的查询性能等等。所以根据需要有时候也要调整这个块大小来改善数据库的性能。第三个参数是SHARED_POOL_SIZE参数。这个参数主要是为那些数据字典缓存和共享SQL语句指定了在SGA里所分配的内存。简单的来说,合理配置这个参数,能够同等的共享SQL语句。调整这个参数,也是一种优化数据库性能的常用手段。第四个参数为SGA_MAX_SIZE参数,这个参数指定了SGA可以动态增长的最大内存。在SQLServer数据库中也有类似的参数。一般来说,在同台数据库服务器中若部署有多个应用服务的话,则往往需要合理配置这个参数来避免多个应用服务之间争用内存。如果这个参数设置的不合适的话,则有时候会导致另外一种应用服务由于没有足够的内存而停止服务。第五个参数为LOG_CHECKPOINT_INTERVAL。这个参数主要用来设置检查点的频率。在每个检查点中,数据库系统执行数据写出,将所有脏块(已经修改还没有保存到硬盘中的数据)写入到数据库中对应的数据文件中。默认情况下,如果在数据库缓存中有1/4的数据缓冲区是脏缓冲区,则数据库系统会自动执行检查点。另外一个强制的原则就是在进行日志切换时,也会执行检查点。在一些特定的情况下,如建立数据仓库,需要调整这个参数以满足特定场合的需要。
这五个参数是笔者这几年工作以上遇到的最频繁的初始化参数。基本上数据库维护与性能调优就是围绕着这几个参数来的。为此笔者建议,各位数据库管理员在学习数据库初始化参数的调整技巧时,可以从这几个参数出发。或者说,这几个参数是数据库管理员必须要掌握的。不只是简单的了解,而是需要吃透它。只有如此,在遇到情况时,才可以判断是否需要进行更改,以及应对在更改过程中可能出现的问题。对于其他的一些参数,笔者认为数据库管理员只需要了解其基本用途即可。或许笔者在总结这些参数的时候,有漏掉的地方,欢迎大家来补充。以后若有机会,笔者也会像大家详细介绍在什么情况下该调整什么参数;以及在调整过程中可能会遇到的麻烦。大家若对这方面的话题感兴趣,可以关注笔者后面的文章。
三、使用SPFILE来动态修改参数。
在Oracle10G以后的版本中,还允许数据库管理员使用一个SPFILE来存储实例参数的动态修改。在10G以前的版本中,除非将参数手动的添加到初始参数文件中,否则动态的修改参数在数据库重新启动后都会丢失。这跟环境变量的设置有些类似。但是在10G以后的版本中,在这方面有了很大的改善。如开启SPFILE机制的话,则系统就会启用一个服务器参数文件,在内存中动态改变某些参数的时候,同时将这些改变记录到这个服务器参数文件中。等到下次重新启动时,服务器会读取喜欢个服务器参数文件中的值,用来初始化数据库系统。也就是说,从现在开始一些动态修改的参数也可以永久生效了。这对于数据库管理员来说,无疑是一个福音。
从以上的分析中可以看出,这个数据库参数的调整还是一个比较复杂的工作。笔者认为,管理员在学习如何调整这个参数之前,需要先了解上面这些共性的内容。即参数修改的时间限制、最可能需要调整的参数以及如何让动态参数永远生效等等。这些是做好参数优化工作的基础。
分享到:
相关推荐
Oracle 数据库的初始化参数是在数据库启动时用于配置和控制数据库操作的关键设置。这些参数对于确保数据库高效稳定地运行至关重要。本文档将详细介绍 Oracle 初始化参数的相关概念、参数文件的管理以及如何查询和...
### 更改Oracle数据库的用户连接数 在Oracle数据库管理中,有时我们可能会遇到因为...以上就是关于如何更改Oracle数据库用户连接数的详细步骤和注意事项。希望这些信息能够帮助你更好地管理和优化Oracle数据库系统。
通过上述介绍可以看出,Oracle数据库初始化参数设置涉及多个方面,包括数据文件调整大小、表空间创建与管理、回滚段操作以及日志文件管理等。合理设置这些参数不仅有助于提升数据库性能,还能增强数据库的安全性和...
- **注意事项**: 关注重要的初始化参数,如`sga_target`、`pga_aggregate_target`等。 ##### 4.2 检查数据库连接情况 - **命令**: `$ select count(*) from v$session;` - **解释**: 统计当前连接到数据库的会话...
- **完整备份**:通常包括所有数据文件、控制文件、重做日志文件和初始化参数文件。C#中,可以使用System.IO类库进行文件复制操作,配合Oracle的Export功能,将数据库对象导出到二进制或文本文件。 - **增量备份**...
3. **执行控制文件重建脚本**:通过SQL*Plus连接至目标数据库实例,并执行之前准备的控制文件重建脚本,如`@D:\test\clonetest.sql`,完成数据库结构的初始化。 #### 四、后续步骤 1. **启动并检查目标数据库**:...
在安装Oracle数据库的过程中,有几个关键步骤和注意事项是必须遵循的,这些步骤主要涉及系统配置、用户权限管理和软件安装。以下是对这些知识点的详细说明: 1. **创建Oracle用户和用户组**: 在Linux系统中,为了...
4. 修改$ORACLE_HOME/dbs目录下的配置文件:$ORACLE_HOME/dbs目录包含了许多控制文件,其中的init文件是初始化参数文件,也需根据新的实例名进行修改。这一步骤是重要的,因为init文件中包含了诸多数据库启动时需要...
2. **数据库初始化参数要求** - **db_domain=test.com.cn** 设置数据库的域名,默认情况下为`WORLD`,建议使用公司自己的域名,例如这里的`test.com.cn`。 - **global_names=true** 要求数据库链接和被连接的...
1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 1.4.3 优化数据字典存储 1.5 理解 CREATE DATABASE 命令 1.6 创建数据库的技术 1.6.1 利用 Oracle 安装程序创建数据库 1.6.2 使用安装程序创建数据库...
- **注意事项**:确保计算机环境满足Oracle数据库服务器的最低系统要求。 ##### 第二步:初始化安装流程 - **操作步骤**:点击“下一步”继续安装过程。 - **功能介绍**:在这一界面,用户可以选择查看已安装产品或...
- **初始化参数选择设定**: 设置数据库的各种运行时参数,这些参数会影响数据库的性能和行为。 - **文件存储及创建选项**: 选择存储方式,如文件系统或ASM (Automatic Storage Management)。 - **告警日志及跟踪文件...
标准数据库审计是Oracle提供的一种基本审计机制,通过初始化参数`AUDIT_TRAIL`来控制实例级别的审计策略。默认情况下,该参数设置为关闭状态,即不进行审计。 - **参数设置**:`AUDIT_TRAIL`参数支持多个选项,其中...
- 参数文件:初始化参数的作用,如何编辑`init.ora`或`spfile`。 - 网络配置:理解Oracle Net Services,包括监听器(Listener)、TNSNAMES.ORA文件的设置。 3. **Oracle数据库架构**: - 实例与数据库:实例是...
- 修改初始化参数文件(init.ora或spfile):添加或修改NLS_CHARACTERSET参数,指定所需字符集。 - 重启数据库服务:使更改生效。 - 验证字符集更改:再次查询字符集信息,确认已更新。 5. 注意事项 - 更改字符...
- **创建初始化参数文件**: ```sql CREATE PFILE='D:\initora.ora' FROM SPFILE; ``` - **参数文件配置**: ```properties orcl.__db_cache_size=301989888 orcl.__java_pool_size=4194304 orcl.__large_pool...
本文将详细介绍在这种情况下如何恢复Oracle数据库,并提供具体的操作步骤和注意事项。 #### 二、准备工作 恢复Oracle数据库前,需要进行一系列准备工作,确保后续操作能够顺利进行: 1. **重新创建初始化参数文件**...
9. **性能优化**:根据你的业务需求,考虑初始化参数的设定,如SGA大小、后台进程数量等,以优化数据库性能。 10. **备份与恢复策略**:安装过程中规划备份策略,了解RMAN(Recovery Manager)的基本用法,以确保...