検索

クリアフィルター
記事
Toshihiko Minamoto · 2022年9月20日

データ移行ツール パート III: DB2 から IRISへ

これは、市場に出回っている主なデータベースから InterSystems IRIS への移行に関する連載第 3 回目の記事です。 このパートでは、DB2 からの移行手続きを説明します。前の記事で説明したとおり、現時点ではいくつかの移行オプションが存在しますが、 最も一般的なオプションは、DBeaver(https://openexchange.intersystems.com/package/DBeaver)または SQLGateway を使用する 2 つの方法です。 最初のオプションはこの記事で紹介しますが、2 つ目のオプションは Robert Cemper が書いた「SQLgateway を使ったデータベース移行」(https://community.intersystems.com/post/db-migration-using-sqlgateway)という優れた記事で紹介されています。 ## 移行プロセス用のサンプルデータを取得 GitHub では、2 つのデータベースをビルドして実行する Docker Compose プロジェクトをダウンロードできます。 * **ソースデータベース**: サンプルデータベースを含む DB2 データベースの Docker インスタンス。 * **ターゲットデータベース**: ソースデータベースを受け取る準備のできたスキーマを含む InterSystems IRIS データプラットフォームの Docker インスタンス。 **サンプルを取得して実行するには、以下の手順に従います。** 1. git リポジトリの https://github.com/yurimarx/migration-db2-iris に移動します。 2. プロジェクトを Clone します。git clone https://github.com/yurimarx/migration-db2-iris.git   3. migration-db2-iris プロジェクトフォルダに移動します。 4. ビルドを実行します: docker-compose build 5. コンテナを実行します: docker-compose up -d 6. Docker デスクトップで、インスタンスに問題がないことを確認します。 ![](/sites/default/files/inline/images/images/image(3531).png) ## 移行するデータについて 最初の 2 つのパートでは、販売データベースを操作しました。 DB 2 の場合は、インストールにサンプルデータベース(より完全な販売データベース)が含まれているため、この記事ではそのデータベースを使用します。 移行されるデータは以下のとおりです。 ![](/sites/default/files/inline/images/images/image(3532).png) DB 2 から IRIS への移行プロセスには、22 個のテーブルが含まれます。 移行先は、InterSystems IRIS データベースの USER ネームスペース内にある dc_test スキーマです。 ## DB2 から IRIS に移行するためのオープンソースツール: DBeaver DBeaver は、市場に出回っている主要データベース製品を使用する際に、データオブジェクトを接続、作成、ドロップ、選択、更新、および削除するデータベースツールです。 https://openexchange.intersystems.com/package/DBeaver からダウンロードできます。 インストール手順に従って、この優れた製品をノートパソコンかデスクトップにインストールしてください。 DBeaver は、データベースのメーカーやバージョンが異なる場合であっても、データベース接続間でデータを移行するために使用できます。 ## DBeaver を使って、ソースデータベースとターゲットデータベースを接続 移行するデータベース接続を設定します。 **DBeaver への DB2 接続を設定するには:** 1.    DB2 への初回接続には、5~10 分かかります。 これは、Docker インスタンスが作成された後に DB2 スクリプトがサンプルを構築するために必要な時間です。 2.    DBeaver で、[ファイル]>[新規作成]に移動します。 3.    [データベース接続]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3533).png) 4.    [SQL]タブ >[DB2 LUW]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3534).png) 5.    以下の図に示されるように、DB2 接続のフィールドに入力します。 ●    ホスト: localhost●    ポート: 50000●    データベース: sample●    ユーザー名: db2inst1●    パスワード: password●    [終了]をクリックします。 **DBeaver への InterSystems IRIS 接続を設定するには:** 1.    DBeaver で、[ファイル]>[新規作成]に移動します。 2.    [データベース接続]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3537).png) 3.    [SQL]タブ >[InterSystems IRIS]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3538).png) 4.    DBeaver が InterSystems IRIS ドライバーのダウンロードを要求したら、[はい]または[OK]を押します。 5.    以下の図に示されるように、InterSystems IRIS 接続のフィールドに入力します。 ●    ホスト: localhost●    データベース/スキーマ: user●    ユーザー名: _SYSTEM●    パスワード: SYS●    [テスト接続]と[終了]をクリックします。 接続(sample と user)がデータベースナビゲーターで利用できるようになります。 ![](/sites/default/files/inline/images/images/image(3540).png) ## 移行を行う 移行を行うには、以下の手順に従います。 1.    sample 接続(DB2 接続)> public を展開し、すべてのテーブルを選択します。 以下の図のように、選択したテーブルを右クリックして、[データをエクスポート]を選択します。 ![](/sites/default/files/inline/images/images/image(3541).png) 2.    以下の図のようにデータベースを選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3542).png) 3.    [選択]ボタンをクリックします。 ![](/sites/default/files/inline/images/images/image(3543).png) 4.    dc_test を選択して、[OK]をクリックします。 ![](/sites/default/files/inline/images/images/image(3544).png) 5.    IRIS と DB2 では、XML 値の格納に異なるデータ型が使用されているため、ターゲットデータベースのデータ型構成を変更する必要があります。 6.    DB2INST1.CATALOG テーブルを展開して CATALOG フィールド(XML フィールド型)を選択し、[列…]をクリックします。 ![](/sites/default/files/inline/images/images/image(3545).png) 7.    ターゲットの型を LONGVARBINARY から VARCHAR(10000) に変更して、[OK]をクリックします。   ![](/sites/default/files/inline/images/images/image(3546).png) 8.    このプロセスを他のテーブルで繰り返します。 a.    CUSTOMER の INFO と HISTORY フィールド b.    PRODUCT の DESCRIPTION フィールド c.    SUPPLIERS の ADDR フィールド d.    PURCHASEORDER の PORDER フィールド 9.    ターゲットデータ型の変更が完了したら、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3547).png) 10.    [フェッチサイズ]を 1000000 に設定して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3548).png) 11.    データ読み込み設定のデフォルト値を受け入れて、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3549).png) 12.    [確認]で[続行]をクリックします。 ![](/sites/default/files/inline/images/images/image(3550).png) 13.    これで、データベースナビゲーターで、InterSystems IRIS dc_test スキーマ内のすべての DB2 テーブルが表示されるようになりました。 ![](/sites/default/files/inline/images/images/image(3551).png) テーブルの移行プロセスは非常に単純でしたが、 ビュー、関数、トリガー、およびストアドプロシージャについては、ObjectScript か SQL で SQL ソースコードを書き直す必要があります。
記事
Mihoko Iijima · 2022年5月29日

プログラムでCSVファイルをテーブルにインポート/テーブルからCSVファイルにエクスポートする方法

これは InterSystems FAQ サイトの記事です。 InterSystems IRIS/Caché の管理ポータルメニュー:SQLデータインポートウィザードの処理で行うようなCSVファイルをテーブルへインポート、テーブルからファイルにエクスポートする方法をプログラムで実行することができます。 ※ サンプルはバージョン 2017.1以降で動作確認しています。 ※ バージョン 2016.2.3以前でお試しいただく場合は、SQL.Utilsクラス の20行目をコメント化してからご利用ください。 //Set mgr.IQN=$$$BuildIQN(SchemaName,TableName) サンプルの使用手順 サンプルはこちらにあります👉https://github.com/Intersystems-jp/DataImportExport CSVファイルをテーブルへインポート、テーブルからファイルへエクスポートの処理は、SQL.Utilsクラスを使用しています。 1) サンプルのインポート 実行したいネームスペースに SQL.Utilsクラスをインポートします。 スタジオをご利用の場合は、ファイルをドラッグ&ドロップするとインポートできます。 管理ポータルでインポートされる場合は、[システムエクスプローラ] > [クラス] > (ネームスペース選択) > インポートボタンクリック でファイルを選択し、インポートを行います。 VSCodeをご利用の場合は、使用したいIRISに接続し、SQL.Utilsクラスを保存(Ctrl+S)するとインポートされます。 2)サンプルの実行方法 A) SQLで試したい場合 テストで使用するテーブル定義の作成、テストデータの追加、サンプルの実行など、SQLで実行できます。 手順は、Test.sqlをご覧ください。 B) クラスで試したい場合 SQL.TestTbl.cls をインポートします。 テストデータの作成は以下のメソッドを実行してください。 do ##class(SQL.TestTbl).CreateData() テーブルからCSVファイルへのエクスポートには、SQL.UtilsクラスのCSVExport()メソッドを使用します。 実行例は以下の通りです。 USER>do ##class(SQL.Utils).CSVExport("c:\temp\test.csv","SQL.TestTbl") Name || %Library.String Email || %Library.String Memo || %Library.String ルーチンのコンパイル中 : SQLExport4.mac テストデータの一括削除には、以下のメソッドを実行してください。 do ##class(SQL.TestTbl).DestroyData() CSVファイルからテーブルへのインポートには、SQL.UtilsクラスのCSVImport()メソッドを使用します。 実行例は以下の通りです。 USER>do ##class(SQL.Utils).CSVImport("c:\temp\test.csv","SQL.TestTbl") adding Name adding Email adding Memo Importing data Building indices... Import complete: 4 rows inserted into SQL.TestTbl
記事
Megumi Kakechi · 2021年2月15日

データベースキャッシュおよびルーチンキャッシュの最適値の設定方法

これは InterSystems FAQ サイトの記事です。 データベースキャッシュおよびルーチンキャッシュをモニターし、最適値を調べる方法をご紹介します。 (1) データベースキャッシュ 現状の設定値で問題ないかは、^GLOSTAT ユーティリティ のCache Efficency値(キャッシュ効率)でモニターします。 Cache Efficiency 値は大きければ大きいほど良いですが、目安として100 以上であれば、設定サイズは問題ありません。 実行例) %SYS>do ^GLOSTATShould detailed statistics be displayed for each block type? No =>Statistics Local Remote Total------------------------- ----------- ------------- -------------Global references (all): 207,538 0 207,538(略)Cache Efficiency: 134 no gets <--- この値(略)Continue (c), zero statistics (z), timed stats (# sec > 0), quit? こちらの値は、管理ポータルのシステムダッシュボードでも参照可能です。 [システムオペレーション] > [システムダッシュボード] また、グローバル変数毎のデータベースバッファの使用量を確認できる ^GLOBUFFユーティリティがあります。 実行例) %SYS>do ^GLOBUFFFind which globals are using the most buffers.Display the top <25>:Total buffers: 19584 Buffers in use:4412Item Global Database Percentage (Count)1 rOBJ CACHELIB 24.320 (1073)2 rOBJ CACHESYS 16.772 (740)3 perf.TestD PERF 13.101 (578)(略) ^GLOSTAT と ^GBLBUFF の結果をファイルに出力するものを用意しています。 以下のルーチン(ZGLOBUFREPORT.mac)を %SYS に作成します。 /// ZGLOBUFREPORT.mac Set logdir="C:\Intersystems\cache\mgr\" //ログファイルディレクトリ Set HostName=$ZUtil(54,0) Set Date=$$CurDate,Time=$$CurTime Set File=logdir_"GLOBUF"_HostName_Date_Time_".log" Open File:"WNS" Use File Do GLOSTAT Do display^GLOBUFF(50) // 上位50グローバル Close File Quit GLOSTAT New Set client=$D(^NET(2,$P($ZU(86),"*",2),"DV","ECPNET1")) Set dskbase=$ZU(40,2,86) ;zero -> no detailed disk stats Set jrnbase=$ZU(40,2,94),xjwrites=0,xjents=1 Set ecpcstat=$ZU(40,2,148) Set detail=0 Do static^GLOSTAT Set act=60 Do timing^GLOSTAT Quit CurDate() { Do INT^%D Set %DAT=$ZConvert(%DAT,"U") Set MonthName=$Extract(%DAT,1,3) Set Day=+$Piece(%DAT," ",2) If Day?1n Set Day=0_Day Set Year=+$Piece(%DAT," ",3) If Year?2n Set Year=2000+Year Set Month=$Find("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",MonthName)\3 If Month?1n Set Month=0_Month Quit Year_Month_Day } CurTime() { Do INT^%T Set %TIM=$ZConvert(%TIM,"U") For Quit:%TIM'?1" ".e Set %TIM=$Extract(%TIM,2,99999) Set Time=$Piece(%TIM," ",1),AMPM=$Piece(%TIM," ",2) Set Hour=+$Piece(Time,":",1),Minutes=+$Piece(Time,":",2) If AMPM="AM",Hour=12 Set Hour=0 If AMPM="PM",Hour'=12 Set Hour=Hour+12 If Hour?1n Set Hour=0_Hour If Minutes?1n Set Minutes=0_Minutes Set Sec=$P($ZDATETIME($H,,1),":",3) Quit Hour_Minutes_Sec } ルーチンの以下の箇所を環境に合わせて変更してください。 Set logdir="C:\Intersystems\cache\mgr\" //ログファイルディレクトリ 実行例) %SYS>Do ^ZGLOBUFREPORT 添付ファイル(GLOBUF_ROUBUF.pdf:P.1~2)が出力ファイルの例になります。 (2) ルーチンキャッシュ 現状の設定値で問題ないかは、^GLOSTAT ユーティリティの Routine buffer loads and saves 値(ルーチンのデータベースへのI/O数)でモニターします。 60秒間の集計で20以下であれば、設定サイズは、問題ありません。 実行例) %SYS>d ^GLOSTATShould detailed statistics be displayed for each block type? No =>Statistics Local  Remote Total-------------------------- ------------- ------------- -------------Global references (all): 479,434 0 479,434(略)Continue (c), zero statistics (z), timed stats (# sec > 0), quit? 60Counts per Second for 60 Seconds...Should detailed statistics be displayed for each block type? No =>Statistics Local  Remote Total-------------------------- ------------- ------------- -------------=>Routine buffer loads and saves: 12 0 12 ルーチンキャッシュの使用状況をファイルに出力するものを用意しています。 以下のルーチン(ZGLOBUFREPORT.mac)を、%SYSに作成します。 /// ZROUBUFREPORT.MAC Set logdir="C:\Intersystems\cache\mgr\" //ログファイルディレクトリ Set HostName=$ZUtil(54,0) Set Date=$$CurDate,Time=$$CurTime Set File=logdir_"ROUBUF"_HostName_Date_Time_".log" Do CSTATR1 Quit CSTATR1 Set Instdir=$P($G(^%SYS("bindir")),"bin\") Set BinDir=Instdir_"BIN\" Set MgrDir=Instdir_"MGR" Set cstatSwitches="-a0 -R1 -s"_MgrDir Set Cmd=BinDir_"cstat" Set Cmd=Cmd_" "_cstatSwitches_" > "_File Set x=$ZF(-1,Cmd) Quit CurDate() { Do INT^%D Set %DAT=$ZConvert(%DAT,"U") Set MonthName=$Extract(%DAT,1,3) Set Day=+$Piece(%DAT," ",2) If Day?1n Set Day=0_Day Set Year=+$Piece(%DAT," ",3) If Year?2n Set Year=2000+Year Set Month=$Find("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",MonthName)\3 If Month?1n Set Month=0_Month Quit Year_Month_Day } CurTime() { Do INT^%T Set %TIM=$ZConvert(%TIM,"U") For Quit:%TIM'?1" ".e Set %TIM=$Extract(%TIM,2,99999) Set Time=$Piece(%TIM," ",1),AMPM=$Piece(%TIM," ",2) Set Hour=+$Piece(Time,":",1),Minutes=+$Piece(Time,":",2) If AMPM="AM",Hour=12 Set Hour=0 If AMPM="PM",Hour'=12 Set Hour=Hour+12 If Hour?1n Set Hour=0_Hour If Minutes?1n Set Minutes=0_Minutes Set Sec=$P($ZDATETIME($H,,1),":",3) Quit Hour_Minutes_Sec } ルーチンの以下の箇所を環境に合わせて変更してください。 Set logdir="C:\Intersystems\cache\mgr\" //ログファイルディレクトリ 実行例) %SYS>Do ^ZROUBUFREPORT 添付ファイル(GLOBUF_ROUBUF.pdf:P.3~)が出力ファイルの例になります。
記事
Megumi Kakechi · 2022年8月22日

IRISで使用できるユーティリティ一覧

InterSystems IRIS で使用できるユーティリティの一部を一覧でご紹介します。 以下の表の各ユーティリティ名をクリックすると、ユーティリティの詳細情報をご覧いただけます。 ユーティリティ名 概要 ^BACKUP バックアップやリストア処理を行います ^DATABASE データベースの作成・編集・削除など、データベースの管理を行います ^DATACHECK 2つのIRIS.DAT の内容が一致しているかを確認します ^DBSIZE データベースサイズを計測します ^GBLOCKCOPY データベース内のグローバルデータを別データベースまたはネームスペースにコピーします ^GETPPGINFO IRISTEMPデータベースでどのような一時グローバルを使用しているかを確認します ^%GCMP 2つのグローバルの内容を単純比較します ^%GSIZE ネームスペース内の各グローバルのデータサイズを確認します ^Integrity/^INTEGRIT データベースのセット、またはデータベース内のグローバルのサブセットの構造的な整合性を検証します ^JOBEXAM プロセス一覧を表示します。各プロセス詳細情報の表示や停止も行えます ^JOURNAL ジャーナリングを構成します ^LOCKTAB 現在使用しているロック情報の表示と削除を行います ^mgstat サンプリング周期単位でグローバルアクセスのカウンター情報を連続してファイルに記録します ^MIRROR ミラーリング構成、管理、およびステータスの操作などを行います ^MONMGR メッセージログ(messages.log)を監視して通知を生成したり電子メールを送信します ^SECURITY IRISセキュリティが適切に機能するのに必須のデータの設定とメンテナンスを実行します ^RESJOB IRISプロセスを停止します ^%SS プロセス一覧を表示します(参照のみ)。 ^SYSLOG 共有メモリの一部分に記録している、IRIS内部のエラーログ情報を出力します ^SystemCheck(旧:^Buttons) IRISが使用しているプロセスの状態や共有メモリなどの情報収集を行います ^SystemPerformance IRISおよびインスタンスが稼働するプラットフォームに関する詳細なパフォーマンスデータを収集します ^TASKMGR タスクのスケジュールや管理を行います ※%付きのユーティリティ以外はすべて %SYS ネームスペースで実行する必要があります。※管理ポータル: は、管理ポータルから実行できる対象機能になります。※★<ユーティリティ名> をクリックすると製品ドキュメントの説明をご覧いただけます(一部記載なし) ★^BACKUP バックアップやリストア処理を行います。^BACKUPユーティリティには以下のようなメニューがあります。 %SYS>do ^BACKUP 1) Backup // データベースのバックアップを行います 2) Restore ALL // すべてのデータベースのリストアを行います 3) Restore Selected or Renamed Directories // 選択したデータベースのリストアを行います 4) Edit/Display List of Directories for Backups // バックアップに必要なディレクトリ・リストの編集/表示を行います 5) Abort Backup // 実行中のバックアップを中止します 6) Display Backup volume information // バックアップ・ボリュームに関する情報を表示します 7) Monitor progress of backup or restore // バックアップまたはリストアの進行状況を監視します 管理ポータル:システムオペレーション > バックアップ【ご参考】データベースのバックアップについて(InterSystems Symposia 2014)累積バックアップと差分バックアップの違いについて稼働中のインスタンスを停止せずにバックアップを行う方法データベースのバックアップ方法について ★^DATABASE データベースの作成・編集・削除など、データベースの管理に使用します。^DATABASEユーティリティには以下のようなメニューがあります。 %SYS>do ^DATABASE 1) Create a database // 新しいデータベースを作成します 2) Edit a database // 既存データベースの属性を変更します 3) List databases // データベースの一覧を表示します 4) Delete a database // 既存データベースを削除します 5) Mount a database // データベースのマウントを行います 6) Dismount a database // データベースをディスマウントします 7) Compact globals in a database // データベースのグローバルの圧縮を行います。この機能は使用可能バージョンに制限(※)があります。 8) Show free space for a database // データベースの使用可能な空き容量を表示します 9) Show details for a database // 指定されたデータベースの詳細情報を表示します 10) Recreate a database // 既存のデータベースのパラメータに基づいて、新しい空のデータベースを作成します 11) Manage database encryption // データベース暗号化の管理を行います 12) Return unused space for a database // データベースの未使用領域を解放します 13) Compact free space in a database // データベースの空き容量を圧縮します。この機能は使用可能バージョンに制限(※)ががあります。 14) Defragment a database // データベースのデフラグを行います。この機能は使用可能バージョンに制限(※)ががあります。 15) Show background database tasks // バックグラウンドのデータベースタスクを表示します ※制限:圧縮やデフラグの機能は、ご利用のバージョンによって使用できない場合がありますのでご注意ください。    詳細はこちらをご覧ください。管理ポータル:システム管理 > 構成 > システム構成 > データベース 【ご参考】データベースファイルのサイズを圧縮する方法ターミナルやAPIを使用してネームスペースやデータベースを作成する方法プログラムでデータベースを マウント/ディスマウント する方法 ★^DATACHECK 2つのIRIS.DAT の内容が一致しているかを確認します。 【ご参考】2つのデータベースにある複数のグローバルやルーチンを比較する方法 ★^DBSIZE データベースサイズを計測します。例えば、バックアップを実行する直前に、バックアップに必要なディスク領域を計算するのに使用します。 【ご参考】オンラインバックアップでのバックアップサイズを見積もる方法 ★^GBLOCKCOPY データベース内のグローバルデータを、別データベース・またはネームスペースにコピーします。その際、余計なサイズ(Killされて空いたサイズ)はコピーされないので、データベースの縮小が可能です。 【ご参考】【FAQ】データベースファイル IRIS.DAT のサイズを小さくするにはどうすればいいですか? ★^GETPPGINFO 現在の全てのプロセスプライベートグローバルの名前およびそれらのスペース割り当てをブロック単位で表示します。 【ご参考】IRISTEMPデータベースでどの一時グローバルがサイズ消費しているかを特定する方法プロセス・プライベート・グローバルとは ★^%GCMP 2つのグローバルに違いがないか内容を比較をします。 【ご参考】2つのグローバルの内容を比較する方法 ★^%GSIZE ネームスペース内の各グローバルのデータサイズを確認します。 管理ポータル:システム管理 > 構成 > ローカルデータベース > グローバル 【ご参考】各グローバルのデータサイズを調べる方法^%GSIZE で出力される各項目の意味グローバルのサイズをプログラミングで取得する方法 ★^Integrity または ^INTEGRIT データベースのセット、またはデータベース内のグローバルのサブセットの構造的な整合性を検証します。 %SYS>do ^Integrity This utility is used to check the integrity of a database and the pointer structure of one or more globals. Output results on Device: // ファイルに出力したい場合はファイルパスを入力 Right margin: 80 => Stop after any error? No=> Do you want to check all databases? No=> Y // 全てのデータベースをチェック // No の場合はデータベースディレクトリを指定 : 管理ポータル:システムオペレーション > データベース > 整合性チェック ★^JOBEXAM プロセス一覧を表示します。各プロセス詳細の表示や停止も行えます。 管理ポータル:システムオペレーション > プロセス ★^JOURNAL ジャーナリングを構成します。^JOURNALユーティリティには以下のようなメニューがあります。 %SYS>do ^JOURNAL 1) Begin Journaling (^JRNSTART) // ジャーナリングの開始 2) Stop Journaling (^JRNSTOP) // ジャーナリングの停止 3) Switch Journal File (^JRNSWTCH) // ジャーナルファイルの切り替え 4) Restore Globals From Journal (^JRNRESTO) // ジャーナルファイルのリストア 5) Display Journal File (^JRNDUMP) // ジャーナルファイルの表示 6) Purge Journal Files (PURGE^JOURNAL) // ジャーナルファイルの削除 7) Edit Journal Properties (^JRNOPTS) // ジャーナルオプションの変更 8) Activate or Deactivate Journal Encryption (ENCRYPT^JOURNAL()) // ジャーナルファイル暗号化の Activate/Deactivate 9) Display Journal status (Status^JOURNAL) // 現在のジャーナル状態の表示 10) -not available- 11) -not available- 12) Journal catch-up for mirrored databases (MirrorCatchup^JRNRESTO) // ミラーデータベースのジャーナルキャッチアップ 13) -not available- 管理ポータル:システム管理 > 構成 > システム構成 > ジャーナル設定システムオペレーション > ジャーナル ★^LOCKTAB 現在使用しているロック情報の表示と削除を行います。 管理ポータル:システムオペレーション > ロック 【ご参考】プログラム内でロック情報を取得する方法 ★^mgstat サンプリング周期(既定は2秒)単位でグローバルアクセスのカウンター情報を連続してファイルに記録します。^mgstat は、^SystemPerformance ユーティリティを実行した場合にも実行され、HTML パフォーマンスレポートに含められます。 【ご参考】Grafana ベースの mgstat(InterSystems Caché / Ensemble / HealthShareのシステム監視ツール)用 GUI ★^MIRROR ミラーリング構成、管理、およびステータスの操作などを行います。 管理ポータル:システム管理 > 構成 > ミラー設定【ご参考】データベースミラーリングを使用した HA および DR の構成例パフォーマンス101ミラージャーナルファイルの削除のタイミングと要件ミラーリングの機能について ★^MONMGR IRISインスタンスのメッセージログ(messages.log)を監視して、システムからレポートされたアラートを検出し、通知を生成したり(alert.log)、電子メールを送信します。 【ご参考】メッセージログ(messages.log) のログ深刻度が 2 以上でメールを送るようにする方法★^RESJOB プロセスIDを指定して、実行中のIRISプロセスを停止します(現在のプロセスは停止できません)。^JOBEXAMを使うと、すべての実行中のプロセスのリストが表示されるので、その中で停止 (終了)、中断、または再開するプロセスを指定することもできます。 USER>zn "%SYS" %SYS>do ^RESJOB Force a process to quit InterSystems IRIS Process ID (? for status report): 17456 // 消したいプロセスのPIDを入力して <Enter> すると消える Process ID (? for status report): // ? を入れるとプロセス一覧が表示される「「 現在のプロセスは、以下で停止できる。 DO $SYSTEM.Process.Terminate() 以下は、^RESJOB ユーティリティと同じで、現在のプロセス以外のその他のプロセスを停止する。 DO $SYSTEM.Process.Terminate(17456) ★^SECURITY IRISセキュリティが適切に機能するのに必須のデータの設定とメンテナンスを実行します。^SECURITYユーティリティには以下のようなメニューがあります。 %SYS>do ^SECURITY 1) User setup // ユーザ定義の表示、追加、編集を行います 2) Role setup // ロール定義の表示、追加、編集を行います 3) Service setup // サービス定義を表示または編集します 4) Resource setup // リソース定義の表示、追加、編集を行います 5) Application setup // アプリケーション定義の表示、追加、編集を行います 6) Auditing setup // 監査ログの閲覧や、エクスポートを行います 8) SSL configuration setup // SSL/TLS 構成の表示、追加、編集を行います 9) Mobile phone service provider setup // 携帯電話サービスプロバイダ定義を表示または編集します 10) OpenAM Identity Services setup // OpenAM ID サービスを設定します 11) Encryption key setup // データベース暗号化キーファイルの作成や管理を行います 12) System parameter setup // システムワイドセキュリティパラメータの参照と編集を行います 13) X509 User setup // ウェブサービスセキュリティで使用する X.509 認証情報の表示、追加、編集を行います 14) KMIP server setup // KMIP(Key Management Interoperability Protocol) サーバの管理・構成を行います 15) Exit 管理ポータル:システム管理 > セキュリティ【ご参考】CSP/RESTアプリケーションに接続できません。どのように調査すれば良いですか?セキュリティ設定のエクスポートとインポートに関するTips ★^%SS 現システムでアクティブな各プロセスの状態の情報を一覧表示します(参照機能のみ)。各プロセスの詳細情報を表示したり、プロセスを終了したい場合は ^JOBEXAM を使用します。 管理ポータル:システムオペレーション > プロセス ★^SYSLOG 共有メモリの一部分に記録している、IRIS内部のエラーログ情報を出力します。このログには、システムに何らかの問題が生じている場合の重要な診断情報が含まれることがあります。 1) 実行方法は以下のようになります。 USER>zn "%SYS" %SYS>do ^SYSLOG Device: // Enter 押下、または出力ファイルパスを入力 Right margin: 80 => // Enter 押下 Show detail? No => Yes // Yes + <Enter> 押下 InterSystems IRIS System Error Log printed on May 19 2023 at 11:53 AM -------------------------------------------------------- Printing the last 8 entries out of 8 total occurrences. Err Process Date/Time Mod Line Routine Namespace 3 30848 05/19/2023 09:01:02AM 91 1304 BF0+1373^SYS.Datab %SYS : ※上記は Err = 3 なので、オペレーティングシステムエラーの「指定されたパスが見つかりません」のエラーになります。 Errは必ずしもオペレーティングシステムのエラーとは限りません。詳細はサポートセンターまでお問い合わせください。 C:\>net helpmsg 3 指定されたパスが見つかりません。 2) SYSLOG情報は共有メモリに保存される情報であるため、IRISを停止すると失われます。 以下のIRIS構成パラメータ設定することにより、IRIS停止時に内部エラーログ情報をmessages.log に記録します。 管理ポータル: システム管理 > 構成 > 追加の設定 > 互換性 ShutDownLogErrors 偽(既定値) -> 真 【ご参考】syslog-その正体と意味するもの ★^SystemCheck IRISが使用しているプロセスの状態や共有メモリなどの情報収集を行います。トラブル発生時には、まずこちらの診断レポート情報(^SystemCheck)を取得していただきます。※Caché/Ensemble では ^Buttons というユーティリティ名でした 実行方法は以下のようになります(取得に数分間要します)。 %SYS>do ^SystemCheck Diagnostic Report Build # 087 Evidence Logging Tool This reporting tool provides the information required for InterSystems Technical Support to analyze most issues. Please send the resulting file with each and every new problem sent to Support. This process will take approximately 5 minutes to complete. Please be patient. Continue (Y)? y // Enter 押下または yes(y) を指定します Report Interoperability-specific info? [No] n //no(n) を指定します Collecting information, please do not interrupt this process. Please wait approximately 30 seconds for %SS snapshots. Please wait approximately 1 minute for "irisstat" snapshots. GloStat information now being collected. Please wait approximately 1 minute and 40 seconds. FTP the following files to ISC Support: c:\intersystems\iris\mgr\***202208260909.html in text mode - 579,486 bytes %SYS> // <インストールディレクトリ>\mgr 下にhtmlファイルが出力されます。***部分は使用されているライセンスにより異なります Cache の場合、^Buttons情報の取得は以下のようになります。 %SYS>do ^Buttons Diagnostic Report Build # 087 Evidence Logging Tool This reporting tool provides the information required for InterSystems Technical Support to analyze most issues. Please send the resulting file with each and every new problem sent to Support. This process will take approximately 5 minutes to complete. Please be patient. Continue (Y)? // Enter 押下または yes(y) を指定します Please wait approximately 30 seconds for %SS snapshots. Please wait approximately 1 minute for "cstat" snapshots. GloStat information now being collected. Please wait approximately 1 minute and 40 seconds. Log file saved to: c:\intersystems\cache\mgr\***202407291050.html, 1,955,622 bytes Upload the file(s) above to InterSystems Support. %SYS> // <インストールディレクトリ>\mgr 下にhtmlファイルが出力されます。***部分は使用されているライセンスにより異なります 【注意】2023.1.0より前のバージョンでは、^SystemCheck情報収集時にONにする「ECP」と「ミラーリング」のデバッグフラグがOFFにならない(クリアされない)事象が発生する場合があります。対象バージョンをご使用の場合、^SystemCheck 情報取得後、以下のコマンドでデバッグフラグをクリアするようにしてください。 %SYS>Do ^REDEBUG Old flag values = ***** // FF ではないときはクリアが必要 New flag values (in Hex): FF // FF でクリア設定 Done %SYS> システムがハング状態になるなどしてターミナルが開けない場合は、Windowsコマンドプロンプトより IRISHung.cmd (Linux系は IRISHung.sh) を実行します。※Cacheの場合は、CacheHung.cmd(Linux系は CacheHung.sh)数分後、<IRISインストールディレクトリ>\mgr 下に、IRISHung_mmss.html ファイルが生成されます。 C:\>cd /intersystems/iris/bin // <インストールディレクトリ>\bin に移動 C:\InterSystems\IRIS\bin>IRISHung.cmd Full name of InterSystems IRIS directory: C:\InterSystems\IRIS // IRISインストールディレクトリを入力 Writing information to "C:\InterSystems\IRIS\Mgr\IRISHung_mmss.html" Please wait... Log file saved to: "C:\InterSystems\IRIS\Mgr\IRISHung_mmss.html" File size is ***** bytes long C:\InterSystems\IRIS\bin> 【ご参考】InterSystems IRISトラブル対応ガイド~情報収集編~(^SystemCheck/IRISHungの使い方)※P.7 (1).診断レポート(^SystemCheck)の実行 【IRISベース】トラブル発生時の情報収集方法(IRIS / IRIS for Health / UCR 編) ★^SystemPerformance IRIS インスタンスおよびインスタンスが稼働するプラットフォームに関する詳細なパフォーマンスデータを収集します。※Caché/Ensemble では ^pButtons というユーティリティ名でした。【ご参考】InterSystemsデータプラットフォームとパフォーマンス – パート1InterSystemsデータプラットフォームとパフォーマンス – パート2 InterSystemsデータプラットフォームとパフォーマンス –パート3: CPUに注目 ★^TASKMGR ジャーナルのパージや、バックアップの自動実行などのタスクのスケジュールや管理を行います。 管理ポータル:システムオペレーション > タスク【ご参考】タスクの起動でエラーが発生した時にメールで通知する方法 ユーティリティ一覧に、^%GCMP を追加しました。 ユーティリティ一覧に、^SYSLOG を追加しました。 ^SYSLOG ユーティリティは、共有メモリの一部分に記録している IRIS内部のエラーログ情報を収集します。このログには、システムに何らかの問題が生じている場合の重要な診断情報が含まれることがあります。
記事
Hiroshi Sato · 2021年10月27日

