Oracle维护
记录维护Oracle用到的一些语句
约束
约束类型 | Type Code | 规范命名 | 名称说明 |
---|---|---|---|
主键约束 | P | PK_表名_列名 | Primary Key |
外键约束 | R | FK_表名_列名 | Foreign Key |
非空约束 | NN_表名_列名 | Not Null | |
唯一约束 | U | UK_表名_列名 | Unique Key |
检查约束 | C | CK_表名_列名 | Check |
查询约束
1 | -- 常用视图 (权限由大到小: dba_* > all_* > user_*) |
添加约束
1 | -- 1.唯一性约束 |
删除索引
1 | alter table 表名 drop constraint 约束名; |
重命名约束
1 | alter table 表名 rename constraint 约束名 to new_约束名; |
禁用启用约束
1 | -- 1.禁用 disable |
系统资源
资源
查看值得怀疑的 SQL
1 | select substr(to_char(s.pct,'99.00'),2)||'%'load, |
查看消耗内存多的 SQL
1 | select b.username, |
查看逻辑读多的 SQL
1 | select* |
查看执行次数多的 SQL
1 | select sql_text, executions |
查看读硬盘多的 SQL
1 | select sql_text, disk_reads |
查看排序多的 SQL
1 | select sql_text, sorts |
会话
查询正在执行的 SQL 语句及执行该语句的用户
1 | SELECT b.sid oracleID, |
查询执行过的 SQL 语句及执行该语句的用户
1 | select a.USERNAME 登录Oracle用户名, |
查询正在执行 SQL 的发起者的发放程序
1 | SELECT OSUSER 电脑登录身份, |
查询当前被锁对象
1 | SELECT l.session_id sid, |
杀死当前被锁对象
1 | alter system kill session 'sid, s.serial#'; |
查看占 IO 较大的正在运行的 session
1 | SELECT se.sid, |
用户
解锁用户
设置具体时间格式,以便查看具体时间
1 | alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; |
查看具体的被锁时间
1 | select username,lock_date from dba_users where username='TEST'; |
解锁
1 | alter user test account unlock; |
查看是哪个IP造成的test用户被锁。
1 | $ORACLE_BASE/diag/tnslsnr/localhost/listener/trace/listener.log |
注意:一般数据库默认是10次尝试失败后锁住用户