第二章 数据库安装调整
数据库安装
建立oracle用户属于dba group。
# groupadd dba
# useradd -g dba oracle
# passwd oracle
# mkdir –p /oracle/product/10.2/db_1
# chown -R oracle:dba /opt/oracle
此命令和linux有所不同,请注意。
由于我们需要图形化安装,此处还需要设置环境变量。
#vi /home/oracle/.dtprofile
#export ORACLE_BASE=/opt/oracle
#export ORACLE_HOME=/oracle/product/10.2/db_1
#export ORACLE_SID=new
#export ORACLE_TERM=xterm
#export NLS_LANG=AMERICAN
#LD_LIBRARY_PATH=$ORACLE_HOME/jdk/fre/lib/i386:
$ORACLE_HOME/jdk/jre/lib/i386/server:$ORACLE_HOME/rdbms/lib:
$ORACLE_HOME/lib:$LD_LIBRARY_PATH
#export LD_LIBRARY_PATH
#export PATH=$ORACLE_HOME/bin:$PATH
安装Xmanager 在本机。启动Xmanager – Passive。
#export DISPLAY=10.10.3.151:0
# runinstaller -ignoresysprereqs
Oracle 安装文件会验证HP-UX的版本号,所以需要加上ignoresysprereqs参数
图形化安装,安装时可以同时创建数据库。
选择通用安装即可。
安装到一定的程度的时候,会要求以root的身份执行2个脚本:
$ su root
# /oracle/oraInventory/orainstRoot.sh
# /oracle/product/10.2/db_1/root.sh
安装过程不出现错误,默认情况下,em 会启动起来。
数据库参数调整
如果命令行不熟悉,可以使用EM。EM在默认安装下会直接启动起来。访问方式
http://10.10.3.151:1158/em或者https//10.10.3.151:1158/em
修改sga,pga的参数。
查看机器信息
#machinfo
……
Memory: 12219 MB (11.93 GB)
……
得出数据库应用服务器的内存为12个G。
独立应用服务器一般建议SGA的大小为应用服务器内存总量的40%。由于本次的应用测试的数据库操作相对简单,而且本次的数据库服务器上需要运行我们的BTF的模拟主机,不属于独立应用服务器,该模拟主机需占用1024M内存,所以在这里,我们给出了SGA的大小为3648M,PGA的大小与并发的数据库连接有关,数据操作频繁但数据量不大的情况下,每个用户占用内存3-5M左右,基于此点,我们给定的PGA的大小为1211M。
此参数在EM中可以很方便的调整。
内存参数,既可以调整SGA和PGA的大小。
如果EM没有启动,只能用命令行修改。
#su – oracle
$SQLplus /nolog
SQL>conn /as sysdba
SQL> alter system set sga_target = ’3648M’ scope = spfile
SQL> alter system set pga_aggregate_target = ’3648M’ scope = spfile
修改processes和sessions的大小。
Processes 对应的是oracle对外的进程数量,比如应用服务器的连接池需要发起350个连接,对应的processes即为350.
Sessions对应的oracle对外的回话数,没有全部启用事务的应用,一次数据库操作即会占用一个sessions。所以sessions需要做适量的调整。
在em中调整如下:
所有初始化参数,即可看到processes和sessions的大小。
如果EM没有启动,只能用命令行修改。
#su – oracle
$SQLplus /nolog
SQL>conn /as sysdba
SQL> alter system set processes = 800 scope = spfile
SQL> alter system set sessions = 880 scope = spfile
修改redo.log
Oracle的数据库日志称为redo log,所有数据改变都记录redo log,可以用于修复受损的数据库。所有的数据改变均需要记录redo.log,所以redo.log的大小,磁盘IO均有一定的讲究。强烈建议把redo.log放置在IO最好的存储中。
在em中,修改如下
重做日志组。即可看到目前的所有redo.log。
可以直接添加。一般情况需要3个512M的redo.log。如果大小不对,可以添加3个512M的redo.log,删除大小不符合要求的redo.log即可。删除之前需让要删除的redo.log处于inactive的状态。
如果EM没有启动,只能用命令行修改。
#su – oracle
$SQLplus /nolog
SQL>conn /as sysdba
SQL> select member from v$logfile;
查看所有的redo.log file。
SQL> alter database add logfile group 4 (' /oracle/oradata/new/redo04.log') size 512m;
添加一个redo.log。
SQL> alter system switch logfile;
切换到下一个redo.log。
SQL>alter database drop logfile group 1;
即可删除上一个使用的redo.log。
数据库监控
在EM中,有一组每隔一个小时自动抓取一次的快照,可以使用快照分析。如下:
快照,即可看到最新的快照。
选中需要查看的报告,点击分析,可以看到一份报告。
查看SQL ordered by CPU Time 即可看到那些SQL最占用内存。
一般情况下,可以不用分析快照。
当CPU的使用达到了一个峰值,在该分析报告中,可以跟踪到对应的SQL。
如果EM没有启动,只能用命令行去生成报告。
$cd ${oracle_home}/rdbms/admin
$SQLplus /nolog
SQL>conn /as sysdba
SQL>@spcreate.SQL
此命令行会需要输入perfstat的密码,默认密码为perfstat。
SQL> exec statspack.snap;
隔几分钟后,具体看压力和数据库的CPU反应。再次执行。
SQL> exec statspack.snap;
SQL> @spreport
需要选择起至的快照。选择ok,需要输入文件名,即可查看文字版本的报告。
同理,查看SQL ordered by CPU Time 即可看到那些SQL最占用内存。







