数据字典是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';
如何查看一个用户有哪些角色
表空间和数据文件
表空间是数据库的逻辑组成部分,从物理上,数据库数据存放在数据文件中;从逻辑上,数据库数据则存放在表空间中,表空间由一个或多个数据库文件组成。
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;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17255699/viewspace-731021/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17255699/viewspace-731021/