当前位置: 首页 > news >正文

oracle系统查询~3

查看实例的基本信息

SQL> col  host_name  for  a25
col  instance_name  for  a15
col  version  for  a15
col  status for a10
set  linesize  600
col  host_name  for  a20
select  instance_number,instance_name,host_name,version,startup_time,status,archiver  from  v$instance;SQL> SQL> SQL> SQL> SQL> SQL> INSTANCE_NUMBER INSTANCE_NAME	HOST_NAME	     VERSION	     STARTUP_T STATUS	  ARCHIVE
--------------- --------------- -------------------- --------------- --------- ---------- -------1 orcl		11g		     11.2.0.4.0      15-MAY-23 OPEN	  STARTEDselect  dbid,DATABASE_ROLE,GUARD_STATUS,DATAGUARD_BROKER,CREATED,name,db_unique_name,open_mode,LOG_MODE,ARCHIVELOG_CHANGE#   from  v$database;DBID DATABASE_ROLE    GUARD_S DATAGUAR CREATED   NAME	 DB_UNIQUE_NAME 		OPEN_MODE	     LOG_MODE	  ARCHIVELOG_CHANGE#
---------- ---------------- ------- -------- --------- --------- ------------------------------ -------------------- ------------ ------------------
1663010567 PRIMARY	    NONE    DISABLED 27-APR-23 ORCL	 orcl				READ WRITE	     ARCHIVELOG 	     1318273

查看asm磁盘组空间容量信息

SQL> col  name  for  a15
col  state  for  a15
select  group_number,name,state,type,free_mb/1024,total_mb/1024  from  v$asm_diskgroup_stat;SQL> SQL> GROUP_NUMBER NAME	     STATE	     TYPE   FREE_MB/1024 TOTAL_MB/1024
------------ --------------- --------------- ------ ------------ -------------1 OCR_VOTE	     MOUNTED	     EXTERN    1.5390625    2.006835942 DATA	         MOUNTED	     EXTERN   7.85742188    9.981445314 FRA	         MOUNTED	     EXTERN   1.71386719    3.009765633 NEW_SHAREDISK   MOUNTED	     EXTERN   7.79785156    7.99707031SQL> set line 200
col used_pct for a20
select group_number,name,trunc(total_mb/1024) total_gb,trunc(free_mb/1024) free_gb,
trunc((total_mb-free_mb)/1024) used_gb,round((1-free_mb/total_mb),4)*100||'%' used_pct,state,type from v$asm_diskgroup;
select  name,stateSQL> SQL>   2    from  v$asm_diskgroup;
GROUP_NUMBER NAME	       TOTAL_GB    FREE_GB    USED_GB USED_PCT		   STATE	   TYPE
------------ --------------- ---------- ---------- ---------- -------------------- --------------- ------1 OCR_VOTE		      2 	 1	    0 23.31%		   MOUNTED	   EXTERN2 DATA		          9 	 7	    2 21.28%		   MOUNTED	   EXTERN4 FRA		          3 	 1	    1 43.09%		   MOUNTED	   EXTERN3 NEW_SHAREDISK	      7 	 7	    0 2.49%		   MOUNTED	   EXTERN

查看数据总量大小

SQL> select sum(bytes/1024/1024/1024) from dba_data_files;SUM(BYTES/1024/1024/1024)
-------------------------1.51855469

查看数据库系统当前时间

SQL> SQL>  alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';Session altered.SQL> SQL> select  sysdate  from  dual;SYSDATE
-------------------
2023-05-15 04:12:03

查看备库归档应用情况

SQL> set  linesize  600  pagesize  100
SQL> select thread#,max(sequence#) from v$log_history group by thread#;THREAD# MAX(SEQUENCE#)
---------- --------------1	       792	       774	    	93	       10
备库上查看同步过来的归档日志的应用情况SQL> col name for a80
select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;SQL> NAME										  SEQUENCE# APPLIED
-------------------------------------------------------------------------------- ---------- ---------
+FRA/prod/archivelog/2021_06_14/thread_2_seq_1.261.1075182801				  1 NO
+FRA/prod/archivelog/2021_07_30/thread_4_seq_1.334.1079238051				  1 NO
+FRA/prod/archivelog/2021_07_30/thread_3_seq_1.331.1079236245				  1 NO查看备库归档日志gap状态
select  *  from  v$archive_gap;
select  *  from  gv$archive_gap;查看备库归档日志gap状态
select  *  from  gv$archive_gap;

