oracle-session-统计某时间段连接数据库的客户端信息-非精准

简介:

统计某时间段连接数据库的客户端信息-非精准

适用于:迁移数据库同时ip变更时,统计原数据库的连接信息和dblink连接信息,以方便迁移后,修改相关dblink及申请安全开通网络权限
DBA_HIST_ACTIVE_SESS_HISTORY 可换成 v$active_session_history

查看统计的时间范围

set line 300
SELECT MIN (sample_time), MAX (sample_time) FROM dba_hist_active_sess_history;

MIN(SAMPLE_TIME)                                   MAX(SAMPLE_TIME)                                  
-------------------------------------------------- --------------------------------------------------
2022/2/23 1:59:58.022                              2022/3/4 15:59:54.789                             
已选择 1 行。

统计客户端连接的用户名,机器名,采样的次数(可指定区间,是否排除dblink)

--查看job连接

select * from DBA_HIST_ACTIVE_SESS_HISTORY where user_id=0 and session_type='FOREGROUND'  and program like 'oracle@%J%'   and machine  IN (SELECT host_name FROM v$instance) ;

--查看dblink连接

select  *   FROM DBA_HIST_ACTIVE_SESS_HISTORY where  program like 'oracle@%'   and  machine not IN (SELECT host_name FROM v$instance);   --dblink

1. 只统计非dblink,非job,非后台进程的连接

set line 300 pagesize 4000
  SELECT u.username,
         d.user_id,
         d.machine,
         COUNT (*)
    FROM DBA_HIST_ACTIVE_SESS_HISTORY d, dba_users u
   WHERE     d.user_id = u.user_id
         AND u.username NOT IN ('VIVO_DB_MONITOR')
         and d.session_type='FOREGROUND'
         AND d.user_id > 0   
         and  machine NOT IN (SELECT host_name FROM v$instance)  
         and  d.program not like 'oracle@%J%' ----排除job连接
         AND  d.program  not LIKE 'oracle@%'   ----排除dblink连接
         --AND a.sample_time >TO_DATE ('2022/01/01 09:29:01', 'yyyy/mm/dd hh24:mi:ss') AND a.sample_time < TO_DATE ('2021/12/14 09:30:01', 'yyyy/mm/dd hh24:mi:ss') ----指定区间
GROUP BY u.username, d.user_id, d.machine
ORDER BY 4 DESC ;


USERNAME                          USER_ID MACHINE                                                            COUNT(*)
------------------------------ ---------- ---------------------------------------------------------------- ----------
abc                                    97 abc                                                                 21444

2. 只统计dblink连接

set line 300 pagesize 4000
  SELECT u.username,
         d.user_id,
         d.machine,
         COUNT (*)
    FROM DBA_HIST_ACTIVE_SESS_HISTORY d, dba_users u
   WHERE     d.user_id = u.user_id
         AND u.username NOT IN ('VIVO_DB_MONITOR')
         and d.session_type='FOREGROUND'
         AND d.user_id > 0   
         and  machine NOT IN (SELECT host_name FROM v$instance)  
         and  d.program not like 'oracle@%J%' ----排除job
         AND  d.program  LIKE 'oracle@%'   ----只统计dblink连接
         --AND a.sample_time >TO_DATE ('2022/01/01 09:29:01', 'yyyy/mm/dd hh24:mi:ss') AND a.sample_time < TO_DATE ('2021/12/14 09:30:01', 'yyyy/mm/dd hh24:mi:ss') ----指定区间
GROUP BY u.username, d.user_id, d.machine
ORDER BY 4 DESC ;



USERNAME                          USER_ID MACHINE                                                            COUNT(*)
------------------------------ ---------- ---------------------------------------------------------------- ----------
abc                                    97  abc                                                                 21444
目录
相关文章
|
1月前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2天前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
9天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
19天前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
34 10
|
28天前
|
存储 Oracle 关系型数据库
分享几个Oracle数据库日常维护中常见的问题
分享几个Oracle数据库日常维护中常见的问题
74 1
|
22天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
28天前
|
Oracle 关系型数据库 数据库
Oracle数据库备份脚本分享-Python
Oracle数据库备份脚本分享-Python
24 0
|
3天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
5天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
65 11
|
24天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~

推荐镜像

更多