LoginSignup
8
5

More than 5 years have passed since last update.

HiRDB Tips

HiRDB Tips 集

昔、HiRDBのクラスタリング環境を作るというミッションがあり、盛大に嵌りました。多分今までのエンジニア人生で一番、折角なので色々学んだTipsを書きます。

別スキーマへの参照権の付与

  • まずは参照させるユーザでログインする
  • GRANT SELECT ON テーブル名 TO 参照させるユーザ;

SQLで日付を使う(oracleのsysdateみたいなもん)

  • CURRENT_TIMESTAMP
  • CURRENT_DATE
  • CURRENT_TIME

pdsqlでAutoCommit

SET AUTO COMMIT ON;
で auto commit

SET AUTO COMMIT OFF;
で auto commit off

## RDエリアを拡張する
まずファイルを作る

expand rdarea RDエリア名
file name "作成したファイルシステム領域"
initial 2000 segments ; ←2000セグメント追加

pdmod -a フルパスで上記ファイル

ロックを探す

pdls -d lck

## SQL実行時のトレースログを出す(チューニング時に使うとか)
PDSQLTRACE=0 ・・・トレースファイルサイズ0無制限
PDCLTPATH=/xxxx/yyy ・・・トレースファイル格納ディレクトリパス
PDSQLEXECTIME=YES ・・・SQL実行時間をトレースログに出す
PDUAPREPLVL=a      ・・・統計情報をトレースログに出す
を環境変数にセットして、pdsql経由でSQLを実行

テーブル一覧を検索する

SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE,N_COLS FROM MASTER.SQL_TABLES WHERE TABLE_SCHEMA='スキーマ名'

これを使えば、その他のシステム系テーブルの名前が分かり便利です。
Columテーブルとか、Indexテーブル、RDエリアテーブルとか
Oracleのdba_tablesとかmysqlのinfomationschemaみたいなもん

テーブル定義を出力(Oracleのdesc)

columns テーブル名

ファイルに記載されたSQLを実行

pdsql < ファイル名(SQLが記述)
pdsql < ファイル名(SQLが記述)> 結果がファイルに出力

※参考情報 pdsqlでSQLの結果をファイルで出力
putfile

HiRDBに接続中のユーザの強制削除(実行中のSQL毎)

返って来ないSQLを強制終了もします。マニュアル読みつつ自己責任で実行して下さい。

pdcancel -x [サーバ名] -i [プロセスID] -d
pdcancel -X [ユニット名] -i [プロセスID] -d (パラレルサーバ)

プロセスIDはpdls -d prc で見つける

データがnullだった場合の初期値(Oracleのnvl)

COALESCE(ID, 'aaaaa')AS ID  … IDがnullだったらaaaaaという文字列を返す

データ全削除 (Oracle のtruncate table)

PURGE TABLE テーブル名;

RDエリアの閉塞解除

pdrels -r [RDエリア名] -o
※RDエリア名は*でワイルドカードな指定が可能

トリム

LTRIM,RTRIM

差集合検索(Oracleのminus)

exceptまたはexcept all
※union みたいに使う

日付フォーマット変換 (Oracle のto_charみたいなもん)

VARCHAR_FORMAT(日付カラム,'YYYY-MM-DD ')
VARCHAR_FORMAT(日付カラム,'HH-MI-SS.N')

文字位置検索

position('def' in 'abcdefc' from 1)

最後に

上記色々書きましたが、当時一番苦労したのが
HiRDBのパラレルサーバで、クラスタリング環境を構築するタスクでした。
マニュアルと格闘しつつサポートに頼りつつ、相当苦労しました。

最終的には何とかなりましたが
Unix初心者が手を出せる領域じゃないんだなぁと実感しました。
同じ苦労をしている人がいたら、頑張って下さい!!

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5