白木耳 2024-10-23 13:23 采纳率: 76.5%
浏览 2

oracle 9i 內存配置

OS:Enterprise Linux Enterprise Linux AS release 4 x86_64
记忆体:16G
/etc/sysctl.conf

# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
kernel.shmmax=8589934592
kernel.shmmni=4096
kernel.shmall=4194304
kernel.sem=250 32000 100 128

配置两台资料库(oracle db 9i),两台DB的内存配置各要多少?
A.sga_max_size
B.shared_pool_size
C.db_cache_size
D.pga_aggregate_target
E.log_buffer
F.large_pool_size

  • 写回答

1条回答 默认 最新

  • 越重天 新星创作者: Java技术领域 2024-10-23 15:50
    关注

    本答案参考 多次询问 ChatGPT-3.5 后选择的最佳回答,若是满意,还请采纳,谢谢

    以下是在这种环境下Oracle 9i数据库内存配置的一些考虑因素和大致建议:

    一、整体内存分配原则

    1. SGA(System Global Area)

      • SGA_MAX_SIZE
        • 对于16GB内存的系统,考虑到操作系统和其他进程也需要内存,分配给Oracle的SGA_MAX_SIZE可以设置为8 - 12GB左右。例如,可以先尝试设置为8GB(8589934592 bytes)。这是SGA可以达到的最大尺寸,在数据库运行期间可以根据需要动态调整SGA中的各个组件大小,但不能超过这个最大值。
      • SHARED_POOL_SIZE
        • 共享池用于缓存SQL语句、PL/SQL代码等。对于一般的应用场景,可将SHARED_POOL_SIZE设置为1 - 2GB。例如,1GB(1073741824 bytes)。如果应用中有大量复杂的SQL语句和存储过程,可能需要适当增大这个值。
      • DB_CACHE_SIZE
        • 数据缓冲区缓存,用于缓存从磁盘读取的数据块。可以分配4 - 6GB左右。例如,4GB(4294967296 bytes)。如果数据库主要是OLTP(联机事务处理)类型的应用,可能需要较大的DB_CACHE_SIZE来提高数据读取性能;如果是OLAP(联机分析处理)类型的应用,可能相对可以小一些,但仍然需要足够的缓存来避免频繁的磁盘I/O。
      • LARGE_POOL_SIZE
        • 如果有诸如并行查询、RMAN备份等操作,需要分配一定的内存到LARGE_POOL_SIZE。对于一般情况,可以设置为200 - 500MB。例如,256MB(268435456 bytes)。
      • LOG_BUFFER
        • 日志缓冲区,通常不需要设置得非常大。可以设置为10 - 50MB。例如,32MB(33554432 bytes)。
    2. PGA(Program Global Area)

      • PGA_AGGREGATE_TARGET
        • PGA是服务器进程专用的内存区域。对于16GB内存的系统,PGA_AGGREGATE_TARGET可以设置为2 - 4GB。例如,2GB(2147483648 bytes)。如果有大量的排序、哈希连接等操作,可能需要适当增大PGA的大小。

    二、针对两台数据库的具体配置

    1. 数据库1
      • A. sga_max_size = 8GB(8589934592 bytes)
      • B. shared_pool_size = 1GB(1073741824 bytes)
      • C. db_cache_size = 4GB(4294967296 bytes)
      • D. pga_aggregate_target = 2GB(2147483648 bytes)
      • E. log_buffer = 32MB(33554432 bytes)
      • F. large_pool_size = 256MB(268435456 bytes)
    2. 数据库2
      • A. sga_max_size = 8GB(8589934592 bytes)
      • B. shared_pool_size = 1GB(1073741824 bytes)
      • C. db_cache_size = 4GB(4294967296 bytes)
      • D. pga_aggregate_target = 2GB(2147483648 bytes)
      • E. log_buffer = 32MB(33554432 bytes)
      • F. large_pool_size = 256MB(268435456 bytes)

    需要注意的是,这些配置只是初步的建议,实际的最佳内存配置需要根据数据库的具体应用场景(如OLTP或OLAP)、并发用户数量、查询复杂度等因素进行调整。在调整内存配置后,需要密切关注数据库的性能指标,如命中率、响应时间等,以确保数据库性能得到优化。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月23日