数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Solaris 系统维护

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 5 系统维护
5.1 Solaris 系统
   涉及的服务器 Account1(218.29.0.239), Account2(218.29.0.240), Oradb1(218.29.0.244) ,Oradb2(218.29.0.245) 
5.1.1 系统概况
1. 操作系统基本信息: uname -a 将依次显示 操作系统名称,hostname,操作系统大版本信息,操作系统小版本信息,硬件类型,cpu类型,平台信息。 
2. 内核信息:修改/etc/system 文件更改缺省的内核参数,modinfo显示模块信息,sysdef显示驱动和内核参数信息。
3. CPU 信息:/usr/sbin/psrinfo -v 显示cpu 状态,数量,cpu类型和主频。
4. 内存信息:prtconf | grep "Memory size" 显示内存大小。
5. 硬盘/光驱信息:iostat -En 显示硬盘和光驱的硬件地址,各种状态信息,型号及硬盘大小。可以通过该命令检查是否出现过各类错误。
6. 网卡信息:ifconfig -a ,显示网卡名称,状态,最大传输单元mtu,ip 地址,子网掩码,广播地址。
7. HA 信息:
8. 网络信息:netstat -rn 显示静态路由和缺省路由。
9. 包pkg 信息 :pkginfo -l pkgname。通过它判定某个pkg 是否安装,相关的还有pkgadd,pkgrm,pkgchk。
10. 补丁patch 信息: showrev -p 。安装某些软件需要特定的patch,通过它判断。
11. 文件系统信息: df -k 监测capacity 判断是否出现空间不足。
12. 用户信息:who 显示当前在线用户。whodo 显示当前用户进行的操作。 通过useradd,groupadd或admintool 进行用户的管理。id 显示当前用户的login name,login id, group name group name。 
5.1.2系统监控
1. cpu 性能监控 :vmstat /mpstat 和sar ,vmstat 和sar 在SMP系统中显示汇总信息,而mpstat 可以显示每颗CPU的负载。vmstat 监控procs 下的r和b 数目,它反映目前处于运行和阻滞状态的进程数目,如果r数目长期大于cpu 数目同时cpu 下的us+sy >80,表示cpu处理能力不足。
2. 内存监控: vmstat ,监控memory 下的free和page下的pi/po,pi/po反映每秒钟以k为单位换进/换出的数量。如果free的数目很小同时pi/po数目长时间大于0 ,则表示内存不足。
3. 硬盘监控:iostat -d  和sar -d ,可以看到每块硬盘及硬盘的每个分区的工作情况
4. 交换区监控:swap -l 和swap -s ,应尽量将交换区的放置在负载较轻的硬盘上。同时交换区的使用百分比不应过高。
5. HA 系统监控:
6. 网络监控: netstat -in 显示每块网卡的工作负载情况。Ipkts/Opkts发送包和接受包的情况。Ierrs/oerrs,collis 表示发生的错误和冲突。
Ierrs/Ipkts或Oerrs/Opkts >2%,表示网络冲突严重。
7. 端口监控:监控某个服务是否启动或正常运行,
netstat -an |grep portnum 或tcpdump |grep portnum。
8. 硬件故障诊断:/usr/platform/`uname -m`/sbin/prtdiag -v 通过输出结果判定有无硬件故障。
9. syslogd日志监控,, syslogd后台进程将系统运行中的信息写入 /var/adm/messages 文件中,通过它来监控有无异常的软硬件错误信息的出现。
较早一点的信息存在同一目录下的messages.0,message.1 文件中。
10. mail 监控:某些用户通过crontab 定时执行任务,任务完成后,cron进程会给用户发mail,通过察看mail 判断任务是否完成。在系统出异常的情况下,syslogd会发给root用户mail。因此root 用户的mail需要特别注意。
11. 进程监控:通过ps,prstat 命令或/usr/dt/bin/sdtprocess 工具监控特别消耗资源的进程。sdtprocess是图形工具,可以按照cpu和mem的使用及执行时间排序。prstat 统计系统的活动进程并按需要的顺序排序。
12. 系统运行时间监控 :uptime衡量一个机器开时长及系统负载的命令。uptime 显示的时间越大,说明机器越稳定。
13. 系统运行级别监控:who -r 显示当前机器的运行级。
 

5.2 Linux 系统
     涉及的前端机:Fep1(218.29.0.227), Fep2(218.29.0.228), Fep3(218.29.0.229), Fep4(218.29.0.230), Fep5(218.29.0.231), Fep6(218.29.0.232), Fep7(218.29.0.233),Fep8(218.29.0.234),Fep9(218.29.0.235),Fep10(218.29.0.236),Fep11(218.29.0.237),Fep12(218.29.0.238)
