oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图

合集下载

oracle对应参数

oracle对应参数

oracle对应参数Oracle数据库的参数众多,每个参数都有其特定的作用和影响。

以下是一些常见的Oracle数据库参数及其说明:db_block_size:这是一个Oracle数据库块的大小(字节)。

该值在创建数据库时设置,而且此后无法更改。

其值范围通常为1024 - 65536(根据操作系统而定),默认值为2048(根据操作系统而定)。

db_cache_size:这是为高速缓存指定标准块大小的缓冲区。

其值范围至少为16M,默认值为48M。

compatible:此参数允许您使用一个新的发行版,同时保证与先前版本的向后兼容性。

其值范围默认为当前发行版,默认值由发行版确定。

parallel_automatic_tuning:这是并行执行的参数。

如果值为TRUE,将在大存储池之外指定消息缓冲区。

其值范围为TRUE或FALSE,默认值根据具体情况而定。

parallel_execution_message_size:这也是并行执行的参数。

如果值大于2048或4096,就需要更大的共享池。

其值范围根据具体情况而定,默认值也根据具体情况而定。

use_indirect_data_buffers:这是控制可支持超过4GB物理内存的32位平台对扩展缓冲区高速缓存机制的使用情况的参数。

其值范围为TRUE或FALSE,默认值为FALSE。

user_dump_dest:这是为服务器将以一个用户进程身份在其中写入调试跟踪文件的目录指定路径名的参数。

其值范围为一个有效的本地路径名、目录或磁盘,默认值根据操作系统而定。

utl_file_dir:这是允许数据库管理员指定PL/SQL文件I/O许可的目录的参数。

此外,还有一些其他重要的参数,如SERVICE_NAME和GLOBAL_DBNAME。

SERVICE_NAME是客户端要请求的服务名,出现在tnsnames.ora文件中;GLOBAL_DBNAME是服务器提供的服务名,出现在listener.ora文件中。

oracle系统表v$session、v$sql,v$sqlarea字段中文说明

oracle系统表v$session、v$sql,v$sqlarea字段中文说明

l RUNTIME_MEMORY: cursor使用的运行时内存总数。
l SQL_TEXT: SQL语句的文本(最大只能保存该语句的前 1000个字符)。
l MODULE,ACTION:使用了 DBMS_APPLICATION_INFO时 session解析第一条 cursor时的信息
HASH_VALUE. ADDRESS V$SESSION SQL_HASH_VALUE, SQL_ADDRESS
示例:已知 hash_value:3111103299,查询 sql语句:
select * from v$sqltext
FROM V$SESSION
WHERE terminal = 'pts/tl' AND machine = 'rgmdbs1' ;
3.查找当前被某个指定 session正在运行的 sql语句。假设 sessionID为 100
select b.sql_text
from v$session a,v$sqlarea b
l MODULE: DBMS_APPLICATION_INFO中设置
下列 V$SESSION列同样可能会被用到:
l ROW_WAIT_OBJ#
l ROW_WAIT_FILE#
l ROW_WAIT_BLOCK#
l ROW_WAIT_ROW#
HASH_VALUE, ADDRESS V$SQLTEXT, V$SQL, V$OPEN_CURSOR HASH_VALUE, ADDRESS
SQL_TEXT V$DB_OBJECT_CACHE NAME
oracle系统表v$session、v$sql字段说明

oracle dictionary

oracle dictionary

--1. 静态数据字典--user_source视图--主要描述当前用户的type and code信息.select * from user_source;select * from all_source;select * from dba_source;-------------------------------user_users视图--主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。

例如执行下列命令即可返回这些信息。

select * from user_users;select * from all_users;select * from dba_users;-------------------------------user_tables视图--主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。

通过此视图可以清楚了解当前用户可以操作的表有哪些。

select * from user_tables;select * from all_tables;select * from dba_tables;--------------------------------user_views视图--主要描述当前用户拥有的所有views的信息.select * from user_views;select * from all_views;select * from dba_views;--------------------------------user_objects视图--主要描述当前用户拥有的所有对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。

--该视图比user_tables视图更加全面。

例如, 需要获取一个名为“PARTNER_DF_PK”的对象类型和其状态的信息,可以执行下面命令select object_type,status from user_objectswhere object_name=upper('PARTNER_DF_PK');--这里需注意upper的使用,数据字典里的所有对象均为大写形式,而PL/SQL里不是大小写敏感的,所以在实际操作中一定要注意大小写匹配。

oracle 查看用户、权限、角色

oracle 查看用户、权限、角色

查看用户、权限、角色的命令和视图a1.查看所有用户:select * from dba_users;select * from all_users;select * from user_users;2.查看用户系统权限:select * from dba_sys_privs;select * from session_privs;select * from user_sys_privs;3.查看用户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * from user_tab_privs;4.查看所有角色:select * from dba_roles;5.查看用户所拥有的角色:select * from dba_role_privs;select * from user_role_privs;b概述与权限,角色相关的视图大概有下面这些:DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限USER_SYS_PRIVS: 查询当前用户所拥有的系统权限SESSION_PRIVS: 查询当前用户所拥有的全部权限ROLE_SYS_PRIVS:查询某个角色所拥有的系统权限注意: 要以SYS用户登陆查询这个视图,否则返回空.ROLE_ROLE_PRIVS: 当前角色被赋予的角色SESSION_ROLES: 当前用户被激活的角色USER_ROLE_PRIVS: 当前用户被授予的角色另外还有针对表的访问权限的视图:TABLE_PRIVILEGESALL_TAB_PRIVSROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限oracle与用户角色权限相关的视图Oracle 本身的数据字典设计我个人觉得很合理, 因为DBA_xxx, ALL_xxx,USER_xxx 让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图.一. 概述与权限,角色相关的视图大概有下面这些:1、DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限。

