oracle 11g 修改 memory_max_target,oracle 11g修改 memory_max_target和memory_target

测试过程中想要调整oracle的内存设置,进行如下操作:

 
 

SQL> show parameter memory_max_target

NAME TYPE VALUE

memory_max_target big integer 10G

SQL> show parameter memory_target

NAME TYPE VALUE

memory_target big integer 10G

SQL> alter system set memory_max_target=36G;

alter system set memory_max_target=36G

*

ERROR at line 1:

ORA-02095: specified initialization parameter cannot be modified

SQL> alter system set memory_target=36G;

alter system set memory_target=36G

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET

SQL> show parameter memory

NAME TYPE VALUE

hi_shared_memory_address integer 0

memory_max_target big integer 10G

memory_target big integer 10G

shared_memory_address integer 0

SQL> alter system set memory_max_target=36G scope=spfile;

System altered.

SQL> alter system set memory_target=36G scope=spfile;

System altered.

SQL> show parameter target;

NAME TYPE VALUE

archive_lag_target integer 0

db_flashback_retention_target integer 1440

fast_start_io_target integer 0

fast_start_mttr_target integer 0

memory_max_target big integer 10G

memory_target big integer 10G

parallel_servers_target integer 96

pga_aggregate_target big integer 0

sga_target big integer 0

SQL> shu immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORA-00845: MEMORY_TARGET not supported on this system

SQL> startup

ORACLE instance started.

Total System Global Area 3.8482E+10 bytes

Fixed Size 2215704 bytes

Variable Size 2.0133E+10 bytes

Database Buffers 1.8254E+10 bytes

Redo Buffers 93642752 bytes

Database mounted.

Database opened.

SQL>

中间出现ORA-00845: MEMORY_TARGET not supported on this system导致无法启动数据库,是因为设置的memory_target 超出了操作系统的虚拟内存 /dev/shm

 
 

vim /etc/fstab

/etc/fstab

Created by anaconda on Wed Sep 17 16:07:17 2014

Accessible filesystems, by reference, are maintained under '/dev/disk'

See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

UUID=512c5b24-c85c-46be-804a-d7318b8578f9 / ext4 defaults 1 1

UUID=ee652fe8-ca59-40fa-b80c-b239631b8451 /boot ext2 defaults 1 2

UUID=a9de50b8-4ac3-4887-80a4-928f4d7f5dd5 /data1 ext4 defaults 1 2

UUID=ff49ce48-e4f4-4c1a-95e2-80dfef47a772 /data2 ext4 defaults 1 2

UUID=68c8714b-7b6d-4608-92d4-5460a29787f2 /data3 ext4 defaults 1 2

UUID=2343ead8-8dd4-4e1b-827e-4257ed622f5f /data4 ext4 defaults 1 2

UUID=609a5f91-8e50-408b-949b-9b33f5536036 swap swap defaults 0 0

tmpfs /dev/shm tmpfs defaults,size=48G 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

~

保存后重新mount一下

 
 

root@db~]# umount /dev/shm

umount: /dev/shm: device is busy.

(In some cases useful info about processes that use

the device is found by lsof(8) or fuser(1))

[root@db ~]# lsof |grep shm

db2sysc 3433 db2inst1 mem REG 0,16 4096 24061 /dev/shm/DB2_SELF_TUNING_MEMORY_MANAGER_CROSS_INSTANCE_SHARED_MEMORY_SEGMENT

[root@db ~]# kill -9 3433

[root@db ~]# lsof |grep shm

[root@db bin]# umount /dev/shm

[root@db bin]# mount /dev/shm

[root@db bin]# df -h

文件系统 容量 已用 可用 已用%% 挂载点

/dev/sda3 774G 300G 436G 41% /

/dev/sda1 2.0G 29M 1.8G 2% /boot

/dev/sdb1 825G 547G 237G 70% /data1

/dev/sdc1 825G 124G 660G 16% /data2

tmpfs 48G 0 48G 0% /dev/shm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是在使用 Oracle 数据库时出现的,它表示你尝试将 SGA_MAX_SIZE 参数设置为比 MEMORY_TARGET 参数更大的值,这是不允许的。SGA_MAX_SIZE 是指定 SGA(System Global Area)最大大小的参数,而 MEMORY_TARGET 是指定 SGA 和 PGA(Process Global Area)总大小的参数。 在 Oracle 11g 及更高版本中,Oracle 推荐使用 MEMORY_TARGET 参数来管理 SGA 和 PGA 的大小,而不是手动设置 SGA_MAX_SIZE 和 PGA_AGGREGATE_TARGET 参数。这是因为使用 MEMORY_TARGET 可以更好地优化内存使用,提高系统性能。 因此,要解决这个错误,你需要调整 SGA_MAX_SIZE 和 MEMORY_TARGET 参数的值,使它们保持一致或者 MEMORY_TARGET 的值更大。你可以通过修改 Oracle 数据库的参数文件(init.ora 或 spfile)来更改这些参数的值。具体操作步骤如下: 1. 使用 SQLPLUS 连接到 Oracle 数据库,以 SYSDBA 用户身份登录: ``` sqlplus / as sysdba ``` 2. 查看当前 SGA 和 PGA 的大小: ``` SHOW SGA; SHOW PARAMETER PGA_AGGREGATE_TARGET; ``` 3. 关闭数据库实例: ``` SHUTDOWN IMMEDIATE; ``` 4. 编辑参数文件(init.ora 或 spfile),将 MEMORY_TARGET 和 SGA_MAX_SIZE 参数设置为相同的值,或者 MEMORY_TARGET 的值更大。例如: ``` MEMORY_TARGET=3G SGA_MAX_SIZE=3G ``` 5. 启动数据库实例: ``` STARTUP ``` 6. 再次查看 SGA 和 PGA 的大小,确认修改成功: ``` SHOW SGA; SHOW PARAMETER PGA_AGGREGATE_TARGET; ``` 这样就可以避免 SGA_MAX_SIZE 和 MEMORY_TARGET 值不一致的错误了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值