Oracle系统信息查询-数据库实例级别
Oracle system information query - Database instance level
我正在编写一个 performance/system 监控工具来增强我团队产品的负载测试,我正在尝试将数据库系统信息与结果包一起存储,但不知道如何编写查询以在其中捕获此信息Oracle(我是开发人员而不是 DBA)。
我已经按照我想要的方式为 SQL 服务器工作,但我需要为 Oracle 做同样的事情。下面是我在网上找到的查询,这是 SQL 服务器:
SELECT CONVERT(varchar(128),SERVERPROPERTY('ComputerNamePhysicalNetBIOS')) AS 'computerNamePhysicalNetBIOS',
CONVERT(varchar(128),SERVERPROPERTY('MachineName')) AS 'machineName',
CONVERT(varchar(128),SERVERPROPERTY('Edition')) AS 'edition',
CONVERT(varchar(128),SERVERPROPERTY('ProductLevel')) AS 'productLevel',
CONVERT(varchar(128),SERVERPROPERTY('ProductVersion')) AS 'productVersion',
CONVERT(varchar(128),SERVERPROPERTY('BuildClrVersion')) AS 'buildClrVersion',
CONVERT(INT,SERVERPROPERTY('ProcessID')) AS 'processID',
CONVERT(INT,SERVERPROPERTY('EngineEdition')) AS 'engineEdition',
CONVERT(INT,SERVERPROPERTY('HadrManagerStatus')) AS 'hadrManagerStatus',
CONVERT(INT,SERVERPROPERTY('IsHadrEnabled')) AS 'hadrEnabled',
CONVERT(INT,SERVERPROPERTY('IsAdvancedAnalyticsInstalled')) AS 'advancedAnalyticsInstalled',
CONVERT(INT,SERVERPROPERTY('IsClustered')) AS 'clustered',
CONVERT(INT,SERVERPROPERTY('IsPolybaseInstalled')) AS 'polybaseInstalled',
CONVERT(INT,SERVERPROPERTY('IsXTPSupported')) AS 'xtpSupported',
CONVERT(INT,SERVERPROPERTY('LCID')) AS 'lcid',
CONVERT(varchar(128),SERVERPROPERTY('ResourceVersion')) AS 'resourceVersion',
CONVERT(varchar(128),SERVERPROPERTY('ServerName')) AS 'serverName',
CONVERT(varchar(128),APP_NAME() )AS 'appName',
CONVERT(INT,DB_ID()) AS 'dbId',
CONVERT(varchar(128),DB_NAME()) AS 'dbName'
我真的不希望上述查询与 Oracle 的版本之间存在一对一的列匹配,但总的来说,如何从 Oracle 获得非常相似的信息?
其中一些内容是 MSSQL 特有的,在 Oracle 中没有任何意义。但是您可以使用 userenv
命名空间通过 sys_context()
获得其中的许多内容。
例如获取数据库名称:
select sys_context('userenv', 'DB_NAME') as db_name
from dual;
I don't really expect a one-to-one column match between the above
query and Oracle's version, but in general, how can I get very similar
information from Oracle?
其中大部分内容(如果存在于 Oracle 数据库中)都可以通过 Oracle 数据库中的 V$ 视图进行访问。为了帮助您入门,这里有一些与回答您的问题最相关的内容:
select * from v$instance;
select * from v$version;
select * from v$sql_feature;
select * from v$license;
select * from v$option;
如果您想获得完整的 V$ 视图列表以便更好地四处查看,
select * from dict where table_name like 'V$%';
我正在编写一个 performance/system 监控工具来增强我团队产品的负载测试,我正在尝试将数据库系统信息与结果包一起存储,但不知道如何编写查询以在其中捕获此信息Oracle(我是开发人员而不是 DBA)。
我已经按照我想要的方式为 SQL 服务器工作,但我需要为 Oracle 做同样的事情。下面是我在网上找到的查询,这是 SQL 服务器:
SELECT CONVERT(varchar(128),SERVERPROPERTY('ComputerNamePhysicalNetBIOS')) AS 'computerNamePhysicalNetBIOS',
CONVERT(varchar(128),SERVERPROPERTY('MachineName')) AS 'machineName',
CONVERT(varchar(128),SERVERPROPERTY('Edition')) AS 'edition',
CONVERT(varchar(128),SERVERPROPERTY('ProductLevel')) AS 'productLevel',
CONVERT(varchar(128),SERVERPROPERTY('ProductVersion')) AS 'productVersion',
CONVERT(varchar(128),SERVERPROPERTY('BuildClrVersion')) AS 'buildClrVersion',
CONVERT(INT,SERVERPROPERTY('ProcessID')) AS 'processID',
CONVERT(INT,SERVERPROPERTY('EngineEdition')) AS 'engineEdition',
CONVERT(INT,SERVERPROPERTY('HadrManagerStatus')) AS 'hadrManagerStatus',
CONVERT(INT,SERVERPROPERTY('IsHadrEnabled')) AS 'hadrEnabled',
CONVERT(INT,SERVERPROPERTY('IsAdvancedAnalyticsInstalled')) AS 'advancedAnalyticsInstalled',
CONVERT(INT,SERVERPROPERTY('IsClustered')) AS 'clustered',
CONVERT(INT,SERVERPROPERTY('IsPolybaseInstalled')) AS 'polybaseInstalled',
CONVERT(INT,SERVERPROPERTY('IsXTPSupported')) AS 'xtpSupported',
CONVERT(INT,SERVERPROPERTY('LCID')) AS 'lcid',
CONVERT(varchar(128),SERVERPROPERTY('ResourceVersion')) AS 'resourceVersion',
CONVERT(varchar(128),SERVERPROPERTY('ServerName')) AS 'serverName',
CONVERT(varchar(128),APP_NAME() )AS 'appName',
CONVERT(INT,DB_ID()) AS 'dbId',
CONVERT(varchar(128),DB_NAME()) AS 'dbName'
我真的不希望上述查询与 Oracle 的版本之间存在一对一的列匹配,但总的来说,如何从 Oracle 获得非常相似的信息?
其中一些内容是 MSSQL 特有的,在 Oracle 中没有任何意义。但是您可以使用 userenv
命名空间通过 sys_context()
获得其中的许多内容。
例如获取数据库名称:
select sys_context('userenv', 'DB_NAME') as db_name
from dual;
I don't really expect a one-to-one column match between the above query and Oracle's version, but in general, how can I get very similar information from Oracle?
其中大部分内容(如果存在于 Oracle 数据库中)都可以通过 Oracle 数据库中的 V$ 视图进行访问。为了帮助您入门,这里有一些与回答您的问题最相关的内容:
select * from v$instance;
select * from v$version;
select * from v$sql_feature;
select * from v$license;
select * from v$option;
如果您想获得完整的 V$ 视图列表以便更好地四处查看,
select * from dict where table_name like 'V$%';