ターミナルでSQLを実行する方法

これは、InterSystems FAQサイトの記事です。$system.SQL.Shell() を使用します。 以下にサンプルを示しますので参考にしてください。 SAMPLES>do $System.SQL.Shell()SQL Command Line Shell---------------------------------------------------- The command prefix is currently set to: <>.Enter q to quit, ? for help.SAMPLES>>select * from Sample.Vendor1. select * from Sample.Vendor Vendor Balance Contact DaysClear DiscDays DiscRate LastInvDate LastPayDate MinPayment Name NetDays PayFlag TaxReportingAddress_City Address_State Address_Street Address_Zip: ※最初の行で何も入力せずにEnterを押すと、複数行入力モードに切り替わります。USER>d $SYSTEM.SQL.Shell()SQL Command Line Shell----------------------------------------------------Enter q to quit, ? for help.USER>> << entering multiline statement mode, 'GO' to execute >>1>>set transaction isolation level read committed2>>go 詳細は、以下ドキュメントをご参照ください。 SQLShellの使い方について【IRIS】SQLShellの使い方について
記事
Hiroshi Sato · 2021年11月11日

ODBCのクエリタイムアウトを回避する方法

これは InterSystems FAQ サイトの記事です。 タイムアウトを無効にするためには、DSNの設定でクエリタイムアウト無効に設定します。 Windowsコントロールパネル > [管理ツール] > [データソース(ODBC)] > [システムDSN]の構成 で クエリタイムアウト無効 にチェックを入れますと、タイムアウトは無効になります。 アプリケーション側で変更する場合は、ODBC APIレベルで設定することが可能です。 ODBCのSQLSetStmtAttr関数をコールする際に、SQL_ATTR_QUERY_TIMEOUT属性を設定してから、データソースに接続してください。
記事
Mihoko Iijima · 2021年4月2日

