k-likework

息子を育て、自分も育つ。LIKEWORKで生きるためのブログ

WindowsへのOracle Databaseインストール

個人メモ:Windows版にOracle11gをインストールしたメモ

インストールファイル

  • ダウンロードした2つのインストールファイルを展開します。
    • win64_11gR2_database_1of2
    • win64_11gR2_database_2of2

インストール手順

  1. 展開したdatabase内の「setup.exe」をダブルクリックします。 f:id:kodomonosora:20190123115401p:plain

  2. インストーラが起動するので、順次設定していきます。 f:id:kodomonosora:20190123115606p:plain

  3. インストールオプション、システムクラスをデフォルトで進みます。 f:id:kodomonosora:20190123115648p:plain

  4. 標準インストールで、管理パスワードを設定して進みます。 f:id:kodomonosora:20190123120037p:plain

  5. 前提条件のチェック後、サマリーでインストール内容が表示されます。[終了]をクリックすると、インストールが始まります。 f:id:kodomonosora:20190123120208p:plain

  6. Database configuration Assistantで、DataBaseの作成も行われます。 f:id:kodomonosora:20190123121512p:plain

  7. Databaseの作成も完了したら、[OK]ボタンをクリックします。 f:id:kodomonosora:20190123122723p:plain

  8. インストーラで[閉じる]をクリックします。

インストールのテスト

▼Database Control のホームページを確認

  1. ブラウザを起動し、次のURLを入力します。
https://<hostname>:1158/em

{hostname}は、マシン名、IPアドレス、またはlocalhostなどが入力できます。

  1. ログインID「SYSTEM」、パスワード「インストール時に設定したパスワード」を入力して、 [ログイン]をクリックします。 f:id:kodomonosora:20190123123244p:plain

  2. Database Control のホームページが表示されたらインストールは完了です。 f:id:kodomonosora:20190123123456p:plain

Oracleサービスを確認

  1. スタートから表示する検索ウインドウで「services.msc」を入力すると、サービス画面が表示されます。 f:id:kodomonosora:20190123123849p:plain

  2. サービス名「OracleService<インスタンス名>」があり、状態が「開始」となっていれば、インストールされて、サービスが起動しています。 f:id:kodomonosora:20190123124033p:plain

SQL*Plusで接続

sqlplus /nolog
conn /as sysdba
select * from v$instance;

f:id:kodomonosora:20190123124706p:plain

タスクスケジューラとSCHTASKSコマンド

個人メモ:タスクスケジューラから起動停止しているプロセスをコマンドで実行したいと言われて確認したメモ

タスクスケジューラとは

  • 定期的な作業を効率化することが出来るWindowsのタスク管理機能
  • Windowsの標準機能

f:id:kodomonosora:20190109152202p:plain

タスクスケジューラのタスクを画面から操作

▼タスク登録

f:id:kodomonosora:20190109124555p:plain

その後は、作成ウィザードに沿って登録します。 f:id:kodomonosora:20190109125847p:plain 実行スケジュールを入力 f:id:kodomonosora:20190109125919p:plain タスクの種類を選択 f:id:kodomonosora:20190109125931p:plain 実行スクリプトを登録 f:id:kodomonosora:20190109130005p:plain

# Chromeを起動するスクリプトを入力(スクリプトファイルの登録でも可)
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --new-window

作成完了 f:id:kodomonosora:20190109130159p:plain

ログオンするとすぐにChromeが起動しました!

▼タスク実行

f:id:kodomonosora:20190109154340p:plain

▼タスク終了

f:id:kodomonosora:20190109154702p:plain

タスクスケジューラのタスクをコマンドから操作

同じことをコマンドプロンプトでSCHTASKSコマンドを使ってやってみます。

▼タスク登録

まず、SCHTASKSコマンドの使用方法を確認します。 SCHTASKS /?でヘルプを見ます。

パラメーターの一覧:
    /Create         スケジュール タスクを新しく作成します。
    /Delete         スケジュール タスクを削除します。
    /Query          スケジュール タスクをすべて表示します。
    /Change         スケジュール タスクのプロパティを変更します。
    /Run            スケジュールされているタスクをオン デマンドで実行します。
    /End            現在実行中のスケジュール タスクを停止します。
    /ShowSid        スケジュールされたタスクの名前に対応するセキュリティ ID を表示します。
    /?              このヘルプを表示します。

