ORACLE数据库基础知识总结
1、RMAN全备备份⽂件的顺序
备份归档⽇志、所有的数据⽂件、控制⽂件、spfile、再次备份归档⽇志
2、redo⽇志丢失恢复
redo⽇志的三种状态是current、active、inactive
inactive,可以重建 clear log
active、current不能变成inactive,只能通过不完全恢复进⾏恢复,然后重建⽇志⽂件
3、⼝令⽂件丢失恢复
丢失可重建 orapwd file= password= enfries=
重建完成之后ORACLE正常使⽤
4、控制⽂件丢失恢复
a> rman 可以备份控制⽂件
b> 控制⽂件可以cp⼀份备⽤
c> 控制⽂件可以重建⼿写
5、体系结构
物理:
ORACLE数据库包括instance、database两部分。
instance包括SGA(系统全局区)跟⼀些后台进程组成的。
SGA包括:share pool、db buffer cache、redo log buffer、流池、⼤型池、JAVA POOL、
share pool(共享池) :
库缓存:缓存最近执⾏的代码,同样的sql多次执⾏不需要频繁读取数据字典中得数据
数据字典缓存:存储oracle中得对象定义
PL/SQL区:缓存存储过程、函数触发器等数据库对象。
db buffer cache(数据库缓存区)
redo log buffercache(⽇志缓存区)
常见的后台进程:
DBWn:⽤于数据库缓存写⼊磁盘
LGWn:⽤于log⽇志写⼊磁盘
CKPT:检查点进程
SMON:实例维护进程,系统监视器
MMON:AWR主要进程
PMON:维护⽤户进程,进程监视器
ARCN:归档进程
oracle 时间转换
database包括数据⽂件、控制⽂件、⽇志⽂件等。
逻辑:
oracle数据块-区-段-表空间-数据库-⽅案
多个oracle数据块组成⼀个区,多个区组成⼀个段,多个段组成⼀个表空间,多个表空间组成⼀个数据库
表空间和数据⽂件的关系:
表空间是由⼀个或多个数据⽂件组成的,⼀个数据⽂件只属于⼀个表空间,表空间的⼤⼩是所有数据⽂件⼤⼩的总和。
数据⽂件和段的关系
⼀个段只能存在⼀个表空间上,但是可分布在属于这个表空间中得多个数据⽂件中。
⼀个段就是⼀张表
6、⼀条SQL语句的执⾏历程(UPDATE)
客户端发起⼀条update语句由服务进程提交到sga,这个服务进程占⽤的是pga的内存,⾸先对这条update语句进⾏语义解析跟语法解析硬解析、软解析、软软解析,解析完成后判断⽆语法错误,然后会在共享池中查是否有执⾏计划,如果有则意味着在缓存中有所需的语句跟数据,若没有则会⽣成执⾏计划,然后将磁盘中的数据提出到缓存中,在此同时会更新undo⽇志⽂件,update语句在缓存中执⾏先写⼊redo⽇志,然后修改过的数据会通过dbwr写⼊磁盘,最后通过服务器进程返回客户端,完成SQL执⾏历程。
7、redo log跟undo log 的作⽤
这两类⽇志⽂件作⽤是保持数据的完整性跟⼀致性
redo log 重做⽇志(⽤于前滚⽇志) undo log 撤销⽇志(⽤于回滚⽇志)
⼀条insert语句redo跟undo都会⽣成。
redo记录的是insert的状态
undo记录的是insert之前的状态
8、索引
a、索引是数据库对象之⼀,⽤于加快数据库的检索,类似于书籍的索引,在数据库中索引可以减少数据查询结果
时需要读取的数据量。
b、索引是建⽴在表上的可选对象;索引的关键在于通过⼀组排序后的索引键来取代默认的全表扫描检索的⽅式,从⽽提⾼检索效率。
c、索引在逻辑上和物理上都与相关的表和数据⽆关,当创建或者删除⼀个索引时,不会影响基本的表。
d、索引⼀旦建⽴,在表上进⾏DML操作时,oracle会⾃动管理索引,索引删除,不会产⽣影响。
e、索引对⽤户是透明的,⽆论表上是否有索引,sql语句的⽤法不变。
f、oracle创建主键时会⾃动在该列上创建索引
9、索引的基本操作
创建索引的基本语法
create index index_name on table_name;
重命名索引
alter index index_name rename to index_name2;
合并索引
alter index index_name coalesce;
创建索引
删除原索引,重建索引
alter index index_name rebuild;
删除索引
drop index index_name;
10、索引的种类
a、B树索引(默认索引):最常⽤的索引,是⼀颗⼆叉树;不管查询条件怎么样,查询速度基本相同;能够适应精确查询,模糊查询
和⽐较查询。
创建语句:create index index_name on EMP('name');适⽤于列基数(列不重复的个数)。
b、位图索引:建⽴位图索引时,oracle会扫描整张表,并为索引列的每个取值建⽴⼀个位图(要么0要么1)来标⽰该⾏是否包含该位图
的索引列的取值如果为1,表⽰对应的rowid所在的纪录包含该位图索引的列值,通过位图索引中的映射函数完成位到⾏的ROWID的转换
创建语句:create bitmap index index_name on EMP('name');适⽤于基数⼩,种类少的列(性别)
c、单⾏索引和复合索引(基于多个列创建):如果索引建⽴在多个列上,只有它的第⼀个列贝where⼦句引⽤时,优化器才会适⽤该索引,即⾄少要包含组合索引的第⼀列
d、函数索引:当要经常访问⼀些函数或者表达式时,可以将其存储在索引中,这样下次访问时,该值已经计算出来了可以加快查询速度
函数索引既可以适⽤B数索引,也可以适⽤位图索引;当函数结果不确定时采⽤B树索引,结果是固定的某个值时使⽤位图索引。寒暑索引中可以使⽤len、
trim、substr、upper(每⾏返回独⽴结果的)不能使⽤sum、max、min、avg等
创建语句:create index index_name on EMP(upper(name));
此时使⽤函数索引 select * from student where upper(name) = 'swith';
11、索引的⼀些特点
a、如果有两个或两以上的索引时其中有⼀个唯⼀性索引,⽽其他的是⾮唯⼀的则这种情况下会使⽤唯⼀性索引⽽完全忽略⾮唯⼀性索引。
b、带有索引的列不能进⾏函数计算以及隐式转换,否则会造成索引失效。
12、oracle启动过程
startup nomount 启动数据库实例,读取参数⽂件,不加在数据库;
alter database mount 加载数据库,但数据库处于关闭状态,读取控制⽂件;
alter databses open 加载并打开数据库,读取数据⽂件;
13、服务端连接不上服务器的原因
a、⽤户名密码错误
b、监听没启动
c、服务端⽂件配置错误
14、oracle中控制⽂件的作⽤
记录了:数据库名称和数据库唯⼀标识符(DBID)、创建数据库的时间戳、有关数据库⽂件、联机重做⽇志、归档⽇志的信息表空间信息、RMAN备份信息
指导数据库,到数据⽂件,⽇志⽂件并将数据库启动到open状态。
15、oracle中参数⽂件的作⽤
参数⽂件在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统⼤量的默认值、数据库的各种物理属性、指定数据库控制⽂件名和路径等信息,
是进⾏数据库设计和性能调优的重要⽂件。
参数⽂件分为:
pfile 可以⼿⼯修改
spfile ⼆进制⽂件,不能⼿⼯修改
16、oracle备份⽅式
a、RMAN备份(物理备份)特点:数据库需要开启归档模式,⽀持增量备份,⾃动管理备份⽂件,⾃动化备份与恢复,不产⽣重做信息,⽀持映像复制
备份的数据⽂件⽀持压缩处理,备份⽂件有效性检查功能。
RMAN〉backup database;restore database;recover database
b、exp/imp、expdp/impdp(导⼊导出逻辑备份)
四种模式:exp 全库导出full=y,⽤户到出owner=,表导出tables=,表空间导出tablespace=
expdp 全库导出full=y,⽤户导出schemas=,按表导出TABLES=,按查询条件导出query='';按表空间导出TABLESPACES=,并⾏进程parallel=;
c、冷备
直接打包复制,操作需要关库,最简单的,low
17、开启归档模式
shutdown immediate;
startup nomount;
alter database archivelog ;
alter database open;
18、查锁表sql
select l.session_id sid,
s.serial#,
l.locked_mode,
s.user#,
l.os_user_name,
s.machine,
a.sql_text,
a.action
from v$sqlarea a, v$session s, v$locked_object l
where l.session_id = s.sid
and s.prev_sql_addr = a.address
order by sid, s.serial#;
19、exp/imp、expdp/impdp区别
a、使⽤expdp要先在数据库中创建directory,并给相应的⽤户read、write权限。
b、常⽤导出⽅法有⼀些参数不⼀样例如按⽤户导出exp:user=,expdp:schemas=,owner=。有些参数也相同⽐如全库导出full=y
c、expdp可以通过parallel参数增加线程来显著的加速作业。
d、expdp/impdp只能在DB服务器上运⾏,exp/imp可以再客户端上运⾏,expdp/impdp所⽀持的参数类型更多,功能更强⼤。
20、oracle的客户端: PL\SQL、toad for oracle
21、数据库迁移的⽅式
a、exp/imp、expdp/impdp 数据库导出⼯具导出dump⽂件实现数据库迁移。
b、rac集架构能够实现数据库迁移。
c、DG⾼可⽤主备库同步,能够实现数据库迁移。
d、rman备份能够迁移。
e、冷备,打包发⾛能够实现数据库迁移。
f、某些⼯具能够实现数据库迁移PL\SQL
22、
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论