修改Oracle 11g 内存
- 格式:docx
- 大小:17.91 KB
- 文档页数:5
Oracle 11g 的自动内存管理作者: Fenng | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: /database/oracle_11g_amm.html这是我的Oracle 11g 系列的文章之一.Oracle 的9i/10g 中已经对内存管理逐步做了很大的简化,11g 则更进一步,引入了一个新的概念自动化内存管理(Automatic Memory Management,AMM) . 如果DBA 真的想偷懒的话,只需要设定两个参数就可以把烦心的事情都交给Oracle 折腾了(只要DBA 足够心宽)。
PGA 与SGA 一起搞定。
这两个参数分别是:MEMORY_TARGET--操作系统的角度上 Oracle 所能使用的最大内存值。
动态参数MEMORY_MAX_TARGET--MEMORY_TARGET所能设定的最大值。
非动态可调。
Tip: 如果使用的是pfile,设定了MEMORY_TARGET 而没有指定MEMORY_MAX_TARGET 的值,则实例启动后MEMORY_MAX_TARGET 的值与MEMORY_TARGET 相等。
如果pfile 中指定了MEMORY_MAX_TARGET 而没有指定MEMORY_TARGET ,实例启动后MEMORY_TARGET 为0 。
AMM 在后台会启动一个内存管理(Memory Manager, mman)进程。
因为AMM 的引入,Oracle 内存管理更加灵活多样。
组合出来有5 种内存管理形式.∙自动内存管理∙自动共享内存管理∙手工共享内存管理∙自动PGA 管理手动PGA 管理1) 自动内存管理默认安装的实例即是AMM 方式。
如下SQL> show parameters targetNAME TYPE VALUE------------------------------------ ----------------------------------------------------archive_lag_target integer 0db_flashback_retention_target integer 1440fast_start_io_target integer 0fast_start_mttr_target integer 0memory_max_target big integer 1216Mmemory_target big integer 1216Mpga_aggregate_target big integer 0sga_target big integer 0要注意到SGA_TARGET 和都为0 。
oracle 11g 自动内存管理(其三)ORACLE 11g自动内存管理:在oracle11g中,使用一个参数memory_target就能够实现SGA和PGA组件依据工作负荷进行自动内存分配。
oracle推荐使用自动内存管理简化内存分配。
oracle 11g依然支持手工内存分配:1:oracle 11g使用memory_target来支持内存自动分配。
2:使用sga_target和pga_target参数来设置SGA和PGA,数据库会在这两个组件中自我优化。
3:你也可以手工设置SGA中的各个组件。
比如db_cache_size,shared_pool_size等组件。
oracle 11g中新的内存初始化参数:有两个新的关键的内存初始化参数memory_target(这个参数设置分配给实例的内存数)和memory_max_size(这个参数是可选的,设置实例能够分配的最大内存,设置的是memory_target的上限值)。
memory_max_size参数是静态,然而memory_target是动态的。
因此你可以调整memory_target参数值的大小,但上限是memory_max_size。
对自动内存管理的配置有两种情况,在创建数据库时或者是创建数据库后。
1:在数据库创建期间设置自动内存管理:如果是手工建库,那么你只需要设置好如下类似初始化参数即可:memory_target = 1000mmemory_max_target = 1500m如果是采用DBCA创建数据库,如果是创建新库并且是高级安装,你能选择自动内存管理选项。
如果是选择基本安装,那么默认就是自动内存管理。
2:在数据库创建后:你可以在数据库创建后添加memory_max_target和memory_target.虽然memory_target是一个动态参数,但是当数据库运行时,你不能交换到自动内存管理。
oracle11g安装部分参数修改SQL> alter system set aq_tm_processes=10 scope=both; 指定队列监视进程个数,默认值为0,最大值为10SQL> alter system set open_cursors=500 scope=both; 开启游标数SQL> alter system set open_links=255 scope=spfile; 单个session连接数SQL> alter system set open_links_per_instance=255 scope=spfile; 分布式事务会话打开的连接SQL> alter system set session_cached_cursors=300 scope=spfile; 单个session可以缓存多少coursorSQL> alter system setlog_archive_dest_1='location=/arch/*****' scope=both; 修改归档目录SQL> shutdown immediateSQL> startup mountSQL> alter database archivelog ; 修改归档模式SQL> alter database open;SQL> alter system set fast_start_mttr_target=900 scope=both; 数据库恢复秒数SQL> alter system set db_flashback_retention_target=10080 scope=both; 闪回时间7天SQL> alter system set undo_retention=10800 scope=both;回滚时间3小时SQL>alter system set "_optim_peek_user_binds"=false scope=spfile; 绑定变量窥测SQL>alter system set"_optimizer_extended_cursor_sharing_rel"=none scope=spfile;SQL>alter system set"_optimizer_extended_cursor_sharing"=none scope=spfile;SQL>alter system set "_optimizer_adaptive_cursor_sharing"=false scope=spfile;SQL>alter system set "_in_memory_undo"=FALSE scope=spfile;SQL>alter system set "_gc_policy_time"=0 scope=spfile;SQL>alter system set "_memory_imm_mode_without_autosga"=FALSE scope=both;SQL>alter system set "_b_tree_bitmap_plans"=FALSE scope=spfile; 隐含参数,建议修改SQL>alter system set db_securefile='NEVER' scope=spfile; 安全文件SQL>alter system set deferred_segment_creation=FALSE scope=spfile;段延迟创建,只读表空间建表SQL>alter system set memory_target=0 scope=spfile;SQL>alter system set memory_max_target=0 scope=spfile;取消自动内存管理SQL> shutdown immediateSQL> startup mountSQL> alter database flashback on; 开启闪回(后期生产可以关闭)SQL> alter database open;SQL> alter system switch logfile;SQL> alter database add supplemental log data;开启附加日志SQL>手动修改system、sysaux、users、undtbs、temp表空间大小SQL>手动修改sga、pga大小SQL>手动修改redo日志组数量和大小SQL>参数processes,job_queue_processes等根据需要进行修改。
千里之行,始于足下。
Oracle数据库内存优化操作说明Oracle数据库的内存优化操作主要包括以下几个方面:1. 调整SGA和PGA的大小:- SGA(System Global Area)是Oracle数据库实例使用的内存区域,包括数据库缓存、共享池等。
可以通过修改SGA_TARGET和SGA_MAX_SIZE等参数来调整SGA的大小。
- PGA(Program Global Area)是每个进程独自使用的内存区域,包括排序区、hash区等。
可以通过修改PGA_AGGREGATE_TARGET参数来调整PGA的大小。
2. 合理配置各个内存区域的大小:- 根据具体的数据库负载情况,可以调整SGA组件的大小,如缓冲区大小、共享池大小等,以提高数据库的性能。
- 合理配置PGA区域的大小,可以减少排序操作的磁盘访问,提高查询效率。
3. 使用自动内存管理 AMM(Automatic Memory Management):- AMM是Oracle 11g及以上版本中提供的内存管理特性,可以自动分配SGA和PGA的大小。
可以通过设置MEMORY_TARGET参数来启用AMM。
4. 使用自动PGA管理:- Oracle 12c及以上版本中提供了自动PGA管理特性,可以根据需要自动调整PGA的大小。
可以通过设置PGA_AGGREGATE_TARGET参数来启用自动PGA管理。
5. 合理配置数据库连接池:第1页/共2页锲而不舍,金石可镂。
- 如果数据库中有大量的并发连接,可以考虑启用连接池来管理连接,减少连接的开销,提高数据库的并发性能。
6. 合理配置数据库缓存:- Oracle数据库中有多个缓存区域,如数据缓存、共享池等,可以根据具体的负载情况,调整缓存的大小,以提高查询性能。
需要注意的是,内存优化操作可能会引起数据库的性能变化,因此在进行内存优化之前,最好先进行充分的测试和评估,以确保优化操作是必要且有效的。
11g 中新增MEMORY_MAX_TARGET 参数,此参数一出现就如在10g 中第一次出现SGA_MAX_SIZE 参数一样给人以耳目一新的感觉。
memory_max_target 是设定Oracle能占OS多大的内存空间,一个是Oracle SGA 区最大能占多大内存空间。
无疑在11g Oracle 又向自动管理内存更进一步。
10g 的sga_max_size 是动态分配 Shared Pool Size,database buffer cache,large pool,java pool,redo log buffer 大小的,只是根据Oracle 运行状况来重新分配SGA 各内存块的大小。
PGA在10g 中需要单独设定.11g MEMORY_MAX_TARGET 参数包含两部分内存,一个 System global area (SGA),另一个 system global area(PGA)。
很显然在11g 中可已经将PGA 和SGA 一起动态管理了。
下面来看看在11g 中Memory_target 设置和不设置对SGA/PGA 的影响:A:如果Memory_target 设置为非0 值(下面有四种情况来对SGA 和PGA 的大小进行分配)1:sga_target 和 pga_aggregate_target 已经设置大小如果Oracle 中已经设置了参数sga_target 和pga_aggregate_target,则这两个参数将各自被分配为最小值最为它们的目标值。
Memory_Target =SGA_TARGET+PGA_AGGREGATE_TARGET ,大小和 memory_max_size 一致。
2:sga_target 设置大小, pga_aggregate_target 没有设置大小那么pga_aggregate_target初始化值=memory_target-sga_target 3:sga_target 没有设置大小, pga_aggregate_target 设置大小那么sga_target 初始化值=memory_target-pga_aggregate_target 4:sga_target 和 pga_aggregate_target 都没有设置大小 Oracle 11g 中对这种sga_target 和pga_aggregate_target 都没有设定大小的情况下,Oracle将对这两个值没有最小值和默认值。
CentOS6.5下Oracle11g安装完整步骤一、硬件要求本部分内容命令,均以root用户执行。
1、内存建议内存应大于2G以上,1G可以运行,但比较吃力。
内存查看命令:[root@tsp-rls-dbserver /]# cat /proc/meminfo或[root@tsp-rls-dbserver /]# free -mtotal used free shared buffers cachedMem: 32062 1301 30760 0 40 552-/+ buffers/cache: 708 31354Swap: 16095 0 160952、交换分区交换分区大小,通常设为内存的1.5倍以上,也可以根据实际情况进行调整。
交换分区查看命令:[root@tsp-rls-dbserver /]# grep SwapTotal /proc/meminfoSwapTotal: 67682296 kB3、硬盘空间建议数据使用独立的挂载分区,本文中采用/data作为数据分区。
要求/tmp目录空间不小于400M。
磁盘空间查看命令:[root@tsp-rls-dbserver /]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg_tsprlsdbserver-lv_root 50G 4.3G 43G 10% /tmpfs 16G 348K 16G 1% /dev/shm/dev/sda1 485M 39M 421M 9% /boot/dev/mapper/vg_tsprlsdbserver-lv_home 210G 190M 199G 1% /home/dev/sdb1 1.1T 4.5G 1.1T 1% /data目录空间大小查看命令:[root@tsp-rls-dbserver tmp]# du -ch /tmp二、软件要求1、安装依赖包建议安装系统时,选择开发库。
oracle11g关于内存的分配方案。
1,在32位的操作系统上,安装oracle的话,oracle最大能分配到的内存是1.7G。
这样的话,推荐最好使用64位的操作系统。
这样在物理内存足够大的情况下,oracle也能分配到无限制的足够大的内存。
2,在物理内存既定的情况下,如果服务器是只为oracle应用提供的服务器。
在创建数据库实例时,oracle的典型内存分布,默认总共给sga 和pga分配系统内存的40%,同时oracle建议自动内存管理。
此时,如果选择oracle的典型内存分布,同时不选择自动管理内存分布,那么sga : pga的内存比是3:1。
但是当sga的内存达到1536M之后,就不会再增加内存了,多出来的内存全都被增加到了pga的内存中去了。
(问题一:请问一下,如果是自动管理内存分布的话,sga和pga 也会出现这样的情况吗? sga达到1536m之后也不会继续增加吗?问题二:pga增多的话,排序等的性能会增加。
但是如果适当的增加sga,将表数据全都缓存到sga中的话,内存中的排序等性能同样会得到很大的提升。
为什么典型配置在sga增加到1536m之后就不再增加了呢?)3,定制数据库实例的内存时:pga,根据实际的情况,可以增加到足够大。
sga的共享池,日志缓冲池如果过大的话,会对性能产生较大的负面影响。
sga的java池,建议20msga的共享池,建议sga的22%sga的large池,建议sga的9.9%sga的缓冲区,可以设置到足够大。
(问题三,当创建数据库实例时,如果选择的是自动管理内存的话,这时的内存结构参数的值都是0。
如果只想要手动管理sga的一个缓冲区的话,是不是必然将重新手动设置sga的全部内存结构?包括重新设置sga本身的大小?)4,问题四:请问一下,如果手动设置的话,那sga和pga的内存比应该多少比较合适?以上只是个人的一些理解,有可能有错误的地方,希望大家能帮忙指出,最后将做出总结,将错误的地方改正。
oracle 11g memory参数Oracle 11g中的内存参数一、背景介绍在Oracle数据库管理中,内存参数是非常重要的配置项之一。
通过调整合适的内存参数,可以提高数据库的性能和响应速度。
本文将介绍Oracle 11g中的一些常用的内存参数及其作用。
二、SGA_TARGET参数SGA(System Global Area)是Oracle数据库实例中的关键内存区域,用于存储数据缓冲区、共享池、重做缓冲区等。
SGA_TARGET参数用于指定SGA的大小,它决定了数据库能够使用的内存总量。
通过增加SGA_TARGET的值,可以提高数据缓存的命中率,从而提高查询性能。
三、PGA_AGGREGATE_TARGET参数PGA(Program Global Area)是Oracle数据库实例中用于执行SQL 语句的内存区域。
PGA_AGGREGATE_TARGET参数用于指定PGA的大小,它决定了数据库能够同时执行的SQL语句数量。
通过增加PGA_AGGREGATE_TARGET的值,可以提高并发查询的能力,从而提高系统的吞吐量。
四、SHARED_POOL_SIZE参数共享池是SGA中的一个重要组成部分,用于存储共享SQL和PL/SQL代码的执行计划、游标等信息。
SHARED_POOL_SIZE参数用于指定共享池的大小,它决定了数据库能够缓存的SQL和PL/SQL 代码的数量。
通过增加SHARED_POOL_SIZE的值,可以提高SQL语句的重用率,从而降低系统的响应时间。
五、BUFFER_POOL_KEEP和BUFFER_POOL_RECYCLE参数Oracle数据库中的数据缓冲区分为KEEP缓冲区和RECYCLE缓冲区。
BUFFER_POOL_KEEP参数用于指定KEEP缓冲区的大小,它用于缓存经常被访问的数据块。
BUFFER_POOL_RECYCLE参数用于指定RECYCLE缓冲区的大小,它用于缓存不常被访问的数据块。
数据库移植1:Oracle10g升级到11g一:安装11gR2的数据库软件1:先给oracle11g制定一个主目录($ORACLE_HOME),写入到vim /home/oracle/.bash_profile 中,创建原本不存在的文件夹(我这里定义了一个新的db_2作为oracle11g的主目录)下面注释的这一行是为了引起注意,实际上是不可以注释的2:mkdir /home/oradisk1 在这个文件夹下面解压oracle11g的软件,注意要给这个文件夹赋予相应的权限Chown -R oracle:oinstall /home/oradisk1Chmod -R 775 /oradisk13:$cd /home/oradisk1/database/$./runInstaller开始安装这一步骤可以跳过,否则会出现错误这里仅仅需要安装数据库软件就可以了,不需要创建数据库实例注意此时的安装路径是/u01/app/oracle/product/10.2.0/db_2 (oracle11g的路径)在这里,会通过一系列的检查出先一些错误,会显示失败。
用鼠标点击错误在下面的提示框内会出现预期的值和实际出现的值,可根据提示进行修改,有些也可以忽略(点击右上角的全部忽略)修改后重新装安装完成二:进行安装前的初步检查1:此时需要启动oracle10的数据库实例,所以要先通过导入oracle10的主目录,将换将变量中的oracle11的主目录注释后重启生效,否则无法开启oracle10的数据库实例export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_12:在升级之前确保所有的组件和对象都是vaild的SQL>select substr(comp_name,1,40) comp_name, status, substr(version,1,10) version from dba_registry order by comp_name; --针对组件SQL>select substr(object_name,1,40) object_name,substr(owner,1,15) owner,object_type from dba_objects where status='INV ALID' order by owner,object_type; --针对对象如果有invalid的对象,运行utlrp.sql重新编译对象。
oracle11g标准版参数Oracle 11g是当前业界最广泛使用的数据库之一,是数据库管理系统领域里的佼佼者。
而Oracle 11g标准版参数则是其中让人头疼的问题之一。
下面,我们就来一步一步地了解Oracle 11g标准版参数的相关内容。
第一步:查看当前Oracle 11g版本首先,我们需要确定当前使用的Oracle 11g版本,因为不同版本的参数和设置会有所不同。
可以通过以下步骤来查询:1. 在CMD命令行中输入sqlplus登录到Oracle数据库;2. 在SQL*Plus窗口中输入SELECT * FROM v$version查询Oracle版本信息;3. 版本信息返回后,可以根据版本来查找对应的标准版参数。
第二步:查看当前Oracle 11g标准版参数Oracle 11g标准版参数是控制数据库行为的关键因素之一,因此需要逐个参数进行查看和设置。
我们可以通过以下方式来查看:1. 在SQL*Plus窗口中输入SHOW PARAMETER查询当前参数的设置值;2. 通过ALTER SYSTEM SET命令修改需要修改的参数。
注意,一些参数的修改可能需要重新启动数据库才能生效。
第三步:修改Oracle 11g标准版参数根据实际需要,我们可以通过以下步骤来修改Oracle 11g标准版参数:1. 可以通过SQL语句或Oracle管理工具如Oracle Enterprise Manager来修改参数;2. 在SQL*Plus窗口中输入ALTER SYSTEM SET参数名=参数值SCOPE=SPFILE;来修改参数(其中,SCOPE有三种选择:MEMORY,SPFILE,BOTH,分别表示只修改当前内存,只修改服务器参数文件,同时修改内存和服务器参数文件);3. 重启数据库。
注意:在修改Oracle 11g标准版参数时,应该注意数据库的健康状况,避免因修改参数造成不可预期的后果。
以上就是对Oracle 11g标准版参数的简介了解。
分类:2011-12-16 18:49 910人阅读(0)bin]$ ./sqlplus /nologSQL*Plus: Release Production on Fri Dec 1618:39:36 2011Copyright (c) 1982, 2009, Oracle. All rights reserved.SQL> conn / as sysdbaConnected.SQL> show parameter memoryNAME TYPE VALUE------------------------------------ -----------------------------------------hi_shared_memory_address integer 0memory_max_target big integer 1584Mmemory_target big integer 1584Mshared_memory_address integer 0SQL> alter system set memory_target = 512M scope=spfile2 ;System altered.SQL> alter system set memory_max_target =1024Mscope=spfile 2 ;System altered.SQL> show parameter memoryNAME TYPE VALUE------------------------------------ -----------------------------------------hi_shared_memory_address integer 0memory_max_target big integer 1584Mmemory_target big integer 1584Mshared_memory_address integer 0SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 16 bytesFixed Size 2220200 bytesVariable Size 8 bytesDatabase Buffers 2 bytesRedo Buffers 5554176 bytesDatabase mounted.Database opened.SQL> show parameter memoryNAME TYPE VALUE------------------------------------ ----------------------------------------- hi_shared_memory_address integer 0 memory_max_target big integer 1Gmemory_target big integer 512Mshared_memory_address integer 0SQL>2012-04-11 21:04:48分类:Oracle11g 自动内存管理:在oracle 11g中,使用一个参数memory_target就能够实现SGA和PGA组件依据工作负荷进行自动内存分配。
oracle 11g sga pga的设置原则和方法Oracle 11g中SGA(System Global Area)和PGA(Program Global Area)的设置原则和方法如下:1. SGA的设置原则:- 根据系统的内存大小和应用的需求,确定SGA的大小。
SGA主要包括Buffer Cache、Shared Pool、Large Pool、Java Pool等组件,需要根据数据库的访问模式和数据量大小来进行调整。
- 尽量使用自动内存管理(Automatic Memory Management,AMM)来管理SGA的大小和组件分配,这样可以更加灵活地管理内存资源。
2. SGA的设置方法:- 手动设置SGA大小:可以通过修改初始化参数文件(initSID.ora)的SGA相关参数来手动设置SGA的大小,如SGA_TARGET、SGA_MAX_SIZE等。
需要重启数据库以使设置生效。
- 使用AMM:在使用AMM的情况下,只需要设置SGA_TARGET参数为所需的SGA大小,Oracle会自动根据系统的内存大小和负载情况进行动态调整。
3. PGA的设置原则:- 根据应用的并发性和查询的复杂度,以及数据库服务器的硬件资源(CPU、内存)等因素来确定PGA的大小。
- PGA主要包括Sort Area、Hash Area、Bitmap Merge Area等组件,需要根据查询的需求和并发性来决定这些组件的大小。
4. PGA的设置方法:- 使用PGA_AGGREGATE_TARGET参数:PGA_AGGREGATE_TARGET参数用于指定PGA的目标大小,Oracle会根据这个目标值和实际的应用需求来动态分配PGA的大小。
- 手动设置PGA大小:可以通过设置PGA相关的初始化参数(如SORT_AREA_SIZE、HASH_AREA_SIZE等)来手动控制PGA的大小,需要重启数据库以使设置生效。
一、SGA与PGA的结构:SGA查看SGA:Sqlp> show sga或 select * from v$sga;Total System Global Area 289406976 bytesFixed Size 1248600 bytesVariable Size 176161448 bytesDatabase Buffers 109051904 bytesRedo Buffers 2945024 bytesFixed Size:包括了数据库与实例的控制信息、状态信息、字典信息等,启动时就被固定在SGA中,不会改变。
Variable Size:包括了shard pool、large pool、java pool、stream pool、游标区和其他结构Database Buffers:数据库中数据块缓冲的地方,是SGA中最大的地方,决定数据库性能Redo Buffers:提供REDO缓冲的地方,在OLAP中不需要太大V$sgastat记录了SGA的一些统计信息V$sga_dynamic_components 保存SGA中可以手动调整的区域的一些调整记录Shard pool:Shard_pool_size决定其大小,10g以后自动管理Shard_pool中数据字典和控制区结构用户无法直接控制,与用户有关的只有sql缓冲区(library cache)。
将经常访问的过程或包用DBMS_SHARED_POOL.KEEP存储过程将该包pin在共享池中。
手工清除共享池的内容:alter system flush shard_pool;共享池相关的几个常用的视图:V$sqlarea 记录了所有sql的统计信息,包括执行次数、物理读、逻辑读、耗费时间等V$sqltext_with_newline 完全显示sql语句,通过hash_value来标示语句,piece排序V$sql_plan保存了sql的执行计划,通过工具查看V$shared_pool_advice 对共享池的预测,可以做调整SGA的参考SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。
Linux安装oracle11g内核参数修改vi /etc/sysctl.conffs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576vi /etc/security/limits.conforacle soft nproc 2047oracle hard nproc 16384oracle soft nofile 4096oracle hard nofile 65536oracle soft stack 10240vi /etc/pam.d/loginsession required /lib/security/pam_limits.so session required pam_limits.sovi /etc/profileif [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fifivi /home/oracle/.bash_profile // /home/oracle为oracle用户的家目录#Oracle SettingsTMP=/tmp; export TMPTMPDIR=$TMP; export TMPDIRORACLE_HOSTNAME=Lzy; export ORACLE_HOSTNAMEORACLE_UNQNAME=orcl; export ORACLE_UNQNAMEORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOMEORACLE_SID=orcl; export ORACLE_SIDPATH=/usr/sbin:$PATH; export PATHPATH=$ORACLE_HOME/bin:$PATH; export PATHLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/j lib; export CLASSPATH安装完oracle11g之后随后远程登录linux服务器上,使用getsebool -a 可以查看bool 值相关设置信息,这里只需要更改ftp_home_dir 一项即可命令如下:setsebool -P ftp_home_dir 1再次使用getsebool -a查看发现 ftp_home_dir 显示为ON (图3)配置完成后,使用如下命令启动EM控制台:[oracle@oracle11g ~]$ emctl start dbconsole该命令的作用是查看EM工具是否已经安装配置,如果没有配置可以使用下面的命令来配置:[oracle@oracle11g ~]$ emctl start[oracle@oracle11g ~]$emca -config dbcontrol db -repos recreate。
安装Oracle11g的内存要求至少1G的物理内存输入如下命令查看物理安装步骤:检查硬件要求检查软件要求创建用户和用户组配置内核参数创建所需目录配置oracle用户环境挂载产品光盘安装数据库软件在安装Oracle之前,需要以root用户身份执行几个任务,所以首先以root 用户登录系统执行一下步骤:打开本地终端,例如:xterm如果在本机上安装Oracle,在终端中输入:$xhost+以root用户登录本地系统备注:上述步骤是在XWindowSystem工作站或者X终端下执行的.如果Oracle是安装在一台远程主机上,请执行一下步骤:打开本地终端,例如:xterm$xhost远程主机名(或ip地址).例如:$使用ssh,rlogin或者telnet命令以root用户登录远程主机(安装Oracle 的主机)注意:如果安装Oracle的主机是远程主机,那么下面的步骤都是在远程主机上进行的操作1.检查硬件要求安装Oracle11g的内存要求至少1G的物理内存输入如下命令查看物理内存大小$grepMemTotal/proc/meminfo下表显示了物理内存大小与交换空间大小的关系物理内存交换空间257M-512M2倍物理内存大小513M-2048M1.5倍物理内存大小2049M-8192M与物理内存大小一样大于8192M0.75倍物理内存大小输入如下命令查看交换空间大小$grepSwapTotal/proc/meminfo可按如下步骤配置交换空间(待查资料)输入如下命令查看可用物理内存和交换空间$freeOracle11g的自动记忆管理功能将需要更多的共享内存(/dev/shm)和文件描述符.共享内存应该至少要大于一台主机上每个Oracle实例的MEMORY_MAX_TARGET值和MEMORY_TARGET值输入如下命令查看可用共享内存$df-k/dev/shm硬盘空间要求/tmp目录需要在150到200M之间输入如下命令查看/tmp目录可用空间大小$df-k/tmp如果tmp目录可用空间小于400,执行以下步骤之一来满足硬盘空间要求(此处为什么是400M不清楚)删除/tmp目录下不必要的文件以释放空间在设置oracle用户环境变量的时候设置TMP和TMPDIR环境变量增加/tmp目录的文件系统大小根据安装类型的不同,Oracle软件大小在1.5到3.5G之间,见下表安装类型软件文件大小(GB)企业版3.47标准版3.22自定义(最大安装)3.37输入如下命令查看可用的硬盘空间大小$df-k企业版和标准版要求1.5G的数据文件空间,而自定义数据库要求1.81G数据文件空间.另外如果你选择了自动备份,快速恢复区(flashrecoveryarea)还需要额外的硬盘空间2.检查软件要求操作系统要求OracleDatebase11grelease1可以在以下操作系统上安装:Asianux2.0Asianux3.0OracleEnterpriseLinux4.0OracleEnterpriseLinux5.0RedHatEnterpriseLinux4.0RedHatEnterpriseLinux5.0SUSEEnterpriseLinux10.0输入如下命令查看Linux的版本$cat/proc/version内核要求操作系统内核版本Asianux2.0,OracleEnterpriseLinux4.0,Asianux3.0,OracleEnterpriseLinux5.0,输入如下命令查看所要求的内核是否被安装$uname-r例如在RedHatEnterpriseLinux5.0中执行该命令将显示如果内核版本不满足要求,请更新内核软件包要求Asianux2.0,OracleEnterpriseLinux4.0,RedHatEnterpriseLinux4.0:binutils-compat-libstdc++-elfutils-libelf-0.97-5elfutils-libelf-devel-0.97-5glibc-glibc-common-glibc-devel-gcc-gcc-c++-libaio-devel-libaio-libgcc-3.4.5libstdc++-libstdc++-devel-make-3.80-5sysstat-5.0.5unixODBC-unixODBC-devel-Asianux3.0,OracleEnterpriseLinux5.0,RedHatEnterpriseLinux5.0: binutils-compat-libstdc++-33-elfutils-libelf-0.125-3.el5elfutils-libelf-devel-0.125glibc-2.5-12glibc-common-2.5-12glibc-devel-2.5-12gcc-gcc-c++-libaio-libaio-devel-libgcc-libstdc++-4.1.1libstdc++-devel-make-3.81-1.1sysstat-7.0.0unixODBC-unixODBC-devel-SUSELinuxEnterpriseServer10:inutils-compat-libstdc++-5.0.7glibc-2.4-31.2glibc-devel-2.4-31.2gcc-4.1.0ksh-93r-12.9libaio-libaio-devel-libelf-0.8.5libgcc-4.1.0libstdc++-4.1.0libstdc++-devel-4.1.0make-3.80sysstat-6.0.2unixODBC-unixODBC-devel-输入如下命令查看所要求的软件包是否安装$rpm-q软件包名如果没有安装需要的软件包,请从Linux光盘中或者下载所需软件包来安装例如:输入如下命令来安装要求的软件包$rpm-UvhunixODBC-devel-额外的软件要求根据你所需要使用的组件的不同,你需要确定以下软件被安装OracleODBCDrivers你可以从下载ODBC驱动管理器集成开发环境你可以选择安装下面所列的JDK,但不是必须安装的带JNDI扩展的带JNDI扩展的OracleMessagingGatewayOracleMessagingGateway支持OracleStreamsAdvancedQueuing(AQ)和以下软件的集成IBMWebSphereMQV5.3MQSeriesClientMQSeriesServerMQSeriesRuntimeTIBCORendezvous7.2浏览器要求支持Javascript,HTML4.0和CSS1.0标准的浏览器,以下浏览器适用于OracleEnterpriseManagerDatabaseControlNetscapeNavigator7.2NetscapeNavigator8.1Mozillaversion1.7IE6.0SP2IE7.0Firefox1.0.4Firefox1.5Firefox2.03.创建用户和用户组安装Oracle数据库要求以下创建用户组和用户OracleInventory用户组(oinstall)OSDBA用户组(dba)Oracle软件拥有者用户(oracle)非授权用户(nobody)输入如下命令查看oinstall用户组是否存在$more/etc/oraInst.loc如果oinstall用户组存在,上述命令输出如下信息inventory_loc=oraInventory目录的绝对位置inst_group=oinstall输入如下命令查看dba用户组是否存在$grepdba/etc/group如果dba用户组存在,上述命令输出dba用户4.配置内核参数组的名称如果oinstall和dba用户组都不存在,输入以下命令创建它们$/usr/sbin/groupaddoinstall$/usr/sbin/groupadddba输入如下命令查看orale用户是否存在且是否存在于正确的用户组中$idoracle如果oracle用户存在,上述命令显示类似于如下的信息uid=440(oracle)gid=200(oinstall)groups=201(dba),202(oper)如果oracle用户组存在,但其所在主用户组不是oinstall或者其不属于dba用户组,输入如下命令来修改$/usr/sbin/usermod-goinstall-Gdbaoracle如果oracle用户不存在,输入如下命令创建它$/usr/sbin/useradd-goinstall-Gdbaoracle输入如下命令设置oracle用户密码$passwordoracle输入如下命令查看nobody用户是否存在$idnobody如果nobody用户不存在,输入如下命令创建它$/usr/sbin/useraddnobody4.配置内核参数下表显示了Oracle建议的内核参数参考值,请确保系统中的这些内核参数大于或等于表中建议的数值,如果系统中的内核参数比下表中的值大,就不要改变系统内核参数参数参数值文件semmsl250/proc/sys/kernel/semsemmns32000semopm100semmni128shmall2097152/proc/sys/kernel/shmallshmmax下列值中最小的一个:物理内存的一半4GB/proc/sys/kernel/shmmaxshmmni4096/proc/sys/kernel/shmmnifile-max512*PROCESSES/proc/sys/fs/file-maxip_local_port_range最小:1024最大:65000/proc/sys/net/ipv4/ip_local_port_rangermem_default4194304/proc/sys/net/core/rmem_defaultrmem_max4194304/proc/sys/net/core/rmem_maxwmem_default262144/proc/sys/net/core/wmem_defaultwmem_max262144/proc/sys/net/core/wmem_max按下表输入如下命令查看内核参数参数命令semmsl,semmns,semopm,semmni$/sbin/sysctl-a|grepsemshmall,shmmax,shmmni$/sbin/sysctl-a|grepshmfile-max$/sbin/sysctl-a|grepfile-maxip_local_port_range$/sbin/sysctl-a|grepip_local_port_rangermem_default$/sbin/sysctl-a|greprmem_defaultrmem_max$/sbin/sysctl-a|greprmem_maxwmem_default$/sbin/sysctl-a|grepwmem_defaultwmem_max$/sbin/sysctl-a|grepwmem_max如果系统当前内核参数和上述表中的值不一致,编辑/etc/sysctl.conf文件更改它们,如果系统当前内核参数大于上表中的值,不要修改那些值kernel.shmall=2097152kernel.shmmax=48kernel.shmmni=4096kernel.sem=100128fs.file-max=65536输入如下命令改变内核参数值$/sbin/sysctl-p为oracle用户设置系统资源限制(ShellLimits)执行如下步骤增加shelllimits1.打开/etc/security/limits.conf,增加如下内容oraclesoftnproc2047oraclehardnproc16384oraclesoftnofile1024oraclehardnofile655362.打开/etc/pam.d/login文件,加入如下内容sessionrequired/lib/security/pam_limits.sosessionrequiredpam_limits.so3.为oracle用户设置shell的启动文件打开/etc/profile文件,加入如下内容if[$USER="oracle"];thenif[$SHELL="/bin/ksh"];thenulimit-p16384ulimit-n65536elseulimit-u16384-n65536fifi5.创建所需目录Oracle基目录需要3G硬盘空间,如果你不打算创建独立的Oracle数据文件目录则需要4G的硬盘空间,但Oracle不推荐这样做.创建Oracle基目录步骤1.输入如下命令查看文件系统信息$df-k2.选择适合要求的文件系统挂载点3.输入如下命令创建Oracle基目录并设置相应的权限$mkdir-p/挂载点/app/$chown-Roracle:oinstall/挂载点/app/$chmod-R775/挂载点/app/6.配置oracle用户环境以oracle用户执行OracleUniversalInstaller之前,必须执行以下步骤配置oracle用户环境1.输入如下命令转换到oracle用户$su-oracle2.输入如下命令查看shell是否以oracle用户开启$echo$SHELL3.输入如下命令打开oracle用户的shell启动文件SUSE操作系统下$vi.profileRedHat操作系统下$vi.bash_profile4.在shell启动文件中输入如下内容来指定默认文件创建模式umask0225.如果DISPLAY环境变量默认为:0.0shell启动文件中指定了ORACLE_SID,ORACLE_HOME,ORACLE_BASE环境变量的值,那么删除它们6.输入如下命令执行shell启动文件SUSE操作系统下$../.profileRedHat操作系统下$../.bash_profile7.设置DISPLAY环境变量DISPLAY环境变量默认为:0.0,如果在本地系统上安装Oracle,则不用设置变量备注:如果在远程主机上安装Oracle,那么需要执行如下命令$DISPLAY=本机地址(或本机域名):0.0;exportDISPLAY8.如果/tmp目录没有足够的可用硬盘空间,执行以下步骤来设置TMP和TMPDIR环境变量a.执行如下命令查看适合的文件系统挂载点$df-kb.在适合的挂载点上创建tmp目录并赋予下相应的权限$sudomkdir/挂载点/tmp$sudochmoda+wr/挂载点/tmp$exitc.输入如下命令设置TMP和TMPDIR环境变量$TMP=/挂载点/tmp$TMPDIR=/挂载点/tmp$exportTMPTMPDIR9.输入如下命令设置ORACLE_BASE,ORACLE_SID环境变量$ORACLE_BASE=/挂载点/app/oracle$ORACLE_SID=yamaru$exportORACLE_BASEORACLE_SID其中,/挂载点/app/oracle就是在"创建所需目录"中创建的路径,ORACLE_SID是要安装的数据库实例名称10.输入如下命令确保ORACLE_HOME,TNS_ADMIN环境变量没有被设置$unsetORACLE_HOME$unsetTNS_ADMIN11.输入如下命令检查上述环境设置是否正确$umask$env|moreumask的执行结果应该是22,022或者00227.挂载产品光盘大多数Linxu系统在插入光盘时,会自动挂载光盘.如果没有自动挂载安装光盘,执行以下步骤1.输入如下命令弹出光盘Asianux,OracleEnterpriseLinux,RedHatEnterpriseLinux下输入$sudoeject/mnt/dvdSUSELinux下输入$sudoeject/media/dvd备注:/mnt/dvd和/media/dvd是各自操作系统上的挂载点2.再次插入光盘3.输入如下命令查看光盘是否自动挂载Asianux,OracleEnterpriseLinux,RedHatEnterpriseLinux下输入$ls/mnt/dvdSUSELinux下输入$ls/media/dvd4.如果上述执行失败,输入如下命令挂载光盘Asianux,OracleEnterpriseLinux,RedHatEnterpriseLinux下输入$mount-tiso9660/dev/dvd/mnt/dvdSUSELinux下输入$mount-tiso9660/dev/dvd/media/dvd备注:如果通过下载的安装文件安装Oracle,需要将下载的安装包解压到某一目录,例如,/tmp,然后执行后续安装过程8.安装数据库软件1.输入如下命令执行OracleUniversalInstaller$/Oracle安装文件目录/runInstaller2.按安装界面提示执行安装3.安装成功后可以通过执行如下命令创建数据库$$ORACLE_HOME/bin/dbca4.成功创建数据库后,可通过如下连接访问数据库管理界面备注:1158是默认的监听端口,你可以通过$ORACLE_HOME/install/portlist.ini文件查看监听端口备注:本文没有描述到Oracle的自动存储管理,本文描述的是通过文件系统安装Oracle。
oracle 11g数据库ASM磁盘组存储空间扩容实施任务概述XX系统存放oracle数据文件的DATA磁盘组空间因为开发方新上线业务,造成原有数据库表空间较为紧张,应业务开发方要求,为了适应未来的数据增长要求,需要扩容。
此方案为数据库扩容常规标准步骤,无需专门测试,但就是,在数据库存储扩容前,为防止变更操作带来的风险,需要对数据库数据作备份,以防万一出现问题时做回退恢复。
在实施存储扩容变更操作时,由于就是底层磁盘阵列与操作系统的标准化操作,为了防止操作失误,必须一人操作,另一人在旁监督检查,并且分步确认,步步把关,确保万无一失。
1、1、实施任务DATA磁盘组扩容:在DS5300存储RAID10组中划分新的2个300G的LUN并添加到DATA 磁盘组给XX集群数据库使用,RAID10组剩余的空间可以留给以后扩容或其她用途使用。
1、2、环境简介系统名称:XX系统;主机:两台IBM P750小型机;操作系统:AIX 6、1;存储:1套IBM DS5300;数据库:ORACLE RAC 11、2、0、3、0;1、3、实施时间2014年11月。
1、4、实施人员略2、实施方案2、1、实施内容原有数据库需要作数据作RMAN备份;连接到存储DS5300划分LUN,并加载到主机;主机扫描识别,修改属性及权限;ASM存储DATA磁盘组增加disk扩容;检查数据库与应用。
2、2、实施步骤2、3、实施风险控制在数据库存储扩容前,为防止变更操作风险,需要对数据库数据作备份,以防万一。
在实施存储扩容变更操作时,由于就是底层磁盘阵列与操作系统的标准化操作,为了防止操作失误,必须一人操作,另一人在旁监督检查,并且分步确认,步步把关,确保万无一失。
3、详细实施步骤3、1、 RMAN备份在数据库服务器节点2上通过RMAN对数据库做全备份,历时约60分钟。
具体步骤如下:以root用户创建备份用的目录,并更改所有者等;#mkdir -p /backup/20131122#chown -R oracle:dba /backup/以oracle用户创建rman备份用的脚本,并赋权限:#su - oracle$cd /backup/20131122$vi rmanbackup、sh$chmod 744 rmanbackup、shRMAN全备份脚本rmanbackup、sh内容:run{allocate channel ch1 device type disk;allocate channel ch2 device type disk;allocate channel ch3 device type disk;backup as compressed backupset full database format'/backup/20131122/db_%U_%d' tag="full" sp current controlfile;sql 'alter system archive log current';change archivelog all crosscheck;backup as compressed backupset archivelog all format'/backup/20131122/arch_%t_%s' tag="archivelog";release channel ch1;release channel ch2;release channel ch3;}使用脚本做RMAN备份,通过参数cmdfile指定命令文件,使用log指定日志文件:nohup rman target / cmd log=/backup/20131122/rmanbackup、log &3、2、连接到存储将本机设置为192、168、128、XX(不要跟存储控制器的管理ip有冲突),通过集线器,连接到IBM DS5300存储的两个控制器的管理口,SPA(192、168、128、101)与SPB(192、168、128、102),在本机ping两个管理口地址,就是否能ping通。
修改Oracle 11g 内存分类:Oracle Database 2011-12-16 18:49 910人阅读评论(0) 收藏举报oracleintegersystemsqlbic/tswisdom/article/details/7078477[oracle@bi11g bin]$ ./sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 1618:39:36 2011 Copyright (c) 1982, 2009, Oracle. All rights reserved.SQL> conn / as sysdbaConnected.SQL> show parameter memoryNAME TYPE VALUE------------------------------------ -----------------------------------------hi_shared_memory_address integer 0memory_max_target big integer 1584Mmemory_target big integer 1584Mshared_memory_address integer 0SQL> alter system set memory_target = 512M scope=spfile2 ;System altered.SQL> alter system set memory_max_target =1024Mscope=spfile2 ;System altered.SQL> show parameter memoryNAME TYPE VALUE------------------------------------ -----------------------------------------hi_shared_memory_address integer 0memory_max_target big integer 1584M memory_target big integer 1584Mshared_memory_address integer 0SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 1068937216 bytesFixed Size 2220200 bytesVariable Size 859836248 bytesDatabase Buffers 201326592 bytesRedo Buffers 5554176 bytesDatabase mounted.Database opened.SQL> show parameter memoryNAME TYPE VALUE------------------------------------ ----------------------------------------- hi_shared_memory_address integer 0 memory_max_target big integer 1Gmemory_target big integer 512Mshared_memory_address integer 0SQL>ORACLE 11G自动内存管理2012-04-11 21:04:48分类:Oracle/uid-25528717-id-3171158.htmlORACLE 11g 自动内存管理:在oracle 11g中,使用一个参数memory_target就能够实现SGA和PGA组件依据工作负荷进行自动内存分配。
oracle推荐使用自动内存管理简化内存分配。
oracle 11g依然支持手工内存分配:1:oracle 11g使用memory_target来支持内存自动分配。
2:使用sga_target和pga_target参数来设置SGA和PGA,数据库会在这两个组件中自我优化。
3:你也可以手工设置SGA中的各个组件。
比如db_cache_size,shared_pool_size等组件。
oracle 11g中新的内存初始化参数:有两个新的关键的内存初始化参数memory_target(这个参数设置分配给实例的内存数)和memory_max_size(这个参数是可选的,设置实例能够分配的最大内存,设置的是memory_target的上限值)。
memory_max_size参数是静态,然而memory_target是动态的。
因此你可以调整memory_target参数值的大小,但上限是memory_max_size。
对自动内存管理的配置有两种情况,在创建数据库时或者是创建数据库后。
1:在数据库创建期间设置自动内存管理:如果是手工建库,那么你只需要设置好如下类似初始化参数即可:memory_target = 1000mmemory_max_target = 1500m如果是采用DBCA创建数据库,如果是创建新库并且是高级安装,你能选择自动内存管理选项。
如果是选择基本安装,那么默认就是自动内存管理。
2:在数据库创建后:你可以在数据库创建后添加memory_max_target和memory_target.虽然memory_target是一个动态参数,但是当数据库运行时,你不能交换到自动内存管理。
必须重启数据库将参数应用到实例启动过程才行。
实现自动内存管理,有下列原则:MEMORY_TARGET 设置为非零值时:1:如果设置了SGA_TARGET 和PGA_AGGREGATE_TARGET,则会分别将它们当作SGA大小和PGA 大小的最小值。
MEMORY_TARGET 可以将SGA_TARGET + PGA_AGGREGATE_TARGET 的值作为MEMORY_MAX_SIZE。
2:如果设置了SGA_TARGET 但未设置PGA_AGGREGATE_TARGET,则仍会自动优化这两个参数。
PGA_AGGREGATE_TARGET 将初始化为以下值:(MEMORY_TARGET -SGA_TARGET)。
3:如果设置了PGA_AGGREGATE_TARGET 但未设置SGA_TARGET,则仍会自动优化这两个参数。
SGA_TARGET 将初始化为值min(MEMORY_TARGET -PGA_AGGREGATE_TARGET, SGA_MAX_SIZE(如果用户已设置)),系统将自动优化子组件。
4:如果未设置任何参数,则无需最小值或默认值即可自动优化这两个参数。
有这样一个策略:在初始化过程中,将服务器的总内存按固定比率分配给SGA 和PGA。
该策略将在启动时分配60% 的内存给SGA,40% 的内存给PGA。
如果未设置MEMORY_TARGET,或者将其显式设置为0(11g 中的默认值为0):5:如果设置了SGA_TARGET,则系统仅自动优化SGA 的子组件大小。
PGA 的自动优化与是否显式设置PAG 无关。
但是,不会自动优化整个SGA (SGA_TARGET) 和PGA (PGA_AGGREGATE_TARGET),即SGA 和PGA 不会自动增长或收缩。
如果既未设置SGA_TARGET,又未设置PGA_AGGREGATE_TARGET,则遵从当前的策略:自动优化PGA,但不自动优化SGA;必须显式设置部分子组件的参数(对于SGA_TARGET)。
6: 如果仅设置了MEMORY_MAX_TARGET,则使用文本初始化文件进行手动设置时,MEMORY_TARGET 默认为0。
SGA 和PGA 的自动优化行为默认情况下与10g R2 中的相同。
7:如果SGA_MAX_SIZE 不是用户设置的,则在用户设置了MEMORY_MAX_TARGET 的情况下,系统会在内部将其设置为MEMORY_MAX_TARGET(与用户是否设置SGA_TARGET 无关)。
在有些场合,如果你使用自动内存管理给实例分配内存,可能会遇到下列错误,比如linux 上:SQL> startupORA-00845: MEMORY_TARGET not supported on this system这是因为/dev/shm没有设置正确的值,确保这个值至少等于sga_max_size参数值。
[oracle@node1 dbs]$ df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol0014G 9.4G 3.2G 75% //dev/sda1 99M 14M 81M 15% /bootnone 2.0G 702M 1.4G 35% /dev/shm可以看到该值为2G。
可以通过/etc/fstab来更改该值:默认情况下该文件相关内容如下:[oracle@node1 dbs]$ cat /etc/fstab |grep shmnone /dev/shm tmpfs defaults 0 0可以将该值修改为如下:none /dev/shm tmpfs defaults,size=2G 0 0 然后重启系统即可解决问题。