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 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Apr 17, 2024 pm 02:57 PM

HQL と SQL は Hibernate フレームワークで比較されます。HQL (1. オブジェクト指向構文、2. データベースに依存しないクエリ、3. タイプ セーフティ)、SQL はデータベースを直接操作します (1. データベースに依存しない標準、2. 複雑な実行可能ファイル)。クエリとデータ操作)。

Go 言語はデータベースの追加、削除、変更、クエリ操作をどのように実装しますか? Go 言語はデータベースの追加、削除、変更、クエリ操作をどのように実装しますか? Mar 27, 2024 pm 09:39 PM

Go 言語は、効率的かつ簡潔で習得が容易なプログラミング言語であり、同時プログラミングやネットワーク プログラミングに優れているため、開発者に好まれています。実際の開発ではデータベースの操作が欠かせませんが、今回はGo言語を使ってデータベースの追加・削除・変更・クエリ操作を実装する方法を紹介します。 Go 言語では、データベースを操作するために通常、よく使用される SQL パッケージや gorm などのサードパーティ ライブラリを使用します。ここでは SQL パッケージを例として、データベースの追加、削除、変更、クエリ操作を実装する方法を紹介します。 MySQL データベースを使用していると仮定します。

Hibernate はポリモーフィック マッピングをどのように実装しますか? Hibernate はポリモーフィック マッピングをどのように実装しますか? Apr 17, 2024 pm 12:09 PM

Hibernate ポリモーフィック マッピングは、継承されたクラスをデータベースにマップでき、次のマッピング タイプを提供します。 join-subclass: 親クラスのすべての列を含む、サブクラス用の別個のテーブルを作成します。 table-per-class: サブクラス固有の列のみを含む、サブクラス用の別個のテーブルを作成します。 Union-subclass: join-subclass と似ていますが、親クラス テーブルがすべてのサブクラス列を結合します。

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

HTML がデータベースを読み取る方法の詳細な分析 HTML がデータベースを読み取る方法の詳細な分析 Apr 09, 2024 pm 12:36 PM

HTML はデータベースを直接読み取ることはできませんが、JavaScript と AJAX を通じて実現できます。この手順には、データベース接続の確立、クエリの送信、応答の処理、ページの更新が含まれます。この記事では、JavaScript、AJAX、および PHP を使用して MySQL データベースからデータを読み取る実践的な例を示し、クエリ結果を HTML ページに動的に表示する方法を示します。この例では、XMLHttpRequest を使用してデータベース接続を確立し、クエリを送信して応答を処理することで、ページ要素にデータを埋め込み、データベースを読み取る HTML の機能を実現します。

PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル Jun 04, 2024 pm 01:42 PM

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

PHP でデータベース接続エラーを処理する方法 PHP でデータベース接続エラーを処理する方法 Jun 05, 2024 pm 02:16 PM

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Jun 03, 2024 pm 02:20 PM

Golang でデータベース コールバック関数を使用すると、次のことを実現できます。 指定されたデータベース操作が完了した後にカスタム コードを実行します。追加のコードを記述せずに、個別の関数を通じてカスタム動作を追加します。コールバック関数は、挿入、更新、削除、クエリ操作に使用できます。コールバック関数を使用するには、sql.Exec、sql.QueryRow、または sql.Query 関数を使用する必要があります。

See all articles