データベースアクセス中にデータベース設定を変更できるかどうか

これは InterSystems FAQ サイトの記事です。 アプリケーション等がデータベースにアクセスしている最中に、データベースの最大サイズの変更や未使用領域の開放などのデータベース設定変更を行うことにより、データベース整合性等に悪影響を及ぼすことはありません。 しかし、未使用領域の開放などは、ディスクアクセスの増加やメモリの使用等でシステムに負荷をかける可能性があるため、その観点からシステム運用に影響が出ないよう注意が必要です。
記事
Mihoko Iijima · 2021年4月9日

関数・メソッドの引数に可変長引数を渡すことができるかどうか

これは InterSystems FAQ サイトの記事です。 引数名の後ろに ... をつけることで可変の引数を渡すことができます。 ObjectScript では、配列を使って任意の数の引数を渡すことができます。 例文は以下の通りです。例文では、メソッド実行後に確認しやすいように、グローバル変数(=データベースに格納される変数)に引数の情報を設定しています。 Class TEST.ARGTEST1 Extends %RegisteredObject { ClassMethod NewMethod1(Arg... As %String) As %Boolean { kill ^a merge ^a = Arg } } ターミナルで実行した結果は以下の通りです。 USER>DO ##class(TEST.ARGTEST1).NewMethod1(1,2,3,4,5) USER>ZWRITE ^a ^a=5 ^a(1)=1 ^a(2)=2 ^a(3)=3 ^a(4)=4 ^a(5)=5
記事
Mihoko Iijima · 2021年4月9日