Examples:
    SCHTASKS
    SCHTASKS /?
    SCHTASKS /Run /?
    SCHTASKS /End /?
    SCHTASKS /Create /?
    SCHTASKS /Delete /?
    SCHTASKS /Query  /?
    SCHTASKS /Change /?
    SCHTASKS /ShowSid /?

それから、SCHTASKS /Create /?でヘルプを見ます。

SCHTASKS /Create [/S システム [/U ユーザー名 [/P [パスワード]]]]
    [/RU ユーザー名 [/RP パスワード]] /SC スケジュール [/MO 修飾子] [/D 日]
    [/M 月] [/I アイドル時間] /TN タスク名 /TR 実行タスク [/ST 開始時刻]
    [/RI 間隔] [ {/ET 終了時刻 | /DU 継続時間} [/K] [/XML xml ファイル] [/V1]]
    [/SD 開始日] [/ED 終了日] [/IT | /NP] [/Z] [/F] [/HRESULT] [/?]

作成したいタスク内容はこんな感じかな。早速作成してみる。

C:\Users\Administrator>SCHTASKS /Create /RU WIN-E26VDI0PBGE\Administrator /SC ONLOGON /TN CMD_StartChrome /TR "C:\Windows\System32\startchrome.bat"
成功: スケジュール タスク "CMD_StartChrome" は正しく作成されました。

タスクスケジューラを確認すると作成されていました。 f:id:kodomonosora:20190109152827p:plain

ログオンし直すと、Chromeが起動しました!

気になるのがSCHTASKS /Createコマンドでタスクを作成するとログオン時のユーザが指定できない。 f:id:kodomonosora:20190109153212p:plain

一応、タスクの[プロパティ]-[トリガーの編集]から変更できるようだけどコマンドでできる方法はないのかな? f:id:kodomonosora:20190109153305p:plain

▼タスク実行

C:\Users\Administrator>SCHTASKS /End /TN CMD_StartChrome
成功: スケジュール タスク "CMD_StartChrome" は正しく中断されました。

▼タスク終了

C:\Users\Administrator>SCHTASKS /Run /TN CMD_StartChrome
成功: スケジュール タスク "CMD_StartChrome" の実行が試行されました。

バックアップやPC起動時のアプリ起動などしておくと便利だな。

シュガーラッシュとITの世界

早速見てきました。2D吹き替えで。

ITの世界

一緒に見た息子たちは意識していないかもしれないですが、IPアドレスハッカー、ウイルス感染、アフェリエイト広告、ブラウザでの検索、バグなどが映画の中で映像として表現されていて、なるほどな~と感心して観ていました。

レースシーン

子供たちはカーレースを期待していたのですが、そのシーンもたくさんありました。 しかも1話目のシュガーラッシュのレースの世界よりも断然かっこいいレースシーンで満足だったようです。

新しい環境と平凡な幸せ

ストーリーとしては、好奇心旺盛なレーサーのヴァネロペが好きなことを見つけていくのに対して、ヴァネロペと楽しい決まった毎日を過ごすことが一番の幸せと思っている親友ラルフの葛藤の物語。

平凡な幸せをずっと味わいたい気持ちも分かるし、同じ環境で過ごし続けることに飽きる気持ちもよく分かる。 ヴァネロペは新しい世界に進むのですが、そうすると周りの状況も変わってくるという結末。 同じ環境で過ごし続けることは悪くないけど、成長はいつか止まってしまう。それを続けると最終的には悪くなるということかな。

私は年齢は関係なく、現状を満喫しつつ、新しい環境に進んでいきたいと思います。

映画「シュガー・ラッシュ:オンライン」の感想 #シュガラお題



sponsored by 映画「シュガー・ラッシュ:オンライン」(12月21日公開)

CentOSに違うバージョンのJDKを追加してみる

メモ:既にJavaがインストールされているLinuxに別バージョンのJavaをインストールしてみる

環境確認

# Linuxの確認
[root]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

# Javaの確認
[root]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
-->既にJava1.8がインストールされてる

Java1.9を入手して、サーバにアップロード

RPMをダウンロードする

Java1.9をインストール

[root]# cd /tmp/
[root]# rpm -ivh jdk-9.0.4_linux-x64_bin.rpm

LinuxはどっちのバージョンのJavaを見ているか

[root]# java -version

Javaのバージョンの向きを変更する

# 「+」が付いているのは現在向いているJavaのバージョン

[root]# alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre/bin/java)
*  2           /usr/java/jdk-9.0.4/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: 2 [Enter]

