Oracle常用操作指南

目录

  1. 用户操作语句
  2. 表空间操作语句
  3. 数据文件操作语句
  4. 数据表操作语句
  5. 数据库属性操作语句

1. 用户操作语句

  1. 查看scott用户的默认表空间、临时表空间

    select username,default_tablespace,temporary_tablespace
    from dba_users
    where username = 'SCOTT';
    
  2. 查看scott用户的系统权限

    select username,privilege,admin_option 
    from user_sys_privs 
    where username = 'SCOTT';
    
  3. 查看赋予scott用户的对象权限

    select grantee,owner, table_name, t.grantor, t.privilege, t.grantable, t.hierarchy
    from dba_tab_privs t
    where t.grantee = 'SCOTT' ;
    
  4. 查看授予了scott的角色权限

    select t.grantee,t.granted_role, t.admin_option, t.default_role
    from dba_role_privs t
    where t.grantee = 'SCOTT';
    
    或者
    
    select * from user_role_privs t
    
  5. 查看scott用户使用了哪些表空间

    select t.table_name, t.tablespace_name
    from  dba_all_tables t
    where t.owner = 'SCOTT' ;
    
    或者
    
    select table_name, tablespace_name from user_tables;
    
  6. 查看当前用户拥有的权限

    select t.privilege from session_privs t
    
  7. 查看赋给用户(GDYXHD)于对象操作的一些权限

    select *
    from  table_privileges t1
    where t1.grantee = 'GDYXHD'
    
  8. 用户锁定与解锁

    # 解锁
    alter user scott account unlock;
    
    # 锁定
    alter user scott account lock;
    
  9. 查看角色(resource)权限的 系统权限

    select * from role_sys_privs t1 where t1.role = 'RESOURCE'
    
  10. 查看角色(DBA)被赋予的 角色权限

    select * from role_role_privs t where t.role = 'DBA'
    
  11. 查看角色(DBA)被赋予的对象权限

    select * from role_tab_privs t1 where t1.role = 'DBA'
    
  12. 添加用户及用户授权

    # 创建用户“DATACENTER”,并指定其表空间
    CREATE USER DATACENTER IDENTIFIED BY VALUES 'CD47F3B2976521B1'
        DEFAULT TABLESPACE DATACENTER
        TEMPORARY TABLESPACE TEMP
        PROFILE DEFAULT
        ACCOUNT UNLOCK;
    
     # 修改用户角色
    ALTER USER DATACENTER DEFAULT ROLE DBA,"CONNECT";
    
    # 用户授权
    GRANT DBA TO DATACENTER;
    GRANT "CONNECT" TO DATACENTER;
    GRANT INSERT ANY TABLE TO DATACENTER WITH ADMIN OPTION;
    GRANT DELETE ANY TABLE TO DATACENTER WITH ADMIN OPTION;
    GRANT UPDATE ANY TABLE TO DATACENTER WITH ADMIN OPTION;
    GRANT DROP ANY TABLE TO DATACENTER WITH ADMIN OPTION;
    GRANT SELECT ANY TABLE TO DATACENTER;
    GRANT UNLIMITED TABLESPACE TO DATACENTER;
    GRANT CREATE ANY SEQUENCE TO DATACENTER;
    
    
  13. 修改用户

    # 修改用户密码
    alter user customer identified by '密码';
    
    # 修改用户表空间
    alter user default tablespace new_tablespace_name;
    
     # 修改用户角色
    ALTER USER DATACENTER DEFAULT ROLE DBA,"CONNECT";
    
    
  14. 删除用户

    # 级联删除用户下的数据表
    drop user customer cascade;
    
  15. 查看所有用户:

    select * from all_users;
    

