分享
 
 
 

Solaris 系统维护

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有