oracle dba_tables degree default,Oracle数据库DBA日常Sql列表

--无效的对象

select owner,object_type,object_name from dba_objects where status='INVALID';

select constraint_name,table_name from dba_constraints where status='INVALID';

--求出某个进程,并对它进行跟踪

select s.sid,s.serial# from v$session s,v$process p where s.paddr=p.addr and p.spid=&1;

exec dbms_system.SET_SQL_TRACE_IN_SESSION(&1,&2,true);

exec dbms_system.SET_SQL_TRACE_IN_SESSION(&1,&2,false);

--求出锁定的对象

select do.object_name,session_id,process,locked_mode

from v$locked_object lo, dba_objects do where lo.object_id=do.object_id;

--求当前session的跟踪文件

SELECT p1.value || '/' || p2.value || '_ora_' || p.spid || '.ora' filename

FROM v$process p, v$session s, v$parameter p1, v$parameter p2

WHERE p1.name = 'user_dump_dest' AND p2.name = 'instance_name'

AND p.addr = s.paddr AND s.audsid = USERENV('SESSIONID') AND p.background is null AND instr(p.program,'CJQ') = 0;

--求对象所在的文件及块号

select segment_name,header_file,header_block

from dba_segments where segment_name like '&1';

--求对象发生事务时回退段及块号

select a.segment_name,a.header_file,a.header_block

from dba_segments a,dba_rollback_segs b

where a.segment_name=b.segment_name and b.segment_id='&1'

--9i的在线重定义表

/*如果在线重定义的表没有主键需要创建主键*/

exec dbms_redefinition.can_redef_table('cybercafe','announcement');

create table anno2 as select * from announcement

exec dbms_redefinition.start_redef_table('cybercafe','announcement','anno2');

exec dbms_redefinition.sync_interim_table('cybercafe','announcement','anno2');

exec dbms_redefinition.finish_redef_table('cybercafe','announcement','anno2');

drop table anno2

exec dbms_redefinition.abort_redef_table('cybercafe','announcement','anno2');

--常用的logmnr脚本(cybercafe)

exec sys.dbms_logmnr_d.build(dictionary_filename =>'esal',dictionary_location =>'/home/Oracle/logmnr');

exec sys.dbms_logmnr.add_logfile(logfilename=>'/home/oracle/oradata/esal/archive/1_24050.dbf', ptions=>sys.dbms_logmnr.new);

exec sys.dbms_logmnr.add_logfile(logfilename=>'/home/oracle/oradata/esal/archive/1_22912.dbf', ptions=>sys.dbms_logmnr.addfile);

exec sys.dbms_logmnr.add_logfile(logfilename=>'/home/oracle/oradata/esal/archive/1_22913.dbf', ptions=>sys.dbms_logmnr.addfile);

exec sys.dbms_logmnr.add_logfile(logfilename=>'/home/oracle/oradata/esal/archive/1_22914.dbf', ptions=>sys.dbms_logmnr.addfile);

exec sys.dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logmnr/esal.ora');

create table logmnr2 as select * from v$logmnr_contents;

死锁问题:1)查找死锁的进程:

sqlplus "/as sysdba"

SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,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)

3)如果还不能解决,

select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;

其中sid用死锁的sid替换。

exit

--与权限相关的字典

ALL_COL_PRIVS表示列上的授权,用户和PUBLIC是被授予者

ALL_COL_PRIVS_MADE表示列上的授权,用户是属主和被授予者

ALL_COL_RECD表示列上的授权,用户和PUBLIC是被授予者

ALL_TAB_PRIVS表示对象上的授权,用户是PUBLIC或被授予者或用户是属主

ALL_TAB_PRIVS_MADE表示对象上的权限,用户是属主或授予者

ALL_TAB_PRIVS_RECD表示对象上的权限,用户是PUBLIC或被授予者

DBA_COL_PRIVS数据库列上的所有授权

DBA_ROLE_PRIVS显示已授予用户或其他角色的角色

DBA_SYS_PRIVS已授予用户或角色的系统权限

DBA_TAB_PRIVS数据库对象上的所有权限

ROLE_ROLE_PRIVS显示已授予用户的角色

ROLE_SYS_PRIVS显示通过角色授予用户的系统权限

ROLE_TAB_PRIVS显示通过角色授予用户的对象权限

SESSION_PRIVS显示用户现在可利用的所有系统权限

USER_COL_PRIVS显示列上的权限,用户是属主、授予者或被授予者

USER_COL_PRIVS_MADE显示列上已授予的权限,用户是属主或授予者

USER_COL_PRIVS_RECD显示列上已授予的权限,用户是属主或被授予者

USER_ROLE_PRIVS显示已授予给用户的所有角色

USER_SYS_PRIVS显示已授予给用户的所有系统权限

USER_TAB_PRIVS显示已授予给用户的所有对象权限

USER_TAB_PRIVS_MADE显示已授予给其他用户的对象权限,用户是属主

USER_TAB_PRIVS_RECD显示已授予给其他用户的对象权限,用户是被授予者

--如何用dbms_stats分析表及模式?

exec dbms_stats.gather_schema_stats(ownname=>'&USER_NAME',estimate_percent=>dbms_stats.auto_sample_size,

method_opt => 'for all columns size auto',degree=> DBMS_STATS.DEFAULT_DEGREE);

exec dbms_stats.gather_schema_stats(ownname=>'&USER_NAME',estimate_percent=>dbms_stats.auto_sample_size,cascade=>true);

/*

FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]

FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...],

where size_clause is defined as size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}

integer--Number of histogram buckets. Must be in the range [1,254].

REPEAT--Collects histograms only on the columns that already have histograms.

AUTO--Oracle determines the columns to collect histograms based on data distribution and the workload of the columns.

SKEWONLY--Oracle determines the columns to collect histograms based on the data distribution of the columns

*/

常用系统表,视图和作用

查看有关用户的信息:dba_users

查看有关角色的信息:dba_roles,dba_role_privs,role_sys_privs

查看有关系统权限的信息:dba_sys_privs

查看当前 数据库 表空间状况:dba_tablespaces

查看用户的系统权限:user_sys_privs

查看某个用户对另外一个用户授予的权限:user_tab_privs_made

查看某个用户对另外一个用户授予的列级权限:user_col_privs_made

查看某个用户接受的权限:user_tab_privs_recd

查看某个用户接受的列级权限:user_col_privs_recd

查看有关用户的角色信息:user_role_privs

查看有关授予某个角色的系统权限信息:role_sys_privs

查看有关授予某个角色的对象权限信息:role_tab_privs

查看当前用户所拥有的表信息:user_tables

查看当前用户有权限访问的表信息:all_tables

查看当前用户所拥有的所有表的列信息:user_tab_columns

查看当前用户可以访问的表中的列信息:all_tab_columns

查看当前用户所拥有的所有约束信息:user_constraint

查看当前用户所拥有的所有约束和列的关系:user_cons_constraint

查看表中注释内容:user_tab_comments

查看表中列注释内容:user_col_comments

提供练习的表:dual

查看相关时区的名称和简称:v$timezone_names

V$OPTION:显示已 安装 的Oracle选项

select * from v$option;

取得Oracle版本的详细信息

select * from v$version;

取得初始化参数的详细信息

select name,value,description from v$parameter;

取得当前例程的详细信息

select * from v$instance;0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值