系统默认表空间
SQL>select tablespace_name,block_size from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE
-------------------- ----------
SYSTEM 8192
SYSAUX 8192
UNDOTBS1 8192
TEMP 8192
USERS 8192
ORACLE后台进程
[oracle@ora66 admin]$ ps -ef |grep oracle
SQL>select paddr,description from v$bgprocess where paddr !='00' order by paddr desc;
归档进程ora_ARCn_$ORACLE_SID
诊断性进程:DIAG,在oracle11g以前的版本,该进程用于rac环境。负责监视实例的总体状况,并且会捕获实例失败的所需信息。
后台进程有:
DBWR(Database Write) : 数据库写入程序
LGWR(Log Write) : 日志写入程序
CKPT(Checkpoint) : 检查点
SMON (System Monitor): 系统监控
PMON(Process Monitor) : 进程监控
ARCH(Archive) : 归档
RECO : 恢复
LCKn : 封锁;
vktm:虚拟时间管理器,为oracle实现一个一致的,细粒度的时钟。
gen0:通用任务执行进程,分担另外某个进程的阻塞处理,并在后台完成所阻塞的操做。
dbrm:数据库资源管理进程,实现一个数据库实例配置的资源计划。
psp0:进程生气器,负责生成各个后台进程/线程,会在实例启动时完成它的大部分工做。
####block
block为8KB(8192字节),为oracle最小的逻辑单位
SYS@orcl 10:55:02>show parameter db_block_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
--查看表空间的blocksize
select tablespace_name,block_size from dba_tablespaces;
oracl最小扩展单位和分配单位为extent,默认为1MB
--表空间 ;
CREATE tablespace sdt
DATAFILE '/u01/app/oracle/oradata/orcl/tbs_01.dbf' size 800M
extent management local segment space management auto;
--2.建用户
create user demo identified by demo
default tablespace demo temporary tablespace temp;
--3.赋权
grant connect,resource to demo;
grant create sequence to demo;
grant create table to demo;
grant delete table to demo;
grant insert table to demo;
grant select table to demo;
grant unlimited tablespace to demo;
grant execute procedure to demo;
grant update table to demo;
grant create view to demo;
grant dba to demo;
grant connect,resource to demo;
CONNECT角色: --是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --创建聚簇
CREATE DATABASE LINK --创建数据库连接
CREATE SEQUENCE --创建序列
CREATE SESSION --创建会话
CREATE SYNONYM --创建同义词
CREATE VIEW --创建视图
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --创建聚簇
CREATE PROCEDURE --创建过程
CREATE SEQUENCE --创建序列
CREATE TABLE --建表
CREATE TRIGGER --创建触发器
CREATE TYPE --创建类型
--建立表
create table ssr(id int) tablespace sdt;
--查询表结构
GUOYF@orcl 03:31:01>select dbms_metadata.get_ddl('TABLE','SSR') from dual;
select dbms_metadata.get_ddl('TABLE','SSR') from dual;
select segment_name, extents, bytes from user_segments;
no rows selected 没有分配任何extents
--为表插入数据后分配区
insert into ssr select rownum from dual connect by level < 100000;
使用connect by level/rownum实现连续数字的插入
dual 确实是一张表.是一张只有一个字段,一行记录的表.
习惯上,咱们称之为'伪表'.由于他不存储主题数据.
--查看ssr表区分配的空间信息
select segment_name,extent_id,tablespace_name,bytes/1024/1024 bytes_mb
blocks from user_extents where segment_name='SSR';
--查看索引段
create index idx_id on ssr(id);
select segment_name,segment_type,tablespace_name,blocks,extents,bytes/1024/1024 bytes_mb from user_segments;
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME BLOCKS EXTENTS BYTES_MB
-------------------- ------------------ -------------------- ---------- ---------- ----------
SSR TABLE TBS_01 384 18 3
IDX_ID INDEX TBS_01 256 17 2
--查看索引占了多少个区
select count(*) from user_extents where segment_name='IDX_ID';
COUNT(*)
----------
17
--调整block size
alter system set db_16k_cache_size=100m;
create tablespace tbs_16k blocksize 16k datafile '/u01/app/oracle/oradata/orcl/tbs_16k_01.dbf'
size 100m autoextend on extent management local segment space management auto;
autoextend on next 5M maxsize 3000M; 自动扩展表空间,每次5M 最大 3000M
extent management local为本地管理表空间
segment space management auto 为自动管理表空间
select tablespace_name,block_size from dba_tablespaces;
--查看每次分配区大小
select segment_name,segment_type,tablespace_name,bytes from user_extents;
--查看segment
select segment_name,segment_type,tablespace_name,blocks,extents,bytes/1024/1024 bytes_mb from user_segments where segment_name='SSR';
--查询语句
v$tablespace v$datafile表空间的数据文件
col name for a20;
查询表空间名 数据文件名 数据文件大小 快的大小
select a.ts#, a.name,b.name,b.bytes,b.block_size from v$tablespace a join v$datafile b on a.ts#=b.ts#;select a.ts#, a.name,b.name,b.bytes,b.block_size from v$tablespace a join v$datafile b on a.ts#=b.ts#;
TS# NAME NAME BYTES BLOCK_SIZE
---------- -------------------- -------------------- ---------- ----------
0 SYSTEM /u01/app/oracle/orad 723517440 8192
ata/orcl/system01.db
f
1 SYSAUX /u01/app/oracle/orad 587202560 8192
ata/orcl/sysaux01.db
f
2 UNDOTBS1 /u01/app/oracle/orad 104857600 8192
ata/orcl/undotbs01.d
bf
4 USERS /u01/app/oracle/orad 5242880 8192
ata/orcl/users01.dbf
6 EXAMPLE /u01/app/oracle/orad 104857600 8192
ata/orcl/example01.d
bf
7 TBS_01 /u01/app/oracle/orad 104857600 8192
为一个表空间增长多个datafile
alter tablespace tbs_01 add datafile '/u01/app/oracle/oradata/orcl/tbs_01_02.dbf' size 50m autoextend on;
建立临时表空间
create temporary tablespace tmp_01 tempfile '/u01/app/oracle/oradata/orctmp_01.dbf' size 50m;
临时表空间的数据文件
SQL> select file#,ts#,name,block_size from v$tempfile;
建立undo表空间
SQL> create undo tablespace undotbs_01 datafile '/u01/app/oracle/oradata/orcl/undotbs_1.dbf' size 50m;
删除表空间
drop tablespace 名字 including contents and datafiles;
alter user 用户名 quota unlimited on 表空间;
或 alter user 用户名 quota *M on 表空间;
删除表
drop table ssr purge;数据库