5.2.1系统概况
1. 操作系统基本信息: uname -a
2. 内核信息:/proc/sys/kernel 目录下的文件记录各个内核参数,modinfo显示模块信息,sysdef显示驱动和内核参数信息。
3. CPU 信息:。
4. 内存信息:prtconf | grep "Memory size" 显示内存大小。
5. 硬盘/光驱信息:。
6. 网卡信息:ifconfig -a ,显示网卡名称,状态,最大传输单元mtu,ip 地址,子网掩码,广播地址。
7. 网络信息:netstat -rn 显示静态路由和缺省路由。
8. 包pkg 信息 :rpm(Redhat Package Manager)。通过它判定某个pkg 是否安装,rpm -q 查询,rpm -i 安装 
9. 补丁patch 信息:文件系统信息: df -k 监测capacity 判断是否出现空间不足。
10. 用户信息:who 显示当前在线用户。通过KDE的user manager工具添加用户。id 显示当前用户的login name,login id, group name group name。
5.2.1系统监控
1. Cpu 性能监控 :vmstat和sar 。vmstat 监控procs 下的r和b 数目,它反映目前处于运行和阻滞状态的进程数目,如果r数目长期大于cpu 数目同时cpu 下的us+sy >80,表示cpu处理能力不足。
2. 内存监控: vmstat ,监控memory 下的free和page下的pi/po,pi/po反映每秒钟以k为单位换进/换出的数量。如果free的数目很小同时pi/po数目长时间大于0 ,则表示内存不足。
3. 硬盘监控:iostat -d 和sar -d
4. 交换区监控swap -l
5. 网络监控 netstat -in
6. 端口监控:监控某个服务是否启动 netstat -an |grep portnum 或tcpdump |grep portnum
7. 硬件故障诊断:。
8. syslogd日志监控,, syslogd后台进程将系统运行中的信息写入 /var/adm/messages 文件中,通过它来监控有无异常的软硬件错误信息的出现。
较早一点的信息存在同一目录下的messages.0,message.1 文件中。
9. mail 监控:某些用户通过crontab 定时执行任务,任务完成后,cron进程会给用户发mail,通过察看mail 判断任务是否完成。在系统出异常的情况下,syslogd会发给root用户mail。因此root 用户的mail需要特别注意。
10. 进程监控:通过ps 或top监控特别消耗资源的进程。


6.数据库维护
6.1 数据库的安装
6.1.1 操作系统的准备工作
1. 内核参数的修改
编辑修改/etc/system 文件
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmns=2000
set semsys:seminfo_semmsl=1000
set semsys:seminfo_semmni=100
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
2. 检查需要的操作系统patch
通过sunsolve.sun.com 上下载特定的版本的patch集并安装,可以满足Oracle 的安装需要。
3. 操作系统用户/组的添加
l groupadd dba
l groupadd oinstall
l useradd -c "Oracle DBA" -d /home/oracle -g oinstall -G dba
l 修改/etc/passwd文件 ,更改用户登陆shell 或其他信息
  
4. 用户环境变量的设定
6.1.2  数据库的安装
6.1.3数据库patch 安装
1. Patch 下载:Oracle 数据库的patch 从Oracle的metalink网站下载,登录成功后,在patch页面中的Product Family下拉框中选择"Oracle Databse",Product 下拉框中选择"RDBMS Server";Release 下拉框中 选择"Oracle 8.1.7.4";Platform 下拉框中选择"Sun Solaris OS( SPARC) 64-bit",Language下拉框中选择"American English (US)" ,Limit Search to下拉框中选择"Latest Product Patches or Minipacks",点击Submit提交。在随后出现的页面中点击Download下载patch。
2. Patch 安装:Patch 下载后首先需要解压缩, 安装与数据库安装方法类似,启动runInstaller安装程序,选择解压缩完成后patch目录下的product文件进行安装。特别注意patch安装时,数据库必须处于正常关闭状态。
3. 安装完成后检查:select * from v$version; 检查各个产品的版本号是否从8.1.7.0升级成为8.1.7.4。 
6.2数据库基本信息汇总
1. 版本信息
    SQL>select * from v$version;
2. 数据库名称,归档方式 状态
       SQL> col name format a12
SQL>select name,LOG_MODE,open_mode from v$database;
3. 数据库安装选项
      SQL>col parameter format a50
SQL>select * from v$option;

