undo管理

Jun 07, 2016 pm 03:28 PM
from select sql undo 資料庫 環境 管理

数据库环境: 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作用

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

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

 

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Hibernate 框架中 HQL 和 SQL 的差異是什麼? Hibernate 框架中 HQL 和 SQL 的差異是什麼? Apr 17, 2024 pm 02:57 PM

Hibernate 框架中 HQL 和 SQL 的差異是什麼?

Go語言如何實作資料庫的增刪改查操作? Go語言如何實作資料庫的增刪改查操作? Mar 27, 2024 pm 09:39 PM

Go語言如何實作資料庫的增刪改查操作?

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

在PHP中使用MySQLi建立資料庫連線的詳盡教學

Hibernate 如何實作多型映射? Hibernate 如何實作多型映射? Apr 17, 2024 pm 12:09 PM

Hibernate 如何實作多型映射?

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片

深入解析HTML如何讀取資料庫 深入解析HTML如何讀取資料庫 Apr 09, 2024 pm 12:36 PM

深入解析HTML如何讀取資料庫

PHP處理資料庫中文亂碼的技巧與實踐 PHP處理資料庫中文亂碼的技巧與實踐 Mar 27, 2024 pm 05:21 PM

PHP處理資料庫中文亂碼的技巧與實踐

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

如何在PHP中處理資料庫連線錯誤

See all articles