2. 表空间操作语句

  1. 查看表空间的名称及大小

    SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
    FROM dba_tablespaces t, dba_data_files d
    WHERE t.tablespace_name = d.tablespace_name
    GROUP BY t.tablespace_name;
    
  2. 查看表空间物理文件的名称及大小

    SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space
    FROM dba_data_files
    ORDER BY tablespace_name;
    
  3. 查看表空间的使用情况

    SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
    FROM dba_free_space
    GROUP BY tablespace_name;
    
    或者
    
    SELECT a.tablespace_name,
      a.bytes total,
      b.bytes used,
      c.bytes free,
      (b.bytes * 100) / a.bytes "% USED ",
      (c.bytes * 100) / a.bytes "% FREE "
    FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
    WHERE a.tablespace_name = b.tablespace_name
    AND a.tablespace_name = c.tablespace_name;
     
    或者
    
    SELECT a.tablespace_name "表空间名",
    total "表空间大小",
    free "表空间剩余大小",
    (total - free) "表空间使用大小",
    total / (1024 * 1024 * 1024) "表空间大小(G)",
    free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
    (total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
    round((total - free) / total, 4) * 100 "使用率 %"
    FROM (SELECT tablespace_name, SUM(bytes) free
    FROM dba_free_space
    GROUP BY tablespace_name) a,
    (SELECT tablespace_name, SUM(bytes) total
    FROM dba_data_files
    GROUP BY tablespace_name) b
    WHERE a.tablespace_name = b.tablespace_name;
    
  4. 查看所有表空间

    select tablespace_name from dba_data_files group by tablespace_name
    

3. 数据文件操作语句

  1. 查看回滚段名称及大小

    SELECT segment_name, tablespace_name, r.status, max_extents,
    (initial_extent / 1024) initialextent, (next_extent / 1024) nextextent, v.curext curextent
    FROM dba_rollback_segs r, v$rollstat v
    WHERE r.segment_id = v.usn(+)
    ORDER BY segment_name;
    
  2. 查看控制文件

    SELECT NAME FROM v$controlfile;
    
  3. 查看日志文件

    SELECT MEMBER FROM v$logfile;
    
  4. 查看用户数据总量

    SELECT sum(bytes/(1024*1024*1024)) "用户数据大小(G)"  
     from dba_segments 
     where owner='datacenter'; 
    
    或者
    
    select distinct owner, sum(bytes/(1024*1024*1024)) "用户数据大小(G)" 
     from dba_segments 
     group by owner 
     order by "用户数据大小(G)" desc;
    

4. 数据表操作语句

  1. 查询系统所有对象

    select owner, object_name, object_type, created, last_ddl_time, timestamp, status
    from dba_objects
    where owner=upper('scott')
    
  2. 查看系统所有表

    select owner, table_name, tablespace_name from dba_tables
    
  3. 查看所有用户的表

    select owner, table_name, tablespace_name from all_tables
    
  4. 查看当前用户表

    select table_name, tablespace_name from user_tables
    
  5. 查看用户表索引

    select t.*,i.index_type 
     from user_ind_columns t, user_indexes i 
     where t.index_name = i.index_name 
      and t.table_name = i.table_name
      and t.table_name = "要查询的表"
    
  6. 查看主键

    select cu.* from user_cons_columns cu, user_constraints au
     where cu.constraint_name = au.constraint_name
      and au.constraint_type = upper('p') 
      and au.table_name = "要查询的表"
    
  7. 查看唯一性约束

    select column_name from user_cons_columns cu, user_constraints au
     where cu.constraint_name = au.constraint_name 
       and au.constraint_type = upper('u')
       and au.table_name = "要查询的表"
    
  8. 查看外键

    select * from user_constraints c where c.constraint_type = 'r' and c.table_name = "要查询的表"
    
    select * from user_cons_columns cl where cl.constraint_name = "外键名称"
    
    select * from user_cons_columns cl where cl.constraint_name = "外键引用表的键名"
    
  9. 查看表的列属性

    select t.*,c.comments
    from user_tab_columns t, user_col_comments c
    where t.table_name = c.table_name 
     and t.column_name = c.column_name 
     and t.table_name = "要查询的表"
    

5. 数据库属性操作语句

  1. 查看数据库库对象

    SELECT owner, object_type, status, COUNT(*) count#
    FROM all_objects
    GROUP BY owner, object_type, status;
    
  2. 查看数据库版本

    SELECT version
    FROM product_component_version
    WHERE substr(product, 1, 6) = 'Oracle';
    
    或
    
    select banner from sys.v_$version;
    
  3. 查看数据库的创建日期和归档方式

    SELECT created, log_mode, log_mode FROM v$database;
    
  4. 查看oracle最大连接数

    show parameter processes
    
  5. 修改最大连接数

    sql>alter system set processes=value scope=spfile
    –重启数据库
    sql>shutdown force
    sql>start force
    
  6. 查看当前连接数

    select * from v$session where username is not null
    
  7. 查看不同用户的连接数

    select username,count(username) from v$session
     where username is not null 
     group by username 
    
  8. 查看活动的连接数

    # 查看并发连接数
    select count(*) from v$session where status='active' 
    
  9. 查看指定程序的连接数

    # 查看jdbc连接oracle的数目
    select count(*) from v$session where program='jdbc thin client'
    
  10. 查看指定用户的连接数及中止用户连接

    # 查看所有用户的当前连接数
    select username,count(username) from v$session where username is not null group by username;
    
    # 查看某个用户的连接信息
    select username, sid, serial# from v$session where username='cif';
     
    # 杀死用户的连接信息
    alter system kill session 'sid, serial#';  --说明 sid, serial#为v$session查询出的值
    
    
  11. 查看数据库安装实例(dba权限)

    select * from v$instance
    
  12. 查看运行实例名

    show parameter instance_name
    
  13. 查看数据库名

    show parameter db_name
    
  14. 查看数据库域名

    show parameter db_domain
    
    或者 
    
    select value from v$parameter where name='db_domain'
    
  15. 查看数据库服务名

    show parameter service_names;
    
    或者
    
    show parameter service;
    
    或者
    
    show parameter names;
    
    或者
    
    select value from v$parameter where name="service_names"
    
  16. 查看全局数据库名

    show parameter global
    
  17. 查看系统所有的角色

    # 系统中所有的角色
    select * from dba_roles;
    
    # 系统中角色的权限信息
    select * from dba_role_privs;
    
    # 系统中用户角色权限信息
    select * from user_role_privs;
    
    
  18. 修改数据库允许的最大连接数

    alter system set processes = 300 scope = spfile;
    
  19. 查看游标数量

    Select * from v$open_cursor Where user_name='system';
    
  20. 查询数据库允许的最大连接数

    select value from v$parameter where name = 'processes';
    
    或者
    
    show parameter processes;
    
  21. 查询数据库允许的最大游标数

    select value from v$parameter where name = 'open_cursors'
    
  22. 查询系统用户为每个会话打开的游标数

    select o.sid, osuser, machine, count(*) num_curs 
     from v$open_cursor o, v$session s 
     where user_name = 'SYSTEM' and o.sid=s.sid 
     group by o.sid, osuser, machine 
     order by num_curs desc;
    
  23. 查看数据库高速缓冲区的大小

    show sga;
    
    # 显示数据库块的大小
    show parameter db_block_size;
    
    # 显示数据库缓存大小
    show parameter db_cache_size;
    
  24. 缓存顾问操作

    缓存区顾问用于启动或关闭统计信息,这些信息用于预测不同缓冲区大小导致的行为特征。

    # 查看缓存顾问状态
    show parameter db_cache_advice;
    
    # 修改缓存顾问状态:ON/OFF/READY
    alter system set db_cache_advice = OFF;
    
    # 查看数据库高速缓冲区的信息
    select id,name,block_size,size_for_estimate,buffers_for_estimate 
     from v$db_cache_advice;
    
  25. 查看Redo日志缓存区

    # Redo日志缓存区参数是静态参数,不能进行动态修改
    show parameter log_buffer;
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容