会话状态

select inst_id,status, count(*) from gv$session group by inst_id,status;INST_ID STATUS     COUNT(*)
---------- -------- ----------1 INACTIVE	     22 ACTIVE	    422 INACTIVE	     11 ACTIVE	    43SQL> select inst_id,status,sql_id,count(*) from gv$session group by inst_id,status,sql_id order by 1,2 ;INST_ID STATUS   SQL_ID	    COUNT(*)
---------- -------- ------------- ----------1 ACTIVE   0kkhhb2w93cx0	   11 ACTIVE   5t22uhfka2mz3	   21 ACTIVE			  401 INACTIVE 4qm8a3w6a1rfd	   11 INACTIVE			   12 ACTIVE   5t22uhfka2mz3	   12 ACTIVE			  432 INACTIVE			   1SQL> select inst_id,status,count(*) from gv$session where type='USER' group by inst_id,status order by 1,2;INST_ID STATUS     COUNT(*)
---------- -------- ----------1 ACTIVE	     21 INACTIVE	     22 ACTIVE	     12 INACTIVE	     1

查看oracle连接数和会话情况

SQL> select  b.MACHINE,b.PROGRAM,b.sql_id,count(*) from v$process a,v$session b where a.ADDR=b.PADDR and  b.USERNAME is not null   group by  b.MACHINE, b.PROGRAM,b.sql_id  order by count(*) asc;MACHINE 							 PROGRAM					  SQL_ID	  COUNT(*)
---------------------------------------------------------------- ------------------------------------------------ ------
node1								 sqlplus@node1 (TNS V1-V3)			      5shdyn4p4f564 	 1
node1								 oraagent.bin@node1 (TNS V1-V3) 		  4qm8a3w6a1rfd 	 1
node1								 oraagent.bin@node1 (TNS V1-V3) 				        	 1SQL> select  b.sql_id,count(*) from v$process a,v$session b where a.ADDR=b.PADDR and  b.USERNAME is not null  and status='ACTIVE'   group by  b.sql_id  order by count(*) asc;SQL_ID		       COUNT(*)
-------------   ----------
aqq30ftctuuzc	         1SQL> select event,sql_id,count(*) from v$session group by event,sql_id order by 3;EVENT								 SQL_ID 	 COUNT(*)
---------------------------------------------------------------- ------------- ----------
PING										        	1
ASM background timer									1
SQL*Net message from client								1
ges remote message							    		1
smon timer									        	1
VKTM Logical Idle Wait									1
SQL*Net message from client					 4qm8a3w6a1rfd		1
Streams AQ: waiting for time management or cleanup tasks				1
pmon timer									                	1
Streams AQ: qmn coordinator idle wait							1
SQL*Net message to client					 g55gbwms27grw		1
Space Manager: slave idle wait			     					1
gcs remote message							            		1
GCR sleep								                		1
wait for unread message on broadcast channel						2
DIAG idle wait								            		2
jobq slave wait 								            	2
Streams AQ: qmn slave idle wait 					    		2
rdbms ipc message								                23kill掉非活动会话
SQL> select 'alter system kill session '''||s.sid||','||s.SERIAL#||''' immediate;'
from  v$session s where  s.status='INACTIVE';
'ALTERSYSTEMKILLSESSION'''||S.SID||','||S.SERIAL#||'''IMMEDIATE;'
------------------------------------------------------------------------------------------------------------------------
alter system kill session '17,11' immediate;
alter system kill session '146,7' immediate;

执行次数最高和执行时间达到阈值的sql