[root] # java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
-->向いているJavaのバージョンが変更された

Linux OS起動時に特定のプロセスを自動起動する方法

メモ:Linux OSを再起動したら特定のプロセスも自動起動してほしいとお客様の要望を受けて…のメモ

Linux OS起動時に、特定のプロセスを自動起動する設定手順

1. 起動スクリプトをサーバに配置する

特定のプロセスを起動するスクリプトを用意して、対象サーバに配置

# /tmp/配下に配置例
[root] ls -la /tmp/

2. スクリプトを/etc/init.dに配置する

[root] cp -p /tmp/<スクリプト> /etc/init.d/
[root] chkconfig --add <スクリプト>
[root] chkconfig --list
-->スクリプトが/etc/init.d/に配置されたことを確認する

3. Linux OSの動作モード(ランレベル)を設定する

[root] chkconfig <スクリプト> on
[root] chkconfig --list
-->ランレベル2~5がonになったことを確認する

4. スクリプトで特定プロセスが起動することを確認する

5. スクリプトLinux OS起動時に自動的に実行されるコマンドとして設定

[root] vi /etc/rc.local

-->下記を追加する
./<スクリプト> start

6. Linux OS起動時に対象のプロセスが起動することを確認する

[補足] スクリプトを/etc/init.d/配下から削除する場合

[root] chkconfig --del <スクリプト>
[root] chkconfig --list
-->スクリプトが/etc/init.d/にないことを確認する

STATSPACK

メモ:STATSPACKの使用でSTASPACK用の表領域が増加していたので、STATSPACKの基本的なことを知るメモ

STATSPACKとは

  • 「 スタッツパック」と読みます。
  • Oracle8iリリースから使用できるパフォーマンス診断ツールです。
  • Oracleの性能情報を確認できるので、障害時やチューニングに役立ちます。

STATSPACKの使用方法

  • STATSPACKはインストールが必要です。
  • 今回の環境は「Windows版のOracle12.1.0.2」です。
  • STATSPACKのインストールで使用するSQLは、$ORACLE_HOME\RDBMS\ADMIN配下にあります。

1. STATSPACK用の表領域を作る

$ sqlplus / as sysdba
SQL> CREATE TABLESPACE STATSPACK 
DATAFILE 'C:\app\statspack' SIZE 100M  AUTOEXTEND ON 
SEGMENT SPACE MANAGEMENT AUTO;

2. STATSPACKのインストール

STATSPACKのインストールSQLを流した後、対話式になります。

SQL> @C:\app\Administrator\product\12.1.0\dbhome_1\RDBMS\ADMIN\spcreate.sql
perfstat_password: perfstat 
default_tablespace: STATSPACK 
temporary_tablespace: TEMP 

3. スナップショットを自動で収集する設定

デフォルトは1時間ごとに収集します。
このままだとSTATSPACK表領域のサイズが増加し続けるので、スナップショットを削除する設定も忘れないようにします。

$ sqlplus perfstat/perfstat
SQL> @C:\app\Administrator\product\12.1.0\dbhome_1\RDBMS\ADMIN\spauto.sql

スナップショット自動設定の確認をします。

SQL> select interval,what from dba_jobs;

INTERVAL
-----------------------------------------------------
WHAT
-----------------------------------------------------
trunc(SYSDATE+1/24,'HH')
statspack.snap;

4. スナップショットの収集間隔を変更

デフォルト1時間ごとから30分単位に変更します。

$ sqlplus perfstat/perfstat
SQL> execute dbms_job.interval(1, 'SYSDATE+(1/48)');

変更内容を確認します。

$ sqlplus / as sysdba
SQL> select interval,what from dba_jobs;

INTERVAL
---------------------------------------------------
WHAT
---------------------------------------------------
SYSDATE+(1/48)
statspack.snap;

5.スナップショットのレベルを変更する

デフォルトはレベル5です。 レベル5から7に変更します。

$ sqlplus perfstat/perfstat
SQL> exec statspack.modify_statspack_parameter (i_snap_level=>7)
SQL> select snap_level from stats$statspack_parameter;

6. レポートを出力してみる

収集したスナップショットをレポートに出力します。

$ sqlplus perfstat/perfstat
SQL> @C:\app\Administrator\product\12.1.0\dbhome_1\RDBMS\ADMIN\spreport.sql

Listing all Completed Snapshots

                                                       Snap
