Oracle读一致性学习笔记

Jun 07, 2016 pm 05:14 PM

为避免ORA-1555快照太旧的错误,出现了undo_retention参数,表示当事务提交或回滚后,该事务所使用的undo块里的数据需要保留多长

1 回滚与撤销

       Refer:《深入解析Oracle》by eygle

(1)    为了多用户的读一致性和能回退事务,oracle提供了为修改的数据保存修改之前的旧值。

(2)    Redo:保证在故障时事务可以恢复

Undo:保证事务可以被回滚或撤销

(3)    9i之前,oracle提供回滚段(rollback)来撤销数据;之后,oracle使用undo表空间来管理。

(4)    下面这个例子是介绍9i前,是如何保证可以回滚的。

Update emp set sal=4000 where empno=7788;

简单看一下这个语句的执行过程:

A:检查empno=7788记录在database buffer cache中是否存在;否,则读取到database buffer cache中。

B:在回滚表空间的相应回滚段事务表上分配事物槽,这个操作需要记录redo信息。

C:在回滚段读入或者在database buffer cache中创建sal=3000的旧值,这需要产生redo信息并记入redo log buffer。

【B,C这两步保证了事务的可回滚性,此后事务的修改才能进行】

D:修改sal=4000,这是update的数据变更,需要记录redo log buffer。

F:当用户提交时,会在redo log buffer记录提交信息,并在回滚段标记该事务为非激活(inactive)。

(5)    如果用户回滚(rollback)事务,则oracle需要从回滚段中把旧值读取出来,修改database buffer cache,完成rollback,这个过程本身会产生redo,so回滚是expensive。

(6)    回滚段在undo表空间中分配,其作用:回退事务,事务恢复,提供读一致性。

对于DML:

Insert:回滚段只需记录插入的记录的rowid;

Update:回滚段只需记录被更新字段的旧值;

Delete:oracle必须记录整行的数据

所以,对产生undo的情况看,delete产生的undo最多,推荐对大规模数据删除操作时,分批删除,分次提交,以减少对回滚段的占用和冲击。

(7)    oracle区别于其他数据库的一个重要的特征:

通过多版本架构,oracle实现了读取和写入的分离,使得写入不阻塞读取,读取不阻塞写入。

多版本架构是通过一致性读来实现的。

      

  假定scott的薪水为3000:

A:t1时刻我们在session 1 查询可以得到3000;

B:t2时刻session 2进行update,但未提交(此时数据在database buffer cache中已经修改,该buffer为dirty)

C:t3时刻session 1再次查询,注意此时,oracle不会允许其他用户看到未提交的数据,oracle需要通过回滚段记录的旧值进行一致性读,将3000恢复出来给用户,这是一致性读的作用;

D:t4时刻,session 2提交该更改,此时数据修改已被永久化;

F:t5 时刻,其他用户再次查询;将会看到变化后的数据,也就是4000.

       Notice:

              A:每个数据块头部都会记录一个提交的SCN,当数据更改提交后,提交后,提交SCN同时被修改,这个SCN在查询时可以用来进行一致性读的判断。

              B:上图中,假定查询开始的时间为t1,则查询获取的数据块中,如果数据块的提交SCN小于t1,则oracle接收该数据【session 2便是这种情况】;如果提交SCN大于t1或者数据被锁定修改尚未记录提交SCN,则oracle需要通过回滚段构造前镜像来返回结果【session 1便是这种情景】,这就是一致性读的本质含义。

       (8)9i之后,oracle引入了undo表空间,若选择自动的undo表空间管理,,则oracle会动态创建和释放回滚段,自动为事务指定回滚段。

                命令:Show parameter undo

                里面有个参数undo_retention与ORA_01555错误有关。

                这个参数可调:alter system set undo_retention=**;

                Undo_retention:当事务提交后undo信息保留的时间(秒);

                10g对于undo增加了guarantee控制:

                     Alter tablespace undotbs1 retention guarantee | noguarantee

                     区别:

                            若把undo表空间自动扩展属性取消:

                     Alter database datafile ‘/u01/app/oracle/product/10.2.0/oradata/undotbs’

Autoextend off;

                     进行循环删除数据

                     在guarantee设置下,会出现ORA-30036错误;

                     在noguarantee设置下,则可以顺利完成,因为oracle启动自动调整以满足最长运行查询的需要。

       (9) ORA-01555成因与解决

              A:成因:

I)              由于回滚段是循环使用的,当事务提交后,该事务占用的回滚段事务表会被标识为inactive,回滚段表空间可以被覆盖重用。但是,当一个查询需要使用被覆盖的回滚段构造前镜像实现一致性读,那么就会出现著名的ORA-01555错误。

II)           未完待续。。。。。。。。。。

2     大师,你好!
   我在《深入浅出oracle》一书的167页的一句话不清楚,原话是:如果读取的block不满足读一致性需求,则server进程需要通过当前block版本和回滚段构造前镜像返回给用户。‘读一致性’是怎么判断出来的,被修改的数据要作排他锁,别人怎么读取那,盼回复,谢谢!

     根据SCN来判断阿。

3读一致性(Read Consistency),这是数据库的一个关键特性,可以确保用户在查询期间看到一致的数据。也就是说,当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。

linux

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

トップ10グローバルデジタル仮想通貨取引プラットフォームランキング(2025権限ランキング) トップ10グローバルデジタル仮想通貨取引プラットフォームランキング(2025権限ランキング) Mar 06, 2025 pm 04:36 PM

