UNDO表空间与Undo的认识
undo的三大作用:1.提供一致性读。2.回滚事务。3.实例恢复 查看表空间是属于temporary,undo还是permanent? select tablespace_name,contents,status from dba_tablespaces where tablespace_name like '%UNDO%'; 1.管理Undo表空间--创建新的Undo表空间CREATE
undo的三大作用: 1.提供一致性读。2.回滚事务。3.实例恢复 查看表空间是属于temporary,undo还是permanent? select tablespace_name,contents,status from dba_tablespaces where tablespace_name like '%UNDO%';1.管理Undo表空间 --创建新的Undo表空间 CREATE UNDO TABLESPACE UNDOTBS2 datafile '/paic/g2bh8060/dev/xqd/oradata/hd02ntlf/undotbs2_01.dbf' size 500m autoextend on RETENTION NOGUARANTEE; 默认是NOGUARANTEE --为Undo表空间增加文件 alter tablespace undotbs1 add datafile '/u01/oracle/undo01.dbf' size 500m autoextend on; alter tablespace undotbs1 add datafile '+DATA_MIDG' size 500m autoextend on; 查询与更改undo表空间是否retention guarantee select tablespace_name,RETENTION from dba_tablespaces where tablespace_name like '%UNDO%'; ALTER DATABASE UNDOTBS01 RETENTION GUARANTEE|NOGUARANTEE; 更改系统默认表空间 show parameter undo_tablespace alter system set undo_tablespace=undotbs2; undo表空间删除 drop tablespace undotbs1 INCLUDING CONTENTS AND DATAFILES; undo表空间更名 alter tablespace undotbs2 rename to undotbs1; 重建undo表空间 1.因为延迟段创建的原因,可以先将参数取消; show parameter segment alter system set deferred_segment_creation=false; 2.创建undotemp表空间 3.alter system set undo_tablespace=undotemp;(如果延迟段创建特性启用了,会提示表空间不存在) 4.旧的undotbs1 drop掉。 旧的表空间现在是pending offline状态,等待offline,要等其上的事务都结束后才能真正offline。 ORA-30013: undo tablespace 'UNDOTBS1' is currently in use 5.新的rename成旧的。
2.认识UNDO undo相关参数: undo_management AUTO --9i以后我们undo_management都用auto undo_tablespace UNDOTBS2 --可以动态指定系统undo表空间 undo_retention 900 --单位秒,默认900 undo_retention是针对select操作的,比如闪回查询,我们一般希望能闪回查询3小时内的数据。 事务中的undo块都是active的,事务结束后的块是inactive的,inactive的undo块在过了undo_retention 指定的时间后,就会变成expired。 比如DB最长的查询也在5分钟内,那我undo_retention只要设成300,那么这个select会遭遇01555快照太旧的可能性就比较小,但不保证。 ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要指定一个UNDO 表空间。 如果设为manual,系统启动后使用rollback segment方式存储undo信息。如果系统没有指定undo_management,那么系统默认以manual方式启动,即使设置了auto方式的参数,这些参数将被忽略。 假如数据库中用RETENTIONGUARANTEE子句配置了保证保留撤销。如果撤销表空间太小不能满足使用它的所有活动事务,那么会发生以下情况: 1、如果撤销表空间用完85%,Oracle将发布一个自动表空间警告 2、当撤销表空间用完97%时,Oracle将发布一个自动表空间严重警告 3、所有DML语句将不允许,并且会接收到一个空间超出错误 4、DDL语句允许继续执行 所以PA数据库undo表空间都是NOGUARANTEE,无论生产还是测试库。 RETENTIONGUARANTEE的情况下,undo_retention秒数内的undo都不能被覆盖,所以如果expired与freed的块几乎没了,Undo表空间也不能自动扩展,就会报上面的错误。 undo_retention参数的作用,在RETENTIONGUARANTEE的情况下,可以作为是否保证undo块不被覆盖的分界线,而在没有设retention的情况下,例如PA的情况,就是作为是否被优先覆盖的分界线。所以此处只有两个优先级,在线的任何一边,都是随机随意地没优先级地覆盖的。 Undo表空间中已经分配给表空间的extend大小。 @tsfree 即 select d.tablespace_name, space "SUM_SPACE(M)", blocks sum_blocks, space - nvl(free_space, 0) "USED_SPACE(M)", round((1 - nvl(free_space, 0) / space) * 100, 2) "USED_RATE(%)", free_space "FREE_SPACE(M)" from (select tablespace_name, round(sum(bytes) / (1024 * 1024), 2) space, sum(blocks) blocks from dba_data_files group by tablespace_name) d, (select tablespace_name, round(sum(bytes) / (1024 * 1024), 2) free_space from dba_free_space group by tablespace_name) f where d.tablespace_name = f.tablespace_name(+) order by 1; 其中USED_SPACE(M)里面,都是已经分配给表空间使用的。里面有4钟状态的undo块。 undo块存在的四种状态 select tablespace_name,status,sum(bytes)/1024/1024 mb from dba_undo_extents group by tablespace_name,status; active:表示正在使用该undo的事务还没有commit或rollback UNEXPIRED(inactive):表示该undo上没有活动的事务,该状态的undo可以被其他事务覆盖。 expired:表示该undo块持续inactive的时间超过undo_retention所指定的时间 freed:表示该undo块内容是空的,从来没有被使用过。 一个事务申请Undo表空间: 1.如果undo表空间是可以自动扩展的,首先自动扩展。 2.如果没得扩展了,就找free的区用。 3.没有free的区了,就找expired的undo区用。 4.没有expired的,就找unexpired的,此时这些区还没过undo_retention时间,所以会导致闪回查询无法保证使用咯。 5.还是没有的话,报错,active的区肯定不会被使用的。 Retention Guarantee模式下,一个事务申请undo表空间只走上述的第1,2,3点。3点走完后也申请不到Undo空间就报错。也就是说undo_retention时间内的undo块一定不会被覆盖。
往数据库中做导数操作,批量DML而又长时间不能commit的操作的时候,要给Undo表空间加几个文件,并且开自动扩展,保持监控

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











