NonStopSQL関連の知識をためていきます


NonStop日本語マニュアル

https://h50146.www5.hpe.com/products/servers/nonstop/download/

MFCの技術説明

https://www.slideshare.net/fjongma/mfc-whitepaper

JDBC Type4の Trace取得方法

-Dt4sqlmx.T4LogLevel=ALL -Dt4sqlmx.T4LogFile=<LogFile>

をオプションに加える

(T4ドライバはMXCSを使ってDBにアクセスをするJavaのドライバー)

gtaclのnohup化

端末接続をしてシェルからnohupでgtaclを実行しても端末接続を切ると、プロセスが終了してしまう
端末接続断の時に、画面出力先の端末が消滅してしまうからだ~ そのため、次の様にする

gtacl -term /G/zhome -c "<コマンド>"

これで端末接続が切れても、出力先が zhomeになるので処理が継続する
⇒ gtaclの出力先を grep してローカルファイルに落とすといったシェルが作れる

そのシェルをnohupで起動して、そのprocess id をファイルに保存しておき、あとでkillする作りにすれば、バックグランドで処理を継続できる

DataSourceの状態確認

mxci
mode mxcs;
info ds *.*,detail;
info server *.*,detail;

info serverは各DataSource(DS)に接続しているmxosrvrのプロセス情報を取得
各個別のDS名を指定することで表示範囲を狭めることも可能
また、大文字小文字の違いがなかったりするので、必要であれば""でかこう必要がある

起動方法は

start ds <DS名>;

止め方は

stop ds <DS名>, reason '理由';

設定変更は

alter evar <DS名>.<KEY>, value '<NEW_VALUE>';
alter ds <DS名>, <KEY> <value>;

DS名は OASとDS名のフルパスにする

measureの状態確認と停止

super.superなどの特権ユーザでログインして

meascom
1+ status meassubsys

これで現在稼働しているMeasureファイルが一覧表示される
止めるには

2+ stop <MeasureFileFullPath>

の様に実行する (たとえば、 stop $WORK001.MEASURE.CP031510 の様に )

rpmの使い方

性能をリアルタイムで測定するのにはrpmを使用する

rpm
> set term vt100
> add <SEVERNAME>
> zoom \*

画面に一定間隔で性能がカラーで表示更新される
SERVERは複数指定することが可能(画面分割される)
終了は<Ctl-C>

EMSの使い方

emsdist /pri 10/ty p,co $0,te $home,ti xx:xx, st xx:xx

tiはfrom、stはstopなので省略すると連続して最新情報が画面出力

止めるのは <Alt-B> で抜けて、 stop を入力 ⇒ 抜けただけだと、コマンドは入力できるが、画面出力も続く状態

logon freezeの解除

ログインを続けて失敗してFREEZEされたら、 特権ユーザー(super.superなど)でログインして、

safecom
=info alias <user>
=thaw alias <user>
=fc info
=info alias <user>
.
=exit

で解放する

パラメータ指定SQL実行方式(mxci)

sql の中身を編集して、? を ?P1 の様に、番号をつける\ 与えるパラメータを個別に指定する(全てのパラメータを定義する必要がある)

PREPARE q FROM
 [SQL文] ;
set param ?P1 'XXXXXXX';
set statistics on;
execute q;

途中経過の処理件数とパラメータ付与でのSQL実行を確認できる

MFCの実行計画取得方法

explain options 'e' 'MXSTMT01' from '<MFC_FILE>';

オプションは f も可、MFC_FILE名は無印を指定

普通のSQLの場合は

PREPARE q FROM
 [SQL文] ;
explain options 'f' q;
explain options 'e' q;

で画面表示される

obeyの作り方、動かし方

textファイルでMACROを作成 → ftp or ffftp で転送 (Guardian modeでの転送)

⇒ テキストファイルとして保存される → run <できればフルパス> で動く

Guardian / OSS のファイル名相互変換

gname -s <OSS_FILE> ⇔ pname -s <Guardian_FILE>

⇒ -s がないともう少し詳細なデータが表示される

shellからGuardianのプログラムを呼ぶ場合

基本gtacl を実行するのだが、shellから実行する場合、端末からの実行と異なる(結果が出力されない)

File=`gname -s $oss_file`
Cmd="'run \$SYSTEM.XXXX.XXXXXX ${File}'"
sh "gtacl -c ${Cmd}"

最後を単に gtacl だけにすると、画面表示・出力されない

SQL/MXでテーブル一覧を表示

テーブルの一覧は

get all tables;

インデックスの一覧は

get all indexes;

OSS環境でGuardianプロセスの実行

oshなどでOSS環境になっている状態でGuradianプロセスを起動するには

 run name=/G/ProcessID Program parameter

これで、Guardian環境で実行される
プロセス間通信を使ってアクセスする場合は、

 client \$ProcessID

のように実行する。 ここでポイントは、
1) Process名には$がついている。
2) シェル実行の場合\$ とエスケープのためのバックスラッシュが必要

ログイン方法

社内LANからは、TeraTermを使って、普通のtelnetでログインする。
SSHでログインしようとすると拒絶される。
UserIDとPasswordでログイン可能。

DBにアクセス

mxci でコマンド入力が可能になる。 exit; で終了

set catalog XXXX;
set schema YYYY;

を指定すると、目的のDBにアクセスできる。(set schmea XXXX.YYYY;でもよい)
(ない場合は作成が必要、schema作成はちょっとだけ時間がかかる)

DBにまでたどり着けば、あとは、Create Table ・・・ / select * from ・・・ と普通


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-11-23 (土) 13:57:47 (261d)