oracle赋dba权限

oracle赋dba权限

oracle赋dba权限如何给Oracle数据库用户赋予DBA权限Oracle数据库的DBA(Database Administrator)权限是指最高级别的数据库管理权限,具有该权限的用户可以对数据库进行全面的管理和控制。

在某些情况下,给予用户DBA权限是必要的,例如需要进行数据库维护、性能优化或者进行一些故障排除等任务。

下面将详细介绍如何给Oracle数据库用户赋予DBA权限的步骤。

1. 连接到Oracle数据库首先,使用管理员账号连接到Oracle数据库。

这个管理员账号通常是sys 或system用户,拥有sysdba权限。

连接到Oracle数据库的命令可以使用SQL*Plus工具或者命令行界面。

例如,在Windows系统上可以使用以下命令连接到数据库:sqlplus / as sysdba2. 创建新的数据库用户接下来,需要创建一个新的数据库用户来赋予DBA权限。

使用以下SQL 语句创建一个新用户,例如,创建一个名为new_user的用户:SQL> CREATE USER new_user IDENTIFIED BY password;在这里,new_user是新用户的用户名,password是新用户的密码。

3. 授权DBA权限接下来,使用以下SQL命令将DBA角色授予新用户:SQL> GRANT DBA TO new_user;这个命令将DBA角色授予新创建的用户,使其具有DBA权限。

4. 验证DBA权限为了验证新用户是否已成功获得DBA权限,可以先注销当前的数据库连接,然后使用新用户重新连接到数据库。

使用以下命令重新连接到数据库:sqlplus new_user/password as sysdba连接成功后,可以使用以下命令查询用户的权限:SQL> SELECT * FROM session_privs;这个查询将会显示新用户所具有的权限列表,其中应该包含DBA权限。

oracle系统表大全

oracle系统表大全

ORACLE系统表大全1、用户:select username from dba_users;改口令alter user spgroup identified by spgtest;2、表空间:select *from dba_data_files;select *from dba_tablespaces;—-表空间select tablespace_name,sum(bytes),sum(blocks)from dba_free_spacegroup by tablespace_name;--空闲表空间select * from dba_data_fileswhere tablespace_name='RBS’;—-表空间对应的数据文件select * from dba_segmentswhere tablespace_name='INDEXS';3、数据库对象:select *from dba_objects;CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。

4、表:select * from dba_tables;analyze my_table compute statistics;—-dba_tables后6列select extent_id,bytes from dba_extentswhere segment_name=’CUSTOMERS’and segment_type=’TABLE’order by extent_id;-—表使用的extent的信息。

segment_type=’ROLLBACK'查看回滚段的空间分配信息列信息:select distinct table_namefrom user_tab_columnswhere column_name='SO_TYPE_ID';5、索引:select * from dba_indexes;--索引,包括主键索引select * from dba_ind_columns;—-索引列select i.index_name,i。

oracle登录语句

oracle登录语句

oracle登录语句1. 使用Oracle登录语句Oracle是一种常用的关系型数据库管理系统,登录到Oracle数据库需要使用合适的登录语句。

以下是一些常见的Oracle登录语句:1) 使用用户名和密码登录:```sqlplus 用户名/密码@数据库实例名```其中,用户名是登录Oracle数据库的用户名,密码是对应的密码,数据库实例名是Oracle数据库的实例名。

2) 使用用户名和密码登录,指定连接端口:```sqlplus 用户名/密码@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=T CP)(HOST=主机名或IP)(PORT=端口号)))(CONNECT_DATA=(SID=数据库实例名)))```其中,主机名或IP是Oracle数据库所在的主机名或IP地址,端口号是Oracle数据库监听程序的端口号。

3) 使用用户名和密码登录,指定连接服务名:```sqlplus 用户名/密码@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=T CP)(HOST=主机名或IP)(PORT=端口号)))(CONNECT_DATA=(SERVICE_NAME=服务名)))```其中,主机名或IP是Oracle数据库所在的主机名或IP地址,端口号是Oracle数据库监听程序的端口号,服务名是Oracle数据库的服务名。

4) 使用用户名和密码登录,指定连接SID:```sqlplus 用户名/密码@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=T CP)(HOST=主机名或IP)(PORT=端口号)))(CONNECT_DATA=(SID=数据库实例名)))```其中,主机名或IP是Oracle数据库所在的主机名或IP地址,端口号是Oracle数据库监听程序的端口号,数据库实例名是Oracle数据库的实例名。

ORACLEUSERENV函数

ORACLEUSERENV函数

ORACLEUSERENV函数ORACLE USERENV函数USERENV返回关于当前会话的信息。

此信息可以⽤于编写⼀个应⽤程序特定的审计跟踪表或确定特定于语⾔的⾓⾊⽬前使⽤的会话。

参数功能CLINET_INFO返回最⾼可达64个字节存储的⽤户会话信息,可由应⽤程序使⽤DBMS_APPLICATION_INFO包。

ENTRYID返回当前审计条⽬编号。

审计的EntryID序列细粒度的审计记录和定期审计记录之间共享。

在分布式SQL语句不能使⽤这个属性。

