忍者ブログ

OracleDBAの技術メモ

最近物覚えが悪くなったので 仕事中に調べた後々役立つ情報をメモしております。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

”@”入りのパスワードでログインできない

以下のように”@”が入ったパスワードの場合、SQL*Plusでログインが失敗する現象を確認。

パスワード:xxxx@01

(確認したのはWindows版のみ。Linux版は未検証。)

==========
C:\> sqlplus test_user/"xxxx@01"@xe

SQL*Plus: Release 11.2.0.1.0 Production on 月 10月 1 16:03:23 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS: 指定された接続識別子を解決できませんでした


==========

どうやら、パスワード中の”@”を接続識別子の先頭の”@”と認識している様子。
エスケープしてやれば良いのかといろいろ試すが接続できなかった。


解決法
一旦、/nolog オプションで接続せずにSQL*Plusを起動し、
connect コマンドで接続すれば大丈夫な様子。

==========
C:\> sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 月 10月 1 16:09:43 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn test_user/"xxxx@01"@xe
接続されました。
SQL>

==========

PR

VPSでテストサーバ構築-その1-VPS申込み

前々からテストサーバが欲しいなとおもっていたこともあり、
この際なので最近話題のVPS(ヴァーチャル・プライベート・サーバ)を申し込むことに。

GMOのVPSはちょくちょく広告を見かけますね。


ネットで評判を調べると…
ん~あんまり高負荷には耐えられないような様子。

まあ、GMO自体、あんまり評判よくないですしね。
こないだもこのブログのドメイン設定消されたし…

なんやかんやで、さくらのVPSにしました!


2週間のお試し期間があるらしいし。

ちなみにお試し期間はメール送信ポート?が使用できないとか、
アップロードのネットワーク帯域速度が制限されるとか
とかとかの制約があるとか。

申込み自体は簡単でした。

メアドとか住所とかカード情報とかを入力したら、
VPSのコントロールパネルWebページが開きます。

ただし、この段階ではまだ何もできません。

「仮登録完了のお知らせ」メールが届いたところで使用可能になる様子…
(うろおぼえ)
メールの時刻から見ると20分ほど待たされた様子。

そこから仮想サーバの「起動」ボタンを押すことによりサーバが起動します。
また、「リモートコンソール」なるWebページも存在します。
これは画面中央にCUIのコンソール画面っぽいものが表示されます。

どうもこれはローカル接続な様子ですね。
(後々説明しますが、ネットワーク経由のrootログインを禁止にしても
 ここからはrootログインが可能でした。)

「仮登録完了のお知らせ」メールが届く前にここを開いても
コンソール画面がちゃんと開けなかったり、
セットアップ過程のログが延々流れたりしてました。

そんなこんなで、使用できるようになるのはすぐでした~。

自動オプティマイザ統計収集無効化

デフォルトで有効になっている自動オプティマイザ統計収集を
何らかの理由(プラン・スタビリティ等?)で無効にしたい場合、
以下のコマンドを実行する。

BEGIN
    DBMS_AUTO_TASK_ADMIN.DISABLE(
        client_name => 'auto optimizer stats collection',
        operation => NULL,
        window_name => NULL);
END;
/

また、有効にしたい場合は以下のコマンドを実行する。

BEGIN
    DBMS_AUTO_TASK_ADMIN.ENABLE(
        client_name => 'auto optimizer stats collection',
        operation => NULL,
        window_name => NULL);
END;
/

参考:Oracle® Databaseパフォーマンス・チューニング・ガイド 11gリリース2(11.2) B56312-03
    13.2.1 自動オプティマイザ統計収集の有効化と無効化

実行計画取得

以下のSQL文により実行計画を取得できる。
ここではExcel等へ取り込みやすくするために、カンマ区切りで出力するようにしている。


select
          operation
|| ',' || options
|| ',' || object_node
|| ',' || object_owner
|| ',' || object_name
|| ',' || object_alias
|| ',' || id
|| ',' || parent_id
|| ',' || depth
|| ',' || position
|| ',' || search_columns
|| ',' || cost
|| ',' || cardinality
|| ',' || bytes
|| ',' || other_tag
|| ',' || cpu_cost
|| ',' || io_cost
|| ',' || temp_space
|| ',' || access_predicates
|| ',' || filter_predicates
|| ',' || time
from gv$sql_plan
where sql_id = '~';


これで、SQL*Plus上でAUTOTRACE ONと同等(若干劣る?)の情報量が出力できる。
ただし、少々編集が必要。
AWR SQLレポート等では出力されない抽出条件は
「access_predicates」、「filter_predicates」に格納される。


また、FROM句のテーブルを DBA_HIST_SQL_PLAN にすることにより、
過去の実行計画も参照できる。
ただし、実行計画が変わっている場合は、SQL_IDも変わっている?
確認のために DBA_HIST_SQLTEXT 等を参照して確認した方がよい。
DBA_HIST_SQL_PLAN では「access_predicates」、「filter_predicates」列も存在するが、
内容は格納されない模様。

ORDER BY句はあえて付加していない。
V$SQL_PLAN はメモリ上に常駐しているため、問合せによって負荷をかけることは少ないが、
ORDER BY句を付加すると余計なソート処理が入るので、
問合せ件数によってはレスポンスも遅くなり、サーバに負荷がかかる恐れもある。

テストデータ生成用便利SQL

階層問合せ(CONNECT BY句)を使用して、
簡単に連続したIDを持つ複数レコードを作成する。

INSERT INTO XXX(ID)
SELECT LEVEL ID FROM DUAL
CONNECT BY LEVEL < 1000


このINSERT文を実行することにより、
テーブルXXXにIDが1~999までのレコードをINSERTすることができる。

ブログ内検索

プロフィール

HN:
宇佐 義男
性別:
男性
自己紹介:
都内で活動中のフリーエンジニア
最近はOracle DBに関する作業が主です。

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

最新CM

[08/06 Apagajid]
[06/23 Ajimehof]
[05/28 ovkftcz]
[05/20 Adeepen]
[05/13 Ajirubuy]

バーコード

P R

忍者アナライズ

免責事項

当ブログは日本オラクル株式会社 及びその子会社、関連会社とは一切関係ありません。 当ブログに記述の内容については、実際とは異なる場合があります。 記載しているコマンド、スクリプトを利用したことによって発生した問題、障害等については一切責任を負いません。 利用は自己責任にてお願い致します。