Solaris 系統維護

來源:互聯網
上載者:User

 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 



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。