undo管理

Jun 07, 2016 pm 03:28 PM
from select sql undo database environment manage

数据库环境: SQL select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production PL/SQL Release 11.2.0.1.0 - Production

数据库环境:

SQL> select * from v$version;

 

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE 11.2.0.1.0 Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

 

1. undo作用

Copy after login
undo数据也称为回滚数据,用户确保数据的一致性。主要用于回退事务、读一致性、事务恢复、闪回查询
Copy after login
    回退事务:当执行DML操作修改数据时,undo数据被存放到undo段,而新数据则被存放到数据段中,如果事务操作存在问题,需要回退事务,用以取消事务变化。例如用户A执行对emp表,执行delete操作,即delete from emp where empno=‘1’,如果发现错误删除员工号 1,那么就可以通过执行rollback语句取消事务变化。当执行rollback命令时,数据库将undo段的undo数据empno是1的记录回写到数据段中。
Copy after login
    读一致性:当用户检索数据时,oracle只能将已经commit的数据或者特定时间点的数据(select时间点)展示给用户。这样就可以确保数据的一致性。例如,当用户A执行update emp set sal=1  where empno=1时,(备注更新之前 sal是888)undo记录会被存放到回滚段中,而新数据则会存放数据段中,如果此时数据尚未提交,并且用户B执行select sal from emp where empno=1,此时用户B取得是undo数据888。         
Copy after login
    事务恢复:事务恢复是实例恢复的一部分,由oracle server 自动完成的,如果在数据库运行过程中出现实例失败(如断电),那么当重启数据库 时,后台进程smon(system monitor)会自动执行实例恢复,执行实例恢复时,oracle会重新做所有未应用的记录,回退未提交事务。
Copy after login
    闪回查询:用户取的特定时间的数据库数据,用于9i,10g,11g等版本
Copy after login
2.  undo重要参数
Copy after login
 undo_management:该参数指定undo表空间管理方式,分别是auto和manager,默认是auto
Copy after login
undo_retention:该参数指定undo表空数据保留最大时间,默认是900s
Copy after login
undo_tablespace:该参数指定当前的undo表空间
Copy after login
SQL> show parameter undo 
Copy after login
NAME				     TYPE	 VALUE
Copy after login
------------------------------------ ----------- ------------------------------
Copy after login
undo_management 		     string	 AUTO
Copy after login
undo_retention			     integer	 9000
Copy after login
undo_tablespace 		     string	 UNDOTBS1
Copy after login
可以通过alter system set【参数名称】=【参数值】进行修改
Copy after login
例如:
Copy after login
Copy after login
SQL> alter system set undo_retention=9000;

Copy after login
System altered.
Copy after login
3. undo表空间
Copy after login
创建undo表空间:create undo tablespace 表空间名称 datafile '文件名称' size 文件大小;
Copy after login
例如:SQL> create undo tablespace undotbs04 
Copy after login
         datafile '/home/oracle/app/oracle/oradata/orcl/undotbs04.dbf' 
Copy after login
          size 50m;
Copy after login
修改undo表空间
Copy after login
a.为undo表空增加数据文件 alter tablespace 表空间名称 add  datafile '文件名称'  size 文件大小
Copy after login
例如:
Copy after login
Copy after login
SQL>  alter tablespace undotbs04 
Copy after login
           add datafile  '/home/oracle/app/oracle/oradata/orcl/undtbs04_01.dbf'
Copy after login
            size 50m;
Copy after login
b.修改undo数据文件大小:alter database datafile '文件名称' resize 文件大小
Copy after login
SQL> alter database datafile '/home/oracle/app/oracle/oradata/orcl/undotbs04.dbf' resize 100M;
Copy after login
c.重命名undo数据文件
Copy after login
步骤1:表空间离线
Copy after login
SQL> alter tablespace undotbs04 offline; 
Copy after login
步骤2:在操作系统层面重命名数据文件
Copy after login
[oracle@localhost orcl]$ mv undtbs04_01.dbf undotbs04_01.dbf;
Copy after login
步骤3:用alter tablespace重命名表空间对应的数据文件
Copy after login
SQL> alter tablespace undotbs04 rename datafile '/home/oracle/app/oracle/oradata/orcl/undtbs04_01.dbf' to 
Copy after login
     '/home/oracle/app/oracle/oradata/orcl/undotbs04_01.dbf';
