ocp原厂培训笔记(第九天)

来源:互联网 发布:沧州电脑网络销售培训 编辑:程序博客网 时间:2024/04/29 12:24

回收表,回收索引
resumable:空间不足,会挂起留给DBA 2小时处理,而不是像正常情况下的直接报错退出。
如果你能处理就继续,否则将挂起。

空间管理,区本地管理
 oracle的机制,把数据文件使用情况做一个映射,放在数据文件的header中。
em管理器中 通过:show tablespace contents 可以查看。

主动维护:
严重警告:以alert 方式放警告
BMB:Free Space Management
每个区都由BMB来管理块的信息,段中位图管理块使用信息,运行时调整BMB

9i以后,临时表空间都只有一个临时段,临时段中划分为临时区,每个区不同session来用,互不干扰。
9i 之后,回滚段都不用来管了。
区映射
区的划分方法:
1> uniform 大小一样
2> autoallocate:系统自动分配,避免空间浪费


Transaction slot:必须通过事务槽来上锁,(每个事物槽23个字节,由上往下扩充,数据由下往上扩充)

关于这一部分得详细信息,可以参考 oracle 9i fundamental 1.

freelist的作用是,包含了所有空块的指针。
PCTUSED 40%,表示如果block 空闲空间 低于 40%,就会把block移回空闲空间。

oracle 10g之后都用 ASSM 来管理段了,这个时候 不需要手工指定pctfree,pctused.
表的空闲或满状态都由oracle来自动管理。
block space management:段空间自动管理

high water mark:是块的高水位。
下图:行链接


行迁移:
本存储在一个数据块(data block)内的数据行,因为更新操作导致长度增长,而所在数据块的可用空间也不能容纳增长后的数据行。在这种情况下,Oracle将此行数据迁移(migrate)到新的数据块中。Oracle在被迁移数据行原来所在位置保存一个指向新数据块的指针。被迁移数据行的 rowid 保持不变。
当数据行发生链接(chain)或迁移(migrate)时,对其访问将会造成 I/O 性能降低,因为Oracle为获取这些数据行的数据时,必须访问更多的数据块(data block)。
行链接:
有两种情况会导致表中某行数据过大,一个数据块(data block)无法容纳。第一种情况,当一行数据被插入时一个数据块就无法容纳。在这种情况下Oracle将这行数据存储在段内的一个数据块链(chain)中。在插入数据量大的行时常会发生行链接(row chaining),例如一个包含数据类型为 LONG 或 LONG RAW 列的数据行。此时行链接不可避免。
行链接:

 

能消除的是行迁移,不能消除的是行链接。
1) dba_tables中的chain_cnt列。
必须先执行analyze分析表该字段才有数据,而且不区分行连接或是行迁移。
SQL>select owner,table_name,chain_cnt from dba_tables where chain_cnt > 0;


空间预警:85%
严重警告:97%

一旦出现严重警告,处理的方式
bigfile:只能resize
针对Undo表空间:调整undo_retention

undo_retention 在 9i和10g下的区别
如果设置了undo_retention,9i是在这个时间内不能删除回滚信息,
但是10g如果遇到undo 满了的情况,将会尝试删除这个回滚信息。
所以为了保证不被删除,10G下必须设置为 guarantee才行。


察看数据库报警的原因
select reason from dba_outstanding_alerts;

语句失败,只会回滚某个语句。
如果是一个存储过程中的语句失败,则会全部回滚
begin ...end 之间的sql语句。
每隔10分钟做一个校验。

readonly offline:不会触发警告
undo tablespace:回滚表空间记录没有过期的
auto extendfiles:自动扩展表空间是针对最大的空间来比教的 。[即如果当前大小是100M,tablespace 最大还可以扩展200M,那么使用率是
占用空间/(100+200)]

只做行迁移,不回收高水位
alter tables employees shrink space compact;
回收高水位:(回收高水位的时候会产生锁,阻碍别人的操作,所以建议晚上做)
alter table employees shrink space;
p361:
对于iot索引表,建议重建第二索引。

维护shrink的时候,一定要开启行移动。(前面说过,如果要作flash 快闪查询,也要开启行移动)
要想修改Partition的数据,必须开启行移动。

 

alter table employees enable row movement;
alter table employees space cascade;(不影响物化视图,iot索引表)
alter table employees modify LOB (resume shrink space);
alter table employees overflow shrink space;
overflow->shrink

p369
resumable 需要在做之前开启,一旦出现不足,你可以查看挂起的问题,如果15分钟之类被解决,
过一段时间,oracle将自动提供服务。


Using Resumable Space Allocation
• Queries, DML operations, and certain DDL
operations can be resumed if they encounter an
out-of-space error.
• A resumable statement can be issued through
SQL, PL/SQL, SQL*Loader, or the Oracle Call
Interface (OCI).
• To run a resumable statement, you must first
enable resumable statements for your session.
ALTER SESSION ENABLE RESUMABLE;
INSERT INTO sales_new SELECT * FROM sh.sales;
ALTER SESSION DISABLE RESUMABLE;


设置了resumable,不会马上被oracle搞死,如果没做,马上就被oracle搞死了,
我们一般在session级别实现这个功能。( DML,DDL级别使用)


for example:
alter session enable resumable timeout 3600 name 'mutilab insert';
select name,sql_text from user_resumable;
从这个语句察看挂起情况。

Transportable tablespace的相关概念:

支持linux和windows的 dataguard:linux 源,windows的目的(反之也可以)
linux 和 aix之间 不支持做dataguard.


compatible:设置为 10.0.0以上,移植前,必须把datafile做为readonly.

 

 

数据文件header 包含了datafile的名字。
切换的过程:

 

select tp.endian_format from v$transportable_platform tp, v$database d where
tp.platform_name=d.platform_name;
select file_name from dba_data_files;
create tablespace tbs1 datafile '/u01/.../tbs1.dbf' size=10m;
conn scott/tiger
create table test101(id number,name varchar2(40)) tablespacr tbs1;
alter system checkpoint;
desc v$datafile;
select checkpoint_change#,file# from v$datafile_header;
select current_scn from v$database;
alter tablespace tbs1  readonly; (现在开始做)
alter system checkpoint;

exp file=exp.dmp transport_tablespace=y tablespaces=(tbs1);
SQL>drop tablespace tbs1 including contents;
imp file=exp.dmp  datafiles=(/home/oracle/tbs1.dbf) transport_tablespace=y;

注意:如果是不同版本数据的迁移,先做转换(格式转换),再拷贝到target 平台。
最后alter tablespace tbs1 read write;

转换有两种方式:
1>源库转换 p379
2>目标库转化 p380

• Create the password file on the target platform.
• Transport the BFILEs used in the source
database.
• The generated pfile and transport script use OMF.
• Use DBNEWID to change the DBID.


需要修改dbid。
advisor rusumable , shrink 功能,
导入导出


ASM:
oracle 实例来管理络设备。
安装rac 条件下,数据库控制文件,spfile ,都可以放到asm 里面。
物理上的概念:裸设备
逻辑上的概念:逻辑上的概念

ASM的一个优点:
如果某个文件访问过热,asm 可以自动把这个文件移动到diskgroup里的failure group的。
ASM 的 sid是 +ASM
asm磁盘里数据的搬移由进程:orbn(0-j)来做,asm的大小以AU(来分配),
au的大小一般是 1m,有的情况下是128k。

rbal:负责对asm 磁盘组全局打开。
asmb:db instance 里负责和asm instance通信的部分。
数据库和ASM必须在同一个节点上,所以在RAC形式下,数据库 instance有两个,
ASM instance也会有两个。(+ASM1 ,+ASM2)

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Oracle Database 10g中新增加了两个Oracle后台进程以支持ASM实例:RBAL和ORBn。RBAL协调磁盘组的磁盘活动,
而ORBn(其中n可以是0~9之间的数字)执行磁盘组中磁盘之间的实际盘区移动。

对于使用ASM磁盘的数据库,Oracle Database 10g也有两个新的后台进程:OSMB和RBAL。OSMB执行数据库和ASM实例之间的通信,
而RBAL执行代表数据库的磁盘组中磁盘的打开和关闭。
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


cache fusing 服务(未深入讨论了)
创建ASM 实例的过程:
利用DBCA启动ASM
1>.启动CSS 服务,(ASM instance用到了 CSS的gsd服务,和RAC下一样)
root权限 做操作:
local config add

2>建立ASM 磁盘组的时候,可以采用external方式(不做镜象)
3>ASM instance信息保存在 SPFILE+ASM.ora里,以及orapw+asm文件里。
位置放在
$ORACLE_ASM_HOME/dbs/ 这个文件夹下。

我们可以查看asm 这个实例的信息:
instance_type 是 ASM(传统库是 Rdbms 的)
ASM_POWER_LIMIT=1(范围可以是 1到11之间,设置得越大,则数据库搬移数据的速度也越快,影响的IO也越多。
如果想进入ASM instance查看信息,
需要做下面的操作:
export ORACLE_SID=+ASM
sqlplus / as sysdba
登陆,可以发现,asm instance和普通db的instance区别很大,没有挂载数据文件,且状态是mount状态的。

    sysdba,sysoper的区别
    sysdba:可以做不完全还原
    sysoper:只能做完全还原,且不能做增加减少磁盘容量的操作。

    ASM 管理页面
    maintainance->migrate to ASM
    再选择HOME->VIEW ALL properties->HOST->target->+asm
   
    如果有数据库正在使用ASM实例所管理的数据,
    这个时候登陆ASM实例想正常关闭ASM实例是不可能的。
    只能做shutdown abort操作(但是不推荐)
   
    在做RAC数据库的时候,ASM实例一个可以存数据,一个存闪回日志。
    ASM磁盘的存储大小: 
    一种为1M 粗条带化
    一种为128K  细条带化。

    磁盘组里先划分为diskgroup,再下面会划分为 failure group.

 


  

从上面可以看出,failure group  是属于diskgroup的成员中的。
但diskgroup下不一定要存在failure group.
Failure Group
A failure group is a set of disks, inside one particular disk group, sharing a common resource
whose failure needs to be tolerated. An example of a failure group is a string of SCSI disks
connected to a common SCSI controller. A failure of the controller leads to all the disks on its
SCSI bus becoming unavailable, although each of the individual disks is still functional.
What constitutes a failure group is site-specific. It is largely based upon failure modes that a site
is willing to tolerate. By default, ASM assigns each disk to its own failure group. When creating
a disk group or adding a disk to a disk group, administrators may specify their own grouping of
disks into failure groups. After failure groups are identified, ASM can optimize file layout to
reduce the unavailability of data due to the failure of a shared resource.

 


   

 

 

 

原创粉丝点击