select *from (select sa.EXECUTIONS "执行次数",round(sa.ELAPSED_TIME / 1000000, 2) "总执行时间",round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) "平均执行时间",sa.COMMAND_TYPE,sa.PARSING_USER_ID "用户ID",u.username "用户名",sa.HASH_VALUEfrom v$sqlarea saleft join all_users uon sa.PARSING_USER_ID = u.user_idwhere sa.EXECUTIONS > 0order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc)where rownum <= 50;查看指定会话中,执行时间超过阈值的sql
select inst_id,status,sql_id,count(*) from gv$session group by inst_id,status,sql_id order by 1,2 ;
SELECT A.USERNAME,A.SQL_ID,A.SQL_PLAN_OPERATION,A.SQL_PLAN_OPTIONS,A.ELAPSED_SECONDS,COUNT(1)FROM V$SESSION_LONGOPS A, V$SQL BWHERE A.START_TIME >= TRUNC(SYSDATE) - 10/24/60AND A.SQL_ID = B.SQL_IDAND A.USERNAME NOT IN ('SYS', 'SYSTEM')AND A.ELAPSED_SECONDS >=1and a.sql_id='5shdyn4p4f564'GROUP BY A.USERNAME,A.SQL_ID,A.SQL_PLAN_OPERATION,A.SQL_PLAN_OPTIONS,A.ELAPSED_SECONDSorder by A.ELAPSED_SECONDS asc;

查看ORACLE当前用户连接数:

--统计每个用户下的连接个数  
select username,count(username) from v$session where username is not null group by username; 
SQL> 
USERNAME		       COUNT(USERNAME)
------------------------------ ---------------
SYSTEM					     1
SCOTT					     2
SYS					     3SQL> ----统计某个用户的当前连接总数:
select  count(*)  from  v$session  where  username='SCOTT';SQL> COUNT(*)
----------2SQL> ----显示连接明细:
select saddr,sid,serial#,paddr,username,status from v$session where username is null;  
col  username  for  a15
col  PROGRAM  for  a20
col  MACHINE  for  a20
col  action  for  a20
col  service_name  for  a15
select count(*),sid,serial#,uSQL> sername,LOGON_TIME,PROCESS,MACHINE,PROGRAM,ACTION,SERVICE_NAME from gv$session where username is not null and status='INACTIVE';
SADDR			SID    SERIAL# PADDR		USERNAME		       STATUS
---------------- ---------- ---------- ---------------- ------------------------------ --------
0000000097ADB750	  1	     1 00000000978A9C20 			       ACTIVE
0000000097AD8670	  2	     1 00000000978ABD90 			       ACTIVE
0000000097AD5590	  3	     1 00000000978ADF00 			       ACTIVE
0000000097AD24B0	  4	     1 00000000978B0070 			       ACTIVE
0000000097ACF3D0	  5	     1 00000000978B21E0 			       ACTIVESQL> select sid,serial#,username,LOGON_TIME,MACHINE,PROGRAM,ACTION,SERVICE_NAME from v$session where username is null and status='INACTIVE'; no rows selectedSQL> select saddr,sid,serial#,paddr,username,status,logon_time from v$session where username is not null and status='INACTIVE';  SADDR			SID    SERIAL# PADDR		USERNAME	STATUS	 LOGON_TIME
---------------- ---------- ---------- ---------------- --------------- -------- -------------------
0000000097AAA950	 17	    11 00000000978C91B0 SYS	        	INACTIVE 2023-05-15 04:05:48
0000000097A92250	 25	    53 00000000978CB320 SYSTEM		INACTIVE 2023-05-15 04:41:40
0000000097A7FD10	 31	    61 00000000978D7BC0 SCOTT		INACTIVE 2023-05-15 04:46:34
000000009744C720	146	     7 00000000978D4998 SYS	         	INACTIVE 2023-05-15 04:05:48
000000009743A1E0	152	    61 00000000978D2828 SCOTT  		INACTIVE 2023-05-15 04:46:03select  *  from  v$session  where  username='SCOTT' order  by  machine desc;----快速响应处理kill连接数:
ps -ef |grep LOCAL=NO  |  wc  -l
ps -ef |grep LOCAL=NO|awk '{print $2}'|xargs kill -9

