天天看點

日常運維

#####連接配接數

TYXXTEST

檢視活躍會話

SET LINE 1000 PAGES 1000

col username for a20

col machine for a20

col event for a30

col MODULE for a15

col p1 for 999999999999999

select INST_ID,sid,serial#,username, machine,status,MODULE,last_call_et,event,sql_id--,p1,p2,p3

from gv$session

where username is not null

and status='ACTIVE'

and inst_id=2

--and sql_id='7xr2ntsfzqcs8'

order by 1,4,8,7,5;

SET LINE 1000 PAGES 1000

col username for a20

col machine for a20

col event for a30

col MODULE for a15

col p1 for 999999999999999

select INST_ID,sid,serial#,username, machine,status,MODULE,last_call_et,event--,p1,p2,p3

from gv$session

where username ='SYS'

and status='ACTIVE'

order by 1,4,8,7,5;

節點最大程序

show parameter process

##連接配接數

select INST_ID,count(*)

--sid,serial#,username, machine,status,MODULE,last_call_et,event--,p1,p2,p3

from gv$session

where username is not null group by INST_ID;

INST_ID COUNT(*)--SID,SERIAL#,USERNAME,MACHINE,STATUS,MODULE,LAST_CALL_ET,EVENT--,P1,P2,P3

---------- ----------------------------------------------------------------------------------

1 274

2 112

##活躍數

select INST_ID,count(*)

--sid,serial#,username, machine,status,MODULE,last_call_et,event--,p1,p2,p3

from gv$session

where username is not null and status='ACTIVE' group by INST_ID;

INST_ID COUNT(*)--SID,SERIAL#,USERNAME,MACHINE,STATUS,MODULE,LAST_CALL_ET,EVENT--,P1,P2,P3

---------- ----------------------------------------------------------------------------------

1 7

2 6

##曆史最大連接配接數

set linesize 400

select resource_name,MAX_UTILIZATION,LIMIT_VALUE from v$resource_limit where resource_name in ('processes','sessions');

select * from v$resource_limit where resource_name in ('processes','sessions');

##檢視資料庫建立時間

select name,CREATED from v$database;

##查詢某個程序對應的會話

select s.sid,s.sql_id,s.event,s.blocking_session from v$session s ,v$process p where s.paddr=p.addr and p.spid=&pid;

##查詢執行個體的曆史啟動時間

select dbid,INSTANCE_NUMBER,STARTUP_TIME,DB_NAME from DBA_HIST_DATABASE_INSTANCE order by 3;

有一個導入的進度需要關注,需要從4A核心庫使用telnet到10.161.1.147主機,然後使用ssh登陸到10.161.144.21主機上,

上面是12.2多組戶模式的資料庫,導入資料的pdb是crmpdb,1.147的oracle密碼是User!234,144.21主機oracle密碼是oeacle123

User!234

##通過sqid擷取 執行計劃

select * from table(dbms_xplan.display_awr('02gbv93w8y4tt'));

select * from table(dbms_xplan.display_cursor('02gbv93w8y4tt',null,'ADVANCED ALLSTATS LAST PEEKED_BINDS'));

BAL_RETURNACCTBOOK_INFO

##查詢那個使用者執行的SQL_ID

select user_id from v$active_session_history where sql_id='&1' and rownum<=10;

select username from dba_users where user_id='134';

##殺死LOCAL=NO程序

ps -ef | grep LOCAL=NO | grep sid|grep -v grep | awk '{print $2}' |xargs kill -9

ps -ef | grep LOCAL=NO | grep -v grep | awk '{print $2}' |xargs kill -9

##殺程序

##檢視阻塞會話

select 'This Session' || ' ' || a.sid || ',' || a.serial# ||

' is blocked by ' || a.BLOCKING_SESSION

from v$session a

where a.BLOCKING_SESSION is not null;

##檢視sid對應的伺服器程序

select spid from v$process a,v$session b where a.addr=b.paddr and b.sid=409;

select sid from v$process a,v$session b where a.addr=b.paddr and a.spid=409;

##作業系統層面殺掉程序

确認local=no

[[email protected] ~]$ ps -ef |grep 1905|grep -v grep

oracle 1905 1861 0 04:45 ? 00:00:01 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

##查詢CPU較高的語句

select * from (select sql_id,cpu_time from v$sql order by cpu_time desc) where rownum<=10 order by rownum asc ;

select * from (select sql_text,sql_id,cpu_time from v$sql order by cpu_time desc) where rownum<=10 order by rownum asc ;

##查詢會話中持有鎖的對象的會話

set lines 200 pages 2000

col OBJECT_NAME for a25

col USERNAME for a12

col OSUSER for a12

col MACHINE for a12

col PROGRAM for a12

col owner for a20

select

sess.sid,

sess.serial#,

lo.process,

lo.locked_mode,

ao.owner,

ao.object_name,

sess.USERNAME,

sess.OSUSER,

sess.MACHINE,

sess.PROGRAM

