由于几乎所有的操作系统都支持虚拟内存,所以即使我们使用的内存小于物理内存,也不能避免操作系统将SGA换到虚拟内存(SWAP)。所以我们可以尝试使得SGA锁定在物理内存中不被换到虚拟内存中,这样减少页面的换入和换出,从而提高性能。但在这里遗憾的是,windows是无法避免这种情况的。下面我们来参考在不同的几个系统下怎么实现lock_sga
AIX 5L(AIX 4.3.3以上)
logon aix as root
cd /usr/samples/kernel
。/vmtune (信息如下) v_pingshm已经是1
。/vmtune -S 1
然后oracle用户修改initSID.ora 中 lock_sga = true
重新启动数据库
HP UNIX
Root身份登陆
Create the file "/etc/privgroup": vi /etc/privgroup
Add line "dba MLOCK" to file
As root, run the command "/etc/setprivgrp -f /etc/privgroup":
$/etc/setprivgrp -f /etc/privgroup
oracle用户修改initSID.ora中lock_sga=true
重新启动数据库
SOLARIS (solaris2.6以上)
8i版本以上数据库默认使用隐藏参数 use_ism = true ,自动锁定SGA于内存中,不用设置lock_sga, 如果设置 lock_sga =true 使用非 root 用户启动数据库将返回错误。
WINDOWS
不能设置lock_sga=true,可以通过设置pre_page_sga=true,使得数据库启动的时候就把所有内存页装载,这样可能起到一定的作用。
分享到:
相关推荐
当设置`lock_sga=true`时,Oracle数据库启动时会报错ORA-27126。为了解决这个问题,我们可以使用hugetlbfs(HugeTLB File System)来模拟`lock_sga`的功能。 1. **理解SGA和hugetlbfs** - **SGA**是Oracle数据库的...
', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY', end_date => NULL, comments => 'This is a sample job', job_class => 1, enabled => TRUE, auto_drop => TRUE, store_outlines => FALSE, job_...
- **作用**:监控锁定情况,及时发现并解决死锁等问题。 **4.2 找到热数据块** - **命令**:`SELECT * FROM v$bh WHERE GETS > 10000;` - **作用**:定位频繁访问的数据块,考虑增加缓存或调整访问策略。 **4.3 ...
读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行: 数据库日志归档、 数据库介质恢复、 使数据文件联机或脱机, ...
SQL> ALTER SYSTEM SET resource_limit=true; ``` 3. **创建Profile**:使用`CREATE PROFILE`命令创建一个包含资源限制的`PROFILE`。 4. **分配Profile给用户**:使用`CREATE USER`或`ALTER USER`命令将`PROFILE`...
SGA 的大小受到初始化参数SGA_MAX_SIZE的限制,通常应尽量将其置于物理内存中以提高性能,可以通过设置LOCK_SGA为true来锁定SGA只使用物理内存。我们可以通过show sga命令查看SGA的当前分配情况。 2. 实例的进程...
- **调整LOCK_SGA=TRUE**:启用该参数可以减少对SGA的锁定次数,从而提高并发性能。 - **CPU**:优化CPU配置和使用策略,例如调整CPU亲和性等。 - **DISK I/O**: - **Asynchronous I/O (AIO) servers**:利用...
- **LOCK_SGA**: 当设置为TRUE时,可以将整个SGA锁定在物理内存中,避免页交换。需要注意的是,某些系统可能不支持内存锁定。 #### 使用indirect data buffers - **use_indirect_data_buffers**: 在32位平台上,该...
- **LOCK_SGA**:此参数用于控制SGA是否被锁定在物理内存中。当设置为TRUE时,SGA的所有页面都会被锁定,防止被操作系统置换到虚拟内存中,从而避免PageIn/Out的发生。 #### 使用ASMM自动调整SGA 为了更好地管理...
说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级的读取锁, 以防止在包含该查询的事务处理被提交...
性能数据的收集是进行数据库优化的第一步,它帮助我们了解当前数据库运行的状态,从而定位潜在的问题区域。 ##### 2.1 报警 (Alert) 日志文件 - **路径**:`c:\oracle\product\10.2.0\admin\erp\bdump` - **文件名...
PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME 180 PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_LOCK_TIME 1 PASSWORD_GRACE_TIME 10 PASSWORD_VERIFY_...
这些参数的名称以下划线开头,如`_trace_files_public`和`_lock_sga_areas`。要查询当前系统中的隐藏参数,可以执行以下查询(需以`sys`身份登录): ```sql SELECT ksppinm, ksppstvl, ksppdesc FROM x$ksppi x, ...
- **作用**:记录了Oracle运行期间的重要信息和警告消息,对于诊断问题非常关键。 - **常见错误信息**: - `ORA-01652`:临时表空间空间不足,通常发生在排序操作时。 - `ORA-01653`:表空间空间不足,用于存储表...
- **SQL命令**:`SELECT request.session_id, request.request_id, request.block, request.row, blocking.session_id, blocking.block, blocking.row FROM v$lock request, v$lock blocking WHERE request.request_...
- **2.1.25 Library Cache诊断:Lock, Pin以及Load Lock** - Library Cache是Shared Pool的一个重要组成部分。 - 本书详细介绍了如何诊断Library Cache中的锁问题。 - 实例: - 使用`v$librarycache`视图来监控...
- 使用 `EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID, SERIAL#, TRUE);` 来启用指定会话的 SQL 跟踪功能。 - 获取当前会话的 SID 和 SERIAL# 可以通过 `SELECT SID, SERIAL# FROM V$SESSION WHERE SID = ...
- 设置`TIMED_STATISTICS`参数为`TRUE`。 - 使用`UTLBSTAT`和`UTLESTAT`脚本来收集性能数据。 - 生成`REPORT.TXT`文件进行分析。 - **STATSPACK:** - 创建专门的表空间用于存放性能数据。 - 使用`SPCREATE....
`PCTFREE`, `PCTINCREASE`, `PCTTHRESHOLD`, `PCTUSED`, `PLS_INTEGER`, `POSITIVE`, `POSITIVEN`, `PRAGMA`, `PRECISION`, `PRIOR`, `PRIVATE`, `PRIVATE_SGA`, `PROCEDURE`, `PUBLIC`, `QUIT`, `QUOTED_...