Linux下启动Oracle服务和监听程序(基础知识)

王朝学院·作者佚名  2009-11-21  
宽屏版  字体: |||超大  

oracle数据库是重量级的,其管理非常复杂,将其在linux平台上的启动和关闭步骤整理一下。

安装完毕oracle以后,需要创建oracle系统用户,

并在/home/oracle下面的.bash_profile添加几个环境变量:

ORACLE_SID,ORACLE_BASE,ORACLE_HOME。

比如:

export ORACLE_SID=test export ORACLE_BASE=oracle_install_dir export ORACLE_HOME=xxx

启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。

$ su - oracle

$ sqlplus / nolog

sql> conn / as sysdba

sql> startup (一般不需要加参数,只要设置好环境变量)

sql> quit (退出sql模式)

$ lsnrctl start (启动监听器)关闭oracle

$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)

$ sqlplus /nolog

sql>shutdown 其参数 :shutdown有四个参数,四个参数的含义如下:

Normal 需要等待所有的用户断开连接

Immediate 等待用户完成当前的语句

Transactional 等待用户完成当前的事务

Abort 不做任何等待,直接关闭数据库

normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接

immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。

transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。

abort 执行强行断开连接并直接关闭数据库。

前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!

SGA设置

oracle中有时候会遇到如下的错误,无法连接数据库

如:ORA-04031:unable to allocate 2216 bytes of shared memory ("shared pool"... ...

这是表明oracle中SGA(系统全局区[包括缓冲高速缓存、共享池、Java 池、大型池和重做日志缓冲])中某个池内存不足导致,

所以就得合理的配置SGA和SGA各个池大小。配置可以通过EM来进行。。。。

oracle10g提供了EM管理工具,可以在没有安装oracle客户端的情况下通过web访问设置数据库各种参数。。。

启动EM :emctl start dbconsole;

停止EM :emctl stop dbconsole;

查看状态: emctl status dbconsole;

然后可以观察到web路径,通过web访问并进行相应的操作。

也可以通过控制台来登陆oracle进行SGA的操作设置。

查看系统中SGA中各个池大小

select pool,sum(bytes)/1024/1024 from v$sgastat group by pool

取得当前SGA大小

select sum(value)/1024/1024 from v$sga;

更新SGA大小

alter system set sga_target=200m;

设置SGA中共享池大小

alter system set shared_pool_size=32m;

设置SGA中大型池大小

alter system set large_pool_size=33m;

设置SGA中JAVA池大小

alter system set java_pool_size=11m;

设置SGA中高速缓冲池大小

alter system set db_cache_size=4m;

SGA虽然可以dba来设置固定的内存大小,SGA在程序和数据库运行其中并不是固定的,

所以需要参考实际内存大小和系统,数据库来具体设置。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有