from v$locked_object lo, dba_objects ao, v$session sess

where ao.object_id = lo.object_id

and lo.session_id = sess.sid;

##殺會話

alter system kill session 'sid,serial#';

select 'alter system kill session '||chr(39)||sid||','||serial#||chr(39)||';' from v$session where sid in (select blocking_session from v$session where event ='enq: TX - row lock contention');

##查詢等待事件

set linesize 320

set pagesize 2000

col event for a60

select sid,event,--p1,p2,p3,

WAIT_TIME,SECONDS_IN_WAIT from V$session where event not like 'SQL%' and event not like 'rdbms%';

select event,count(*) from v$session group by event order by 2;

##OSWATCH目錄

/oracle/tools/oswbb/

##啟動OSWATCH

/oracle/tools/oswbb/startOSWbb.sh

##關閉OSWATCH

/oracle/tools/oswbb/stopOSWbb.sh

##OSWATCH計劃任務

0,12 * * * * cd /oracle/tools/oswbb; nohup ./startOSWbb.sh 15 192 gzip 1>/oracle/tools/oswbb/startOSWbb.log 2>&1 &

##OSWATCH監控檔案目錄

/oracle/tools/oswbb/archive

##查詢沒有使用綁定變量的SQL

用下列語句來找出可以沒有使用bind value的sql語句:

select FORCE_MATCHING_SIGNATURE, count(1)

  from v$sql

 where FORCE_MATCHING_SIGNATURE > 0

   and FORCE_MATCHING_SIGNATURE != EXACT_MATCHING_SIGNATURE

 group by FORCE_MATCHING_SIGNATURE

having count(1) >1000

 order by 2 desc;

##查詢執行計劃

select * from table(dbms_xplan.display_cursor('fvg6c263u41uy',0));

select * from table(dbms_xplan.display_awr('b9c2srg04qhfx'));

fvg6c263u41uy

##根據SID擷取完成SQL

set long 9999

select sql_fulltext from v$sqlarea where sql_id='&1';

##12c系統使用者

AUDSYS Y

SYSBACKUP Y

SYSDG Y

SYSKM Y

OUTLN Y

XS$NULL Y

GSMADMIN_INTERNAL Y

GSMUSER Y

DIP Y

ORACLE_OCM Y

APPQOSSYS Y

XDB Y

ANONYMOUS Y

GSMCATUSER Y

WMSYS Y

OJVMSYS Y

OLAPSYS Y

##查詢表上的DML操作

select INSERTS,UPDATES,DELETES,TIMESTAMP,TRUNCATED from dba_tab_modifications where table_name='TF_SO_CUST_HIS';

##删除更改時間在一個月前的檔案

find /oracle/app/12.1.0/grid/rdbms/audit -mtime +5 |grep "\.aud"|xargs rm -f

##建立函數索引

create index sname_index on t1(upper(sname)) tablespace MYSPACE;

cat grant_DBOUTERADM.txt |grep -v -w 'si_fangsonglin;'|grep -v 'Grant'|egrep -v "^$"|grep -v ERROR|grep -v ORA|grep -v SQL|grep grant

##檢視CPU的報警

sar 1 1|tail -1|awk '{print $5}'

##采集曆史會話的狀态

select * from dba_hist_active_sess_history

where

sample_time between to_timestamp ('2018-08-06 09:00:00', 'yyyy-mm-dd hh24:mi:ss')

and to_timestamp ('2018-08-06 10:00:00', 'yyyy-mm-dd hh24:mi:ss');

TEMP=/tmp

TMPDIR=/tmp

export TEMP TMPDIR

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/12.1.0

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/sbin:/usr/local/bin:$PATH

umask 022

export ORACLE_SID=TYXXPTDB2

/oracle/app/oracle/12.1.0/bin/rman target / <<EOF

delete noprompt force archivelog all completed before 'sysdate-4';

exit;

EOF

echo "`date +%Y-%m-%d_%H:%M:%S` delete archivelog finished"

##檢視曆史備份的狀态

set line 200

col START_TIME for a30

col END_TIME for a30

select SESSION_KEY,

INPUT_TYPE,

STATUS,

to_char(START_TIME, 'yyyy-mm-dd hh24:mi') START_TIME,

to_char(END_TIME, 'yyyy-mm-dd hh24:mi') END_TIME,

ELAPSED_SECONDS / 3600

from v$rman_backup_job_details

where to_char(START_TIME, 'yyyy-mm-dd hh24:mi') > to_char(sysdate-4,'yyyy-mm-dd hh24:mi')

order by SESSION_KEY;

##檢視RMAN備份的進度

set line 200 pages 1000

col MESSAGE for a60

col TARGET for a20

select sid,SERIAL#,TARGET,START_TIME,ELAPSED_SECONDS,TIME_REMAINING,MESSAGE,ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"

from v$session_longops

where 1=1 --and sid=2983 and SERIAL#=5

and TIME_REMAINING>0 ;

轉載于:https://www.cnblogs.com/bondait/p/9717220.html