ISDBA如果⽤户已经被认证为dba;或者是通过操作系统或⼝令⽂件具有DBA特权的,返回“TRUE",否则返回"FALSE"LANG返回ISO缩写语⾔名称,⼀个⽐现有的“语⾔”参数较短的形式LNAGUAGE返回数据库当前会话的语⾔、地域和字符集SESSIONID返回审计会话标识符。

在分布式SQL语句不能指定此参数SID返回数据库会话IDTERMINA返回当前会话的终端操作系统的标识符。

在分布式SQL语句,此参数返回了标识符为本地会话。

在分布式环境中,此参数只⽀持远程SELECT语句,不⽤于远程INSERT,UPDATE或DELETE操作。

EREVN()返回当前⽤户环境的信息,opt可以是:ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE1.ISDBA 查看当前⽤户是否是DBA如果是则返回trueSQL> select userenv('isdba') from dual;USEREN------FALSE2.SESSION 返回会话标志SQL> select userenv('sessionid') from dual;USERENV('SESSIONID')--------------------1524.ENTRYID 返回会话⼈⼝标志SQL> select userenv('entryid') from dual;USERENV('ENTRYID')------------------5.INSTANCE 返回当前INSTANCE的标志SQL> select userenv('instance') from dual;USERENV('INSTANCE')-------------------1NGUAGE 返回当前环境变量SQL> select userenv('language') from dual;USERENV('LANGUAGE')----------------------------------------------------SIMPLIFIED CHINESE_CHINA.ZHS16GBKNG 返回当前环境的语⾔的缩写SQL> select userenv('lang') from dual;USERENV('LANG')----------------------------------------------------ZHS8.TERMINAL 返回⽤户的终端或机器的标志SQL> select userenv('terminal') from dual;USERENV('TERMINA----------------GAO9.VSIZE(X) 返回X的⼤⼩(字节)数SQL> select vsize(user),user from dual;VSIZE(USER) USER----------- ------------------------------6 SYSTEM2、sys_contextselectSYS_CONTEXT('USERENV','TERMINAL') terminal,SYS_CONTEXT('USERENV','LANGUAGE') language,SYS_CONTEXT('USERENV','SESSIONID') sessionid,SYS_CONTEXT('USERENV','INSTANCE') instance,SYS_CONTEXT('USERENV','ENTRYID') entryid,SYS_CONTEXT('USERENV','ISDBA') isdba,SYS_CONTEXT('USERENV','NLS_TERRITORY') nls_territory,SYS_CONTEXT('USERENV','NLS_CURRENCY') nls_currency,SYS_CONTEXT('USERENV','NLS_CALENDAR') nls_calendar,SYS_CONTEXT('USERENV','NLS_DATE_FORMAT') nls_date_format,SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE') nls_date_language, SYS_CONTEXT('USERENV','NLS_SORT') nls_sort,SYS_CONTEXT('USERENV','CURRENT_USER') current_user,SYS_CONTEXT('USERENV','CURRENT_USERID') current_userid,SYS_CONTEXT('USERENV','SESSION_USER') session_user,SYS_CONTEXT('USERENV','SESSION_USERID') session_userid,SYS_CONTEXT('USERENV','PROXY_USER') proxy_user,SYS_CONTEXT('USERENV','PROXY_USERID') proxy_userid,SYS_CONTEXT('USERENV','DB_DOMAIN') db_domain,SYS_CONTEXT('USERENV','DB_NAME') db_name,SYS_CONTEXT('USERENV','HOST') host,SYS_CONTEXT('USERENV','OS_USER') os_user,SYS_CONTEXT('USERENV','EXTERNAL_NAME') external_name,SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address,SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') network_protocol, SYS_CONTEXT('USERENV','BG_JOB_ID') bg_job_id,SYS_CONTEXT('USERENV','FG_JOB_ID') fg_job_id,SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE') authentication_type, SYS_CONTEXT('USERENV','AUTHENTICATION_DATA') authentication_data from dual;。

Oracle用户角色与权限控制

Oracle用户角色与权限控制
alter user system account unlock;
alter user system identified by abc123;
12.2 权限
权限(Privilege)的最终作用对象是用户。即所有用 户在数据库内的操作对象和可执行的动作都是受到限制的。 Oracle中共有两种权限:系统权限和对象权限。
select * from system.t_employees order by employee_id;
12.3.2 继承角色
角色继承是指一个角色可以继承其他角色的权限信息, 从而减少自身使用grant的机会。
create role role_hr;
grant role_employee to role_hr;
grant update, insert on t_employees to role_hr;
select table_name, grantee, grantor, privilege from dba_tab_privs where table_name = 'T_EMPLOYEES';
create user cat identified by abc;
grant create session to cat;
grant role_hr to cat;
update system.t_employees set status = 'CXL' where employee_id = 13;
12.3.3 禁用和启用角色
每个用户登录数据库时,都可以获得其默认角色。可以 通过查询视图session_roles来获得当前会话下该用户的默 认角色。管理员可以禁用用户的默认角色,一旦禁用,则用 户从该角色获得的权限将不再有效。

oracle19c之用户、权限、表空间

oracle19c之用户、权限、表空间

