-PR-
  • すぐに回答を!
  • 質問No.7648418
解決
済み

oracle シーケンスの欠番を確認したい

  • 閲覧数652
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 8% (1/12)

いつもお世話になります。

oracleのシーケンスの欠番を確認したいのですが、以下のようにサービス、インスタンスの再起動を試してみたのですが欠番はおきませんでした。

・サービスの再起動
コントロールパネルから、サービスを開いて、「OracleServiceXE」、「OracleXETNSListener」の再起動。
シーケンスをselectした結果、欠番確認できず。

・インスタンスの再起動
コマンドプロンプトを起動し、sqlplusから、sysdbaでoracleに接続。
shutdown、startupコマンドを行い、インスタンスを再起動。
シーケンスをselectした結果、欠番確認できず。

インスタンスの再起動を行えば欠番がおきる、というのをサイトで見たのですが、欠番は起きませんでした。なぜ起きないのでしょうか。
何か手順に不備があるのでしょうか。

alter system文による欠番は確認しています。
しかし、意図的にこのコマンドを発行しなければよいので、確認したいのは、通常運用時、データベースが起因してシーケンスの欠番が発生してしまう、ということです。
再起動などは普通に行うと思うので、その際に欠番が発生することを確認したいのです。

宜しくお願いします。

oracle:Oracle Database 11g Express Edition Release 11.2.0.2.0
OS:Windows Vista Home Promium 64bit
通報する
  • 回答数2

質問者が選んだベストアンサー

  • 回答No.2
レベル11

ベストアンサー率 72% (230/318)

こんにちわ。

> 元々キャッシュに関してはデフォルトのまま(20)で試してますが、欠番は確認できていません。
> 以前のoracleのバージョンだと欠番されていたが、11gだと起きないものなのでしょうか?
Sequence から採番した時に、SGA (Shared Pool) にCache されるので、
事前に「select seq1.nextval from dual;」とか行って、アクセスしておかないと
Cache されません。
11g (11.2.0.3) で最近確認しましたが、Shared Pool をFlush しただけで普通に
欠番が発生していました。

書き忘れましたが、RAC 環境だったりすると、1Node を再起動しても、もう1Node が
情報を持ってたりするらしく、欠番は発生しませんでした。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル11

ベストアンサー率 72% (230/318)

こんにちわ。 > なぜ起きないのでしょうか。 Sequence がCache されていないのだと思います。 Default では、Cache されるので SQL> Create sequence seq1; SQL> select seq1.nextval from dual; としてから、インスタンスを再起動してみて下さい。 ...続きを読む
こんにちわ。

> なぜ起きないのでしょうか。
Sequence がCache されていないのだと思います。
Default では、Cache されるので
SQL> Create sequence seq1;
SQL> select seq1.nextval from dual;

としてから、インスタンスを再起動してみて下さい。
お礼コメント
narukami521

お礼率 8% (1/12)

返答ありがとうございます。

元々キャッシュに関してはデフォルトのまま(20)で試してますが、欠番は確認できていません。
以前のoracleのバージョンだと欠番されていたが、11gだと起きないものなのでしょうか?
投稿日時 - 2012-08-21 06:51:34
  • 回答数2
このQ&Aで解決しましたか?
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


-PR-

ピックアップ

-PR-
ページ先頭へ