指定のテーブルの全フィールドをSQLで取得する方法

これは InterSystems FAQ サイトの記事です。 INFORMATION_SCHEMA スキーマを使用して取得できます。 INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルのSQLメニューに表示されません。表示させる方法は以下の通りです。 管理ポータル→システムエクスプローラ→SQL メニューを開きます。 スキーマのプルダウン左にある「システム」をチェックします。 スキーマのプルダウンから INFORMATION_SCHEMA を選択します。 指定のテーブル(ISJ.Class1)に対するID、フィールド名(COLUMN_NAME)、データタイプ(DATA_TYPE)、説明(DESCRIPTION)を取得するSQLは以下の通りです。 SELECT ID,COLUMN_NAME,DATA_TYPE,DESCRIPTION FROM INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA='ISJ' AND TABLE_NAME='Class1'
記事
Megumi Kakechi · 2021年8月5日

データベースファイルの最大サイズ

これは InterSystems FAQ サイトの記事です。 ディスクの空きスペースにもよりますが、ブロック別で最大サイズが異なります。 各バージョン共通で、8KBのブロックサイズを使用した場合は、32TBです。 バージョン2008.1以降のバージョンでは、8KB以外のブロックサイズを指定できるようになったため、最大サイズは以下の通りです。 16KBのブロックサイズを使用した場合、64TB 32KBのブロックサイズを使用した場合、128TB 64KBのブロックサイズを使用した場合、256TB
記事
Tomoko Furuzono · 2021年12月26日

