ablog

不器用で落着きのない技術者のメモ

2010-11-01から1ヶ月間の記事一覧

Oracle Net のタイムアウト関連のパラメータの関係

こんな感じじゃないかと思います。 設定ファイル パラメータ パラメータが導入されたリリース デフォルト値 tnsnames.ora TRANSPORT_CONNECT_TIMEOUT 11.2.0 60秒 tnsnames.ora CONNECT_TIMEOUT 11.2.0 なし?(指定しない場合OS依存?) sqlnet.ora SQLNET.…

tnsnames.ora に enable=broken を記述して無効な接続を破棄する

想像で書いてますw 前提 OS が Linux の場合の説明です。 tnsnames.ora に ENABLE=BROKEN を記述する。 クライアント側で以下の通りカーネル・パラメータが設定されているとする。 % sysctl -a|grep keepalive net.ipv4.tcp_keepalive_intvl = 75 net.ipv4.t…

Oracle RAC でサーバープロセスとLMSプロセスがキャッシュフュージョンするときのイメージ

Oracle RAC on Linux でキャッシュフュージョンを行う際、サーバープロセスがLMSプロセスに対してブロック転送を要求し、LMSプロセスがブロックをサーバープロセスに転送する図を書いてみた。ソケットバッファに関して、いろいろ検証してみたいことがあるの…

To Do

ほんとうにメモです。見ないでw bonding について検証する フリーリスト管理とASSMの性能比較 UDP送受信バッファについて検証する 投票ディスクの過半数に障害が発生すると全ノード再起動しなければいけない理論を整理する HVE weblogicのマルチデータソース…

Oracle Workspace Manager ってなんだ?

Workspace Managerでは、データベース内の1つ以上のユーザー表をバージョン対応にすることができます。バージョン対応表では、表内のすべての行は複数バージョンのデータをサポートします。バージョニングのインフラストラクチャは、データベース・ユーザー…

Oracle Database をインストール前に設定する /etc/security/limits.conf と /etc/profile について

Oracle Database や Grid Infrastructure の製品マニュアル(Oracle Databaseのインストール前の作業、クラスタ用Oracle Grid Infrastructureの拡張インストール前の作業)に /etc/security/limits.conf と /etc/profile を以下のように設定するよう書かれて…

/etc/services って何に使われてるんだろ?

services は、人が分かりやすい形のインターネットサービスの名前と、 それらのサービスに割り当てられたポート番号や プロトコル種別の対応関係が書かれているテキストファイルである。 ネットワーク上で動作するプログラムはすべて、 そのサービスに対応す…

raw デバイス数の上限

raw デバイス数の上限は 256 という話を聞いたので調べてみました。 デフォルトは 256 で変更するにはカーネルをコンパイルし直す必要がありそうですね。 The maximum number of RAW devices that are supported. Default is 256. Increase this number in c…

net.ipv4.tcp_rmem を変更してプログラムが使用するTCP受信バッファのサイズを変更する

カーネルパラメータ net.core.[rw]mem_{default,max} の意味を考えてみた - ablog に書いた仮説をテストプログラムを書いて検証したいけど、やらないといけないことがいっぱいあるので、ひとつだけ試してみるだけでがまんすることにした。 tcpbuf_default_si…

11gR2 RAC の OS グループ・ユーザーのイメージ

書いているうちにごちゃごちゃしてしまった。 grid ユーザは asmadmin のメンバーだから、右の人は左上と同一人物ですね。 ちょっと絵がおかしいけど、まあいいかw テキストで書いたイメージ Inventory = oinstall->{oracle, grid} OSASM = asmadmin->grid …

リモートホストのデータベースのデータを Data Pump でエクスポートする

Data Pump Exportユーティリティの起動時、接続文字列には接続識別子を指定できます。この識別子では、現行のOracleシステム識別子(SID)によって指定した現行のインスタンスとは別のデータベース・インスタンスを指定できます。接続識別子には、Oracle*Net…

初期化パラメータ STATISTICS_LEVEL と AWR スナップショットの統計情報取得レベル

STATISTICS_LEVEL = TYPICAL (デフォルト) データベースの自動管理機能で必要とされるすべての主要統計が収集され、全体的なパフォーマンスが最適化されます。ほとんどの環境では、デフォルト値を変更する必要はありません。 STATISTICS_LEVEL = ALL TYPICAL…

RMAN のリカバリ・カタログ・データベースをコールドバックアップで運用する場合の考慮事項

リカバリ・カタログ・データベース障害時はリストアして、ターゲットデータベースに接続して resync すればよい。 リカバリ・カタログ・データベースを日次バックアップする場合、ターゲット・データベースの初期化パラメータ CONTROL_FILE_RECORD_KEEP_TIME…

バインド変数を使えば必ず SQL が速くなるというわけではない

門外不出のOracle現場ワザ (DB Magazine SELECTION) のスバラシイ記事をオラクルのウェブサイトから引用します。 Oracle Database の「バインドピーク」機能についてとバインド変数ではなくリテラルで記述したほうが適切なケースなどについて書かれてます。 …

オプティマイザ統計情報をロックする方法

SQL> exec DBMS_STATS.LOCK_SCHEMA_STAT('SCOTT'); 参考 http://www.oracle.com/technology/global/jp/pub/jp/db_magazine/mongai/chapter4_3.html オプティマイザ統計の管理 DBMS_STATS

