SAP*とDDICどっちが必要?

インフラ寄りのSAPのこととか

SAP S/4HANAのテーブルパーティショニング

ACDOCA(ユニバーサルジャーナル:会計伝票)が10億件突破したので、テーブル分割(パーティショニング)について調べてみる。

 

行テーブル(row store):1.945GB

列テーブル(column store):21億件/パーティション

※SPS05以前は20億件/パーティション、少し緩和された(笑)

SAP HANA Administration Guide for SAP HANA Platform

Number of rows in each table

Limited by storage size RS: 1,945 GB/sizeof(row),

CS: 2,100,000,000 * number of partitions

パーティション数の上限は16,000個なので、ちゃんとパーティション分割すれば事実上無制限(物理メモリサイズに制限される)と考えてよさそう。

パーティション化の一般的な説明

Table Partitioning(SAP HANA Administration Guide for SAP HANA Platform)

下記パーティショニング方法がサポートされてる。注意事項はほかのDBと似た感じ。

  • Hash
    • ハッシュ化する列に基づいて分割する方法
    • テーブルの内容を考えずに20億件(SPS06以降は21億件)の制限を回避するならこの方法がおすすめ
  • Round robin
    • パーティションに順番にエントリーを割り当てていく方法
    • よっぽどの理由がない限りはHashパーティションを使う方がいいらしい。("Hash partitioning is usually more beneficial than round-robin partitioning for the following reasons")
  • Range
    • テーブルの範囲を指定して分割する方法
    • テーブルの内容を理解していないとダメ。絶対。

んで、ACDOCAはどれを使えばいいの?という疑問は下記ノートに乗っている。

2044468 - FAQ: SAP HANA Partitioning

BELNR(伝票番号)をキーにしたHASH分割がおすすめだそうです。

パーティショニングテーブルはアプリケーションから透過的なので、アプリ側の改修は不要。範囲分割の場合は業務運用は考えたほうがいいかも。

で、いくつに分割すればいいの?という話ですが、あまり細かく分割すると、パーティションをまたいだときのオーバーヘッドがあるので、DBサーバのCPU/メモリリソースが増大するのでほどほどにが良いようで。主な副作用は下記の通り

  • メモリのオーバヘッド
  • トランザクションのデットロック
  • CPU使用率増大によるパフォーマンス低下

逆に分割するメリットは下記の通り

  • 列ストアに21億件以上のレコードを保存できる
  • BW(OLAP)が早くなる(10.7億件以上になるとメモリ管理に影響がでるそうな)
  • デルタマージが並列化される

ERP用途だとパフォーマンス改善は期待できなさそう。

 

ACDOCAについては、ベストプラクティスがノート化されています

2289491 - Best Practices for Partitioning of Finance Tables

使い方によっては会計年度や企業コードでの範囲分割もできるけど、DB管理が面倒になりがちなので、1パーティション10億件超えたら伝票番号を使ったHASHで分割していきましょう!ってことかな?

SOLMANシステムコピー(その1:ドキュメント調査)

今更感もありますが、非HANAのシステムコピーは久しぶりなので備忘録。

環境はECL2.0/RHEL/ASE16.0/SOLMAN7.2 SPS18 -> AWS/RHEL/ASE16.0/SOLMAN7.2 SPS18

OSはWindowsマイグレーションするかも。

 

ABAPはDB再編をしたいのでExport/Import、JAVAは再編の必要がないのでBackup/Restore(OS違っても大丈夫!?)

まずはシステムコピーガイド確認

Homogeneous and Heterogeneous System Copy - Target Databases: SAP ASE; SAP MaxDB; Oracle; IBM Db2 for z/OS; IBM Db2 for Linux, UNIX, and Windows

 

JAVAはこちら

System Copy for SAP Systems Based on the Application Server Java of SAP NetWeaver 7.5, and SAP Solution Manager 7.2 SR2 Java, on UNIX

 

つづく

ICカードを利用したSSH接続の試みと失敗

会社のICカードWindows端末からSSHできることを目指したものの、結論から言うとできないことがわかった。

 

マイナンバーカードでSSHする - AAA Blog

どうやらOpenSCとやらを使うとICカードをいじれるようで、マイナカードでできるなら、SUICAや会社の社員証でもできるんじゃね?くらいの発想がスタート地点

結局、キーペア持ってるわけじゃないので、できるわけないよね(笑)

 

以下、備忘録

WindowsでOpenSCを使う(1.準備編) #NFC - Qiita

ダウンロード先をWikiからたどる必要がある

Home · OpenSC/OpenSC Wiki · GitHub

インストール先は

C:\Program Files\OpenSC Project\OpenSC\tools

opensc-toolのオプション一覧