`

批量处理所有不活动的连接死连接:

set  pagesize  1500
select 'alter system kill session '''||s.sid||','||s.SERIAL#||''' immediate;'
from  v$session s where username is null and status='INACTIVE';SQL> select 'alter system kill session '''||s.sid||','||s.SERIAL#||''' immediate;' from  v$session s where status='INACTIVE';'ALTERSYSTEMKILLSESSION'''||S.SID||','||S.SERIAL#||'''IMMEDIATE;'
------------------------------------------------------------------------------------------------------------------------
alter system kill session '17,11' immediate;
alter system kill session '25,53' immediate;
alter system kill session '31,61' immediate;
alter system kill session '146,7' immediate;
alter system kill session '152,61' immediate;

查询慢sql

SELECT A.USERNAME,A.SQL_ID,A.SQL_PLAN_OPERATION,A.SQL_PLAN_OPTIONS,A.ELAPSED_SECONDS,COUNT(1)FROM V$SESSION_LONGOPS A, V$SQL BWHERE A.START_TIME >= TRUNC(SYSDATE) - 10/24/60AND A.SQL_ID = B.SQL_IDAND A.USERNAME NOT IN ('SYS', 'SYSTEM')AND A.ELAPSED_SECONDS >=10GROUP BY A.USERNAME,A.SQL_ID,A.SQL_PLAN_OPERATION,A.SQL_PLAN_OPTIONS,A.ELAPSED_SECONDSorder by A.ELAPSED_SECONDS;

查看数据量总量大小

SQL> select sum(bytes/1024/1024/1024) from dba_data_files;SUM(BYTES/1024/1024/1024)
-------------------------1.52832031[oracle@node1 ~]$ echo -e 'select sum(bytes/1024/1024/1024) from dba_data_files;' | sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Mon May 15 05:10:46 2023Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing optionsSQL> 
SUM(BYTES/1024/1024/1024)
-------------------------1.52832031

查看数据库版本信息,补丁版本信息

select  *  from  v$version;
col  ACTION_TIME    for  a30
col  ACTION         for  a10
col  BUNDLE_SERIES  for  a15
col  COMMENTS     for  a20
col  NAMESPACE     for  a20
col  VERSION        for  a20
select  *  from  dba_registry_history;
select version, id, bundle_series, comments from dba_registry_history; 
19			        RDBMS_19.10.0.0.0DBRUR_LINUX.X64_210712
19.0.0.0.0			Patch applied on 19.3.0.0.0: Release_Update - 190410122720
19.0.0.0.0			Patch applied from 19.3.0.0.0 to 19.10.3.0.0: Release_Update_Revision - 210712214337
如果数据库没有打过任何补丁,dba_registry_history字典表中没有bundle_series列,打过补丁后就会自动更新了有了。查询数据库补丁包信息
[oracle@rac2:/home/oracle]$$ORACLE_HOME/OPatch/opatch lsinventory  | grep 'Patch'Oracle Interim Patch Installer version 12.2.0.1.25
OPatch version    : 12.2.0.1.25
Patch  32923641     : applied on Tue Apr 25 18:54:15 CST 2023
Unique Patch ID:  24336134
Patch description:  "OCW RELEASE UPDATE REVISION 19.10.3.0.0 (32923641)"
Patch  32923627     : applied on Tue Apr 25 18:51:28 CST 2023
Unique Patch ID:  24340942
Patch description:  "Database Release Update Revision : 19.10.3.0.210720 (32923627)"
OPatch succeeded.

查看导入导出进程是否运行

set  linesize  600  pagesize  100
col  OWNER_NAME  for  a10
col  JOB_MODE  for  a10
col  OPERATION  for  a15
col  JOB_NAME  for  a20
col  state  for  a15
select * from dba_datapump_jobs;
----查看运行的导出进程信息:
select * from dba_datapump_jobs  where state='EXECUTING';
----杀掉导出导入进程:
expdp 'userid="/ as sysdba"' attach=JOB1   #根据实际情况确认自动生成JOB名字
expdp \'sys/passwd@ip:prot/name as sysdba\'  attach=SYS_EXPORT_FULL_01在命令行下输入 KILL_JOB
----删除历史不用的导入导出目录:
drop directory expdp_dump;
drop directory dir_dp;

查看数据库后台alert日志存放路径

SELECT P1.VALUE || '/diag/rdbms/' || lower(P2.VALUE) || '/' || P3.VALUE ||'/trace/alert_' || P3.VALUE || '.log'FROM V$PARAMETER P1, V$PARAMETER P2, V$PARAMETER P3WHERE P1.NAME = 'diagnostic_dest'AND P2.NAME = 'db_name'AND P3.NAME = 'instance_name';

归档

删除过期归档:
delete  expired  archivelog  all;归档检查:
crosscheck archivelog all;删除所有的归档:
delete noprompt archivelog all;

查看数据库中用户的基本信息

column  USERNAME  format  a25
column  TEMPORARY_TABLESPACE  format  a20
col  ACCOUNT_STATUS  for  a25
col  profile  for  a15
COL  DEFAULT_TABLESPACE  FOR  A20
select  username,user_id,account_status,LOCK_DATE,default_tablespace,temporary_tablespace,created,profile  from dba_users;
select  username,user_id,account_status,LOCK_DATE,default_tablespace,temporary_tablespace,created,profile  from dba_users  where  username='xxx';
select  username,user_id,account_status,LOCK_DATE,default_tablespace,temporary_tablespace,created,profile  from dba_users  where  username=upper('xxx');select  username,user_id,account_status,LOCK_DATE,default_tablespace,temporary_tablespace,created,profile  from dba_users  where  username in('xxx','xxx');
select  username,user_id,account_status,LOCK_DATE,default_tablespace,temporary_tablespace,created,profile  from dba_users  where  username=upper('xxx');select  username,user_id,account_status,LOCK_DATE,default_tablespace,temporary_tablespace,created,profile  from dba_users  where  username  like  '%xxx%';select username,account_status,password_versions from dba_users where username='xxx';收集指定用户的统计信息
exec dbms_stats.gather_schema_stats('xxx',estimate_percent=>50,method_opt=>'for all columns size auto',degree=>4,cascade=>true);

查询Oracle库中一个用户使用了哪些表空间

有时候一个用户使用了多个表空间,而在数据库翻新时有可能因为表空间不存在而报错,
因此在导入之前应该查一下表空间是否存在。select distinct tablespace_name from dba_segments where owner='user_name';

DBA权限

查看哪些用户有sysdba权限
select * from V$PWFILE_USERS;查看哪些用户被授予了DBA权限:
select * from dba_role_privs where granted_role='DBA';用户权限检查(查看)
select * from dba_sys_privs where grantee='xxx';
col  grantee  for  a20
col  granted_role  for  a20
select * from dba_role_privs where grantee='xxx';
select grantee,owner,table_name,privilege from dba_tab_privs where grantee='xxx';
----查看角色拥有的权限信息:
select  *  from  role_sys_privs  where  role='xxx';
select  *  from  dba_sys_privs  where  GRANTEE='xxx';
http://www.lryc.cn/news/67752.html

相关文章:

  • Mybatis源码(九)— chche
  • 回溯法--N皇后问题
  • ajax请求
  • K8S系列之污点和容忍度详细分析
  • 【算法】Minimum Moves to Move a Box to Their Target Location 推箱子
  • 决策引擎平台建设方案
  • SpringBoot Starter 作用及原理
  • 【rust】| 05——语法基础 | 流程控制
  • 解决Makefile: recipe for target ‘xxx‘ failed
  • 小黑子—多媒体技术与运用基础知识三:数字图形图像处理技术
  • Nginx实现ChatGPT API代理
  • FileNotFoundError: [Errno 2] No such file or directory: ‘dot‘
  • 【分布族谱】正态分布和二项分布的关系
  • 7.设计模式之责任链模式
  • JAVA8的新特性——Stream
  • alias设置快捷键vim使用说明(解决服务器上输入长指令太麻烦的问题)
  • 英语基础句型之旅:从基础到高级
  • 十四、Zuul网关
  • 5项目五:W1R3S-1(思路为主!)
  • Day958.代码的分层重构 -遗留系统现代化实战
  • 分子模拟力场
  • ERP 系统在集团化企业财务管理中的应用
  • 达摩院开源多模态对话大模型mPLUG-Owl
  • Group相关问题-组内节点限制移动范围
  • 程序员该如何学习技术
  • springboot+vue交流互动系统(源码+文档)
  • 【2023华为OD笔试必会25题--C语言版】《01 预定酒店》——排序、二分查找
  • C语言实现队列--数据结构
  • 前端CSS经典面试题总结
  • cookie、session、token的区别是什么