カーネルパラメータ net.core.[rw]mem_{default,max} の意味を考えてみた

インストールの前提条件の作業を手動で行う方法 を見ると、カーネルパラメータ net.core.[rw]mem_{default,max} の推奨値が以下の通り記載されている。 カーネルパラメータ Byte 人に優しく net.core.rmem_default 262144 256KB net.core.rmem_max 4194304 4…

リスナー経由で Oracle Database に接続しようとすると TNS-12518 が発生する

現象 リスナー経由で Oracle Database に接続しようとすると、TNS-12518 が発生する。 $ sqlplus scott/tiger@192.168.45.102:1521/orcl TNS-12518: TNS:listener could not hand off client connection TNS-12547: TNS:lost contact TNS-12560: TNS:protoco…

ps で実効グループを表示させる方法

$ ps -eo '%U %G %p %c' USER GROUP PID COMMAND root root 1 init root root 2 migration/0 root root 3 ksoftirqd/0 root root 4 watchdog/0 root root 5 migration/1 root root 6 ksoftirqd/1 root root 7 watchdog/1 ... ↓使い方は man で見れます。 $ u…

Oracle Database 11gR2 関連のメモ

ASM では MEMORY_TARGET の使用を推奨、最小値は256MB。 自動メモリー管理では、MEMORY_TARGETパラメータによってOracle ASMインスタンスとデータベース・インスタンスの両方のメモリー関連のパラメータが自動的に管理されます。自動メモリー管理は、MEMORY_…

top はなぜ vmstat より負荷が高いのか

top は vmstat に比べて負荷がかかると言いますが、具体的に何が違うのかちょっと調べてみました。 オープンするプロセスファイルシステム(/proc)のファイルが違う気がするので、strace で調べてみました。 vmstat がオープンしているファイルを調べる。 %…

OS から見た Oracle Database on Linux が使用しているメモリサイズを表示するシェルスクリプト

今年の春に作った Oracle Database on Linux が使用しているメモリサイズを表示するシェルスクリプトをとりあえず github に push しました。かなりてきとーなシェルスクリプトです。精査してませんし、改善すべき点もたくさんあると思います。 ソースコード…

11gR2 の Oracle Clusterware のプロセスの起動シーケンス

Oracle Clusterwareの概要 に 11gR2 RAC のクラスタウェアのわかりやすいプロセス一覧と起動シーケンス図があった。あと、以下の資料「Oracle Database 11g Release2 Oracle Clusterware アーキテクチャ」がすばらしいです。 http://www.oracle.com/technolo…

SQL のみで全テーブルのレコード数を数える方法

SQL マスターの id:niwanos さんがツイートされてた URL が気になったので見てみると、Oracle ACE の明智重蔵さんが動的にSQLを作成せずに自スキーマの全テーブルのレコード数を数えるSQLを掲載されていた。 select table_name, to_number( extractvalue( xm…

キャラクタデバイスだとブロックバッファをバッファページにキャッシュしない

タイトルが変ですがあまり気にしないでくださいw キャラクタデバイスはブロックデバイスじゃないんだからブロックバッファなんかなくて当たり前ですよね。 そんなことを現在勉強中です>< 準備 デバイスファイルを確認する。 oel11gr2 root% ls -l /dev/sdb…

バッファページにブロックバッファをキャッシュするのはファイルシステムではない?

バッファページ*1もページキャッシュ*2もファイルシステムのキャッシュだと思っていましたが、どうやら勘違いしていたようです。 ブロックデバイスのデバイスファイル(/dev/sda1など)に直接アクセスした場合は、メモリ上にキャッシュされないと思っていま…

ファイルがページキャッシュに乗っているかどうかを調べる

Linux上で任意のファイルがページキャッシュに乗っているかどうか調べるCで書かれたプログラムを見つけたので、コンパイルして実行してみた。 Linux上のとあるファイルがページキャッシュに乗っているかどうかを調べたいなーと思ってGoogle先生にご相談した…

Poderosa のように PuTTy から Cygwin を使う

手順 Cygwin をインストールする Putty をインストールする cmdエラー - もの置き場 - アットウィキ CygTerm(1.07) をインストールする http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/ $ cd /cygdrive/d/software $ tar xfz cygterm107.tgz $ cd cygterm1…

テキストファイルの全ての行をカンマで繋げるPerlワンライナー

私のお気に入り「テキストファイルの全ての行をカンマで繋げる sed スクリプト」: $ sed ':;N;s/\n/,/;b' 〇〇.txt (たった14文字だけで、他の言語の if文・while 文・文字列置換を表せるのだ) Twitter. It's what's happening. これは短い。 ちょっとやって…

RHEL 5.3 on Xen で grub.conf でI/Oスケジューラに何を指定しても noop になってしまう

Bug 498461 – I/O scheduler setting via elevator kernel option not picked up by Xen guest に面白い情報があったのでまとめてみた。 まとめ 現象 Xen のゲストOS(Dom-U)の /boot/grub/grub.conf でI/Oスケジューラを設定して再起動しても、常に noop …

大規模分散システムのアーキテクチャについてなど

ただのメモ。 知られざる「マルチテナントアーキテクチャ」(2)~スケーラビリティのカギは組織ID - Publickey セールスフォースのアーキテクチャ(物理アーキテクチャ編)~ Podによるスケールアウト - Publickey セールスフォースのアーキテクチャ(マ…