win11 の設定を参照すると、タッチ キーボードの設定があることがわかりますが、画面はタッチ スクリーンをサポートしていないため、この win11 のタッチ キーボードは何に使用されますか?実際、これはオンスクリーン キーボードです。 win11 タッチ キーボードの機能: 1. win11 タッチ キーボードは実際には「オンスクリーン キーボード」です。 2. 実際のキーボードをシミュレートし、クリックすることでキーボードを使用できます。 3. キーボードがない場合、またはキーボードが壊れている場合は、キーボードを使用して入力できます。 4. Win11 には、タッチ キーボード用のカスタマイズされたオプションが豊富に用意されています。 5. さまざまな色とテーマが含まれており、ユーザーは好みのスタイルを自由に切り替えることができます。 6. 左上隅の「歯車」をクリックして、キーボードのレイアウト、手書き入力、その他の入力方法を変更します。

nohup の役割と原理の分析 Unix および Unix 系オペレーティング システムでは、nohup はバックグラウンドでコマンドを実行するためによく使用されるコマンドです。ユーザーが現在のセッションを終了したり、ターミナル ウィンドウを閉じたりしても、コマンドはまだ実行され続けています。この記事では、nohup コマンドの機能と原理を詳しく分析します。 1. nohup の役割: バックグラウンドでのコマンドの実行: nohup コマンドを使用すると、ターミナル セッションを終了するユーザーの影響を受けることなく、長時間実行されるコマンドをバックグラウンドで実行し続けることができます。これは実行する必要があります

Bluetooth アダプターは何をしますか? 科学技術の継続的な発展に伴い、無線通信技術も急速に開発され、普及してきました。中でもBluetooth技術は、近距離無線通信技術として、さまざまな機器間のデータ伝送や接続に広く利用されています。 Bluetooth アダプターは Bluetooth 通信をサポートする重要なデバイスとして重要な役割を果たします。 Bluetooth アダプターは、Bluetooth 非対応デバイスを Bluetooth 通信をサポートするデバイスに変えることができるデバイスです。無線信号をBluetooth信号に変換することで、機器間の無線接続やデータ通信を実現します。 Bluetoothアダプター

Linux システムでは、特にシステムのメモリが少ない場合に、スワップ スペースが重要な役割を果たします。これは、システムがスムーズに動作し、高負荷下でも安定性を維持できるようにするバックアップ メモリの保存スペースとして機能します。この記事では、システムのパフォーマンスが最適化され、さまざまなワークロードを処理できるようにするために、Ubuntu 22.04LTS にスワップ領域を追加するための詳細なガイドを提供します。スワップ スペースについて スワップ スペースは、システムの物理 RAM を補足するために使用される仮想メモリを提供します。システムの RAM が不足すると、カーネルはメモリ不足やシステムのクラッシュを防ぐためにデータをディスクにスワップします。 Linux システムは通常、この状況に対処するためにスワップ領域を使用します。メモリを大量に消費する複数のアプリケーションを同時に実行して、非常に大きなファイルやデータを処理します。

LinuxDTS の役割と使用法を理解する 組み込み Linux システムの開発において、デバイス ツリー (DeviceTree、略して DTS) は、システム内のハードウェア デバイスとその接続関係と属性を記述するデータ構造です。デバイス ツリーを使用すると、カーネルを変更せずに、Linux カーネルをさまざまなハードウェア プラットフォーム上で柔軟に実行できます。この記事では、LinuxDTS の機能と使用法を紹介し、読者の理解を深めるために具体的なコード例を示します。 1. デバイスツリーの役割 デバイスツリー

PHPにおけるdefine関数の重要性と役割 1.define関数の基本紹介 PHPにおいて、define関数は定数を定義するための重要な関数であり、定数はプログラムの実行中に値が変化しません。定義関数を使用して定義された定数は、スクリプト全体からアクセスでき、グローバルです。 2. 定義関数の構文 定義関数の基本的な構文は次のとおりです。

Gunicorn の基本概念と機能 Gunicorn は、Python Web アプリケーションで WSGI サーバーを実行するためのツールです。 WSGI (Web Server Gateway Interface) は Python 言語で定義された仕様で、Web サーバーと Web アプリケーション間の通信インターフェイスを定義するために使用されます。 Gunicorn では、WSGI 仕様を実装することで、Python Web アプリケーションを運用環境にデプロイして実行できるようになります。ガニコーンの機能は次のとおりです。

Java における volatile キーワードの役割と適用シナリオの詳細説明 1. volatile キーワードの役割 Java では、volatile キーワードは、複数のスレッド間で参照できる変数を識別する、つまり可視性を確保するために使用されます。具体的には、変数が volatile と宣言されると、その変数への変更は他のスレッドに即座に知られます。 2. Volatile キーワード ステータス フラグのアプリケーション シナリオ volatile キーワードは、次のようないくつかのステータス フラグ シナリオに適しています。
