系統默認表空間
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;數據庫