设置Oracle数据库默认为spfle启动,并且设置数据库SGA大小和PGA大小

本次目标:设置数据库默认为spfle启动,并且数据库SGA大小为2G,PGA大小为200M

1、环境检查

Oracle 9i以后启动的时候默认使用的初始化文件是spfile,但是为了万一还是进行查看一下

首先,确认您的数据库当前是否使用pfile(静态文件)进行启动。您可以运行以下命令来检查

这里命令输入pfile和spfile都是一样的

SHOW PARAMETER spfile

设置Oracle数据库默认为spfle启动,并且设置数据库SGA大小和PGA大小_第1张图片

可以看到我当前是spfile启动

如果是pfile启动的话,需要手工改动使用spfle

STARTUP SPFILE = spfile的路径

2、修改SGA大小和PGA大小

ALTER SYSTEM SET sga_target=2G SCOPE=SPFILE; 
ALTER SYSTEM SET pga_aggregate_target=200M SCOPE=SPFILE;

设置Oracle数据库默认为spfle启动,并且设置数据库SGA大小和PGA大小_第2张图片

修改成功。

重启数据库实例,使新的参数设置生效:

SHUTDOWN IMMEDIATE;
STARTUP;

检查参数设置是否生效。执行以下命令确认参数设置是否正确:

SHOW PARAMETER sga_target;
SHOW PARAMETER pga_aggregate_target;

 设置Oracle数据库默认为spfle启动,并且设置数据库SGA大小和PGA大小_第3张图片

查看到一切正常,完成任务。

3、可能遇到的报错

这里注意可能会因为内存不足而报错。

设置Oracle数据库默认为spfle启动,并且设置数据库SGA大小和PGA大小_第4张图片

问题解析:

发现此时报错,虽然提示的MEMORY_TARGET值最少为2256M,但是发现修改为参数文件还是无法启动数据库实例,此时可以把memory_target设置为0,此时禁用掉AMM管理方式,Oracle 数据库实例将无法自动调整和管理内存分配。这意味着需要手动配置和管理各个内存结构,如共享池、数据库缓冲区等,以及进行手动的性能优化和内存管理工作。

AMM 是一种自动内存管理技术,它允许数据库实例根据需要自动调整和管理内存分配。通过设置 SGA_TARGET 参数,AMM 可以自动分配和释放共享池、数据库缓冲区和重做日志缓冲区等共享内存组件的大小,以适应实际工作负载的变化。AMM 简化了内存管理的过程,并且对于许多小型到中型数据库是一个方便且有效的选项。

ASMM 是 AMM 的一个特定功能,用于自动管理 SGA 内存中的共享池和数据库缓冲区的大小。ASMM 会根据实际需求动态调整这些内存组件的大小,以提供最佳性能和资源利用率。ASMM 主要关注 SGA 内存的管理,而没有涉及其他内存结构,比如 PGA(Program Global Area)。

总结来说,AMM 是一种更广义的自动内存管理技术,包括对SGA和PGA的管理,而 ASMM 是 AMM 中专注于自动管理 SGA 内存的一个具体功能。选择使用哪种技术取决于数据库管理员对内存管理的需求和偏好,以及数据库的规模和工作负载。

具体参考:有道云笔记 (youdao.com)icon-default.png?t=N7T8https://note.youdao.com/ynoteshare/index.html?id=03d29c5e561010b357be863b0b20403d&type=note&_time=1698498710962

解决方案:

修改配置文件:

ALTER SYSTEM SET MEMORY_TARGET=0 SCOPE=SPFILE;

 然后再去执行上边第二步操作就OK了。

你可能感兴趣的:(数据库运维,oracle,数据库,运维,linux)