oracle19c之⽤户、权限、表空间 ⼀、⽤户相关操作 1、查询⽤户select * from dba_users; --查询全库所有的⽤户select * from all_users; --查询当前⽤户可看到的⽤户select * from user_users; --查询当前登录的⽤户 2、创建⽤户(创建者需要有dba权限,⽤户名必须以c##开头,默认的表空间是users,新⽤户没有任何权限。

)create user c##sl IDENTIFIED BY 123456; 3、删除⽤户drop user c##sl2 cascade; --删除⽤户不会删除其表空间 注意:⽆法删除⽤户C##SL3,报错“[Err] ORA-01940: ⽆法删除当前连接“的⽤户解决⽅法:select username,sid,serial#,paddr from v$session where username='C##SL3';alter system kill session '17,55857'; 4、修改密码alter user c##sl3 identified by 1234; ⼆、权限相关操作 a、系统权限:⽤户在系统层⾯的权限,如CREATE SESSION、SELECT ANY TABLE等不依赖于对象的权限 b、对象权限:⽤户关于某个具体对象的权限,如SELECT、UPDATE、INSERT等依赖于表、视图、存储过程的权限 c、⾓⾊:⼀组权限的集合 注意:PUBLIC⽤户具有的权限,其他⽤户都会有,即修改PUBLIC⽤户的权限,其他⽤户也会对应得改变权限 1、查看权限、⾓⾊select * from user_tab_privs; --当前⽤户具有的对象权限select * from dba_tab_privs WHERE grantee='C##SL' OR grantor='C##SL'; --全部⽤户具有的对象权限,查询C##SL⽤户的select * from user_sys_privs; --当前⽤户具有的系统权限select * from dba_sys_privs WHERE grantee='C##SL'; --全部⽤户具有的系统权限,查询C##SL⽤户的SELECT * FROM user_role_privs; --当前⽤户具有的⾓⾊SELECT * FROM dba_role_privs where grantee='C##SL'; --全部⽤户具有的⾓⾊,查询C##SL⽤户的 注意:上⾯每⼀对查询出的结果应该⼀样,因为全部⽤户中肯定也包含当前⽤户,普通⽤户没有查询全部⽤户⾓⾊、权限表的权限 2、常⽤权限、⾓⾊dba 管理员⾓⾊connect 连接数据库⾓⾊,能修改、删除表及数据,不能创建表resource 能创建表create session 连接数据库权限create table 建表权限unlimited tablespace 操作表空间权限select any table 查询任何表的权限select on c##test.book 查询c##test⽤户的book表的权限 说明: a、⼀般来说,新建的普通⽤户后授予connect和resource⾓⾊就好了、如果是管理员需要再授予dba⾓⾊。

数据字典的使用

数据字典的使用

一、概念:1.数据字典(data dictionary)是Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。

数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。

我们不能手工修改数据字典里的信息。

当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。

2.数据字典中的信息包含:1.数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)2.数据库为一个方案对象分配了多少空间,以及该对象当前使用了多少空间3.列的默认值4.完整性约束(integrity constraint)信息5.数据库用户名6.每个用户被授予(grant)的权限(privilege)与角色(role)7.监控(audit)信息,例如哪个用户对某个方案对象进行了访问或更新操作8.数据库中的其他概要信息二、组成结构1.基表(base table):用于存储相关的数据库信息。

只有Oracle 才能读写这些表。

用户很少直接访问她们,因为这些表是规范化的(normalized),且其中的大部分数据的含义是普通用户无法理解的。

2.用户访问视图(user-accessible view):用于对数据字典基表内存储的数据进行汇总与展示。

这些视图利用连接(join)及WHERE 子句简化基表中的数据,将其解码(decode)为用户可理解的信息,例如用户名,表名等。

大多数数据库用户只能访问这些视图,而不能访问基表。

Oracle 中的SYS 用户拥有数据字典中的所有基表(base table)及用户访问视图(user-accessible view)。

其他Oracle 用户不应修改(UPDATE,DELETE,或INSERT)SYS 方案中的对象定义及数据,否则将危害数据库的数据完整性(data integrity)。

ORACLE系统视图及表大全

ORACLE系统视图及表大全

总结ORACLE系统视图及表大全:dba一开头.....dba_users数据库用户信息dba_segments表段信息dba_extents数据区信息dba_objects数据库对象信息dba_tablespaces数据库表空间信息dba_data_files数据文件设置信息dba_temp_files临时数据文件信息dba_rollback_segs 回滚段信息dba_ts_quotas用户表空间配额信息dba_free_space数据库空闲空间信息dba_profiles数据库用户资源限制信息dba_sys_privs用户的系统权限信息dba_tab_privs用户具有的对象权限信息dba_col_privs 用户具有的列对象权限信息dba_role_privs用户具有的角色信息dba_audit_trail审计跟踪记录信息dba_stmt_audit_opts 审计设置信息dba_audit_object 对象审计结果信息dba_audit_session会话审计结果信息dba_indexes用户模式的索引信息user_开头user_objects用户对象信息user_source数据库用户的所有资源对象信息user_segments用户的表段信息user_tables用户的表对象信息user_tab_columns用户的表列信息user_constraints用户的对象约束信息user_sys_privs 当前用户的系统权限信息user_tab_privs当前用户的对象权限信息user_col_privs当前用户的表列权限信息user_role_privs当前用户的角色权限信息user_indexes用户的索引信息user_ind_columns用户的索引对应的表列信息user_cons_columns用户的约束对应的表列信息user_clusters用户的所有簇信息user_clu_columns用户的簇所包含的内容信息user_cluster_hash_expressions 散列簇的信息v$开头v$database数据库信息v$datafile数据文件信息v$controlfile控制文件信息v$logfile重做日志信息v$instance数据库实例信息v$log日志组信息v$loghist日志历史信息v$sga数据库SGA信息v$parameter初始化参数信息v$process数据库服务器进程信息v$bgprocess数据库后台进程信息v$controlfile_record_section控制文件记载的各部分信息v$thread线程信息v$datafile_header数据文件头所记载的信息v$archived_log归档日志信息v$archive_dest归档日志的设置信息v$logmnr_contents归档日志分析的DML DDL结果信息v$logmnr_dictionary日志分析的字典文件信息v$logmnr_logs日志分析的日志列表信息v$tablespace表空间信息v$tempfile临时文件信息v$filestat数据文件的I/O统计信息v$undostat Undo 数据信息v$rollname在线回滚段信息v$session会话信息v$transaction 事务信息v$rollstat回滚段统计信息v$pwfile_users特权用户信息v$sqlarea当前查询过的sql语句访问过的资源及相关的信息v$sql与v$sqlarea基本相同的相关信息v$sysstat数据库系统状态信息all_开头all_users数据库所有用户的信息all_objects数据库所有的对象的信息all_def_audit_opts所有默认的审计设置信息all_tables所有的表对象信息all_indexes所有的数据库对象索引的信息session_ 开头session_roles会话的角色信息session_privs会话的权限信息index一开头index_stats索引的设置和存储信息伪表dual系统伪列表信息Oracle常用动态视图介绍:2.1.1v$lock给出了锁的信息,如type 字段,user type locks有 3 种:TM,TX,UL,system type locks 有多种,常见的有:MR,RT,XR,TS等。

