ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据字典和动态性能视图

数据字典和动态性能视图

原创 Linux操作系统 作者:songxli 时间:2012-05-26 13:53:12 0 删除 编辑

数据字典是oracle数据库中最重要的组成部分,他提供了数据库的一些系统信息,用户只能查询,但不能修改数据字典。

数据字典视图主要包括

user_xxx, 如:user_tables;显示当前用户所拥有的表

all_xxx,如:all_tables;显示当前用户可以访问的所有的表

dba_xxx,如:dba_tables;显示所有方案拥有的数据库表,要有dba角色或select_any_table系统权限才可以查看

 

动态性能视图记载了例程启动后的相关信息
 

角色和权限的关系:

oracle中究竟有多少种角色?

SQL> select * from dba_roles;

 

一个角色包含多少系统权限

SQL> select * from dba_sys_privs where grantee='DBA'

 

一个角色包含多少对象权限

SQL> select * from dba_tab_privs where grantee='CONNECT';

如何查看一个用户有哪些角色

select * from dba_role_privs where grantee='用户名'

 

表空间和数据文件

表空间是数据库的逻辑组成部分,从物理上,数据库数据存放在数据文件中;从逻辑上,数据库数据则存放在表空间中,表空间由一个或多个数据库文件组成。

oracle逻辑结构包括段,区,块

通过表空间可以达到:

(1)控制数据库占用的磁盘空间。

(2)dba可以将不同的数据类型部署到不同的位置,这样有利于提高i/o性能,同时利于备份和恢复等操作。

 

建立表空间

建立表空间要有create_tablespace系统权限。

create tablespace litao(表空间名字) datafile '数据文件'size 数据文件大小<500M uniform. size 128k(区大小);

SQL> create tablespace litao datafile 'D:\litao.ts' size 20m uniform. size 128k;

 

使用表空间

SQL> create table login(

  2         username varchar2(10),

  3         passwd varchar2(10))

  4  tablespace litao;

 

改变表空间的状态

当建立表空间的时候,表空间是联机状态,此时该表空间可以访问,并且可以读写。但在进行系统维护或是数据维护时,可能需要改变表空间状态。

 

(1)使表空间脱机

alter tablespace 表空间名 offline;

 

(2)使表空间联机

alter tablespace 表空间名 online;

SQL> alter tablespace litao offline;

SQL> select * from login;

ORA-00376: 此时无法读取文件 11

ORA-01110: 数据文件 11: 'D:\LITAO.TS'

SQL> alter tablespace litao online;

SQL> select *from login;

USERNAME   PASSWD   

----------         ----------             

litao                 001125   

liming               001021   

 

(3)只读表空间

如果不希望在表空间上执行update,delete,insert操作,可以将表空间修改为只读。

SQL> alter tablespace litao read only;

SQL> select * from login;

USERNAME   PASSWD   

----------               ----------        

litao                 001125   

liming               001021   

SQL> insert into login values('scuff','m123');

ORA-00372: 此时无法修改文件 11

ORA-01110: 数据文件 11: 'D:\LITAO.TS'

如果想继续能够读写:

SQL> alter tablespace litao read write;

 

看表空间有哪些表

SQL> select table_name from all_tables where tablespace_name=upper('litao');

TABLE_NAME    

-----------------------     

LOGIN                

 

知道表名,查看在哪个表空间

SQL> select tablespace_name,table_name from user_tables where table_name=upper('login');

TABLESPACE_NAME  TABLE_NAME  

------------------------------ --------------------      

LITAO                 LOGIN            

 

删除表空间

drop tablespace litao including contents and datafiles;

 

扩展表空间

当表空间不足以后,需要扩展表空间

SQL> insert into login select * from login;

ORA-01653: SYS.LOGIN无法通过16(在表空间LITAO中)扩展

 

扩展表空间的方法:

(1)增加数据文件

SQL> alter tablespace litao add datafile 'd:\LIAO.TS'size 20m

(2)增加数据文件的大小

alter tablespace datafile 'd:\LITAO.TS' resize 20m;

(3)设置文件的自动增长

alter tablespace datafile 'd:\litao.ts' autoextend on next 10m maxsize 500m;

 

未命名.jpg

未命名.jpg

未命名.jpg

未命名.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17255699/viewspace-731021/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle 表空间
下一篇: Oracle安装
请登录后发表评论 登录
全部评论

注册时间:2012-05-26

  • 博文量
    28
  • 访问量
    32650