A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use. 也就是说buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并由OS管理。
(2)free输出的第二行是从一个应用程序的角度看系统内存的使用情况。
tmpfs有以下优势:
1.动态文件系统的大小。
2.tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。
3.tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。
通常使用/dev/shm作共享内存(shm_open,shm_unlink)。 /dev/shm是个临时文档系统(tmpfs),能够
从/etc/fstab中mount。因此,支持标准的参数例如"size",能够用来增加或减少在/dev/shm上的tmpfs大小.(默认的,他的大小是系统RAM的一半) 五、oracle11g数据库出现ORA-00845 MEMORY_TARGET not supported on this system 错误
究其原因就是Linux系统的shm的大小比SGA设置的小造成的,举例来说,SGA设置4G,而shm可能只有1G
01、调整sga的大小,这个明显不是我们所希望的
02、调整shm的大小,这样相对简单,具体操作如下
修补方法:
修改tmpfs大小至少是系统RAM的一半,至多是RAM+Swap大小
修改tmpfs大小超过SGA_TARGET或tmpfs超过MEMORY_TARGET*0.6
SGA_TARGET+PGA_AGGREGATE_TARGET+OS使用内存 Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an> SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system
SQL> exit
Disconnected
#------------------2.已KB单位查看RAM是889572KB,Swap为10239992KB
[root@h1 ~]# free -k
total used free shared buffers cached
Mem: 889572 793308 96264 0 15880 524032
-/+ buffers/cache: 253396 636176
Swap: 10239992 84432 10155560
#------------------3.已KB单位查看tmpfs是
[root@h1 ~]# df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 961900 638400 323500 67% /dev/shm
#------------------4.修改tmpfs大小(修改tmpfs大小至少是系统RAM的一半,至多是RAM+Swap大小)
#------------------
[root@h1 ~]# vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=5G 0 0
#--------tmpfs至少是444786KB,至多是11129564KB
#--------444786/0.6 SQL> startup
ORACLE instance started.
Total System Global Area 501059584 bytes
Fixed>
Variable> Database Buffers 176160768 bytes
Redo Buffers 3915776 bytes
Database mounted.
Database opened.
SQL> SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /app/oracle/product/11.2.0/dbh
ome_2/dbs/spfiletest.ora #----ORACLE 的spfile在$ORACLE_HOME/dbs/spfile[$ORACLE_SID].ora #----ORACLE 的 pfile在$ORACLE_HOME/dbs/init[$ORACLE_SID].ora
SQL> show parameter memory_max_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 480M
SQL> show parameter memory_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 480M
六、Oracle内存参数 #------------------1.实例名
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
test #------------------2.memory_target及memory_max_target
SQL> show parameter memory_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 480M
SQL> show parameter memory_max_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 480M #------------------3.SGA
SQL> show sga
Total System Global Area 501059584 bytes
Fixed>
Variable> Database Buffers 163577856 bytes
Redo Buffers 3915776 bytes
SQL> select * from v$sga;
NAME VALUE
-------------------- ----------
Fixed>
Variable> Database Buffers 163577856
Redo Buffers 3915776
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 480M
sga_target big integer 0 #------------------4.PGA
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0
SQL>