1.还原数据的管理方法
在9i或以后的版本中提供了两种方法来管理还原数据
1) 自动的还原数据管理:Oracle服务器自动地管理还原段的创建,分配和优化等。
2) 手动的还原数据管理:所有的还原段的创建,分配和优化等都是手工管理的。
这里还原(undo)一词在以前的版本中被称为回滚(rollback)。
在Oracle数据库中,当某个进程修改数据时,Oracle首先将它的原始值(还原数据)存入一个还原段中。
2.Oracle使用还原段的目的
1)事务回滚
2)事务恢复
3)保证数据的读一致性
为了更好的理解Oracle是如何维护读一致性的,下面通过例子来演示
1) 首先以scott用户登录,为了安全起见,先用如下DDL语句创建一个名为emp_tram的表,以后的DML操作都使用该表
SQL>create table emp_tran as select * from emp;
2) 在使用DML修改该表之前,先查看数据
SQL>SELECT empno,ename,job,sal FROM emp_tran WHERE job=’CLERK’;
3) 用DML语句将所有文员的工资提升为2000
SQL>UPDATE emp_tran SET sal=2000 WHERE job=’CLERK’;
4) 此时并未提交所作的修改操作,那么启动DOS窗口SQL*plus中查询此表数据还是没变,这时必须提交数据
SQL>COMMIT;
5) 这时再在DOS窗口SQL*plus中查询数据已改。
3.还原段的类型
1) 可能是为了管理和维护的方便,Oracle数据库系统中的还原段具有以下不同的类型:
系统还原段,非系统还原段和延迟还原段
2)非系统还原段又包括了自动管理的还原段和手动管理的还原段两种,其中手动管理的还原段分为私有和公有两类
4. 自动还原数据管理的概念和配置
1)如果要Oracle自动管理还原数据,数据库管理员就必须在初始化参数文件中配置以下两个参数:UNDO_MANAGEMENT和UNDO_TABLESPACE,而且还必须创建至少一个还原表空间,其中:
1) UNDO_MANAGEMENT:说明系统是使用自动不是手动模式
2) UNDO_TABLESPACE:说明系统使用哪个还原表空间
2)可以在数据库的初始化参数文件中使用类似如下的参数设置,将还原数据的管理设为自动
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS1
3)UNDO_MANAGEMENT不是动态参数,但是UNDO_TABLESPACE是动态参数,可以使用ALTER SYSTEM SET命令修改
ALTER SYSTEM SET undo_tablespace=UNDOTBS2;
4)查询数据库中还原数据管理是自动还是手动,使用的还原表空间
SQL>SELECT name,value FROM v$parameter WHERE name LIKE ‘%undo’;
5. 还原表空间的创建和维护
1)共有两种方法创建还原表空间
第1种:通过在CREATE DATABASE命令中加入一个子句, 在创建数据库时建立还原表空间。
第2 种:在创建数据库之后,使用CREATE UNDO TABLESPACE命令来建立还原表空间
2)通过一个例子来演示第2种方法
SQL>CREATE UNDO TABLESPACE jinlian_undo DATAFILE ‘J:\DISK7\MOON\jinlian_undo.dbf’ SIZE 20 M;
3) 验证
SQL>SELECT tablespace_name,status,contents FROM dba_tablespaces WHERE contents=’UNDO’;
4) 为还原表空间增加一个25MB的额外数据文件
SQL>ALTER TABLESPACE jinlian_undo ADD DATAFILE ‘J:\DISK8\MOON\jinlian2_undo.DBF’ SIZE 25M;
5) 验证是否增加数据文件
SQL>SELECT file_id,file_name,tablespace_name,bytes/1024/1024 MB FROM dba_data_files WHERE tablespace_name LIKE ‘JIN%’;
6) 将还原表空间的一个数据文件设置为自动扩展
查看表空间那个数据文件可以自动扩展
SQL>SELECT file_id,file_name,tablespace_name,autoextensible FROM dba_data_files WHERE tablespace_name LIKE ‘JIN%’;
7) 发现两个数据文件都不能自动扩展,用以下DDL语句将较小的一个数据文件设置为可以自动扩展
SQL>ALTER DATABASE DATAFILE ‘J:\DISK7\MOON\jinlian_undo.DBF’ AUTOEXTENT ON;
8) 验证
SQL>SELECT file_id,file_name,tablespace_name,autoextensible FROM dba_data_files WHERE tablespace_name LIKE ‘JIN%’;
6.还原表空间之间的切换
1) Oracle规定在任何时刻只能将一个还原表空间赋予数据库,也就是在一个实例中可以有多个还原表空间存在,但是只能有一个为活动的。
2) 将数据库当前的还原表空间动态的切换为jinlian_undo
SQL>ALTER SYSTEM SET UNDO_TABLESPACE=jinlian_undo;
3) 验证
SQL>SELECT name,value FROM v$parameter WHERE name LIKE ‘%undo%’;
7.删除还原表空间
1)用户无法删除当前正在使用的还原表空间
2)删除表空间
SQL>DROP TABLESPACE jinlian_undo;
3) 验证
SQL>SELECT tablespace_name,status,contents FROM dba_tablespaces WHERE contents=’UNDO’;
4)DDL语句并未删除操作系统文件,利用操作系统工具删除还原表操作系统文件。
8.自动还原数据管理的一些参数
1)还原数据管理的自动模式中试图执行手动操作时将不显示错误的信息
SQL>ALTER SESSION SET UNDO_SUPPRESS_ERRORS=true;
2)数据库中还原数据在事务提交后至少要保留900秒,也就是15分钟,用如下命令修改,UNDO_RETENTION该参数决定为了保证读一致性还原数据所保留的时间,单位为秒。
SQL>ALTER SYSTEM SET UNDO_RETENTION=1800;
验证还原数据保留时间是否增加到30分钟
SQL>SELECT name,value FROM v$parameter WHERE name LIKE ‘%undo%’;
9.获得还原数据的信息
Oracle9i之后提供了一种获得还原数据统计信息的方法,即数据字典v$undostat
SQL>SELECT TO_CHAR(begin_time,’HH:MM:SS’) begin_time,TO_CHAR(end_time,’HH:MM:SS’) end_time,undoblks,txncount,maxquerylen FROM v$undostat;
分享到:
相关推荐
在SQL Server 2005中,数据还原是恢复数据库至特定时间点或状态的关键操作,与SQL Server 2000相比,其过程确实有所不同。以下是对SQL Server 2005数据还原方法的详细解释: 首先,SQL Server 2005的数据还原不再像...
在SQL Server 2014中进行数据还原是一项非常重要的操作,特别是在数据丢失或损坏的情况下。本文将详细介绍如何使用SQL Server 2014进行数据库还原,并针对一些常见问题提供解决方案。 #### 一、SQL Server 2014 ...
本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理,本系统应达到以下目标: 系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。 实现对餐厅顾客开台、点菜/加菜、...
在IT行业中,数据备份与还原是至关重要的环节,特别是在企业环境中,确保数据的安全性和完整性是系统管理员的重要职责。VB(Visual Basic)是一种流行的编程语言,它以其易学易用的特性,常被用于开发各种实用工具,...
第9章 管理还原数据 第10章 实施Oracle数据库安全性 第11章 配置Oracle网络环境 第12章 主动维护 第13章 性能管理 第14章 备份和恢复概念 第15章 执行数据库备份 第16章 执行数据库恢复 第17章 执行闪回 第18章 移动...
#### 管理还原数据 - **还原段**:用于存储事务处理过程中未提交的数据。 - **自动还原管理**:通过`UNDO_MANAGEMENT`参数开启或关闭。 - **UNDO表空间**:专门用于存储还原数据的表空间。 - **调整UNDO表空间大小*...
MySQL 数据备份和还原是数据库管理中非常重要的一步,能够防止数据丢失和恢复数据库。下面将介绍 MySQL 数据备份和还原的常用命令。 MySQL 数据备份命令 1. 备份 MySQL 数据库的命令 mysqldump -hhostname -...
总之,数据备份和还原是企业IT管理中不可或缺的一部分。定期备份数据并制定合理的备份策略,结合自动备份功能,可以有效地降低数据丢失的风险,确保在突发情况下的业务连续性。在实施备份策略时,应考虑备份效率、...
在MySQL数据库管理中,日志文件(Binary Log,简称binlog)扮演着至关重要的角色,它记录了所有改变数据库状态的事务,是数据备份、恢复和复制的基础。本篇文章将详细探讨如何使用Python工具binlog2sql来从binlog...
选择正确文件后,点击"Import"按钮,PL/SQL Developer会开始执行还原操作,将.dmp文件中的数据导入到数据库中,从而恢复到备份时的状态。 在备份和还原过程中,需要注意以下几点: 1. 确保在进行备份和还原操作时,...
网络管理型还原卡5.2是一款专为计算机系统保护设计的软件工具,它极大地便利了IT管理员和普通用户对电脑的管理和维护。该软件的主要功能是实现系统的即时还原,即在计算机遭受病毒攻击、系统崩溃或者误操作后,能够...
本文将深入探讨SQL Server 2005和VS2008中的数据备份与还原机制,这对于确保数据的安全性和业务连续性至关重要。 首先,我们要理解“备份”在数据库管理中的作用。备份是为了防止数据丢失,无论是由于硬件故障、...
总结来说,ThinkPHP5.1提供了强大的数据库管理工具,支持多数据库链接,使数据备份和还原变得更加方便。通过合理利用框架提供的API和工具,开发者可以构建高效、安全的数据库备份与恢复方案,为企业的数据安全提供...
本文将围绕一款名为“PonderExplore”的软件进行深入探讨,该软件集成了信息系统运维、数据查询、数据库管理和数据备份与还原等功能,旨在简化日常的数据维护工作,降低操作复杂度,提升工作效率。 “PonderExplore...
在IT领域,数据库管理是至关重要的,特别是在处理大量数据时。Access是一款由Microsoft开发的关系型数据库管理系统,广泛应用于中小型企业和个人用户。本文将详细介绍“Access数据库数据还原工具”及其核心功能,...
对于SQL Server这样的大型关系型数据库管理系统,定期备份、还原以及附加和分离数据库是常见的维护操作。本项目聚焦于提供一个C#编写的工具,实现了对SQL Server数据库的自动化处理,使得这些繁琐的任务变得简单高效...
2. 权限检查:执行数据还原操作通常需要管理员权限,如SYSDBA或SYSOPER角色。确保你有足够的权限执行导入操作。 三、DMP文件的导入步骤 1. 创建目录对象:首先,你需要在Oracle数据库中创建一个目录对象,用于指定...