存储管理
查询块的大小:show parameter db_block_size
database:数据库
tablespace:表空间
datafile:数据文件
segments:段
extents:扩展(范围)
dba_extents:每一个扩展的信息
dba_segments:段的信息
add datafile:添加数据文件
rollback:回滚(做完一个命令后悔了可以用回滚回到上一个命令)
objects:对象
user_tables:用户的表
dba:数据库所有
including:包含
contents:内容
dba_xxx(如果出现错误命令则权限不够,sys为Oracle的最高权限者。 hr scott 分别为不同的两个用户)
删除表空间 drop tablespace xxx(表空间的名字)
删除表 drop table xxx(表的名字) 怕搞混写一下。
创建新表空间:
SQL> create tablespace tbs01 datafile ‘/u01/app/oracle/oradata/orcl/tbs01.dbf‘ SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE 100M;
(在创建新的表空间时 表空间名字后面必须加+datafile(数据文件)以及后面的文件路径)
在指定的表空间中创建表:
SQL> create table t1 tablespace tbs01 as select * from dba_objects where 1=0;
只读表空间:
SQL> alter tablespace tbs01 read only;
SQL> delete t1; 禁止dml
SQL> insert into t1 select * from t1; 禁止dml
SQL> create table t2 (x int) tablespace tbs01; 失败
SQL> alter table t1 add (x int); 成功
SQL> update t1 set x=1; 失败
SQL> drop table t1; 成功
dml和ddl的区别
改变表空间大小:
resize,autoextend,add datafile
删除表空间:
SQL> drop tablespace tbs01 including contents and datafile;
从逻辑的角度来看,一个数据库(database)下面可以分多个表空间(tablespace);一个表空间下面又可以分多个段(segment);一个数据表要占一个段(segment),一个索引也要占一个段(segment )。 一个段(segment)由多个 区间(extent)组成,那么一个区间又由一组连续的数据块(data block)组成。这连续的数据块是在逻辑上是连续的,有可能在物理磁盘上是分散。
那么从物理的角度上看,一个表空间由多个数据文件组成,数据文件是实实在在存在的磁盘上的文件。这些文件是由oracle数据库操作系统的block 组成的。
SQL> select * from v$tablespace; 查看表空间
SQL> desc dba_data_files; 查看每个表空间有哪些数据文件
数据字典/动态性能视图
一、数据字典
数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户。
用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的。
数据字典包括数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。
数据字典视图主要包括:user_xxx,all_xxx,dba_xxx 三种类型。(dba这类型有时得看在什么用户下 如果该用户权限不够则错误命令)
显示当前数据库全称。
SQL> select * from global_name;
显示当前用户所拥有的表。
SQL> select table_name from user_tables;
显示当前用户可以访问的所有表。
SQL> select table_name from all_tables;
查询数据库的表空间。
SQL> select tablespace_name from dba_tablespaces;
Oracle的所有动态性能视图都是以 V_$ 开头的,v_$和v$是一样的,动态性能视图的所有者为sys,一般情况下由dba或特权用户查询动态性能视图。
SQL> desc v$instance 显示所有的例 select(查询当前) desc(显示全部)
SQL> desc v$database 显示所有的数据库