4. 数据库文件包括三类:控制文件control file, 日志文件log file , 数据文件datafile
l 控制文件
SQL> select name from v$controlfile;
l 日志文件名称及大小
col group#  format 999      heading 'Group'  
col member  format a45 heading 'Member' justify c 
col status  format a10 heading 'Status' justify c  
col archived format a10 heading 'Archived'   
col fsize  format 999  heading 'Size|(MB)'    
select  l.group#, member,  archived, l.status, (bytes/1024/1024) fsize  from    v$log l,  v$logfile f  where f.group# = l.group#  order by 1 ;
l.数据文件名称,所在表空间及大小
col    FILE_NAME  format a50 heading 'DataFile Name'
col    tablespace_name format a18 heading 'Related Tablespace'
select  substr(FILE_ID,1,3) "ID#",
FILE_NAME,
TABLESPACE_NAME,
BYTES/(1024*1024) "M",       
STATUS from sys.dba_data_files  where tablespace_name<>'PERFSTAT' order by TABLESPACE_NAME, FILE_NAME;
5.表空间信息(大小 剩余空间 使用百分比)
 SELECT dba.tablespace_name tablespace,
 nvl(ROUND (used.bytes/(1024*1024), 0),0) "USED MB",
 nvl(ROUND (free.bytes/(1024*1024), 0),0) "FREE MB",
 ROUND ((nvl(used.bytes, 0)+nvl(free.bytes, 0))/(1024*1024), 0) total --,
 --nvl(ROUND (used.bytes/(1024*1024), 0),0)/ROUND ((nvl(used.bytes, 0)+nvl(free.bytes, 0))/(1024*1024), 0) rate
 from dba_tablespaces dba,
 (select tablespace_name, sum(bytes) bytes
 from dba_segments
 group by tablespace_name) used,
 (select tablespace_name, sum(bytes) bytes
 from dba_free_space
 Group by tablespace_name) free
 where dba.tablespace_name = used.tablespace_name (+)
 and dba.tablespace_name = free.tablespace_name (+)
 and dba.tablespace_name<>'PERFSTAT'
 order by dba.tablespace_name;

6.回滚段的信息察看回滚段名称,大小,所在表空间,以及状态。
select  substr(sys.dba_rollback_segs.SEGMENT_ID,1,5) "ID#",         
substr(sys.dba_segments.OWNER,1,8) "Owner",         
substr(sys.dba_segments.TABLESPACE_NAME,1,17)"Tablespace Name",        
substr(sys.dba_segments.SEGMENT_NAME,1,17) "Rollback Name",   
substr(sys.dba_segments.BYTES,1,15) "Size (Bytes)",         
substr(sys.dba_segments.EXTENTS,1,6) "Extent#",         
substr(sys.dba_rollback_segs.STATUS,1,10) "Status" 
from sys.dba_segments, sys.dba_rollback_segs 
where sys.dba_segments.segment_name = sys.dba_rollback_segs.segment_name and       
sys.dba_segments.segment_type = 'ROLLBACK'  order by sys.dba_rollback_segs.segment_id; 

7.数据库参数信息察看没有使用缺省值的参数
      col name format a20
      select name,value from v$parameter where isdefault='FALSE';
     
8.数据库用户信息检查是否有用户的 默认或临时表空间为system 表空间

