システム管理レッスン10.データの並行性の管理

1. Oracleデータベースのロックメカニズムについて詳しく説明してください。

ロック:
複数のセッションが同じデータを同時に変更するのを防ぐことができ
ます。指定されたステートメントの最低レベルで自動的に取得されます(行、ブロック、テーブル)(オブジェクト、データベース、スキーム)。
ロックメカニズム:(
提供)高度なデータの同時処理(機能):

  • 挿入、更新、削除を実行するときに行レベルのロックを使用する
  • クエリはロックを必要としません。
    自動キュー管理。ロック
    はトランザクションが終了するまで保持されます(COMMITまたはROLLBACK操作を使用)。

2.トランザクションが排他的行ロックを取得すると同時に、共有テーブルロックを取得するのはなぜですか?

データベースを変更する場合は、ブロックからメモリにデータを読み取り、変更後に送信し、データベースの書き込みプロセスによってデータファイルに書き込みます。
他の管理者がテーブルを削除している間、ユーザーがテーブルの行データを変更できないようにします。

3.ロックの競合が発生した場合の解決方法は、対応するSQLコマンドを指定してください。

最初のステップは、セッションID(セッションID)
SQLステートメント見つけることです

SELECT sid, serial#, username FROM v$session
    WHERE sid IN (SELECT blocking_session FROM v$session);

v $ session現在のセッション
blocking_sessionロックを保持する任意のセッションロックの競合
解決するため2番目のステップは、
ALTER SYSTEM KILL SESSION'SID、SERIAL# 'IMMEDIATE;

A.ロックを保持しているセッションが送信またはロールバック(解放)された
B.ロックを保持しているセッションが終了した(緊急時)

4.デッドロックはどのようにして発生し、それを解決するには?

トランザクションT1はT2を待機しており、T2はT1を待機しています。2つのトランザクションが終了することはありません
。2つ以上のセッションが、他のセッションによってロックされたデータを待機しています。

ORA-00060
リソース
ソリューションの待機中にデッドロックが検出されました
完全に自動、トランザクションの1つを強制終了します

5. Oracleデータベースの行ロックは、基本的にデータブロックのロックですが、このステートメントは正しいですか。

間違っています
リレーショナルテーブルのデータがブロック内に1行ずつ保存され、行の一部が
ロックされています。

6. OCP試験問題:

阿部

TMロック(テーブルレベルロック)
TXロック(トランザクションロックまたは行レベルロック)
ロックタイプ:
排他ロック(排他ロック、つまりXロック)(書き込みロック)データオブジェクトAの読み取りと変更はトランザクションTのみが許可され、他のトランザクションは許可されません。データオブジェクトA
(読み取りロック)共有ロック(共有ロック、Sロック)では、トランザクションTはデータオブジェクトAを読み取ることができますが、Aを変更することはできません。他のトランザクションはSロックをAにのみ追加でき、Sロックは追加できません。

データベースロックメカニズム
oracle-databaseさまざまなロック詳細

おすすめ

転載: blog.csdn.net/hezuijiudexiaobai/article/details/108777826