wind2

导航

 

数据文件(datafiles)、联机日志文件(online redo logs)、控制文件(control files)

控制文件:数据库的名字,数据文件和联机日志文件的名称及位置,创建数据库的时间戳。

联机日志文件:记录对数据库的改变,保护对数据库的改变不会丢失。目的是用于实例的恢复。

归档日志文件:联机日志文件的副本,记录了数据库改变的历史,可以从归档日志文件中恢复丢失的数据。

参数文件:PFILE初始化参数,SPFILE服务器参数文件。

警报文件:启动关闭信息,管理操作,数据库错误,共享服务器的信息。alertSID.log,Background_dump_dest位置。

跟踪文件:后台进程检测到错误时,会写到跟踪文件中。与后台进程相关写到backgroud_dump_dest目录,和服务器进程相关的写到user_dump_dest目录。Max_dump_file_size用于限制跟踪文件的大小。

备份文件:备份文件,执行恢复。

 

逻辑结构

数据块data block (DB_BLOCK_SIZE) -> 区 extent -> 段 segment -> 表空间 tablespace

表空间级别default storage (inital 128K )

表级别 storage

Initial 分配给表(段)的初始区的大小。

Next 指定第二个区的大小。

Pctincrease 指定第三个及后续分配区的增长百分比。

Minextents 至少要分配多少个区给表或段。

Maxextents 最大数量。

Extent management local autoallocate 或 uniform

区空间的释放

Truncate....drop storage

数据段,索引段,临时段,回滚段

大文件表空间

回滚表空间

闪回查询,允许把表恢复到过去的某个时间点。

 

1. 创建大文件空间

SQL>create bigfile tablespace bigtbs_01 datafile ‘d:\nbo\bigtbs_01.dbf‘ size 500M autoextend on;

2. 创建表空间

SQL>create tablespace tbsk datafile ‘e:\oracle10\data\bc1.ora‘ size 10M, ‘e:\oracle10\data\bc2.ora‘ size 10M autoextend on next 1M maxsize unlimited;

 3. 删除表空间

SQL>drop tablespace tbsk including contents and datafiles cascade constraints

 4. 表空间的数据文件组成

SQL>select file_name from dba_data_files where tablespace_name=‘product‘;

5.  创建非标准块表空间

  1. 先要创建相应的数据库高速缓冲区(16K)

SQL>alter system set DB_16K_CACHE_SIZE=4M; 创建块大小是16KB,大小是4M的缓冲

2. 创建大小16K的非标准表空间

SQL>create tablespace ublock blocksize 16k datafile ‘D:\nbo\ublock.dbf‘ size 30M autoextend on;

3. 查看大小

SQL>show parameter db_block_size

SQL>show parameter db_16k_cache_size

6. 扩展表空间

  1. 手动增加表空间数据文件的大小

Alter database datafile ‘d:\new\p2.ora‘ resize 1000M

2. 把表空间中的数据文件设成自动扩展

Alter database datafile ‘/export/home/nbodata/nbo/product1‘ autoextend on next 5M maxsize unlimited

3. 在表空间中增加数据文件

Alter tablespace tbsk add datafile ‘d:\new\p2.ora‘ size 100M

7. 限制用户对表空间的使用

  1. 限制用户test在表空间tbsk上只有使用50M空间的权利

SQL>alter user test quota 50M on tbsk;

2. 使用户sun可以无限制地使用表空间tbsk

SQL>alter user sun quota unlimited on tbsk;

3. 使用户sun可以无限制使用数据库中所有的表空间

Grant unlimited tablespace to sun;

8. 使只读表空间可读写

Alter tablespace tbsk read write;

9. 让表空间在线

Alter tablespace tbsk online;

10. 重命名表空间

Alter tablespace tbsk rename to tbsk2;

11. 查询数据库中表空间

SQL>select tablespace_name from dba_tablespace;

12. 查询表空间的存储参数

SQL>select tablespace_name, * from dba_tablespaces;

13. 查询表空间的空间使用情况

SQL>select tbs, sum(totalM) TOTALM, sum(usedM) UESEDM,

sum(remainedM) REMAINM, sum(usedM)/sum(totalM)*100 UESD

from ( select b.file_id ID, b.Tablespace_name tbs, b.file_name name,

b.bytes/1024/1024 totalM, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,

sum(nvl(a.bytes,0))/1024/1024 remainedM

from dba_free_space a ,dba_data_files b

where a.file_id = b.file_id

group by b.tablespace_name, b.file_name, b.file_id, b.bytes

order by b.tablespace_name )

group by tbs;

TBS                                    TM         UM         RM

------------------------------ ---------- ---------- ----------

UNDOTBS1                              135      14.25     120.75

SYSAUX                                770   713.5625    56.4375

USERS                                   5     1.3125     3.6875

SYSTEM                                700   692.5625     7.4375

14. 查询本地管理的表空间

SQL>select tablespace_name, extent_management

From dba_tablespaces

Where extent_management=‘LOCAL‘

TABLESPACE_NAME                EXTENT_MAN

------------------------------ ----------

SYSTEM                         LOCAL

SYSAUX                         LOCAL

UNDOTBS1                       LOCAL

TEMP                           LOCAL

USERS                          LOCAL

15. 把表空间设置成只读,有可能挂起

Alter tablespace tp read only;

如果表空间存在未完成的事务,会一直等待直到事务提交

  1. 查找执行alter tablespace语句的会话地址session address, saddr

Select SQL_TEXT, SADDR

From v$sqlarea, v$session

Where v$sqlarea.address = v$session.sql_address

And SQL_TEXT like ‘alter tablespace%‘;

结果:SLQ_TEXT: alter tablespace tp read only   saddr: 213fa99c

2. 查找数据库中的事务

Select ses_addr, atart_scnb

From v$transaction

Order by start_scnb;

结果:

213f840c  1679887

213fa99c  1680342

3. 有其它事务未完成1679887,查找这些事务执行的SQL语句

Select a.saddr, a.sid, a.serial#, b.sql_text

From v$session a, v$sql b

Where a.sql_hash_value = b.hash_value and a.sql_address = b.address

213f840c  192   47  insert into a5 values (’21....)

4. 可以中止客户端的语句。

16. 收缩表空间

  1. 查看表空间的使用情况

select b.file_id ID, b.Tablespace_name tbs, b.file_name name,

b.bytes/1024/1024 totalM, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,

sum(nvl(a.bytes,0))/1024/1024 remainedM

from dba_free_space a ,dba_data_files b

where a.file_id = b.file_id

group by b.tablespace_name, b.file_name, b.file_id, b.bytes

order by b.tablespace_name

 

 

posted on 2013-05-09 14:58  wind2  阅读(90)  评论(0)    收藏  举报