C:\Program Files\OpenSC Project\OpenSC\tools>opensc-tool
Usage: opensc-tool [OPTIONS]
Options:
      --version                 Prints OpenSC package revision
  -i, --info                    Prints information about OpenSC
  -a, --atr                     Prints the ATR bytes of the card
      --serial                  Prints the card serial number
  -n, --name                    Identify the card and print its name
  -G, --get-conf-entry <arg>    Get configuration, e.g. section:name:key
  -S, --set-conf-entry <arg>    Set configuration, e.g. section:name:key:val
  -l, --list-readers            Lists readers
  -D, --list-drivers            Lists all installed card drivers
  -f, --list-files              Recursively lists files stored on card
  -s, --send-apdu <arg>         Sends an APDU (may need '-c default')
  -r, --reader <arg>            Uses reader number <arg> [0]
      --reset [arg]             Does card reset of type <cold|warm> [cold]
  -c, --card-driver <arg>       Forces a card driver (use '?' for list)
      --list-algorithms         Lists algorithms supported by card
  -w, --wait                    Wait for a card to be inserted
  -v, --verbose                 Verbose operation, may be used several times

 

C:\Program Files\OpenSC Project\OpenSC\tools>opensc-tool -a
Using reader with a card: Broadcom Corp Contacted SmartCard 0
Card not present.
Failed to connect to reader: Card not present

ICカードリーダーが複数ある場合(接触型と非接触型のハイブリットタイプ)はカードリーダを指定してあげる必要がある

C:\Program Files\OpenSC Project\OpenSC\tools>opensc-tool -l
# Detected readers (pcsc)
Nr.  Card  Features  Name
0    Yes             Broadcom Corp Contacted SmartCard 0
1    Yes             Broadcom Corp Contactless SmartCard 0

C:\Program Files\OpenSC Project\OpenSC\tools>opensc-tool -a -r 1
3b:8f:80:01:80:4f:0c:a0:00:00:03:06:00:00:00:00:00:00:00:68

 

 

 

 

AWSでubuntuを新規インストしたらubuntuでログインできない!

久々にAWSubuntuを構築したら、キーペアでログインできず調べてみたらRSAがデフォでは使えなくなったようで。

AWSでUbuntu Serverを立てるときはキーペアに要注意 #AWS - Qiita

AWSコンソールでキーペア作るときにはED25519で作成する必要があるらしい。

RSAで作ってしまった場合でもPowerShellssh(つまりopen ssh?)ならRSAでもログインできるようで。

あとは、/etc/ssh/sshd_config.d/60-rsa-enable.conf(ファイル名は任意)を作って

PubkeyAcceptedAlgorithms=+ssh-rsa

って1行書いてあげればOKです。(/etc/ssh/sshd_configに直接追記してもいいけど、なんとなく。ね?)

 

追記

ED25519の覚え方?

mod 2^255-19

からきているそうで。

255はいいけど19は忘れそう。

電子署名EdDSA(ed25519)の数的構造 #暗号 - Qiita

qmailで有名なDJB氏考案だそうで。

JSAGENTの再起動

DB13でスケジュールしていたバックアップが実行されずにfailしている場合はASEのスケジューラ(jsagent)が停止しているのかもしれません。

"\sybase\<SID>\ASE-16_0\install\<SID>_JSAGENT.log"で確認できます。

jamain  -> JS: Task/Agent connection terminated.
jamain  Job Scheduler failed to receive communication buffer while reading message type.
jamain  Connection to Job Scheduler task terminated unexpectedly with error -4
jamain  SYB_JSAGENT waiting for connection

一応ノートが出ています。

2257185 - Signal 11 in js__sequencer_collect - SAP ASE

内部メモリを使い果たすASEスケジューラが停止するそうな。

16.0 SP01で修正されたようですが、16.0 SP04でも再現するので、もはや仕様のようなものなのか?

isqlから下記コマンドで再起動(起動)可能です。

exec sybmgmtdb..sp_sjobcontrol '','start_js'

2144347 - Error 3602 in Job Scheduler from DBACockpit Planning Calendar - SAP ASE for Business Suite

JSAGENT.logに下記のように出力されれば起動成功

 jamain  JS task requested to ABORT the agent.
jamain  JS Agent aborting. Cancel all running jobs.
jamain  Job Scheduler Agent stopping with user request to
jamain  JS Agent aborting. Cancel all running jobs.
jamain  JS Agent exiting.
ASE jsagent/16.0 SP04 GA/EBF 29386 SMP/P/AMD64/Windows 2012 R2/asecorona/0/64-bit/OPT/Thu Nov 19 23:03:42 2020

(中略)

jamain  Creating global context.
jamain  SYB_JSAGENT ready.

それでも起動しなければDB再起動しかないようで。

 

Windowsでopen-sshが使える件

衝撃的事実

ssh-keygenを用いて秘密鍵と公開鍵を作る(Windows10とLinuxの違い) #Linux - Qiita

 秘密鍵と公開鍵を作成するにあたって、Linuxを用いるか何かしらのソフトウェアの導入が必要と思い込みをしていました。が、恥ずかしながらつい先日Windows10に標準でOpenSSHがインストールされている(ssh-keygenコマンドが使える)ことを知り衝撃を受けました。Linux版とほぼ同じようなのですが、Windows版固有の違いが見られたので紹介します。

確かに衝撃的事実。

たしかにWindows 10にはデフォで"OpenSSHクライアント"がインストールされてました。

ただし、デフォだとパスが通っていないので

%systemdrive%\Windows\System32\openssh

にパスを通しましょう。

オプション機能の管理