v$session字段解释

v$session字段解释

v$session字段解释
v$session是Oracle数据库中的动态性能视图,它提供了关于当前会话(session)的信息。

会话是指应用程序或用户与数据库之间的连接,v$session视图中的字段提供了有关会话的各种信息。

以下是v$session视图中一些常见字段的解释:
1. SID(Session ID),会话的唯一标识符,用于区分不同的会话。

2. SERIAL#(Serial Number),会话的序列号,与SID一起用于唯一标识会话。

3. USERNAME,正在使用会话的用户的用户名。

4. STATUS,会话的状态,例如ACTIVE(活动状态)、INACTIVE(非活动状态)等。

5. OSUSER,启动会话的操作系统用户。

6. MACHINE,启动会话的计算机名称。

7. PROGRAM,启动会话的程序或应用程序名称。

8. SQL_ID,正在执行的SQL语句的唯一标识符。

9. SQL_ADDRESS,正在执行的SQL语句的内存地址。

10. SQL_HASH_VALUE,正在执行的SQL语句的哈希值。

除了上述字段外,v$session视图还包含了许多其他有用的信息,如会话的登录时间、最后活动时间、所使用的数据库实例等。

通过查询v$session视图,可以及时了解当前会话的状态和活动,并对数据库性能进行监控和调优。

总之,v$session字段提供了关于当前会话的各种信息,可以帮助数据库管理员和开发人员监控和管理数据库的性能和活动。

这些信息对于诊断和解决数据库性能问题非常重要,可以帮助用户更好地理解数据库的运行情况。

Oracle 动态视图V$,V_$,GV$,GV_$与X$之间的关系(重要)

Oracle 动态视图V$,V_$,GV$,GV_$与X$之间的关系(重要)

Oracle 动态视图V$,V_$,GV$,GV_$与X$之间的关系概括:GV$与V$是视图,X$是表。

gv$是全局视图,而v$是针对某个实例的视图,X$是所有gv$的数据来源,从gv$到v$需要加上where inst_id = USERENV(’Instance’)。

一般来说一个oracle数据库只会有一个实例对其操作,但在RAC上可以有多台实例同时装载并打开一个数据库。

那gv_$与v_$的定义又在什么地方呢?原来在$ORACLE_HOME/rdbms/admin存放着系统管理脚本。

因此我们常用的v$ 是v_$的同义词,v_$是基于真正的视图v$,而真正的v$视图是在gv$的基础上限制inst_id得到;我们常用的gv$是gv_$的同义词,gv_$基于真正的视图gv$,而真正的gv$视图基于系统表X$。

具体的内容如下:前言:在oracle运维的过程中,经常会使用到一些以V$开头的动态视图,比如V$session, 有一次偶然看到有人用V_$session, 初以为别人写错了,没想到desc v_$session以后能看到和v$session一样的结构,再以后又发现以gv$开头的视图等等。

趁这次在一台Linux系统上装oracle的机会,终于弄清楚了这些动态视图与相应表之间的关系。

这些都是由oracle自己管理的数据结构,得从v$fixed_table入手:[oracle@3857 admin]$ sqlplus sys/sys@archdw as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 14 11:27:20 2009Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> desc v$fixed_table;Name Null? Type —————————————–——–—————————-NAME V ARCHAR2(30)OBJECT_ID NUMBERTYPE V ARCHAR2(5)TABLE_NUM NUMBERSQL> select * from v$fixed_tableNAME OBJECT_ID TYPE TABLE_NUM —————————————- —–———-X$KQFTA 4294950912 TABLE 0X$KQFVI 4294950913 TABLE 1GV$PROCESS 4294951256 VIEW 65537V$PROCESS 4294950917 VIEW 65537GV$BGPROCESS 4294951257 VIEW 65537………………………………………从上面可以看到GV$与V$是视图,X$是表。

oracle session 查询语句

oracle session 查询语句

oracle session 查询语句Oracle是一种流行的关系型数据库管理系统,它允许用户在一个或多个会话中访问和操作数据库。

一个会话是指用户与数据库建立的交互连接,Oracle允许用户并发地创建和管理多个会话。

在Oracle中,有几种常用的语句可用于查询和管理会话。

下面是一些常见的Oracle会话查询语句的参考内容。