2025年、グローバルデジタル仮想通貨取引プラットフォームは、トランザクションのボリューム、セキュリティ、ユーザーエクスペリエンスなどの指標に基づいて、2025年に世界のトップ10のデジタル通貨取引プラットフォームを激しく競争しています。 OKXは、強力な技術的強さとグローバルな運用戦略で最初にランクされており、Binanceは高流動性と低料金に密接に続きます。 Gate.io、Coinbase、Krakenなどのプラットフォームは、それぞれの利点がある最前線にいます。このリストには、Huobi、Kucoin、Bitfinex、Crypto.com、Geminiなどの取引プラットフォームがそれぞれ独自の特徴がありますが、投資は注意する必要があります。プラットフォームを選択するには、セキュリティ、流動性、料金、ユーザーエクスペリエンス、通貨選択、規制コンプライアンスなどの要因を考慮し、合理的に投資する必要があります

数値の最大の素因数を見つける C プログラム 数値の最大の素因数を見つける C プログラム Aug 27, 2023 am 10:09 AM

素因数分解 - 整数理論では、正の整数の素因数は、その整数を正確に割る素数です。これらの数を見つけるプロセスは、整数因数分解、または素因数分解と呼ばれます。例 - 288 の素因数は: 288=2x2x2x2x2

2025年の通貨サークルのトップ10の交換 2025年の通貨サークルのトップ10の交換 Feb 27, 2025 pm 06:33 PM

トップ10の仮想通貨取引プラットフォームのランキング(2025年の最新): Binance:グローバルリーダー、高い流動性、規制が注目を集めています。 OKX:大規模なユーザーベース、複数の通貨をサポートし、レバレッジされた取引を提供します。 gate.io:さまざまなフィアット通貨支払い方法を備えた上級交換は、さまざまな取引ペアと投資商品を提供します。 Bitget:デリバティブ交換、高流動性、低料金。 Huobi:さまざまな通貨と取引ペアをサポートする古い交換。 コインベース:厳密に規制されている有名なアメリカの交換。 フェメックスなど。

トップ10のデジタル通貨取引プラットフォームトップ10のデジタル通貨取引プラットフォームの最新リスト トップ10のデジタル通貨取引プラットフォームトップ10のデジタル通貨取引プラットフォームの最新リスト Mar 17, 2025 pm 05:57 PM

トップ10のデジタル通貨取引プラットフォーム:1。OKX、2。BINANCE、3。GATE.IO、4。HuobiGlobal、5。Kraken、6。Coinbase、7。Kucoin、8。Bitfinex、9。Crypto.com、10。Gemini、これらの交換は、ユーザーがユーザーを選択できます。

デジタル通貨アプリ用のトップ10の取引プラットフォーム、通常の通貨投機プラットフォームアプリの推奨 デジタル通貨アプリ用のトップ10の取引プラットフォーム、通常の通貨投機プラットフォームアプリの推奨 Mar 07, 2025 pm 06:51 PM

この記事では、10個のデジタル通貨トレーディング。プラットフォームを選択する際には、セキュリティ、流動性、取引料、通貨選択、ユーザーインターフェイス、カスタマーサービスサポート、規制コンプライアンスなどの要因を考慮し、リスクを慎重に評価し、盲目的にトレンドに従うことはありません。

世界のトップ10仮想通貨取引プラットフォームアプリ本物のダウンロードとインストールチュートリアル 世界のトップ10仮想通貨取引プラットフォームアプリ本物のダウンロードとインストールチュートリアル Mar 12, 2025 pm 05:33 PM

この記事では、Binance、Okx、Gate.io、Huobi Global、Coinbase、Kucoin、Kraken、Bitfinexなどの主流のデジタル通貨取引プラットフォーム向けのAndroidおよびAppleモバイルアプリのダウンロード方法を提供しています。 AndroidユーザーであろうとAppleユーザーであろうと、対応するプラットフォームの公式アプリのダウンロードリンクを簡単に見つけて、手順に従ってインストールを完了することができます。 この記事では、それぞれの公式Webサイトまたはアプリストアでの検索とダウンロードに関する詳細なガイダンスを提供し、AndroidにAPKファイルをインストールするための特別な手順に関する指示を提供して、ユーザーが迅速かつ簡単にダウンロードして使用できるようにします。

信頼できるデジタル通貨プラットフォームは何ですか? 信頼できるデジタル通貨プラットフォームは何ですか? Mar 17, 2025 pm 05:45 PM

信頼できるデジタル通貨プラットフォームには、1。OKX、2。GATE.IO、4。HuobiGlobal、6。Coinbase、7。Bitfinex、9。Crypto.com、10。Geminiが顧客を選択することができます。

トップ10デジタル通貨アプリトレーディングプラットフォームTop10仮想通貨アプリ2025ランキング トップ10デジタル通貨アプリトレーディングプラットフォームTop10仮想通貨アプリ2025ランキング Mar 13, 2025 pm 07:00 PM

トップの仮想通貨プラットフォームは次のとおりです。 ランキングは、プラットフォームの流動性、通貨の選択、セキュリティ、ユーザーエクスペリエンス、取り扱い料、コンプライアンスなどの包括的な考慮事項に基づいていますが、参照のみがお客様の責任である必要があります。

See all articles