select  user_id,
substr(username,1,15) UserName,
substr(password,1,15) Password,
substr(DEFAULT_TABLESPACE,1,15) "Default TBS",
substr(TEMPORARY_TABLESPACE,1,15) "Temporary TBS",
CREATED, substr(profile,1,10) Profile
from sys.dba_users order by username;

   
6.3数据库优化及主要参数调整
Oracle数据库在启动时会读取命名规则为init<sid>.ora的初始化参数文件。这个配置文件中的各个参数设定对整个Oracle数据库性能起决定作用,先简单介绍各个参数的含义,然后给出建议配置。除特殊说明外,介绍参数的更改都需进行数据库的重启操作。根据数据库系统规模,Oracle提供小,中,大(small,medium,large)三个建议建议配置档,配置时做为参考。
l db_block_size: 数据块大小,数据存储的最小单位,这个参数在Oracle9i以前各个版本中,数据库创建完成后是不可改变的。可选范围是2K,4K,8K,16k,32k单位是byte。应用系统中,部分数据表字段较多,db_block_size设定偏小造成记录不能在单一数据块中存储,因此访问一条用户记录不能在一次物理I/O操作中完成,需要多次I/O,导致性能下降;另外较多的 varchar2类型字段和数据更新可能造成行链接和行迁移,除设定pctfree较大外,db_block_size也要设定大一些。建议配置为8K,创建数据库时指定。
l db_block_buffers: 数据高速块的多少,存放从硬盘中读出的数据块。db_block_buffers决定内存中可存放的大小为db_block_size的Oracle数据块的数量。应用程序第一次访问数据时从硬盘中读取,然后数据存储在内存中,直到数据长时间不被访问,同时内存中不能容纳更多数据时,数据被写回硬盘,下次需要访问时,再从硬盘中读取。该参数越大,Oracle在内存中找到所需数据的可能性就越大。相同数据内存读取速度要比硬盘快几十倍,因此响应速度也会大大提高。db_block_size与db_block_buffers乘积确定Oracle数据库所占内存的90%左右。 如果服务器专用运行数据库,建议两个参数的乘积占服务器物理内存的40%,通过对数据缓存的命中率进行监控后,做进一步调整。
l shared_pool_size:内存中存放sql语句访问路径,相关访问权限,表结构信息的位置,单位是字节。 建议使用默认配置的大(large)一档,为 9000000(字节)。通过sql语句监控生产机缓存命中率后进行相应调整。
l sort_area_size :可在内存中进行排序的最大字节数。应用程序向数据库发出类似orderby,group by 或创建索引时,需要进行排序操作。排序在内存中完成的速度同样快于硬盘中速度。sort_area_size越大,排序完成在内存中的可能也越大。建议使用默认配置的大(large)一档,大小为524288字节。通过对动态视图的监控进行进一步的调整。
l log_buffer: 日志缓存大小,对于数据库的dml/ddl 等语句首先写入log_buffer,然后写入日志文件。建议初始配置为512k,如果日志缓存等待明显,再加大,一般不超过为1M。
l processes: 同时访问Oracle数据库的进程数,包括后台进程(dbwr,lgwr,chpt)和Enus,Cnus 各个模块建立的到数据库的长连接数,设定大一点不会造成负面影响,如果偏小则会造成不能进行数据库连接的错误。建议配置为150。
l dml_locks: 它表示任何时间所有用户在所有表中放置锁定的最大数量。缺省值是事务最大数量的四倍。同样可以设定较大一点,不会有负面影响。建议为2000。
l open_cursors: 用户可以同时打开的游标数。设定大一点不会造成负面影响,如果偏小则会出现不能打开游表的错误。 建议配置为500。
l db_files: 数据库数据文件的数目。建议设定为200。
l rollback_segments:回滚段的名称,用户自己创建完回滚段后将名称添加在此处。在OLTP环境下,回滚段的数目为最大并发交易数的1/3~1/4。
6.4 数据库的备份/恢复
6.5数据库的监控/维护
 6.5.1 推荐使用的监控方法
       Statspack 的介绍: Statspack 是Oracle公司针对Oracle Enterprise Edition 8.1.6 及以上版本推出的性能监控工具包。用于替代原有的UTLBSTAT/UTLESTAT。比UTLBSTAT/UTLESTAT能够收集更多的数据,包括耗资源多的SQL。同时预先计算了许多对性能调优很有用的比值(ratios)。可以更加全面的监控数据的整体运行情况。同时可将生成的report文件发送给Oracle公司进行协助分析。
  监控的范围主要是:
l 主要内存参数的大小(db_block_buffers, db_block_size, log_buffer, shared_pool_size)。
l 系统负载情况:每秒钟的生成的日志量,数据库的逻辑读,物理读,交易数量等。
l 各类缓存命中率。如库缓存命中率,字典缓存命中率,db block buffer命中率,排序在内存中进行的比率等。
l 造成系统响应时间慢的几类事件,通过优化这几类事件提高系统响应速度。
l 按照各类消耗资源排序的SQL语句。通常系统响应速度慢除与参数设置有关外,还与书写不规范的SQL语句有关。通过优化捕捉到的SQL语句,提高响应速度。
l 各个表空间及组成表空间各个文件的I/O负载情况。通过这部分内容判断各个文件I/O是否均衡。
l 回滚段信息:反映是否有回滚段的竞争,是否有回滚段的过分扩展。
l 所有没有按缺省设置的参数。
Statspack软件包的创建:
l 安装文件:Unix 操作系统下,安装文件存放在$ORACLE_HOME/rdbms/admin 目录下。
l 创建时的执行的用户和执行的文件
SQL>connect internal ;
SQL>@?/rdbms/admin/spcreate.sql;
l 安装过程中的主要动作:
1安装生成一个用户perfstat/perfstat =>spcusr.sql,
  安装时输入:DEFAULT TABLESPACE/ TEMPORARY TABLESPACE
           2建立需要的Table    =>spctab.sql   
          3生成dbms_shared_pool 和dbms_job PL/SQL 程序包=>spcpkg.sql
Statspack软件包的执行/数据采集
当系统响应速度出现明显下降的时候,可通过statspack进行系统运行数据采集,并生成报告文件,进行分析。
l 初始准备:在init<sid>.ora中设置timed_statistics=true,并让其生效。或使用alter system set timed_statistics=true;
l 使用创建的perfstat用户连接
SQL>CONNECT PERFSTAT/PERFSTAT;
l 执行第一次采集程序:
SQL>EXECUTE STATSPACK.SNAP;l 




相关文章

相关软件