1. 查询当前会话:在Oracle中,可以使用以下语句查询当前会话的信息:```SELECT sid, serial#, username, machine, programFROM v$sessionWHERE username = '当前用户名';```以上语句将返回当前用户名的会话信息,包括会话ID(sid)、序列号(serial#)、用户名(username)、登录的机器名(machine)和使用的程序(program)。

2. 查询活动会话:可以使用以下语句查询当前所有活动的会话:```SELECT sid, serial#, username, machine, programFROM v$sessionWHERE status = 'ACTIVE';```以上语句将返回当前所有活动的会话信息,包括会话ID(sid)、序列号(serial#)、用户名(username)、登录的机器名(machine)和使用的程序(program)。

3. 查询会话的锁信息:可以使用以下语句查询会话的锁信息:```SELECT sid, serial#, type, mode, object_id, object_nameFROM v$locked_objectWHERE session_id = '当前会话ID';```以上语句将返回指定会话锁定的对象信息,包括会话ID (sid)、序列号(serial#)、锁类型(type)、锁模式(mode)、对象ID(object_id)和对象名称(object_name)。

oracle锁表查询和解锁方法

oracle锁表查询和解锁方法

oracle锁表查询和解锁方法## Oracle 锁表查询和解锁方法Oracle数据库是当今最流行的关系型数据库系统,其中有一种十分重要的特性就是它可以锁定数据库表,防止别人修改该表的内容,又被称为并发控制。

下面我们分别来看看Oracle中查询和解锁表的方法:### 一、Oracle中查询锁表方法1. 使用系统内置函数查询锁表- 以DBA权限登录,使用“select * from v$lock;”查询锁表状态;- 使用“SELECT l.sid, l.type, l.mode, l.id1,ername, s.osuser, s.machine FROM v$lock l,v$session s WHERE l.sid=s.sid;”查询出锁表具体信息,以便确定锁表的具体情况和引起表锁定的原因。

2. 使用dba_dml_locks视图查看锁表- 以DBA账号登录,使用“select * fromdba_dml_locks;”命令查看锁表的状态;- 使用“select * f rom dba_dml_locks where name='表名' and mode_held='锁定模式';”命令查看表名称以及表上锁定的模式。

### 二、Oracle中解锁表方法1. 强制执行表解锁:- 使用“ALTER SYSTEM KILL SESSION'sid,serial#' IMMEDIATE;”命令强制杀死会话占用表的会话,以释放表上的锁定;- 使用“select * from v$lock;”命令查询是否成功释放表的锁定。

2. 将表上锁定的模式转换- 使用Oracle的“alter system 的 kill session 命令”可以将表上的锁定模式转换,将表上的某个类型的锁定模式被另外一种更安全的锁定模式替换; - 使用“Select * from v$lock;” 命令查询是否转换成功。

查看oracle当前session

查看oracle当前session

SERVER: server type (dedicated or shared)
SCHEMA#: schema user id。Oracle内部进程的schema#为0。
SCHEMANAME: schema username。Oracle内部进程的schemaname为sys。
from v$sessions where s.paddr = (select addr from v$process p where p.spid = to_number('&pid')))
order by piece asc;
查看锁和等待:
col user_name format a10
SERIAL#:: process serial number。
TERMINAL:操作系统terminal identifier(e.g., computer name)。
PROGRAM:进程正在执行的程序(e.g.,ORACLE.EXE (ARC0)),和v$session中的program类似。
LOCKWAIT:可以通过这个字段查询出当前正在等待的锁的相关信息。sid & lockwait与v$lock中的sid & kaddr相对应。
STATUS:用来判断session状态。Active:正执行SQL语句。Inactive:等待操作。Killed:被标注为删除。
OSUSER:客户端操作系统用户名。
PROCESS:客户端process id。
MACHINE:客户端machine name。
TERMINAL:客户端执行的terminal name。
PROGRAM:客户端应用程序。比如ORACLE.EXE (PMON)或者sqlplus.exe

oracle 查看死锁情况

oracle 查看死锁情况
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
2)kill掉这个死锁的进程:
alter system kill session ‘sid,serial#’; (其中sid=l.session_id)
'''' || C.SESSION_ID || ',' || B.SERIAL# || ''''/*distinct c.session_id*/
FROM V$SQL A, V$SESSION B, V$LOCKED_OBJECT C
WHERE A.HASH_VALUE = B.SQL_HASH_VALUE
Machine: 死锁语句所在的机器。
Program: 产生死锁的语句主要来自哪个应用程序。
2)用dba用户执行以下语句,可以查看到被死锁的语句。
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))
1)查找死锁的进程:
sqlplus "/as sysdba" (sys/change_on_install)
SELECT ername,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
from v$sql A, v$session B, v$locked_object C

oracle系统视图SQL语句整理

oracle系统视图SQL语句整理

oracle系统视图SQL语句整理-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝⼤部分都是视图-- DBA_TABLES意为DBA拥有的或可以访问的所有的关系表。

-- ALL_TABLES意为某⼀⽤户拥有的或可以访问的所有的关系表。

-- USER_TABLES意为某⼀⽤户所拥有的所有的关系表。

-- 当某⼀⽤户本⾝就为数据库DBA时,DBA_TABLES与ALL_TABLES等价。

-- DBA_TABLES >= ALL_TABLES >= USER_TABLES-- 需要注意的是在ORACLE数据库中⼤⼩写是敏感的,⽽此三表中数据默认都是⼤写的,所以在进⾏查询的时候注意⼩写的数据可能会造成数据⽆法查到。