特殊変数$ZTIMESTAMP をローカルのタイムゾーンに変更する方法

これは、InterSystems FAQサイトの記事です。$ZTIMESTAMPはUTC形式で日付時刻を返すため、ローカルのタイムゾーンに変更するためには以下システムオブジェクトを利用します。 $SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP) 上記出力結果は ddddd,sssss.fff の形式で出力されます。 ddddd:$HOROLOGの日付と同じ形式 sssss:現在の日付の午前 0 時からの経過秒数を示す整数 fff :秒の小数部を示す可変桁数 ※ $HOROLOGに似ていますが、$HOROLOGには秒の小数部分は含まれません。 SAMPLES>write $SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP)," - ", $horolog,!63895,64252.66 - 63895,64252SAMPLES>write $ZDATETIME($SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP),8)20151209 17:45:56SAMPLES>write $ZDATETIME($ZTIMESTAMP,8)20151209 08:46:05SAMPLES>
記事
Tomoko Furuzono · 2023年4月11日

日本語を含むHL7を送受信するときに利用する文字コード

これは、InterSystems FAQサイトの記事です。HL7の仕様では、日本語データを送受信する場合はJISを文字コードとして利用し、メッセージヘッダ(MSH)の18番目の2項目に iso-ir87 を指定します。HL7用プロダクションでは、情報の入力はビジネスサービス、情報の出力はビジネスオペレーションを利用します。日本語を含むHL7を送受信する場合は、入力/出力の対象となる全てのコンポーネントの設定で [追加の設定] の「キャラクターセット(Charset)」に iso-ir87 を指定することで正しく日本語データを取り扱うことができます。
記事
Tomoko Furuzono · 2023年5月8日

エラーについて

これは、InterSystems FAQサイトの記事です。<ROLLFAIL>エラーは、ロールバック処理中に何らかのエラーが発生した場合に発生するエラーです。 トランザクション・ロールバックのロギング よくあるケースはロールバック時点でシステム全体のジャーナリング機能が無効になっていた場合です。ジャーナル機能が無効になるのは、ジャーナルを無効にする設定を行うかジャーナル格納ディレクトリのディスクが満杯のためにシステムがジャーナルを無効にした場合などです。

#言語

6 投稿0 フォロワー

#バックアップ

18 投稿0 フォロワー