当前位置 > 主页 > 万和大讲堂 >


南京Oracle认证培训 Oracle表空间配额(quota)

2016-02-18 10:46

  -先大概写一下,后面有时间会整理一下

 

  一:quota相关视图

 

  1)dba_ts_quotas(查看所有用户的表空间配额)

 

  BYTES字段表示用户已经使用的空间;MAX_BYTES如果为-1表示没有限制,其他值表示限制配额。南京Oracle认证培训

 

  --只有用alter user user_name quota ontablespace_name;命令显示的调整过用户的空间配额,该视图中才会有记录,否则该视图没有记录

 

  2) user_ts_quotas(查看当前用户表空间配额)

 

  --注意可能有时我们查询该视图,用户在某个表空间的配额为0,但是我们依然可以使用该表空间,那么说明用户被赋予了UNLIMITED TABLESPACE。南京OCP培训

 

  --SQL> select *from user_sys_privs;查看用户是否具有UNLIMITED TABLESPACE权限

 

  二:resource角色和quota

 

  注意resource角色被赋予用户时,用户就自动被赋予了UNLIMITED TABLESPACE权限(虽然resource中并不包含该权限)如果我们把resource角色从用户收回,那么UNLIMITED TABLESPACE权限也会自动收回

 

  三:配额管理

 

  1)建用户时指定配额

 

  SQL> create userjava identified by Oracle default tablespace users temporary tablespace tempquota 100m on users quota 100m on system;  南京Oracle认证培训

 

  --注意temp表空间不支持表空间配额

 

  2)更改用户表空间配额

 

  grant unlimitedtablespace to java;--不对用户作配额限制

 

  alter user javaquota unlimited on users;--对指定表空间不做限额

 

  alter user javaquota 1000m on users;--指定用户在某表空间限制

 

  revoke unlimitedtablespace from java;--收回用户的unlimited tablespace权限

 

  alter user javaquota 0 on users;--针对alter … quota unlimited …;

 

  四:表空间已删除,关于表空间配额信息还存在

 

  表空间被删除以后但是关于该表空间的配额信息在视图中依然能够查到

 

  这个是正常的,因为表空间被drop后,ts$和tsq$中的信息并没有被清理,如果你重建一个同名的tablespace,并限制quota 为0,tsq$中的记录就被删除了。南京Oracle认证培训

 

  从10gR2开始,你可以使用

 

  drop tablespace mytsincluding contents and datafiles drop quota;

 

  这样的语法,一并将quota信息删除,默认是keep quota.

 

  trace的时候你会发现,如果加上drop quota这样的options clause,那么就会有

 

  select user# from tsq$ wherets#=:1

 

  delete from tsq$ where ts#=:1and user#=:2

 

  ...

 

  这样的动作.而dba_ts_quotas视图的定义正是使用了tsq$中的信息。南京Oracle认证培训

 

  create or replace viewsys.dba_ts_quotas

 

  (tablespace_name, username, bytes, max_bytes, blocks, max_blocks, dropped)

 

  as

 

  select ts.name, u.name, nvl(spc.bytes, 0),

 

  decode(q.maxblocks, -1, -1, q.maxblocks *ts.blocksize),

 

  nvl(spc.blocks, 0), q.maxblocks, decode(ts.online$,3, 'YES', 'NO')

 

  from sys.tsq$ q, sys.ts$ ts, sys.tbs_space_usagespc, sys.user$ u

 

  where q.ts# = ts.ts#

 

  and q.user# = u.user#

 

  and spc.tsn  = ts.ts#

 

  and spc.owner = u.name

 

  and q.maxblocks != 0 南京OCP培训


最近开班 more>
  • Web前端开发
  • 软件测试
  • 软件测试预科班
  • AI大模型+全栈开发开班
  • 云原生精英班
  • 云网预科班
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第五期
  • Java全栈
  • CISP
  • HCIP-cloud
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCP 19C
  • RHCA
  • 6月9日
  • 5月21日
  • 5月14日
  • 6月9日
  • 5月7日
  • 5月26日
  • 5月19日
  • 5月12日
  • 6月3日
  • 6月9日
  • 随时开课
  • 7月12日
  • 5月19日
  • 5月19日
  • 5月7日
  • 5月10日
  • 5月24日
  • 5月24日
  • 随时开课
  • 随时开课
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入