第八课 oracle数据库的内存结构 表空间,动态性能视图,数据字典等

要深入了解数据库,了解数据库在计算机的存储结构是必须的;

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中有多少种角色;










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值