SELECT * FROM dba_views WHERE view_name LIKE 'DBA%';SELECT * FROM dba_views WHERE view_name LIKE 'ALL%';SELECT * FROM dba_views WHERE view_name LIKE 'USER%';SELECT * FROM dba_views WHERE view_name LIKE 'V_$%'; -- 针对某个实例的视图SELECT * FROM dba_views WHERE view_name LIKE 'GV_$%'; -- 全局视图,针对多个实例环境SELECT * FROM dba_views WHERE view_name LIKE 'SESSION%';SELECT * FROM dba_views WHERE view_name LIKE 'INDEX%';SELECT count(1) FROM dba_tables;SELECT count(1) FROM all_tables;SELECT count(1) FROM user_tables;-- V$/GV$开头的绝⼤部分都是V_$/GV_$表的别名SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'V$%';SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'GV$%';-- X$没有对应的X_$SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'X$%';-- ⽐较常⽤的DBA开头的视图有select * from dba_users; --数据库⽤户信息select * from dba_roles; --⾓⾊信息select * from dba_segments; --表段信息select * from dba_extents; --数据区信息select * from dba_objects; --数据库对象信息select * from dba_lobs; --lob数据信息select * from dba_tablespaces; --数据库表空间信息select * from dba_data_files; --数据⽂件设置信息select * from dba_temp_files; --临时数据⽂件信息select * from dba_rollback_segs; --回滚段信息select * from dba_ts_quotas; --⽤户表空间配额信息select * from dba_free_space; --数据库空闲空间信息select * from dba_profiles; --数据库⽤户资源限制信息select * from dba_sys_privs; --⽤户的系统权限信息select * from dba_tab_privs; --⽤户具有的对象权限信息select * from dba_col_privs; --⽤户具有的列对象权限信息select * from dba_role_privs; --⽤户具有的⾓⾊信息select * from dba_audit_trail; --审计跟踪记录信息select * from dba_stmt_audit_opts; --审计设置信息select * from dba_audit_object; --对象审计结果信息select * from dba_audit_session; --会话审计结果信息select * from dba_indexes; --⽤户模式的索引信息-- ⽐较常⽤的ALL开头的视图有select * from all_users; --数据库所有⽤户的信息select * from all_objects; --数据库所有的对象的信息select * from all_def_audit_opts; --所有默认的审计设置信息select * from all_tables; --所有的表对象信息select * from all_indexes; --所有的数据库对象索引的信息select * from all_tab_comments; --查询所有⽤户的表,视图等select * from all_col_comments; --查询所有⽤户的表的列名和注释.select * from all_tab_columns; --查询所有⽤户的表的列名等信息(详细但是没有备注)-- ⽐较常⽤的ALL开头的视图有select * from user_objects; --⽤户对象信息select * from user_source; --数据库⽤户的所有资源对象信息select * from user_segments; --⽤户的表段信息select * from user_tables; --⽤户的表对象信息select * from user_tab_columns; --⽤户的表列信息select * from user_constraints; --⽤户的对象约束信息select * from user_sys_privs; --当前⽤户的系统权限信息select * from user_tab_privs; --当前⽤户的对象权限信息select * from user_col_privs; --当前⽤户的表列权限信息select * from user_col_comments; -- 查询本⽤户的表的列名和注释select * from user_role_privs; --当前⽤户的⾓⾊权限信息select * from user_indexes; --⽤户的索引信息select * from user_ind_columns; --⽤户的索引对应的表列信息select * from user_cons_columns; --⽤户的约束对应的表列信息select * from user_clusters; --⽤户的所有簇信息select * from user_clu_columns; --⽤户的簇所包含的内容信息select * from user_cluster_hash_expressions; --散列簇的信息-- ⽐较常⽤的V$开头的别名有select * from v$database; --数据库信息select * from v$datafile; --数据⽂件信息select * from v$controlfile; --控制⽂件信息select * from v$logfile; --重做⽇志信息select * from v$instance; --数据库实例信息select * from v$log; --⽇志组信息select * from v$loghist; --⽇志历史信息select * from v$sga; --数据库SGA信息select * from v$parameter; --初始化参数信息select * from v$process; --数据库服务器进程信息select * from v$bgprocess; --数据库后台进程信息select * from v$controlfile_record_section; --控制⽂件记载的各部分信息select * from v$thread; --线程信息select * from v$datafile_header; --数据⽂件头所记载的信息select * from v$archived_log; --归档⽇志信息select * from v$archive_dest; --归档⽇志的设置信息select * from v$logmnr_contents; --归档⽇志分析的DML DDL结果信息select * from v$logmnr_dictionary; --⽇志分析的字典⽂件信息select * from v$logmnr_logs; --⽇志分析的⽇志列表信息select * from v$tablespace; --表空间信息select * from v$tempfile; --临时⽂件信息select * from v$filestat; --数据⽂件的I/O统计信息select * from v$undostat; --Undo数据信息select * from v$rollname; --在线回滚段信息select * from v$session; --会话信息select * from v$transaction; --事务信息select * from v$rollstat; --回滚段统计信息select * from v$pwfile_users; --特权⽤户信息select * from v$sqlarea; --当前查询过的sql语句访问过的资源及相关的信息select * from v$sql; --与v$sqlarea基本相同的相关信息select * from v$sysstat; --数据库系统状态信息-- ⽐较常⽤的SESSION开头的视图有select * from session_roles; --会话的⾓⾊信息select * from session_privs; --会话的权限信息-- ⽐较常⽤的INDEX开头的视图有select * from index_stats; --索引的设置和存储信息-- 伪表,参考oracle 中 dual 详解:/ozhouhui/article/details/7935196select * from dual; --系统伪列表信息select sysdate from dual; --可将Sysdate视为⼀个其结果为当前⽇期和时间的函数,在任何可以使⽤Oracle函数的地⽅都可以使⽤Sysdate。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图(/gzz%5Fgzz/blog/item/1f6ef92a67599392033bf6de.html)
2009年08月10日星期一 17:06
oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图dba_开头
dba_users 数据库用户信息
dba_segments 表段信息
dba_extents 数据区信息
dba_objects 数据库对象信息
dba_tablespaces 数据库表空间信息
dba_data_files 数据文件设置信息
dba_temp_files 临时数据文件信息
dba_rollback_segs 回滚段信息
dba_ts_quotas 用户表空间配额信息
dba_free_space 数据库空闲空间信息
dba_profiles 数据库用户资源限制信息
dba_sys_privs 用户的系统权限信息
dba_tab_privs 用户具有的对象权限信息
dba_col_privs 用户具有的列对象权限信息
dba_role_privs 用户具有的角色信息
dba_audit_trail 审计跟踪记录信息
dba_stmt_audit_opts 审计设置信息
dba_audit_object 对象审计结果信息
dba_audit_session 会话审计结果信息
dba_indexes 用户模式的索引信息
user_开头
user_objects 用户对象信息
user_source 数据库用户的所有资源对象信息
user_segments 用户的表段信息
user_tables 用户的表对象信息
user_tab_columns 用户的表列信息
关于这个还涉及到两个常用的例子如下:
1、oracle中查询某个字段属于哪个表
Sql代码
select table_name,owner from dba_tab_columns t where t.COLUMN_NAME like upper('%username%');
select table_name,owner from dba_tab_columns t where t.COLUMN_NAME like
upper('%username%');
2、oracle中查询某个表的列数
Sql代码
select count(*) from user_tab_columns where table_name=
upper('sys_operate');
select count(*) from user_tab_columns where table_name=
upper('sys_operate');
注:这两个例子都用到了upper这个函数,是因为在这里表名得大写,否则查出的结果不是正确的
user_constraints 用户的对象约束信息
user_sys_privs 当前用户的系统权限信息
user_tab_privs 当前用户的对象权限信息
user_col_privs 当前用户的表列权限信息
user_role_privs 当前用户的角色权限信息
user_indexes 用户的索引信息
user_ind_columns 用户的索引对应的表列信息
user_cons_columns 用户的约束对应的表列信息
user_clusters 用户的所有簇信息
user_clu_columns 用户的簇所包含的内容信息
user_cluster_hash_expressions 散列簇的信息
v$开头
v$database 数据库信息
v$datafile 数据文件信息
v$controlfile 控制文件信息
v$logfile 重做日志信息
v$instance 数据库实例信息
v$log 日志组信息
v$loghist 日志历史信息
v$sga 数据库SGA信息
v$parameter 初始化参数信息
v$process 数据库服务器进程信息
v$bgprocess 数据库后台进程信息
v$controlfile_record_section 控制文件记载的各部分信息
v$thread 线程信息
v$datafile_header 数据文件头所记载的信息
v$archived_log 归档日志信息
v$archive_dest 归档日志的设置信息
v$logmnr_contents 归档日志分析的DML DDL结果信息
v$logmnr_dictionary 日志分析的字典文件信息
v$logmnr_logs 日志分析的日志列表信息
v$tablespace 表空间信息
v$tempfile 临时文件信息
v$filestat 数据文件的I/O统计信息
v$undostat Undo数据信息
v$rollname 在线回滚段信息
v$session 会话信息
v$transaction 事务信息
v$rollstat 回滚段统计信息
v$pwfile_users 特权用户信息
v$sqlarea 当前查询过的sql语句访问过的资源及相关的信息 v$sql 与v$sqlarea基本相同的相关信息
v$sysstat 数据库系统状态信息
all_开头
all_users 数据库所有用户的信息
all_objects 数据库所有的对象的信息
all_def_audit_opts 所有默认的审计设置信息
all_tables 所有的表对象信息
all_indexes 所有的数据库对象索引的信息
session_开头
session_roles 会话的角色信息
session_privs 会话的权限信息
index_开头
index_stats 索引的设置和存储信息
伪表
dual 系统伪列表信息
oracle最重要的9个动态性能视图
v$session + v$session_wait (在10g里功能被整合,凑合算1个吧.) v$process
v$sql
v$sqltext
v$bh (更宁愿是x$bh)
v$lock
v$latch_children
v$sysstat
v$system_event
按组分的几组重要的性能视图
1. System 的 over view
v$sysstat , v$system_event , v$parameter
2. 某个session 的当前情况
v$process , v$session , v$session_wait ,v$session_event , v$sesstat
3. SQL 的情况
v$sql , v$sqlarea , v$SQL_PLAN , V$SQL_PLAN_STATISTICS,
v$sqltext_with_newlines
3. Latch / lock /ENQUEUE
v$latch , v$latch_children , v$latch_holder ,
v$lock ,V$ENQUEUE_STAT ,V$ENQUEUE_LOCK
4. IO 方面的
v$segstat , v$filestat , v$tempstat ,v$datafile , v$tempfile
5. shared pool / Library cache
v$Librarycache , v$rowcache , x$ksmsp
6. 几个advice也不错
v$db_cache_advice , v$PGA_TARGET_ADVICE, v$SHARED_POOL_ADVICE。

相关文档
最新文档