概述
要深入了解数据库,了解数据库在计算机的存储结构是必须的;
1,表空间:
数据库有一个或多个表空间,表空间由多个数据文件组成;表空间又可以这样分为:段>区>块。这样可以提高数据库的效率;.
表空间的逻辑结构的好处:
a,控制数据库占用的磁盘空间;
b,Dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时有利于备份和恢复等管理操作;
1-1 怎样建立表空间:
Create tablespace: 注意建立表空间是特权用户或者dba来执行的,普通用户必须具有create tablespace的系统权限;
在建立数据库后,为便于管理表,最好建立自己的表空间
Create tablespace sp01 datafile ‘d:sp01.dbf’ size 20m uniform size 128k;
说明:建立名称为sp01的表空间,并为该空间建立名为sp01.dbf的数据文件,区的大小为128k;
Create tablemypart(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace sp01; 在表空间建立表;
1-2 表空间的状态:
Online :联机状态
Alter tablesapce sp01 online;
Offline:脱机状态
Alter tablesapce sp01 offline;
Read only:
Alter tablesapcesp01 query_data read only;
Read write :
Alter tablesapcesp01 read write;
1-3 查询表空间的表:
例子:根据表空间名显示表空间的所有表:
Select * fromall_tables where tablespace_name=’sp01’;
根据表名,查询表属于哪个表空间:
Select tablespace_name ,table_name from user_tables where table_name='EMP';
1-4 删除表空间:
drop tablespace sp01 includingcontents and datafiles;//删除表空间及数据文件;要有权限
1-5 扩展表空间:
建立的表空间,初始大小为20M,区为128K,当里面的大小超过容量时改怎么办:
1,增加数据文件:alter tablesapce sp01 adddatafile ‘d:sp02.dbf’ size 20m;
2,增加数据文件大小:alter tablespace sp01 ‘d:sp01.dbf’resize 20m; //不要使得数据文件大小超过500m;
3,设置数据文件的自动增长:alter tablespace sp01 ‘d:sp01.dbf’autoextend on next 10m maxsize 500m;
1-6 移动表空间
有时,当磁盘损坏时,需要将数据文件移动到别的磁盘:
步骤:
1, 确定数据文件所在的表空间:select tablespace_namefrom dba_data_files where file_name =’d:sp01.dbf’;
2, 使表空间脱机:alter tablespace sp01offline; 确保移动过程中,数据不发生变化;
3, 移动:host move d:sp01.dbf c:sp01.dbf;
4, 对数据库文件进行逻辑修改:alter tablespace sp01rename datafile ‘d:sp01.dbf’ to ‘c:sp01.dbf’;
使表空间在线:alter tablespace sp01 online;
1-7显示表空间信息:
查询数据字典视图dba_tablespaces,显示表空间的信息:selecttablespace_name from dba_tablespaces;
显示表空间包含的数据文件:select file_name,bytes from dba_data_files where tablespace_name='SP01';
1-8其他表空间:
索引表空间,undo表空间,临时表空间,非标准块的表空间。
2 数据字典和动态性能视图略解:
每个用户对应一个方案,方案也是存放在表空间里的:
数据字典和动态性能视图是存放在sys方案里面的,
2-1,数据字典
包括oracle里最重要的组成部分,他提供了数据库的一些系统信息。他是只读表和视图的集合,用户只能在数据字典上完成查询操作,而其维护和修改是由系统自动完成的。
数据字典其实包括字典基表和数据字典视图,其中基表存储数据库中的基本信息,普通用户不能直接访问数据字典的基表,数据字典视图是基于数据字典基表建立的视图,普通用户
可以通过数据字典视图取得系统信息,他包括user_xxx,all_xxx,dba_xxx三种视图;
2-2动态性能视图 动态性能视图的所有者为sys,一般情况下,由dba或是特权用户来查询动态性能视图
动态性能视图记载了例程启动后的信息。
动态性能试图:
动态性能视图用于记录当前历程的活动信息,当启动oracle server时,系统会建立动态性能视图;当停止服务时,会删除动态性能视图。Oracle为每个动态性能视图都提供了响应的同义词,
并且同义词是V$开始的,例如v_$datafile的同义词为v$datafile;动态性能视图的所有者为sys,一般情况下,由dba或是特权用户来查询动态性能视图。这个在实际应用中较少,所以飞过。
下面介绍一下这三种视图的例子:
user_tables:用于显示当前用户所拥有的所有用户表;
如:select table_name from user_tables;
all_tables: 用于显示当前用户可以访问的所有表,包括系统表;
dba_tables: 显示所有方案拥有的数据库表,要求权限很高才可以使用这个命令;
2-3 集合数据字典,动态性能视图再讲用户名,权限,角色
在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或者角色时,oracle会将权限和角色及该用户的信息存放到数据字典中。
dba_users: 查询所有数据库用户的详细信息;如:select username from dba_users;
查询用户表的用户名字; 如这里先可以通过desc dba_users 查看表里的信息(主要包括用户名,id,password等等),下面的视图同样用desc 先查询;
dba_sys_privs:显示用户具有的系统权限; Selet * from system_privilege_map order by name; 查询系统权限;
dba_tab_privs: 显示用户具有的对象权限; Select distinct privilege from dba_tab_privs: 查询对象权限
dba_col_privs: 显示用户所具有的列权限;
dba_role_privs: 显示用户所具有的角色; select * from dba_role_privs where grantee =’SCOTT’;//查看scott的角色;
dab_tablespaces: 表空间 Selecttablespace_name from dab_tablespaces:查询数据库空间;
dba_roles :视图里的角色:Select * from dba_roles: oracle中有多少种角色;
最后
以上就是玩命画板为你收集整理的第八课 oracle数据库的内存结构 表空间,动态性能视图,数据字典等的全部内容,希望文章能够帮你解决第八课 oracle数据库的内存结构 表空间,动态性能视图,数据字典等所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复