Oracle大型数据库 实验五 重做日志文件、表空间管理操作
Oracle大型数据库实验五重做日志文件、表空间管理操作
Oracle大型数据库实验五重做日志文件、表空间管理操作第一篇:Oracle大型数据库实验五重做日志文件、表空间管理操作集美大学计算机工程学院实验报告课程名称:大型数据库技术指导教师:杨艳华班级:计算12 姓名:实验成绩:上机实践日期:2014.12 上机实践时间:2学时实验项目名称:重做日志文件、表空间管理操作学号:20 实验项目编号:实验五组号:一、实验目的1、理解重做日志文件的基本概念;2、掌握重做日志文件组及其成员的添加、移动、删除等操作;3、掌握归档重做日志的设置;4、理解表空间的基本概念和分类;5、掌握永久表空间的创建和管理操作;6、掌握还原表空间的管理。
二、实验要求1、完成重做日志文件组及其成员文件的管理操作;2、完成归档重做日志的设置;3、完成永久表空间和临时表空间的管理操作;4、完成还原表空间的管理。
三、实验内容(1)查看数据库当前重做日志文件组及成员的设置情况,然后,为数据库添加一组重做日志,组内包含两个成员文件,分别为redo4a.log和redo4b.log,大小分别为5MB。
1(2)为上面新添加的那组重做添加一个日志成员,命名为“redo4c-姓名简拼.log”,实现重做日志的多路存储。
(3)把数据库从非归档模式修改为归档模式,之后创造条件让数据库立即归档,并检查归档是否成功(4)创建永久表空间ν创建一个表空间名为“TB+学号后三位+姓名简拼” ν空间的大小为50M ν表空间包括两个数据文件:表空间名_01.dbf(30M)和表空间名_02.dbf(20M),大小均不能自动扩展ν数据文件均存放在Oracle 的安装根目录下ν区的分配方式为统一大小,192K ν段管理采用自动方式(5)改变上述永久表空间的可用性ν先将表空间脱机ν再进行联机(6)创建一个4K的非标准块表空间,命名为“tbf+学号后三位+姓名简拼”,数据文件存储在”oradataorcl姓名简拼”目录下,大小为(学号后三位*2)M。
Oracle重做日志文件
Oracle重做⽇志⽂件⼀、Oracle中的⼏类⽇志⽂件Redo log files -->联机重做⽇志Archive log files -->归档⽇志Alert log files -->告警⽇志Trace files -->跟踪⽇志user_dump_dest -->⽤户跟踪⽇志backupground_dump_dest -->进程跟踪⽇志⼆、联机重做⽇志的规划管理1.联机重做⽇志记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等)提供恢复机制(对于意外删除或宕机利⽤⽇志⽂件实现数据恢复)可以被分组管理2.联机重做⽇志组由⼀个或多个相同的联机⽇志⽂件组成⼀个联机重做⽇志组⾄少两个⽇志组,每组⼀个成员(建议每组两个成员,分散放开到不同的磁盘),由LGWR后台进程同时将⽇志内容写⼊到⼀个组的所有成员LGWR的触发条件在事务提交的时候(COMMIT)Redo Log Buffer 三分之⼀满Redo Log Buffer 多于⼀兆的变化记录在DBWn写⼊数据⽂件之前3.联机重做⽇志成员重做⽇志组内的每⼀个联机⽇志⽂件称为⼀个成员⼀个组内的每⼀个成员具有相同的⽇志序列号(log sequence number),且成员的⼤⼩相同每次⽇志切换时,Oracle服务器分配⼀个新的LSN号给即将写⼊⽇志的⽇志⽂件组LSN号⽤于唯⼀区分每⼀个联机⽇志组和归档⽇志处于归档模式的联机⽇志,LSN号在归档时也被写⼊到归档⽇志之中4.⽇志⽂件的⼯作⽅式⽇志⽂件采⽤按顺序循环写的⽅式当⼀组联机⽇志组写满,LGWR则将⽇志写⼊到下⼀组,当最后⼀组写满则从第⼀组开始写⼊写⼊下⼀组的过程称为⽇志切换切换时发⽣检查点过程检查点的信息同时写⼊到控制⽂件5.联机⽇志⽂件的规划总原则分散放开,多路复⽤⽇志所在的磁盘应当具有较⾼的I/O⼀般⽇志组⼤⼩应满⾜⾃动切换间隔⾄少15-20分钟左右业务需求建议使⽤rdo结尾的⽇志⽂件名,避免误删⽇志⽂件。
oracle 重做日志文件
重做日志文件重做日志文件记录的两类数据:1.修改前的数据2.修改后的数据当满足一定条件时先将修改操作所产生的重做记录写入重做日志文件中,然后才将内存中的修改结果成批的写入数据文件,最后在提交事务重做日志文件是由重做记录组成的,重做记录是由修改向量组成的。
当用户执行一条update 语句对某一个表中的记录进行修改时,会生成一条记录,这条记录用多个向量记录下了被这条语句修改过的各个db块中的信息。
重做记录采用循环的方式在SGA区的重做日志缓存区中进行缓冲,并且由后台进程LGWR 写入到其中的某个重做日志文件中。
用户无论何时提交事务,LGWR都会将该事务的重做记录从SGA的重做日志缓存区写入到某个重做日志文件中,并且为提交的每个事务分别分配一个识别重做记录的系统修改编号。
只有当与已知事务相关的所有重做记录都安全的写入重做日志文件后,用户进程才被告之已经提交。
LGWR进程在开始写入下一个重做日志文件之前,必须确保这个即将覆盖的重做日志文件已经完成了如下的工作:1.如果数据库处于“非归档日志模式(noarchivelog)”,则该重做日志文件中的所有重做记录所对应的修改结果,必须全部被写入到数据文件中。
2.如果数据库处于“归档日志模式(archivelog)”,则该重做日志文件中的所有重做记录所对应的修改结果,必须全部被写入到数据文件中,并且归档进程ARCH已经将该重做日志文件进行了归档。
活动的,非活动的,当前的联机重做日志文件LGWR当前写入的重做日志文件称为当前的联机重做日志文件,例程恢复时需要的重做日志文件称为活动的重做日志文件,例程恢复时不需要的重做日志文件称为非活动的重做日志文件。
如果已经能够进行归档,oracle就不能重新使用或重写活动的重做日志文件,知道ARCH 存储了这个文件的内容。
如果不能进行归档,当最后一个重做日志文件被填满是时,将通过重写的方法继续使用第一个可用的活动重做日志文件。
日志切换1.当一个重做日志文件被完全填满,必须填写下一个联机重做日志文件2.手动强制执行日志切换强制切换日志,需要有alter system权限,使用alter system switch logfile强制切换日志顺序号没次发生日志切换和LGWR开始进行填写时,oracle都会为每个联机重做日志文件分配一个新的日志序列号重做日志文件的归档归档就是在重做日志文件被覆盖之前,将该重做日志文件通过复制操作系统文件的方式,保存到指定的位置。
17-重做日志文件管理
日志文件复用
• 复用的方法:
–创建数据库时指定 –通过手工添加成员(后讲)
新增日志组 • 新增日志组
新增日志组
• 添加不指定组号:
ALTER DATABASE ADD LOGFILE ('/oradata/u01/PROD_redo31' ,'/oradata/u02/PROD_redo32') SIZE 10M REUSE;
描述
日之切换 • 重做日志文件被循环使用。 • 当一组日志文件写满,LGWR将 写下一组日志文件。
–Called a log switch –Checkpoint operation also occurs –Information written to the control file
日之切换
–一个实例至少需要2组重做日志文 件 –当前的和活动的日志组不能被删除 –日志组删除后,该日志组成员文件 还在磁盘上
清除重做日志 • 当一个重做日志内容被破坏后, 可以删除后再重建。 • 但当这是最后两个重做日志 呢?? • 或者这个日志文件没 Nhomakorabea归档呢?
清除重做日志
日志成员重新命名
•两个问题:
Oracle Database Administration
Oracle重做日志文件管理
主要内容
• 重做日志文件描述 • 日志切换操作 • 复用重做日志文件 • 维护重做日志文件 • 重做日志文件查询
Redo Log Files Redo Log Files
描述 • 重做日志文件的特点:
–Record all changes made to data –Provide a recovery mechanism –Can be organized into groups –At least two groups required
第五章重做日志文件
第五章重做日志文件一:重做日志文件的目的:1.重做日志文件:为了存储更多的变化信息,为此oracle提供了一种复杂的日志结构→重做日志2.引入重做日志文件的目的?是为了方便数据库的恢复。
3.引入重做日志文件的目的:主要是提高数据库恢复的效率。
4.重做日志组:每个重做日志组有三个成员,如果oracle正常工作需要两个重做日志组。
注意:重做日志写进程当前只能向一组重做日志组写内容。
把当前正在写的这组重做日志组叫做当前重做日志组。
当写完一组后,它就开始下一组,这个过程叫做日志切换。
如下组已写完,就要进行重写,这样为了保留已有的记录信息,oracle引入了归档/存档日志。
数据库默认情况下为非归档模式:注意:当数据库为归档模式时,在日志文件没有被归档日志文件接收时,LGWR是不能向日志文件进行写操作的。
5.重做日志成员:见书上p90第三节第二段:Oracle是使用文件冗余的方法来解决这一难题的。
尽管oracle默认为每个重做日志组中只有一个成员,但是oracle建议在生产数据库中应该每个重做日志组至少有两个成员(每个成员以独立的物理文件),而且最好将它们放在不同的物理磁盘上,以防止重做日志(成员)文件的物理错误,在许多生产数据库中每个重做日志中有3个成员。
6.日志文件切换:切换的命令为:alter system switch logfile;7.关于日志文件的查看:查归档日志语句:achive log list;日志文件正常情况下有四种状态:(1)inactive;表示实例恢复已不再需要这组联机重做日志组了。
(2)active;表示这组联机重做日志是活动的但不是当前组,在实例恢复时需要这组联机重做日志组。
如:这组重做日志正在归档。
(3)current;表示这组联机重做日志是当前组,并也隐含该联机重做日志刚被添加到数据库中的状态。
(4)unused;表示oracle服务器从来没写过该组联机重做日志组,这是重做日志被添加到数据库中的状态。
5重做日志文件
5重做⽇志⽂件重做⽇志⽂件时为了数据库恢复的物理⽂件,其中保存了数据库的变更操作信息。
通过重做⽇志⽂件通常是通过重做(REDO)或者是回退(UNDO)实现的。
重做(REDO)就是有些原因到导致事务对数据库的操作的修改在写⼊数据⽂件之前丢失了,此时就可以利⽤重做⽇志⽂件做该事务对数据库的变更。
回退(UNDO)如果⽤户在事务提交之前想回滚事务,那么可以利⽤重做⽇志⽂件撤销事务对数据库所做的变更。
重做⽇志⽂件的⼯作原理:每个数据库⾄少有两个重做⽇志⽂件,采⽤循环邪写的⽅式进⾏⼯作。
这样就能保证当⼀个重做⽇志⽂件在进⾏归档时,还有另⼀个重做⽇志⽂件可⽤。
当⼀个重做⽇志⽂件被写满后,后台进⾏就开始写下⼀个重做⽇志⽂件。
当所有的重做⽇志⽂件都写满后,LGWR进程再重新开始写⼊第⼀个重做⽇志⽂件,开始新的循环。
通常LGWR进程再开始下⼀个重做⽇志之前要确定:该重做⽇志⽂件中的所有重做记录所对应的变更操作结果必须全部写⼊数据⽂件中。
如果数据库处于“归档模式”,要确定对该重做⽇志⽂件进⾏了归档。
重做⽇志⽂件切换与⽇志序列号重做⽇志⽂件切换是指LGWR对⼀个重做⽇志⽂件停⽌写⼊,开始对另⼀个重做⽇志⽂件写⼊的过程。
⽇志序列号:当每次发⽣重做⽇志切换时,数据库赋予重做⽇志⽂件⼀个⽇志序列号(log sequence number),LGWR进程将该序列号写⼊相应的重做⽇志⽂件。
重做⽇志⽂件组的概念:每个重做⽇志⽂件的拷贝称为重做⽇志⽂件组的成员(MEMBER)。
重做⽇志⽂件组使⽤数字标号,如group 1、group 2等。
重做⽇志⽂件故障响应:当重做⽇志⽂件组中某个成员⽂件不可⽤时,LGWR进程⽆法对该重做⽇志⽂件进⾏写⼊操作,数据库将表⽰该重做⽇志⽂件的状态为INVALID,将错误信息写⼊LGWR进程跟增⽂件中,同时,还会将该重做⽇志⽂件不可⽤的原因写⼊报警⽂件中。
重做⽇志⽂件规划(1)重做⽇志⽂件组的数量:在oracle数据库中,重做⽇志⽂件采⽤循环写的⽅式⼯作,因此⾄少需要两个可⽤的重做⽇志⽂件组。
oracle重做日志文件管理
oracle重做日志文件管理
oracle重做日志文件管理
oracle重做日志文件管理
移动重做日志文件
• 要改变重做日志文件的位置或名称,必须拥有 alter database系统权限。
oracle重做日志文件管理
• 不管组中包含多少成员,一个例程至少需要2个有效 的重做日志文件组,每组有一个或多个成员。如果 要删除的成员是组的最后一个有效成员,那么就不 能删除该成员,直到其他成员变为有效为止。
• 只有当要删除的重做日志成员current时才能删除。 如果想删除某个活动组的成员,首先要手动地进行 日志切换,将该组变成active/inactive状态。
复时使用 – members和bytes:重做日志组成员的个数和大小 – archived:是否归档 – status:状态,有inactive 、active、 current和
unused 4种常用状态
oracle重做日志文件管理
重做日志文件组的管理 ——重做日志文件组查询
l status字段的4种状态
files files
ARCH Archived redo log files
oracle重做日志文件管理
本章内容导航
l 重做日志文件的作用 l 重做日志文件组的管理 l 重做日志成员的管理 l 数据库的两种日志模式 l 日志切换和检查点
oracle重做日志文件管理
日志切换
l 日志切换是指停止向某个重做日志文件组写 入而向另一个联机的重做日志文件组写入。
oracle重做日志文件管理
重做日志文件组的管理 ——创建重做日志文件组
Oracle重做日志文件
Oracle重做⽇志⽂件⼀.简介Oracle引⼊重做⽇志的⽬的:数据库的恢复。
Oracle相关进程:重做⽇志写进程(LGWR)。
重做⽇志性质:联机⽇志⽂件,oracle服务器运⾏时需要管理它们。
相关数据字典:v$log ; v$logfile 。
操作者权限:具有sys⽤户或system⽤户权限。
重做⽇志⽂件⽇志⽂件的数据⽂件类型:在线⽇志⽂件(⼜叫联机⽇志)与归档⽇志⽂件(在线⽇志⽂件的历史备份)⽇志运⾏的模式:归档模式、⾮归档模式(是否⾃动归档)⽇志的运⾏流程:写⽂件是依靠LGWR后台进程⽇志按照有序循环的⽅式被使⽤,即当⼀组⽇志⽂件被填满后,循环覆盖下⼀组⽇志⽂件,不断循环。
重做⽇志⽂件的⽬的:1. 记录数据的改变 2. 提供数据恢复 3. 维护数据库完整性。
⼆.获取重做⽇志的信息1. 获得数据库中有多少个重做⽇志组,每个组中有多少个成员、⽇志⼤⼩及状态。
SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVEDFROM V$LOG;结果如下图:状态列(status)所显⽰常⽤状态的含义:inactive:表⽰实例恢复已不再需要这组联机重做⽇志组了。
active:表⽰该组是活动的但不是当前组,实例恢复时需要这组⽇志。
current:表⽰该组⽇志是当前组,该联机重做⽇志组是活动的。
unused:表⽰该⽇志组从未写过,是重做⽇志刚刚添加到状态。
2. 获得数据库中每个重做⽇志组的成员所在⽬录、⽂件名及状态。
SELECT GROUP#,STATUS,TYPE,MEMBERFROM V$LOGFILE;结果如下图:状态列(status)所显⽰常⽤状态的含义:空⽩:表⽰该⽂正在使⽤。
stale:表⽰该⽂件中的内容是不完全的。
invalid:表⽰该⽂件是不可以被访问的。
deleted:表⽰该⽂件已不在有⽤了。
三.⽇志切换联机重做⽇志⽂件是以⼀种循环的⽅式来使⽤,当⼀组联机重做⽇志⽂件被写满时,LGWR将开始写下⼀组⽇志⽂件,这被称为⽇志切换。
Oracle在线重做日志文件详解
1.Oracle在线重做日志文件详解1:查看数据库在线重做日志文件的归档方式ARCHIVE LOG list;2:查看日志组SELECT * FROM v$log;3:查看日志组成员SELECT * FROM v$logfile;--备注:经分系统BONCBI数据库日志没做归档就不说了,既然只有3个日志组,而且既然每个日志组只有一个成员,悲剧啊!4:新增一个日志组:ALTER DATABASE ADD LOGFILE GROUP 4('/dev/rlv_vgdb9_data22','/dev/rlv_vgdb9_data23','/dev/rlv_vgdb9_data24') SIZE 8191m;--这样,就最增一个日志组,且这个日志组里有3个成员每个成员8191MB大小。
5:给某个日志组新增一个成员ALTER DATABASE ADD LOGFILE MEMBER '/dev/rlv_vgdb9_data25' TO GROUP 4;--注意,这里不需要指定日志组成员的大小。
6:删除日志组ALTER DATABASE DROP LOGFILE GROUP 4;--注意:当前日志组不能删,活动的日志组不能删,没有归档的日志组不能删。
7:删除日志组成员ALTER DATABASE DROP LOGFILE MEMBER '/dev/rlv_vgdb9_data25';--注意:每个组至少要保留一个成员;8:两个概念需要注意:8.1:日志切换ALTER SYSTEM SWITCH LOGFILE;--所谓日志切换就是停止写当前组,转而写一个新组,系统可以自动发生,也可以手工完成。
--当发生SWITCH LOGFILE时,系统会在后台完成CHECKPOINT的操作checkpoint是一个event,它用于减少instance recovery的时间,当checkpoint发生时,它会触发DBWR进程把database buffer中的变化了的数据写入数据文件,同时chpk进程更新control file和datafile header,以使它们保持一致。
Oracle重做日志文件管理技巧
Oracle重做日志文件管理技巧Oracle重做日志文件管理技巧重做日志文件是Oracle数据库中一种非常重要的日志文件,也是其一个很有特色的功能。
重做日志文件会纪录对于数据库的任何操作,如利用DML语句或者DDL语句对数据进行更改,或者数据库管理员对数据库结构进行更改,都会在重做日志中进行记录。
可见,当数据被意外的删除或者修改,我们可以利用重新日志文件进行恢复;当出现例程失败或者介质失败的情况下,也可以利用日志文件实现例程恢复或者介质恢复。
所以说,我们若能够管理好重做日志文件的话,对于保障数据库数据的安全是非常重要的。
下面笔者谈谈管理好Oracle数据库日志文件的几点经验技巧,或许,能够给大家在重做日志文件的管理中带来一些启示。
一、合理确定重做日志文件的存放位置我们知道,当数据库内部数据丢失或者被意外更改的情况下,数据库管理员可以利用重做日志文件实现数据库数据的恢复工作。
当数据库出现意外事故,如硬盘物理损坏、数据丢失时怎么办?我们第一个就会想到利用数据库重做日志对数据进行恢复。
可是当数据库重做日志跟数据库数据文件放在同一个硬盘的话,很明显,当硬盘损坏的时候,数据文件将跟日志文件共赴黄泉。
此时,连天皇老子都救不了我们。
所以,此时,我们就有必要把重做日志文件跟数据库数据文件放在两个不同的硬盘上面。
此时,任何一个硬盘若发生损坏,我们都可以凭借另外一块硬盘的数据,来挽回损失。
如存放数据文件的硬盘损坏时,我们就可以利用存放在另外一块硬盘上的数据重做日志文件进行修复,挽回损失。
鸡蛋不能放在同一个篮子里,故重做日志文件与数据文件也不要放在同一块硬盘上。
那时非常危险一个动作。
其实,这个重做日志文件就跟数据库的备份文件类似。
我们在对数据库进行备份的时候,都知道需要进行异地备份。
可惜的是,很多数据库管理员,在进行Oracle数据库管理的时候,没有注意到这一点,结果当出现问题的时候,就来不及了。
故,对于数据重做日志文件,保存时,要跟数据库备份文件一样,进行异地保存。
第5章 重做日志管理
5.2.1 查看重做日志文件信息
动态性能视图包括以下两种:
v$log:记录与重做日志文件组相关的信息,该信息取 自数据库的控制文件。v$log视图中各字段名称及其说 明如表5-1所示。
列 名 GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME 描 述 重做日志文件组编号 日志线程编号 日志序列号 日志的字节长度 日志文件的块大小(512或4096) 日志组的成员数量 归档状态:YES(已归档)、NO(未归档) 日志组的状态,上一节已经介绍过 日志中的最低系统修改号(SCN) 日志中第一个SCN对应的时间
2014
Oracle 11g数据库管理与开发基础教程
日志切换与日志序列号
日志切换指LGWR停止写入一组联机重做日志文件, 而开始写入下一组重做日志文件这一操作。
1, 4, 7, … 2, 5, 8, … 日志切换 重做日志文 件2 日志切换 日志切换 3, 6, 9, … 重做日志文 件3 LGWR 重做日志文 件1
更改成UNUSED!
UNUSED:未使用过。新添加的重做日志文件组,或者 被清空之后的重做日志文件组处于该状态。
2014
Oracle 11g数据库管理与开发基础教程
查询动态性能视图v$log SYS@orcl > SELECT group#,status FROM v$log;
归档进程与归档重做日志文件
重做日志的从产生到归档的过程
①服务器进程 拷贝 ② ② ② ②
用户内存区
重做日志
③
oracle重做日志文件和归档日志
数据库恢复的原理
当数据库发生故障时,可以利用重做 日志文件来进行恢复。Oracle会根据 重做日志文件中的记录,重新执行对 数据库所做的更改,从而将数据库恢 复到一致的状态。
04 Oracle重做日志文件和归 档日志的管理和维护
日志文件的备份与恢复
备份策略
制定定期备份和增量备份策略,确保重做日志文件和归档日志的安全。
恢复方法
在发生故障时,根据备份情况选择适当的恢复方法,如全量恢复或增量恢复。
日志文件的清理与维护
清理过期日志
定期清理过期或不再需要的日志文件 ,释放存储空间。
Oracle重做日志文件和归档日志
contents
目录
• Oracle重做日志文件 • 归档日志 • Oracle重做日志文件和归档日志的关系 • Oracle重做日志文件和归档日志的管理
和维护 • Oracle重做日志文件和归档日志的故障
处理
ቤተ መጻሕፍቲ ባይዱ
01 Oracle重做日志文件
重做日志文件的作用
数据恢复
THANKS FOR WATCHING
感谢您的观看
存储容量
需要合理规划存储空间,确保有足够的空间存储归档日志文件,避 免空间不足导致数据库故障。
归档日志的恢复
恢复方法
当数据库发生故障时,可以使用归档日志进行恢复。可以选择完全恢复或部分恢复,根据需要选择相应的归档日志文 件。
恢复过程
在恢复过程中,需要按照时间顺序应用归档日志文件,确保数据的一致性。可以使用RMAN(Oracle Recovery Manager)进行自动恢复或手动恢复。
Oracle表空间操作详解
Oracle表空间操作详解1.创建表空间:createtablespace<tablespace_name>datafile '<filepath>' size <filesize>autoextend on next <autosize>maxsize<maxsize [unlimited]>eg:createtablespace sales datafile 'c:\1.txt' size 10m autoextend on next 1m maxsize 100m2.为表空间增加数据文件:altertablespace<tablespace_name> add datafile 'filepath' size <filesize>autoextend on next <autosize>maxsizefilemaxsize[unlimited];eg:altertablespace sales datafile 'c:\2.txt' size 10m autoextend on next 1m maxsize unlimited3.调整表空间:alter database datafile 'filepath' resize <filesize>;--重置表空间的大小eg:alter database datafile 'c:\2.txt' resize 10m在实际使用中我们经常会遇到oracle某个表空间占用了大量的空间而其中的数据量却只占用了少量空间,此时我们可以用ALTER DATABASE DATAFILE '***.dbf' RESIZE nnM的命令来收缩表空间,但在收缩的过程中会遇到ora-03297错误,表示在所定义的空间之后有数据存在,不能收缩,此时的解决办法有:(1). 先估算该表空间内各个数据文件的空间使用情况:SQL>select file#,name from v$datafile;SQL>select max(block_id) from dba_extents where file_id=11;MAX(BLOCK_ID)-------------13657SQL>show parameter db_block_sizeNAME TYPE VALUE----------------------------- ------- ----------- db_block_size integer 8192SQL>select 13657*8/1024 from dual;13657*8/1024-----------106.695313这说明该文件中最大使用块位于106M与107M之间,SQL> alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 100M;alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 100M*ERROR at line 1:ORA-03297: file contains used data beyond requested RESIZE valueSQL> alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 107M; Database altered.(2).如果某些表占用了数据文件的最后一些块,则需要先将该表导出或移动到其他的表空间中,然后删除表,再进行收缩。
OracleDBA基础教程重做日志管理
第 8 章◄ 重做日志管理►重做日志是Oracle数据库中很重要的一部分内容。
在数据库恢复时,需要掌握重做日志的工作原理,学会如何配置和维护重做日志。
本章首先介绍Oracle引入重做日志的原因,以及重做日志的工作过程,进而介绍Oracle的重做日志结构、重做日志组和重做日志成员。
使读者可以把握如何创建以及删除重做日志组和重做日志成员。
日志切换和检查点事件是涉及重做日志维护的重要事件,通过对这两个事件的学习有助于实现重做日志的维护。
之后介绍与重做日志相关的报警文件信息和LGWR追踪文件,为故障处理提供了很好的线索。
最后介绍归档重做日志。
8.1 Oracle为何引入重做日志Oracle引入重做日志的原因是为进行数据恢复。
在数据库运行过程中,用户更改的数据会暂时存放在数据库高速缓冲区中,而为了提高写数据库的速度,不是一旦有数据变化,就把变化的数据写到数据文件中,因为频繁的读写磁盘文件使得数据库系统效率降低,所以,要等到数据库高速缓冲区中的数据达到一定的量或者满足一定条件时,DBWR进程才会将变化了的数据提交到数据库中,也就是DBWR将变化了的数据写到数据文件中。
这种情况下,如果在DBWR把变化了的更改写到数据文件之前发生了宕机,那么数据库高速缓冲区中的数据就全部丢失,如果在数据库重新启动后无法恢复这部分用户更改的数据,显然是不合适的。
而重做日志就是把用户变化了的数据首先保存起来,其中LGWR进程负责把用户更改的数据先写到重做日志文件中。
在数据库原理课程中,这种机制也叫做日志写优先。
这样在数据库重新启动时,数据库系统会从重做日志文件中读取这些变化了的数据,将用户更改的数据提交到数据库中,写入数据文件。
为了提高磁盘效率,并为了防止重做日志文件的损坏,Oracle引入了一种重做日志结构,如图8-1所示。
在该图中,重做日志文件结构由三个重做日志组组成,每个重做日志组中有两个重做日志成员(重做日志文件),当然可以有更多的重做日志组,每个组中也可以有更多的重做日志成员。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
集美大学计算机工程学院实验报告
课程名称:大型数据库技术班级:计算12实验成绩:
指导教师:杨艳华姓名:
实验项目名称:重做日志文件、表空间管理操作学号:20上机实践日期:2014.12实验项目编号:实验五组号:上机实践时间:2学时
一、实验目的
1、理解重做日志文件的基本概念;
2、掌握重做日志文件组及其成员的添加、移动、删除等操作;
3、掌握归档重做日志的设置;
4、理解表空间的基本概念和分类;
5、掌握永久表空间的创建和管理操作;
6、掌握还原表空间的管理。
二、实验要求
1、完成重做日志文件组及其成员文件的管理操作;
2、完成归档重做日志的设置;
3、完成永久表空间和临时表空间的管理操作;
4、完成还原表空间的管理。
三、实验内容
(1)查看数据库当前重做日志文件组及成员的设置情况,然后,为数据库添加一组重做日志,组内包含两个成员文件,分别为redo4a.log和redo4b.log,大小分别为5MB。
(2)为上面新添加的那组重做添加一个日志成员,命名为“redo4c-姓名简拼.log”,实现重做日志的多路存储。
(3)把数据库从非归档模式修改为归档模式,之后创造条件让数据库立即归档,并检查归档是否成功
(4)创建永久表空间
⏹创建一个表空间名为“TB+学号后三位+姓名简拼”
⏹空间的大小为50M
⏹表空间包括两个数据文件:表空间名_01.dbf(30M)和表空间名_02.dbf(20M),大
小均不能自动扩展
⏹数据文件均存放在Oracle的安装根目录<ORACLE_BASE>下
⏹区的分配方式为统一大小,192K
⏹段管理采用自动方式
(5)改变上述永久表空间的可用性
⏹先将表空间脱机
⏹再进行联机
(6)创建一个4K的非标准块表空间,命名为“tbf+学号后三位+姓名简拼”,数据文件存储在”<ORACLE_BASE>\oradata\orcl\姓名简拼”目录下,大小为(学号后三位*2)M。
(7)创建一个临时表空间
⏹名为“TTB+学号后三位+姓名简拼”
⏹包含一个数据文件:表空间名_01.dbf,大小为(学号后三位*2)M,存储
在”<ORACLE_BASE>\oradata\orcl\姓名简拼”目录下,文件的大小可以自动扩
展。
⏹将该临时表空间设置为数据库的默认临时表空间
⏹再将该临时表空间设置为scott用户的默认临时表空间
⏹查询相关的数据字典验证上面的设置。
(8)查看数据库内各个表空间及其类型,以及区管理方式、分配类型和段空间管理方法、表空间的状态。
(9)删除前面创建的非标准块表空间,同时删除表空间的内容和对应的操作系统文件。
(10)创建一个还原表空间,命名为“UNDO+学号后三位+姓名简拼”,其中包含一个数据文件(存储在”<ORACLE_BASE>\oradata\orcl\姓名简拼”目录下,命名为“表空间名_01.dbf”),大小为200M,设置该表空间的RETENTION_GUARANTEE属性。
然后,将它设置为数据库的当前表空间。
(11)为前面创建的永久表空间添加一个数据文件,命名为“表空间名_03.dbf”,该文件初始大小为50M,允许自动扩展,存储在”<ORACLE_BASE>\oradata\orcl\姓名简拼”目录下。
(12)将永久表空间中初始的两个文件移动到”<ORACLE_BASE>\oradata\orcl\姓名简拼”目录下。
(13)同时将前面创建的永久表空间和UNDO表空间内的文件进行重命名,把文件名中的“_”去掉。
三、实验小结
1、通过本次实验,我对重做日志文件组及其成员的添加、移动、删除等操作、归档重做日志的设置、表空间的基本概念和分类、永久表空间的创建和管理操作、还原表空间的管理都有了更为深入的了解和掌握;
2、切换数据库状态前,必须关闭数据库,由于没有关闭数据库,导致在数据库状态切换过程中遇到了很多问题;
3、通过本次实验,我能够完成重做日志文件组及其成员文件的管理操作、完成归档重做日志的设置、完成永久表空间和临时表空间的管理操作。