Copy after login
步骤4:表空间在线
Copy after login
SQL> alter tablespace undotbs04 online;
Copy after login
删除undo表空间 :drop tablespace 表空间名称
Copy after login
SQL> drop tablespace undotbs04;
Copy after login
备注:数据文件并未真正被删除,需要手动删除
Copy after login
SQL> drop tablespace undotbs2 including contents;
Copy after login
备注:会级联删除数据文件
Copy after login
切换当前undo表空间:alter system set undo_tablespace='表空间名称'
Copy after login
create table t1(i int);
insert into t1 values(1);
insert into t1 values(2);
commit;
create table t2 rowdependencies as select * from t1;
Copy after login

 

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is the difference between HQL and SQL in Hibernate framework? What is the difference between HQL and SQL in Hibernate framework? Apr 17, 2024 pm 02:57 PM

HQL and SQL are compared in the Hibernate framework: HQL (1. Object-oriented syntax, 2. Database-independent queries, 3. Type safety), while SQL directly operates the database (1. Database-independent standards, 2. Complex executable queries and data manipulation).

How does Go language implement the addition, deletion, modification and query operations of the database? How does Go language implement the addition, deletion, modification and query operations of the database? Mar 27, 2024 pm 09:39 PM

Go language is an efficient, concise and easy-to-learn programming language. It is favored by developers because of its advantages in concurrent programming and network programming. In actual development, database operations are an indispensable part. This article will introduce how to use Go language to implement database addition, deletion, modification and query operations. In Go language, we usually use third-party libraries to operate databases, such as commonly used sql packages, gorm, etc. Here we take the sql package as an example to introduce how to implement the addition, deletion, modification and query operations of the database. Assume we are using a MySQL database.

How does Hibernate implement polymorphic mapping? How does Hibernate implement polymorphic mapping? Apr 17, 2024 pm 12:09 PM

Hibernate polymorphic mapping can map inherited classes to the database and provides the following mapping types: joined-subclass: Create a separate table for the subclass, including all columns of the parent class. table-per-class: Create a separate table for subclasses, containing only subclass-specific columns. union-subclass: similar to joined-subclass, but the parent class table unions all subclass columns.

Detailed tutorial on establishing a database connection using MySQLi in PHP Detailed tutorial on establishing a database connection using MySQLi in PHP Jun 04, 2024 pm 01:42 PM

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos Jul 18, 2024 am 05:48 AM

Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

An in-depth analysis of how HTML reads the database An in-depth analysis of how HTML reads the database Apr 09, 2024 pm 12:36 PM

HTML cannot read the database directly, but it can be achieved through JavaScript and AJAX. The steps include establishing a database connection, sending a query, processing the response, and updating the page. This article provides a practical example of using JavaScript, AJAX and PHP to read data from a MySQL database, showing how to dynamically display query results in an HTML page. This example uses XMLHttpRequest to establish a database connection, send a query and process the response, thereby filling data into page elements and realizing the function of HTML reading the database.

How to handle database connection errors in PHP How to handle database connection errors in PHP Jun 05, 2024 pm 02:16 PM

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.

Tips and practices for handling Chinese garbled characters in databases with PHP Tips and practices for handling Chinese garbled characters in databases with PHP Mar 27, 2024 pm 05:21 PM

PHP is a back-end programming language widely used in website development. It has powerful database operation functions and is often used to interact with databases such as MySQL. However, due to the complexity of Chinese character encoding, problems often arise when dealing with Chinese garbled characters in the database. This article will introduce the skills and practices of PHP in handling Chinese garbled characters in databases, including common causes of garbled characters, solutions and specific code examples. Common reasons for garbled characters are incorrect database character set settings: the correct character set needs to be selected when creating the database, such as utf8 or u

See all articles