ora常用的工具

1.查看所有用户:
从dba_users中选择*;   
从all_users中选择*;   
从user_users选择*;
2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_privs;   
select * from user_sys_privs; (查看当前用户所拥有的权限)
3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
sql> select * from role_sys_privs;
4.查看用户对象权限:
select * from dba_tab_privs;   
select * from all_tab_privs;   
select * from user_tab_privs;
5.查看所有角色:select * from dba_roles;
6.查看用户或角色所拥有的角色:
select * from dba_role_privs;   
select * from user_role_privs;
7.查看哪些用户有SYSDBA或SYSOPER系统权限(查询时需要相应权限)
从V $ PWFILE_USERS中选择*
8.SqlPlus中查看一个用户所拥有权限
SQL> select * from dba_sys_privs where grantee ='username'; 其中的用户名即用户名要大写才行。
比如:SQL> select * from dba_sys_privs where grantee ='TOM';
9,甲骨文删除指定用户所有表的方法
选择'Drop table'|| table_name ||';' from all_tables where owner ='要删除的用户名(注意要大写)';
10,删除用户
删除用户user_name级联; 如:删除用户SMCHANNEL CASCADE
11,获取当前用户下所有的表:
从user_tables中选择table_name;
12,删除某用户下所有的表数据:
选择'truncate table   '|| table_name from user_tables;
13,禁止外键ORACLE数据库中的外键约束名都在表user_constraints中可以查到。
 
其中constraint_type = 'R' 表示是外键约束。
 
启用外键约束的命令为:alter table table_name enable constraint constraint_name 
 
禁用外键约束的命令为:alter table table_name禁用约束constraint_name
 
然后再用SQL查出数据库中所以外键的约束名:
 
选择'alter table'|| table_name ||' 启用约束'|| constraint_name ||';' from user_constraints where constraint_type ='R'
 
选择'alter table'|| table_name ||' 禁用约束'|| constraint_name ||';' from user_constraints where constraint_type ='R'
 
14,ORACLE禁用/启用外键和触发器 - 启用脚本
 
SET SERVEROUTPUT ON SIZE 1000000
 
开始
 
for c in(从user_constraints选择'ALTER TABLE'|| TABLE_NAME ||''ENABLE CONSTRAINT'|| constraint_name ||''作为v_sql
 
CONSTRAINT_TYPE ='R')循环
 
DBMS_OUTPUT.PUT_LINE(C.V_SQL);
 
开始
 
EXECUTE IMMEDIATE c.v_sql;
 
 当其他人时例外
 
 DBMS_OUTPUT.PUT_LINE(SQLERRM);
 
 结束;
 
末端回路; 
 
for c in(选择'ALTER TABLE'|| TNAME ||'ENABLE ALL TRIGGERS'AS v_sql from tab where tabtype ='TABLE')loop
 
 DBMS_OUTPUT.PUT_LINE(c.v_sql);
 
 开始
 
 立即执行c.v_sql;
 
 当其他人时例外
 
 DBMS_OUTPUT.PUT_LINE(SQLERRM);
 
 结束;
 
末端回路;
 
结束;
 

 
承诺;
 
- 禁用脚本
 
SET SERVEROUTPUT ON SIZE 1000000
 
开始
 
for c in(select'ALTER TABLE'|| TABLE_NAME ||'DISABLE CONSTRAINT'|| constraint_name ||''as user_constraints中的v_sql
 
CONSTRAINT_TYPE ='R')循环
 
DBMS_OUTPUT.PUT_LINE(C.V_SQL);
 
开始
 
 EXECUTE IMMEDIATE c.v_sql;
 
 当其他人时例外
 
 DBMS_OUTPUT.PUT_LINE(SQLERRM);
 
 结束;
 
末端回路; 
 
for c in(select'ALTER TABLE'|| TNAME ||'DISABLE ALL TRIGGERS'AS v_sql from tab where tabtype ='TABLE')loop
 
 DBMS_OUTPUT.PUT_LINE(c.v_sql);
 
 开始
 
 立即执行c.v_sql;
 
当其他人时例外
 
 DBMS_OUTPUT.PUT_LINE(SQLERRM);
 
 结束;
 
末端回路;
 
结束;
 
/
 
承诺;








查看表空间大小以及使用情况


选择b.file_name物理文件名,b.tablespace_name表空间,b.bytes / 1024/1024大小M,(b.bytes - sum(nvl(a.bytes,0)))/ 1024/1024已使用M,
substr((b.bytes - sum(nvl(a.bytes,0)))/(b.bytes)* 100,1,5)利用率   
来自dba_free_space a,dba_data_files b   
其中a.file_id = b.file_id
按b.tablespace_name,b.file_name,b.bytes分组   
按b.tablespace_name排序;












exp   XXXXX / sa @ feng full = n file = d:\ BF.dmp   - 导出带数据
exp   XXXXX / sa @ feng full = n file = d:\ BF.dmp rows = n   - 导出空表
imp   XXXXX / sa @ feng full = y file = d:\ BF.dmp        - 导入,








查看操作记录
选择t.SQL_TEXT,t.FIRST_LOAD_TIME
从v $ sqlarea t
 其中t.FIRST_LOAD_TIME比如'2018-05-10%'
 order by t.FIRST_LOAD_TIME desc




1,查看哪个表被锁


选择b.owner,b.object_name,a.session_id,a.locked_mode
从v $ locked_object a,dba_objects b
其中b.object_id = a.object_id
2,查看引起表锁住的会话


选择b.username,b.sid,b.serial#,logon_time
从v $ locked_object a,v $ session b
其中a.session_id = b.id按b.logon_time排序
3,清除锁住表的会话


alter system kill session'sid,serial#';




最大连接数脚本


从v $ parameter中选择值,其中name ='processes' 
从v $ process中选择count(*)
SELECT osuser,a.username,cpu_time / executions / 1000000 ||'s',sql_fulltext,machine 
从v $ session a,v $ sqlarea b
其中a.sql_address = b.address order by cpu_time / executions desc;


从('进程','会话')中的resource_name选择resource_limit中的resource_name,MAX_UTILIZATION,LIMIT_VALUE;


从v $ session s中选择s.USERNAME,count(p.PID)   ,v $ process p其中s.PADDR = p.ADDR group by s.USERNAME;


alter system set processes = 300 scope = spfile;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值