Oracle学习笔记(修改Oracle内存)

刚在windows 7上安装了oracle 11g。总所周知,oracle是一个庞然大物,不仅体积巨大,吃得也多。每次一开oracle,内存都会被用去很多。对于一个仅仅只是学习oracle的人来说,没必要需要那么多内存,所以就对oracle进行修改。


oracle的内存结构分为SGA(System Global Area)与PGA(Program Global Area)


SGA:是Oracle为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。

当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA回收。

在Oracle 11g里如果没有指定sga_max_size参数,而是指定了参数sga_target,则oracle会自动调整sga各区域的内存大小,并使内存的总量等于参数sga_target指定的值


sga一些重要的区域:

1,数据缓冲区

数据缓冲区用于存储从磁盘数据文件中读取的数据,供用户共享

SQL> show parameter db_cache_size ;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_size                        big integer 0

2,日志缓冲区

日志缓冲区用于存储数据库的修改操作信息。当日止缓冲区中的日志量达到总量的1/3,或每隔3秒,或日志量达到1mb时,日志写入进程LGWR就会将日志缓冲区中的日志信息写入日志文件中;

SQL> show parameter log_buffer

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_buffer                           integer     6324224

3,共享池

共享池用于保存最近执行的SQL语句,PL/SQL程序的数据字典信息,它是对SQL语句和PL/SQL程序进行语法分析,编译和执行的内存区域。共享池主要包括如下两种子缓存。

库缓存:库缓存保存数据库运行的SQL和PL/SQL语句的有关信息。

SQL> show parameter shared_pool_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size                     big integer 0

数据字典缓存:

4,大型池

大型池用于提供一个大的缓冲区供数据库的备份和恢复操作使用。

SQL> show parameter large_pool_size ;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
large_pool_size                      big integer 0

5,Java池

用于在数据库中支持Java的运行。例如用Java编写一个存储过程,这时jvm就会使用Java池来处理用户会话中的Java存储过程

SQL> show parameter java_pool_size ;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_pool_size                       big integer 0

(斜体字属于摘抄)

下面是修改Oracle的内存结构的操作过程:

SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 744M
sga_target                           big integer 0
SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 1232M
memory_target                        big integer 1232M
shared_memory_address                integer     0
SQL> connect sys as sysdba
输入口令:
已连接。
SQL> alter system set memory_target=300m scope=spfile ;

系统已更改。

SQL> alter system set memory_max_target=300m scope=spfile ;

系统已更改。

SQL> alter system set sga_max_target=200m scope=spfile ;
alter system set sga_max_target=200m scope=spfile
                 *
第 1 行出现错误:
ORA-02065: 非法的 ALTER SYSTEM 选项


SQL> alter system set sga_max_size=200m scope=spfile ;

系统已更改。

SQL> shutdown immediate ;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  209235968 bytes
Fixed Size                  1373600 bytes
Variable Size             104860256 bytes
Database Buffers           96468992 bytes
Redo Buffers                6533120 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 200M
sga_target                           big integer 0
SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 300M
memory_target                        big integer 300M
shared_memory_address                integer     0
SQL>

OEM里的信息:

Oracle博大精深,需要努力学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle是一种关系型数据库管理系统,广泛用于企业级应用程序中。学习Oracle需要全面了解其结构、基本概念和操作技巧。 首先,了解Oracle数据库的体系结构非常重要。Oracle数据库由实例和数据库组成。实例是数据库在内存中的运行实体,数据库是磁盘上存储数据的地方。了解实例和数据库之间的关系以及它们各自的功能对于后续学习非常重要。 其次,掌握SQL语言对于学习Oracle至关重要。SQL是结构化查询语言的缩写,用于与数据库进行交互。学习SQL语言,包括基本的SELECT、INSERT、UPDATE和DELETE语句,以及高级的聚合函数、连接查询和子查询等操作,可以帮助我们有效地访问和操作Oracle数据库。 此外,熟悉Oracle数据库的基本概念也是学习的关键。如表、视图、索引、约束、触发器等一系列数据库对象的使用和管理,以及事务的概念和ACID特性的重要性等。 了解Oracle的性能调优也是学习Oracle的必备知识之一。通过优化查询、索引和存储结构等手段来提高数据库的性能可以使数据库系统更加高效地运行。 最后,了解Oracle的高级特性和功能也是学习的重点。如分区表、数据泵、分布式数据库、备份和恢复等高级功能,在复杂的企业级环境中能够更好地应对各种需求。 总之,学习Oracle需要综合掌握数据库的结构、SQL语言、基本概念、性能调优和高级特性等。通过理论学习和实践操作相结合,逐步积累经验,才能够成为熟练的Oracle数据库管理员或开发人员。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值