Instance     DB Name        Snap Id   Snap Started    Level Comment
------------ ------------ --------- ----------------- ----- -------------------
orautf8      ORAUTF8              1 06 11月 2018 14:0     5  0
                                  2 06 11月 2018 15:0     5   0

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
begin_snapに値を入力してください: 1
Begin Snapshot Id specified: 1

end_snapに値を入力してください: 2
End   Snapshot Id specified: 2

Specify the Report Name 
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_1_2.  To use this name,
press <return> to continue, otherwise enter an alternative.

report_nameに値を入力してください: [Enter]

==============================
 データがたくさん表示
==============================

End of Report ( sp_1_2.lst ) ←レポートが¥「sp_1_2.lst」が作成された
SQL>

作成されたファイルはカレントディレクトリで確認

7. スナップショットの自動収集を停止する方法

自動収集のジョブを削除します。

# ジョブ番号を確認する
sqlplus perfstat/perfstat
SQL> select job, what from dba_jobs; 
JOB WHAT
1
---- ------------------------------
statspack.snap;

# 確認したジョブ番号を削除する
SQL> execute dbms_job.remove(ジョブ番号); 

# 削除したジョブが表示されないことを確認する
$ sqlplus perfstat/perfstat
SQL> select interval,what from dba_jobs;

8. スナップショットの削除方法

スナップショットを持ち続けるとSTATSPACK表領域が増加し続けます。削除方法は何通りかあります。

  • 日付を指定して削除する

8日より前のスナップショットを削除します

$ sqlplus perfstat/perfstat
SQL> exec statspack.purge(8);
  • 全てのスナップショットを削除
$ sqlplus perfstat/perfstat
SQL> @C:\app\Administrator\product\12.1.0\dbhome_1\RDBMS\ADMIN\sptrunc.sql
  • 自動でスナップショットを削除する設定

DBMS.JOBSに「statspack.purge(1)」プロシージャを登録する

SUBMIT( ジョブ番号, PLSQLプロシージャ名, 次回実行日付, 実行間隔 );
# 即時実行して、1日ごとに1日より前のスナップショットを削除する

$ sqlplus perfstat/perfstat
SQL> DECLARE
 JOB_NO binary_integer;

BEGIN
 DBMS_JOB.SUBMIT(JOB_NO,'statspack.purge(1);',INTERVAL=>'sysdate+1');

COMMIT;

END;
/

もう少し勉強したら追加。きっと明日には。

9. STATSPACKのアンインストール

$ sqlplus / as sysdba
SQL> @C:\app\Administrator\product\12.1.0\dbhome_1\RDBMS\ADMIN\spdrop.sql

AES

メモ:暗号化は難しい…製品の仕様に出てきたので触りを調べたメモ。

AESとは?

  • Advanced Encryption Standardの略。
  • 2001年から、DESに代わるアメリカの共通鍵暗号の規格。
  • ブロック長は128ビット固定、鍵長は128ビット、192ビット、256ビットが利用可能。
  • AESの元となった方式は、鍵長やブロック長が可変。

DES

  • Data Encryption Standardの略。
  • 1976年に採用された、共通鍵暗号の規格。
  • 鍵長が56ビットと短く、現在は安全ではないと見られている。

DESの後継となる共通鍵ブロック暗号の公募要件

  • 世界中で制限なく無料で利用できること
  • 詳細なアルゴリズム仕様を公開すること
  • ANSI CとJavaによる実装にすること
  • 暗号強度評価を公開すること

21方式の応募 → 公募要件を満たした15方式を評価 → 最終候補として5方式 → 採用

AESの暗号化の方法

  1. 鍵生成を行う
  2. SubBytes:換字表(Sボックス)による1バイト単位の変換
  3. ShiftRows:4バイト単位の行を一定規則で左シフト
  4. MixColumns:ビット演算による4バイト単位の行列変換
  5. AddRoundKey:ラウンド鍵とのXORをとる
  6. 2~5を1ラウンドとして暗号化を行う(暗号の鍵長によって変換のラウンド数[※1]が異なる)

2~5の処理がいまいち分からず。ゆくゆく調べます。

[※1]ラウンド数

  • 鍵長128ビット:ラウンド数10回
  • 鍵長192ビット:ラウンド数12回
  • 鍵長256ビット:ラウンド数14回

※複合は、2~3を逆変換を逆順でする。

初心者にはこれが良さそうです。

www.atmarkit.co.jp