发布时间:2025-12-09 15:38:15 浏览次数:4
数据库可能因为硬件或软件(或两者同时)的故障变得不可用,不同的故障情况需要不同的恢复 *** 作。我们必须决定最适合业务环境的恢复方法。在数据库中恢复有3种类型或方法,即应急(crash)恢复、版本(version)恢复和前滚(rool forward)恢复。 应急恢复用于防止数据库处于不一致或不可用状态。数据库执行的事务(也称工作单元)可能被意外中断,若在作为工作单位一部分的所有更改完成和提交之前发生故障,则该数据库就会处于不一致和不可用的状态。这时,需要将该数据库转化为一致和可用的状态。
为此,需要回滚未完成的事务,并完成当发生崩溃时仍在内存中的已提交事务。如在COMMIT语句之前发生了电源故障,则在下一次重新启动并再次访问该数据库时,需要回滚到执行COMMMIT语句前的状态。回滚语句的顺序与最初执行时的顺序相反。 这种恢复技术是版本恢复的一个扩展,使用完整的数据库备份和日志相结合,可以使一个数据库或者被选择的表空间恢复到某个特定时间点。如果从备份时刻起到发生故障时的所有日志文件都可以获得的话,则可以恢复到日志上涵盖到的任意时间点。前滚恢复需要在配置中被明确激活才能生效。
回滚是为了保证事务一致性,如果在一个大事务中,中途出现错误,就需要回滚,否则会出现前面的做的成功了,后面的失败了的情况
比如说取钱,如果没有回滚,那么你选择了取10000块钱的时候,选择成功了,但是实际里面没那么多钱了,此时不回滚事务的话,就会出现扣除你的存款10000元,但是你却没取到那么多钱的情况了
一 物理结构
数据文件 ORACLE数据库包含若干数据文件 数据文件存储数据库数据 包括表 索引等等 数据文件的几个特点
)一个数据文件只允许分配给一个数据库
)数据文件可设置为自动扩展
)一个或多个数据文件构成表空间
在进行数据库 *** 作的时候 数据库先从内存寻找要 *** 作的数据 如果没有找到的话 再从数据文件取出数据放在内存中 然后才对内存中的数据进行相关的 *** 作 *** 作完的数据并没有立即写到数据文件中(这样减少了磁盘的IO) 而是放在内存中 然后由DBWn进程决定何时批量写入数据文件
控制文件 每一个数据库都有一个或多个控制文件 控制文件包含了数据库的物理结构 包括
)数据库名
)数据文件名及位置
)重做日志文件名及位置
)数据库的建立时间等等
一般一个数据库都有若干个控制文件镜像 数据库在打开的时候(ALTER
DATABASE OPEN) 会读取控制文件中的信息来打开数据库 当数据库的物理结构发生变化的时候 比如增加一个数据文件 一组重做日志等等 控制文件都会自动地做相应的修改 在数据库物理结构发生变化后 最好重新备份一下控制文件 用于数据库恢复
重做日志文件 重做日志中记录了数据的变化 一般一个数据库都会有两到三组重做日志文件 同一日志组的镜像最好分布于不同的磁盘上
归档日志 当数据库启动归档的时候 重做日志会被自动归档到指定的位置
初始化参数文件 包含了数据库启动时的配置信息
警告和跟踪日志文件
)跟踪文件 每一个后台进程都有一个单独的跟踪文件 比如当系统发现某一个进程有问题的时候 相关的信息就会写到相应的跟踪文件中 可以从数据库的跟踪文件来发现和调试数据库的错误
)警告文件 也叫警告日志 是一个特别的跟踪文件 它记录着数据库启动 运行中的相关信息 它是按时间顺序进行记录的
备份文件
二 逻辑结构
表空间 相关逻辑对象的集合 在oracle g中 在创建数据库的时候就自动创建了SYSTEM和SYSAUX表空间
数据块 数据存储在数据块中 一个数据块的大小(DB_BLOCK_SIZE)由 *** 作系统块来决定 可以指定 种 分别为 K K K K K
区 一系列连续的数据块组成区 区存储特定类型的数据 比如索引 表等等
段 由一系列区组成段
)数据段 对于每一个非聚集表有一数据段 表的所有数据存放在该段 每一聚集有一个数据段 聚集中每一个表的数据存储在该段中 分区表中的每一个分区有一个数据段 分区中的数据存储在该段中
)索引段 每一个索引有一索引段 存储索引数据 分区索引中的每一分区有一个索引段
)回滚段 用于临时存储要撤消的信息 这些信息用于生成读一致性数据库信息 在数据库恢复时使用 回滚未提交的事务 系统回滚段用于处理系统事务 不建议用户使用系统回滚段来做其它 *** 作
lishixinzhi/Article/program/Oracle/201311/17699