第一课
第5章 触发器介绍
创建数据库
创建数据字典
catproc.sql 用于创建oracle的内置过程
ddl触发器举例:
create or replace trigger log_logon
after logon on database
when (user='SYS' OR user like 'OPS$%')
BEGIN
insert into sys.event_log values('Logon '|| user ||' at '||to_char(sysdate,'yyyy-mm-dd HH24:mi:ss'));
commit;
end;
$ORACLE_HOME\rdbms\admin下的一些常用脚本说明
--存储了oracle系统表的创建语句及注释说明,例如bootstrap$、props$、tab$、user$等等
D:\oracle\ora92\rdbms\admin\sql.bsq
--创建数据字典视图
D:\oracle\ora92\rdbms\admin\catalog.sql
--创建审计用的数据字典视图
D:\oracle\ora92\rdbms\admin\cataudit.sql
--创建关于locks的视图,包括DBA_KGLLOCK、DBA_LOCKS、DBA_LOCK_INTERNAL、DBA_DML_LOCKS、DBA_DDL_LOCKS、DBA_WAITERS、DBA_BLOCKERS
D:\oracle\ora92\rdbms\admin\catblock.sql
--建立EXP和IMP所需的数据字典视图
D:\oracle\ora92\rdbms\admin\catexp.sql
--解决不同版本EXP问题
D:\oracle\ora92\rdbms\admin\catexp7.sql
--建立PL/SQL功能的使用环境
D:\oracle\ora92\rdbms\admin\catproc.sql
--创建关于job的视图
D:\oracle\ora92\rdbms\admin\catjobq.sql
http://www.wzsky.net/html/Program/DataBase/101416.html
Oracle 10g手工创建数据库个人经验
http://database.51cto.com/art/201002/184885.htm
详解Oracle手动创建数据库几大步骤
第6章 控制文件
控制文件使用:
1.小的二进制文件
2.要求书库启动到mountzhuangtai
3.连接到一个实例
4.控制文件镜像
5.控制文件恢复
控制文件的内容:
数据库的名字和标识符 环境变量--》初始化参数文件--》启动实例--》找到控制文件--》打开数据库
数据库创建日期
数据文件、redo log的位置
表空间名称
log 历史信息
备份恢复信息
当前的序列号(日志)
checkpoint 信息
Multiplexing the Control File
control_file= 指定控制文件的位置 建议三个控制文件不要放在同一个盘符中
控制文件的原则
多个控制文件的拷贝
control_files
备份控制文件
备份控制大小
重用
控制文件的信息:
V$controlfile
v$controlfile_record_section
v$datafile
v$tempfile
v$tablespace
v$log
other$
v$是动态视图,数据库在mount状态时就可以使用
备份控制文件:
shutdown; 关闭数据库
复制任意一组(个)控制文件到另一个目录,
修改初始化参数文件init.ora,在control_files中添加第4个控制文件
startup force; 重启数据库
第7章 redo log files 重做日志文件
使用redo log files
redo log Groups and members
dml(iud)语句都会被记录在redo log files中
log switch 指在redo log Groups中间切换
archive log list;
members 即组内的成员,组内的成员互为镜像
oracle 架构
dbwr --datafiles
lgwr-- redo log files
arch -- archived log files
ckpt -- control files 和 data files
ckpt的发生时机 log switch
非归档方式
数据库恢复时备份文件(点)至当前数据库(点)之间的内容会丢失
归档模式
通过备份文件恢复到备份点,在通过归档的redo log 恢复到日志切换点,在通过在线日志文件恢复到数据库的崩溃点
archive log list; 当发生日志切换时,旧的redolog文件将被覆写,所以在非归档模式下旧的redolog文件的内容将丢失
v$database;
v$instance;
V$thread;
v$log;
v$logfile;
alter system switch logfile; 进行日志切换的命令
alter database add logfile ('disk3/log3a.rdo','disk4/log3b.rdo') size 1M;增加日志文件组
新加的组处于unuser状态,进行日志切换时,改组被使用
alter database add logfile member 'disk4/log1b.rdo' to group 1,'disk4/log2b.rdo' to group 2; 给组增加成员
新加的日志文件处于invalid 状态,当发生日志切换时(改组成为当前组),该文件会被使用
alter database rename file '原始的redolog文件' to '新的redolog文件'; 注意:当前有效的日志组不能够更名。
alter database drop logfile group 3;删除组 注意:当前有效的日志组不能够删除
alter database drop logfile member 'disk4/log1b.rdo'; 删除成员 注意:当前有效的日志组不能够删除成员
alter database clear logfile 'disk4/log1b.rdo'; 清除日志文件
log_checkpoint_interval 多少bolck,设一次checkpoint
log_checkpoint_timeout 多长时间设一次checkpoint
fast_start_io_target 规定了下一次数据库(崩溃后)启动的时间
怎样重命名、重定位在线的redo log files
shutdown;
拷贝日志文件到其他路径
startup mount ; 例程已经启动
alter database rename file '原始的redolog文件' to '新的redolog文件'; 注意:当前有效的日志组不能够更名。
alter database open ; 打开数据库
redo log 配置
组要求一样大,
组中至少(应该有两个成员)
组中成员要求分布在不同的磁盘空间
logminer
创建目录 utl_fife_dir --定义一个目录 如:'C:\temp
创建文件字典
execute dbms_logmnr_d.build('dict.ora','C:\temp');//注意:区分大小写
select * from v$logfile;
添加日志文件
execute dbms_logmnr.add_logfile('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\REDO01.LOG',dbms_logmnr.new);
execute dbms_logmnr.add_logfile('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\REDO02.LOG',dbms_logmnr.addfile);
分析
execute dbms_logmnr.start_logmnr(dictfilename=>'C:\temp\dict.ora');
查看内容:
select * from v$logmnr_contents
SQL> desc v$logmnr_contents;
Name Type Nullable Default Comments
---- ---- -------- ------- --------
关闭
execute dbms_logmnr.end_logmnr;
试图:
v$logmnr_dictionary
v$logmnr_parameters
v$logmnr_contents
第三课
第8章 表空间和数据文件
数据库逻辑结构
临时段的问题
创建表空间及调整表空间的大小及状态改变
临时段空间的分配
改变表空间的储存设置及重定位表空间
oracle存储体系
逻辑层次database-->tablespace-->segment-->extent-->oracle block
物理层次 datafile-->OS block
含义:一个数据库(实例)包含多个表空间,...包含多个segment(segment是指可增长的对象,如:表、索引),...包含多个扩展,...包含多个数据库块,
一个表空间包含多个数据文件,一个数据文件包含多个扩展,一个数据文件包含多个操作系统块,一个数据库块包含多个操作系统块。
segment与datafile之间是多对多的关系,即一张表的数据可以同时存放在多个数据文件上并且一个数据文件可以存放多张表的数据,所以需要抽象出表空间的概念作为segment与datafile的上级层次。
为什么不将segment与datafile做成一对一呢?是因为操作系统对自身的文件大小都是有限制的,不同的操作系统数据文件的大小限制也不同,如:2G、4G、32G等,
如果segment增加过大超过操作系统的文件限制,将导致溢出。extent是指表超出空间后,每次扩展的空间大小。
系统表空间和非系统表空间
系统表空间:由数据库创建、包含数据字典和系统回滚段。
非系统表空间:由管理员创建、由用户申请、用于存放用户数据。
8.1创建表空间
create tablespace app_data
datafile 'disk4/app_data_01.dbf' size 100M,
'disk5/app_data_02.dbf' size 100M
minimun extent 500k 表空间extent大小的设置(最小化的extent)
default storage ( initial 500k 表的默认存贮设置,初始化500k(一个extent)
next 500k 每次扩展的空间大小(即一个extent的大小)
maxextents 500 表最大的extent数量
pctincrease 0); 空间扩展指数,现已经不使用。
本地管理表空间和数据字典管理的表空间
数据字典管理的表空间:表空间的扩展记录在数据字典表中,为系统默认设置。
本地管理表空间:通过位图管理表空间的扩展,用位图的值记录块是否可用。注意:10个数据库的表空间默认是本地管理。
8.2创建本地管理表空间
create tablespace user_data
datafile 'disk2/user_data_01.dbf' size 100M
extent management local 本地管理表空间
uniform size 10m; 统一的大小(extent大小统一)
优点:不产生递归的空间管理(不写数据字典,不占用额外空间);
不产生数据字典表的争用(使用位图,减轻了数据字典的访问量);不产生回滚段(不写系统回滚段);不需要聚合(即extent大小一致,不需要合并)。
8.3临时表空间
临时表空间用于排序,使用本地管理以减少碎片。uniform size=排序区的n倍(sort_area_size * n)
create temporary tablespace temp
tempfile 'disk2/temp_01.dbf' size 500m
extent management local
uniform size 10M;
数据库关闭临时表空间被删除,当有排序需求是在创建临时表空间。
速度比较慢,现已不使用。
扩大排序区不能有效提高系统速度。
8.4 修改存贮设置
alter tablespace app_data minimum extent 2M;
alter tablespace app_data default storage (initial 2M next 2m maxextents 1000 ); 修改不影响已经创建的表,在下次申请扩展时才受影响。
8.5表空间的状态
表空间有 在线、离线两种状态。
离线状态时表空间无效,其下数据不能被访问。
系统表空间、带有活动回滚段表空间不能被离线。
alter tablespace APTS online;
alter tablespace APTS offline;
8.6表空间只读
表空间只读即:不允许用户修改,可以drop表空间下的对象。
alter tablespace APTS read only;
alter tablespace APTS rename datafile
表空间只读是表空间必须在线;不能包含有活动回滚段;不能转入在线备份。
8.7 删除表空间
表空间从数据字典中删除,表空间下的对象从数据字典中删除,操作系统文件不删除。
drop tablespace app_data including contents;
8.8 重新设置表空间大小
数据文件可以自动扩展(缺点:导致系统速度慢);可以手工扩展,还可以增加数据文件。
alter tablespace app_data add datafile 'disk6/app_data_04.dbf' size 200M autoextend on next 10m maxsize 500m;
alter tablespace datafile 'disk5/app_data_02.dbf' resize 200m;
8.9移动数据文件
表空间下的限制:表空间必须离线(offline);目标数据文件必须存在。离线后可以拷贝数据文件到新的磁盘空间并作为目标数据文件。
alter tablespace app_data rename datafile 'disk4/app_data_01.dbf' to 'disk5/app_data_01.dbf';
数据库下的限制:数据库启动到mounted状态;拷贝数据库控制文件到新的目录作为存在的目标文件。
alter tablespace rename file '/disk1/system_01.dbf' to '/disk2/system_01.dbf';
8.10 表空间信息(视图)
静态试图:dba_tablesoaces,dba_data_files,dba_temp_files
动态视图:v$tablespace,v$datafile,v$tempfile
8.11表空间管理原则
使用多个表空间;
为表空间指定默认的存贮参数(存贮子句);
用户配额(quotas),限制用户对空间的占用;
数据文件使用全路径;
使用最小的extent数;
使用本地管理的表空间(效率高);
表空间下最多1023个数据文件。
8.12 总结
可以收缩表空间的大小。
建议使用本地管理的表空间,不推荐使用临时表空间。
用位图索引管理extent。位图索引只能针对列的取值固定且数量较少时使用(如列是性别,取值只有男、女两种);位图索引修改麻烦,查询的速度很快(位运算效率高)。
第四课
第9章 Storage Structure and Relationships 存贮结构和关系
描述了数据库的逻辑结构
segment的类型和用法
block空间的使用
数据字典中存贮结构的视图信息
segment的分配原则(segment与tablespace的存放关系)
9.1 segment(可增长对象)的类型
segment有:table,table partition(分区表的每个分区),cluster(分为索引cluster和哈希cluster),index,index-organized table(索引组织的表,增删改慢,查询快,不适合大表),index partition(分区索引的每个分区),rollback segment(回滚段),temporary segment(临时段),LOB segment (大对象段),LOB index(大对象索引),Nested table(嵌套表),Bootstrap segment(系统启动段)。
主要的是:table,index,rollback segment
9.2存贮子句(extent的使用规格)定义(使用)顺序
segment-->tablespace-->oracle default (默认 5个db block,目前oracle的block为8k)
建议在tablespace中统一定义。
9.3 extent Allocation and Deallocation 扩展的分配和回收
扩展extent的分配:在segment的创建(created)、扩展(extended)、改变(altered)时被分配。
扩展extent的回收:在segment的注销(dropped)、改变(altered)、截断(Truncated,重新初始化,只保留一个extent)、回滚段的自动收缩(rollback segment Automatically resized)时被回收。
9.4 extent的使用和空置
data file包括:file header,used extent,free extent
小的extent不会自己合并。
9.5 database block (dbblock 数据块)概念
最小的i/o单元;
是os block(操作系统块)的倍数;
通过参数 DB_BLOCK_SIZE 进行设置(目前dbblock设置为8k);
在数据库创建时就已经起效(如果要调整dbblock的大小必须要重新创建数据库实例)。
9.6 dbblock组成
组成:header(头部),free space(空闲空间,用于update操作),data(数据)。
参数:initrans(初始化开辟的事务槽),maxtrans(最大的事务槽限制),pctfree(用来定义空闲空间的大小),pctused(用来定义数据空间的最大使用率)。
事务需要占用一个事务槽,事务槽就是在header头部对事物的管理,事务槽越多,可并行访问的事务就越多,就有可能产生冲突(死锁)。事务槽要占用header头部的空间。
pctfree =20% 空余空间定义
pctused =40% 使用空间底线
对不足pctused的dbblock则认为是空闲的块,空闲块则被连接到freelist链表中;共下次insert使用;对已满足pctused的dbblock则认为是该块已满,不可继续插入。
pctfree定义的空闲用于update操作,对于update操作比较多的表pctfree应该定义大一些,负责会导致在update操作时发现已没有空闲空间,将在更新行的为产生一个指针,指向其他的dbblock进行更新操作,即一行数据迁移至多个dbblock块,影响系统效率。
9.7 数据字典中的相关视图
dba_tablespaces (tablespace)
dba_segments (segment) dba_data_files (data_file)
dba_extents (used extents) dba_free_space (free_extents)
(从上到下都是一对多的关系)
9.8 表空间的碎片问题
system 数据字典 碎片率 0
Tools Applications (用于oracle程序)非常低
Data 数据段 (用于业务数据) 低
Index 索引段 (用于业务数据索引) 低
Rbs 回滚段 (用于事务尚未提交) 高
temp 临时段(用于排序) 非常高
9.10 总结
extent,dbblock的存贮。
第5课
第10章 Managing Rollback Segments 回滚段的管理
创建、维护回滚段;
计划回滚段的大小和数量;
计算数据字典视图;
排除回滚段对大小数据dml操作量的错误。
10.1 回滚段的作用
在进行dml操作时需要将旧的信息(old image)写到回滚段中。
读一致性(Read consistency):A执行update操作,尚未commit之前,A可以看到new image,其余人员只能看到old image,old image 存贮在回滚段中。
事务的回滚(Transaction rollback):A执行update操作,尚未commit之前,有进行rollback操作,old image 从rollback segment中更新到物理表中。
事务的恢复(Transaction recovery):数据库崩溃后,再次启动时系统进程先做前滚操作,再数据库open,最后做回滚操作。
10.2 回滚段的类型
系统回滚段:用于system tablespace下的对象的dml操作。
非系统回滚段:由系统管理员创建,供所有用户使用。
非系统回滚段分为:私有回滚段(单个实例使用)和公有回滚段(所有实例使用)。
注意 :41分钟 从第10章跳到了第12章
第12章 索引的管理 managing indexes
回滚段和索引由系统控制使用。
索引的类型;
B-tree(普通索引)和bitmap(位图索引);
重组索引(Reorganize indexes);
删除索引 drop index
数据字典中索引相关的视图
12.1 索引分类
逻辑分类
单列索引和组合索引
唯一索引和非唯一索引
基于函数的索引:可以对列的运算建索引
物理分类
分区索引和非分区索引
B-tree(二叉树)索引:叶子节点包括:索引头、列字段、列的值、rowid。
Normal(正常索引)和reverse key(反键索引):将索引字段的值反写(左右对调)后建b-tree索引,目的是扩大索引列的取值范围,构造大的树形结构,以便于后期插入操作。
Bitmap(位图)索引:根据索引列的取值建立位图,每种取值都需要建立位图索引,对于dml操作很困难,对查询操作性能很好。
12.2 B-tree 和Bitmap索引比较
Bitmap适用于列的取值少,dml操作少,select操作多(与、或运算速度快),多用于数据仓库。
B-tree适用于列的取值多,dml操作多,select操作少,多用于OLTP。
第6课
13章 Constraint 约束
13.1约束的类型
not null :
unique:
primary key:
foreign key:
check:
13.2 约束的状态
disable
enable
validate
novalidate
disable enable 约束(对已有数据)是否启用
novalidate validate 约束是否检查已有数据
13.3 约束的延时
dml statement-->check nondeferred constraints(非延时约束)-->commit-->check deferred constraints(检查延时约束)
13.4 定义立即约束和延时约束
需要在语句定义时是否可以延时,在session中设置是否可以延时。
alter session set constraint[s] = {immediate|deferred|default}
13.5 主键和唯一键
13.6 外键约束
Drop 父表 Cascade constraints (删除父表时需要级联删除约束);
Truncate 父表 时,需要提前使外键失效或删掉外键。
drop 包含父表的表空间 Cascade constraints (删除包含父表的表空间时需要级联删除约束,注意:父子表可以不在同一个表空间,但必须在同一个数据库。)
在对父表进行dml操作时会锁定子表,为了避免锁定,可以给外键建索引。
在对子表进行dml操作时需要确保父表的索引在online状态。
13.7 表创建的约束定义
create table summit.employee (
id number(7) constraint empoyee_id_pk primary key deferrable --可延时的
using index storage (initial 100k next 100k) tablespace index,
last_name varchar2(25) constraint employee_last_name_nn not null,
dept_id number(7))
tablespace data;
13.8 定义约束的规则
将主键、唯一键的索引放在指定的表空间中;
在加载大量数据时使用非唯一的索引,即将将主键、唯一键的索引定义成延时索引,或者将主键、唯一键约束删掉、将主键、唯一键索引disable或删掉。
自引用外键索引在初始化数据加载完成之后定义或启用,并定义延时的约束检查。
13.9 启用约束 enable
enable novalidate条件:不锁定表;主键和唯一键必须使用非唯一索引; 对以前的数据不检查,对以后的数据检查。
alter table summit.department enable novalidate constraint dept_pk;
enable validate条件:锁定表;可以使用唯一索引、非唯一索引; 对以前的数据检查(数据必须满足约束),对以后的数据检查。
alter table tt.rightcert enable validate constraint rightcert_certid_pk;
13.10 使用exceptions表(例外表)
alter table...enable validate... 可以加上exceptions子句,将不满足约束的数据记录记录在exception表中,等将数据调整到满足约束时,在进行alter table...enable validate操作。
13.11 drop 约束
alter table summit.employee drop constraint emp_ln_uk;
drop table department cascade constraints;
13.12 约束的视图
dba_constraints
dba_cons_columns
第7课
14章 load data 加载数据
export inport
direct-load inserts 直接路径插入
sql * loader
14.1直接路径插入
exp:
insert /*+APPEND */ into scott.emp nologging
select * from scott.old_emp;
nologging表示不写redo日志,/*+APPEND */是一个提示,提示系统将数据插入在高水点之后(高水点是连续空间,这样可以提高插入速度)
create table tt1 as select empno,ename ,sal from emp where 1=2;
alter session enable parallel DML;
insert /*+parallel(scott.emp,2) */ into scott.emp nologging select * from scott.old_emp; 并行插入,起用2个并行进程
14.2 sql * loader
sql*loader 作用:将少量文本型数据加载到数据库中
Conventional Load 普通路径的加载,转换为insert,需要commit进行提交,记redo日志,对所有约束有效,可以触发trigger,使用clustered tables,不锁定tables。
Direct Path Load 直接路径的加载,使用data saves技术(直接将数据文件迁移到数据库的数据文件中),不需要commit进行提交,不记redo日志,只支持所主键、唯一键和not null约束,不触发trigger,不能使用clustered tables,锁定tables。
exp:
sqlldr scott/tiger control=ulcase6.ctl log=ulcase6.log direct=true; ulcase6.ctl是控制文件,需要手工编写,大体如下:
load data
infile 'ulcase6.dat'
insert into table emp
(empno position(01:04) integer external nullif empno=blanks,...)
bindsize 普通路径的加载时数组的大小设置。
控制文件举例:
load data
infile *
insert into table scott.dept
fields terminated by ',' optionally enclosed by '"'
(deptno,dname,loc)
begindata
10,account,new york
20,research,dallas
30,sales,chigago
15章 reorganize tables 重组数据
export import
可传输的表空间
15.1 export import
重组表
在不同用户下移动数据
不同数据库下移动数据
不同操作系统下移动数据
不同版本的数据库下移动数据
逻辑备份
导出表 (table data index trigger constraints Grants AnalyzeMethod)
exp
scott/tiger@orcl
tables=(dept,emp) file=c:\emp.dmp log=c:\exp.log compress=n direct=y
compress 压缩
direct 直接导出
imp scott/tiger tables=(dept,emp) file=emp.dmp log=exp.log ignore=y
ignore 忽略错误
导入顺序 table-->data-->B-tree indexes-->constraints,triggers,bitmap,indexes 相同表空间『默认表空间』
consistent=y 在回滚段中镜像所有导出表 (保持了一致性,只能用于小表),默认consistent=n
compress=y 可以使用在连续的,没有删除操作的表上,能够提高速度。对于被删除的行,compress=y 时则被导出,从而不能重组数据,所以默认>compress=n
导入导出字符集的问题:
1.导入导出字符集一致即可;2.如果不一致,默认低字节向高字节转换。oracle自带有7位单字节、8位单字节、16位双字节、24位三字节字符集。
15.2 可传输表空间
可传输表空间:
1.使表空间只读 alter tablespace sales_ts read only;
2.将表空间的定义信息导成操作系统文件 exp sys/... file=xxx.dmp transport_tablespace=y tablespaces=sales_ts triggers=n constraints=n
3.将表空间的数据文件拷贝到目标机器
4.将表空间的定义信息文件拷贝到目标机器 (导入导出的路径要求是全路径)
5.将表空间的定义信息文件导入到目标数据库 imp sys/... file=xxx.dmp transport_tablespace=y datafiles=(/disk1/sales01.dbf,/disk2/sales02.dbf)
6.将表空设置为可读写 alter tablespace sales_ts read write;
7.限制:相同的操作系统,oracle的版本在8i以上,数据块大小一致(8192),相同的字符集,表空间中的对象必须全部属于本表空间(自包含),嵌套表、位图索引不能被导出
验证自包含的方法: exec DBMS_TTS.TRANSPORT_SET_CHECK(ts_list =>'sales_ts',incl_constraints=>TRUE);
第8课
16章 数据库安全
表空间限(配)额
缺省表空间
排序表空间的使用
账号锁定 account locking
资源的限制
直接权限
角色权限 role
操作系统验证数据库验证
参数:failed_login_attempts 密码尝试登陆次数的设定
password_lock_time 密码锁定的天数
password_life_time 密码生命期(天数)
password_grace_time 优雅时间:密码过期后,用户第一次登陆后,修改密码的时间
password_reuse_time 密码重用间隔天数
password_reuse_max 密码重用次数
password_verify_function 密码校验函数
密码管理:
alter user hanne identified by rue account lock; 给用户加锁解锁
alter user hanne identified by rue account unlock;
第9课 直接跳到了18章
20章 (11课 36分) 字符集与国际语言字符集
单字节 7-bit,8-bit
双字节 16-bit
三字节 24-bit
unicode (utf8,al24utffss)
字符集的定义层次:
会话层 session(级别最高)
环境变量 nls_lang=<language>_<territory>.<charset> charset 字符集 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
初始化参数
nls_language
nls_date_language
nls_sort
nls_territory
nls_currency $
nls_iso_currency
nls_date_format yyyy-mm-dd
nls_numeric_characters
create database ... character set <charset> national character set <ncharset> ... 创建数据库时设置字符集
alter session set nls_date_format='yyyy-mm-dd'; 设置会话的日期格式
dbms_session.set_nls('nls_date_format',"'yyyy-mm-dd'");
alter session set nls_sort=Eanglish; 设置按什么语言排序
12课 9分钟 开始讲 sql
17课 12分钟 开始讲 oracle网络知识 (2天 10章)
21课 oem 备份与恢复
备份策略:商务需求,硬件环境
fast_start_io_target=10000 系统崩溃后,下次启动后要读写多少个块,设大恢复慢,设小影响速度。
影响checkpoint的因素:
达到 fast_start_io_target设定的数据块
达到最小的redo log 的90%
log_checkpoint_timeout
log_checkpoint_interval blocks
archived 归档
归档到本地磁盘
归档到远程数据库(standby site)
各种类型的失败:
语句类型的失败(语法错误)
用户进程失败()
用户可能的错误操作(用户错误删除表中数据)
instance失败 (系统自动恢复操作)
媒体(物理介质)的失败
fast_start_parallel_rollback 并行回滚
归档模式 archivelog
log_archive_start 是否启用归档; log_archive_dest_n 归档的目录(n是归档路径的路径个数,即支持多路径归档); log_archive_format 归档文件的名字;
scott/tiger 下的emp表的创建语句
create table EMP
(
EMPNO NUMBER(4) not null,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
)
tablespace SYSTEM
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table EMP
add constraint PK_EMP primary key (EMPNO)
using index
tablespace SYSTEM
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table EMP
add constraint FK_DEPTNO foreign key (DEPTNO)
references DEPT (DEPTNO);
startup force; 重启数据库
shutdown; 关闭数据库
shutdown abort; 例程已经关闭
startup mount ; 例程已经启动 mount启动后动态试图就可以查看了
alter database open ; 打开数据库
alter system switch logfile; 切换logfile
EXECUTE DBMS_LOGMNR_D.BUILD('merrydict.ora','C:\redo');
EXECUTE dbms_logmnr.start_logmnr(DICTFILENAME=>'c:\redo\REDO03.LOG')
drop tablespace APTS oncluding contents; 注销表空间
alter tablespace APTS add datafle '' size 200M autoextend on next 10M maxsiza 500M;
alter tabl resize
alter tablespace APTS rename datafile '' to '';
alter database rename file '' to '';
dba_tablespaces
v$tablespace
v$instance