2015年12月28日月曜日

[Oracle] OEMが停止/起動できない

Oracle Enterprise Managerの停止、起動ができなくなる現象が発生。
調べてみると色々な環境要因があるみたいですが、今回の状況は以下の通り。

・Oracle 11.2.0.4.0 @ Windows
・OEMは普通に参照できる
・OracleDBConsoleSIDは停止している
・net stop、emctl stop dbconsole ともにエラー(詳細忘れた。。)
・net start、emctl start dbconsole もエラー(詳細忘れた。。)

対応は単純で、OEM由来のjava.exeとemagent.exeを特定して
プロセスを終了、emctl start dbconsoleするというもの。


プロセスが残っているとサービスを制御できなくなるみたいですね。
忘れないうちに覚書。

2015年12月3日木曜日

[Windows] Windows Server 2012でイベントID:6038が発生する

Windows Server 2012の環境でイベントID:6038の警告が発生するようになりました。

=====
Microsoft Windows Server とクライアントの間で、現在 NTLM 認証が使用されていることが検出されました。このイベントは、クライアントの起動時に初めて NTLM を使用してこのサーバーに認証するときに 1 回発生します。

NTLM は、他の認証機構と比べてそれほど強力ではありません。次の点を確認してください:

      NTLM 認証を使用しているアプリケーションはどれか
      Kerberos 認証などの強力な認証を使用できない構成上の問題があるかどうか
      NTLM をサポートする必要がある場合、拡張保護が構成されているかどうか

これらを確認する方法の詳細については、http://go.microsoft.com/fwlink/?LinkId=225699 を参照してください。
=====

うーん、調べても参考になるような情報が見つからない。。
情報を見つけたら追記することにします。

2015年10月14日水曜日

[Oracle] 11gから12cにアップグレードしてみた

関連アプリがサポート対象外になるとの連絡があったので
Oracle 11g → 12c へのアップグレードを試してみました。

■前提
 ・OS
  SuSE Linux Enterprise Server SP3 (x86_64) @VMWare

 ・旧Oracle
  Oracle Database 11.2.0.4.0 Standard Edition
  ※DBUAによる直接のアップグレードは11.2.0.2.0以降

 ・新Oracle
  Oracle Database 12.1.0.2.0 Standard Edition

■手順
 (0) 最初に11g止めて、netcaでリスナー消しておくとスムーズ
 (1) 12cをソフトウェアインストール
 (2) 12cのORACLE_HOME/bin/dbuaを実行
 (3) .bash_profile のPATH等を12cのパスに書き換え


さして詰まることなくアップグレードできましたが
いざ本番環境でやると色々問題が出るんだろうなぁ・・・
なんかライセンス体系も変わってるらしいし。

2016.02.23 追記
やっぱり本番環境でハマった...
tnsnames.oraのパーミッションが原因でORA-12154ががが。

素直にファイル単位でパーミッションごとコピペすればよかったo...rz

2015年9月28日月曜日

[Windows] Windows 10 の「クイックアクセス」が気に入らない。。

至極個人的な意見ですが、Windows10の「クイックアクセス」は
いらない機能だなぁ、と思います。
# Win + E で開いたらドライブ一覧が表示されてほしい。

ということで、Win7と(ほぼ)同様の表示にする方法を覚書。


1. フォルダオプションを表示
2. 下図、赤枠内の通りに設定






















↓こんな感じに表示されます。




















手順というほど大したものではありませんが。。

2015年8月26日水曜日

[C# / PowerShell] C#からPowerShellを実行する方法

PowerShellを動的かつ並列実行したかったので、C#で書いてみました。

  private List<string> executePowerShell()
  {
    // PowerShellスクリプト
    string script = @"
      # C#からの引数の受け取り
      $count = 0
      foreach($arg in $input)
      {
        switch ($count)
        {
          0 { $foo = $arg }
          1 { $bar = $arg }
        }
        $count++
      }

      # 何らかの処理

      # C#に返したい変数
      $foo
      $bar
    ";

    List<string> fromPowerShell = new List<string>();

    using (var invoker = new RunspaceInvoke())
    {
      // PowerShellの実行、第二引数がPowerShellに渡す引数
      var psResult = invoker.Invoke(script, new[] { 0, 1 })

      // PowerShellから変数の値を受け取る($foo, $bar)
      foreach (PSObject result in psResult)
      {
        if (result != null) { fromPowerShell.Add(result.ToString()); }
      }
    }

    return fromPowerShell;
  }

こんな感じのメソッドを用意して、 script を動的生成 & Parallel.Forでクルクル回す、と。
例外処理は記載してませんが。。

2015年8月13日木曜日

[Oracle] 正規表現で数値形式以外を取得するSQL

ずいぶん久方ぶりな書込みとなります。。

Oracleの文字列フィールドに数値形式以外のデータがあったら
見たい、という要望があったので正規表現での検索を覚書。

SELECT * FROM table_name
WHERE NOT REGEXP_LIKE(column_name, '^[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)([eE][-+]?[0-9]+)?$')


REGEXP_XXXはOracle10g以降でしたかね。

2015年7月16日木曜日

[Oracle] StatsPackのレポート作成を自動化したい

StatsPackを導入、スナップショットを自動取得している環境で
各スナップショット間のレポートファイルを作成する、という要件がありました。

sqlplus user/password[@connection] @${ORACLE_HOME}/rdbms/admin/spreport.sql

こんな感じで実行すれば作成できるのですが、途中でスナップショットの
IDを聞かれたりするので応答ファイルを作成、読み込ませる方法を覚書。

sqlplus user/password[@connection] @${ORACLE_HOME}/rdbms/admin/spreport.sql < response.txt

response.txtには、以下の内容を記載。
 スナップショットID1
 スナップショットID2
 レポートファイルの出力先
 exit

後は、response.txtを動的に作成、くるくる回すプログラムを書けば自動化できるかな。

2015年6月18日木曜日

[つぶやき] 自宅PCでTVが見られなくなった

自宅PCの中を少し整理していたら、TVを見られるようにしていたはずが
コンポーネント不足的なメッセージが出てくるようになってしまったo...rz

何かアンインストールしてはいけないものを消してしまったか。

# ちょっとサボり気味、というかネタ不足
# もう少ししたら色々書込みできるようになる・・・はず?


2015年6月2日火曜日

[つぶやき] Windows10 配布間近

ふと、アクセス解析のページを見てみたらWindows 10 関連で
検索、当ブログにたどり着いている方がいらっしゃるようですね。


今のところ多いのは、Windows 10 における
.NET Framework3.5のインストール方法でしょうか。


同じ問題にあたるのが自分だけでなくてよかった(安心)

[Windows] Windows10の無償アップグレード 7/29より配信

ニュースサイトにてWindows 10の無償アップグレードが
7/29より開始される、との記事を参照したので覚書。


■マイナビニュース
http://news.mynavi.jp/news/2015/06/02/110/


そういえば、自宅PCのタスクトレイにあのアイコンが出てた気がするな。。
昨日は眠くて放置していたので、帰ったらチェックしよう。

2015年5月7日木曜日

[Windows] Windows10 Insider Preview Build 10074 をインストールしてみた

Windows10 Technical Preview Build 10074 のISOが配布されていると聞いて
さっそくダウンロード、仮想環境に入れてみました。


画面はスタートメニューと噂のSpartan改めEdgeです。

ストア経由での更新ができなかったのでEdgeを試用できていませんでした。
さっそくいじってみることに。

Webノート。 意外と書きやすいかも。

















開発者ツール。 ウィンドウが独立しましたね。ピン止めできない。

















設定画面。 インターネットオプションが呼べない・・・?


使用感は・・・
体感レベルですが、IEより起動速度、描画は速くなってるかな。

時間のある時にもう少しいじってみよう。

2015年4月21日火曜日

[Oracle] 11.2.0.4.0に対してDBLINKを使用してアクセスするとORA-00600が出ることがある

新サーバにOracle Database 11.2.0.4.0を導入し、運用していたところ
外部からのDBLINKアクセス時間帯にORA-00600エラーが発生。

ORA-00600: 内部エラー・コード, 引数: [12224], [], [], [], [], [], [], [], [], [], [], []

外部Oracle側でもORA-00600を含め、ORAエラーが多発していたそうです。
# 管理下にないため詳細は確認できず。。

11.2.0.4.0側にパッチを適用すれば解消されるらしいので
適用してしばらく様子見ということで。


ついでにopatchを初めて使ったので、適用手順をざっくり覚書。

1. DB接続しているアプリ、Oracle関連サービスを停止
2. sh $ORACLE_HOME/OPatch/opatch lsinventory で適用状況確認
3. sh $ORACLE_HOME/OPatch/opatch apply [パッチ展開先Path] で適用
4. Oracle関連サービス、DB接続アプリを起動

Windowsなら、手順2,3はbatファイルになるのかな。
時間があるときに試してみよう。

# 2015/5/25追記
Windows向けのパッチはまだ提供されていない模様。。

2015年4月9日木曜日

[Linux] bashでのインクリメントの記述

bashでインクリメントを行うにはどうすればいいかを調べていたところ、
二重括弧を使ったほうが速いとの記述があったので覚書。


#!/bin/bash

COUNTER=0

while [ $COUNTER -lt 100 ]
do
  echo $COUNTER
  # COUNTER=`expr $COUNTER + 1` # 汎用性が高い
  COUNTER=$(( COUNTER + 1 ))    # 速いがOS依存
done


毎回インクリメントしたいときに調べて、という感じになってるので
いい加減に覚えてしまいたい。

2015年3月26日木曜日

[C# / Excel] ExcelにSQLを投げるツールを作ってみた

最近、Excelのシート間でデータを探す機会が多いのですが
一々VLOOKUPとかを使うのが面倒になってきたので、
Excelファイルに対してSQLを実行、データ表示するツールを作ってみました。
# 誰得?(笑)


とりあえず、scott.xlsxを用意。(Oracleのアレ)

■EMPシート
















■DEPTシート
















■作ったツールでSQLを実行した結果


















こんな感じ。


そのうち、ファイル間でも検索できるようにしたいなぁ。

2015年3月13日金曜日

[Java] 重複排除速い。。

Oracleにあるデータを重複排除しようと思ってDISTINCTをかけると
10分以上返ってこない、という状況が発生。

DISTINCTしなければ数秒で返ってくるので、プログラム的になんとかしてみようと
Javaを選択。(ほぼ初心者)

とりあえずDISTINCTしないでデータをテキストに出力して
List<String>で読み込み、HashSetにつっこんで回してみたところ
あっという間に重複排除した結果が得られました。


Javaのちからってすげー!

2015年3月10日火曜日

[Oracle] ある月の日付一覧を取得するSQL

とあるテーブルのデータを、休日も含めて(休日はレコードなし)
出力したいという要望があったので、日付一覧をとるSQLを覚書。

SELECT TO_CHAR(TO_DATE(:TARGET_MONTH, 'YYYY/MM') + ROWNUM - 1, 'YYYY/MM/DD')
  FROM "31レコード以上ある適当なテーブル/ビュー"
 WHERE ROWNUM <= EXTRACT(DAY FROM LAST_DAY(TO_DATE(:TARGET_MONTH, 'YYYY/MM')))

Oracle以外の場合は、編集が必要ですね。。

2015年3月3日火曜日

[Linux] mailコマンドでメール送信すると本文にヘッダ情報が混入する

シェルから自動送信されるメールの本文に User-Agent とかの
ヘッダ情報が混入されてしまう現象を確認、解決したので覚書。

■環境
SUSE Linux Enterprise Server 11 (x86_64)

■変更前
send_mail() {
    from=$1
    to=$2
    inputEncoding="utf-8"
    outputEncoding="iso-2022-jp"
    subjectHead="=?${outputEncoding}?B?"
    subjectBody="`echo "$3" | iconv -f ${inputEncoding} -t ${outputEncoding} | base64 | tr -d '\n'`"
    subjectTail="?="
    subjectAll=${subjectHead}${subjectBody}${subjectTail}
    echo "$contents" | mail -s "$subjectAll" "$to" -- -f "$from"
    return $?
}

from="from@hoge.hoge"

to="to@hoge.hoge"
subject="件名"
contents="本文"
send_mail "$from" "$to" "$subject" "$contents"
if [ $? -eq 1 ]; then
    echo "send mail failure"
    exit 1
fi
echo "send mail success"

■変更後
send_mail() {
    from=$1
    to=$2
    inputEncoding="utf-8"
    outputEncoding="iso-2022-jp"
#    subjectHead="=?${outputEncoding}?B?"
#    subjectBody="`echo "$3" | iconv -f ${inputEncoding} -t ${outputEncoding} | base64 | tr -d '\n'`"
#    subjectTail="?="
#    subjectAll=${subjectHead}${subjectBody}${subjectTail}
    contents=`echo -e "$4"`  #| iconv -f ${inputEncoding} -t ${outputEncoding}`"
#    echo "$contents" | mail -s "$subjectAll" "$to" -- -f "$from"
    echo "$contents" | mail -s "$3" "$to" -- -f "$from"
    return $?
}

from="from@hoge.hoge"

to="to@hoge.hoge"
subject="件名"
contents="本文"
send_mail "$from" "$to" "$subject" "$contents"
if [ $? -eq 1 ]; then
    echo "send mail failure"
    exit 1
fi
echo "send mail success"


調べてもあまり有用な情報がなく大変でした。。
Linuxのディストリビューションによっても動作が異なりそう。

2015年2月20日金曜日

[その他] Lenovo製ノートPCにセキュリティリスクあり

ネット記事を見ていたところ、Lenovo製ノートPCに
セキュリティリスクがあるとの情報を発見したので覚書。

http://gigazine.net/news/20150220-lenovo-superfish/

仕事用のノートPCがLenovoなので調べてみましたが
アドウェアははいっていないようでした。

とりあえず一安心。

2015年1月26日月曜日

[Windows] Technical Preview Build9926 をインストールしてみた

Windows 10のTechnical Preview Build9926が公開されていたので
さっそくインストールしてみました。

DOS窓が矩形選択じゃなくなってる!(もしかして最初のリリースも?)
おまけに簡易編集モードがデフォルトでONになってました。
















ただし、管理者実行でDOSを起動したときは変わらず矩形選択になるようです。
















もう少し時間が取れたらいろいろ遊んでみよう。
まもなくリリースされるらしいSpartanとかも気になるし。

2015年1月22日木曜日

[PowerShell] Import-Csvで環境依存エラー?

csvファイルを読み込んで処理するPowerShellスクリプトを
他の人に使ってもらおうとしたところ、なぜかエラーが。。


Import-Csv : パラメーター名 'Encoding' に一致するパラメーターが見つかりません。


PowerShellのバージョン問題かと思ってMSDNを調べてみるも
特にバージョン○○から、という記載がない。

急ぎではないけれど、早めに原因調べたいなぁ。。。


1/23
詳しい人に聞いたところ、やっぱりPowerShellのバージョンが原因っぽい。

[Windows] Windows10無料配布?

ニュースサイトを見ていたら、Windows7以降のOSを使っている
ユーザー向けには1年間に限り、Windows10を無料配布するという
記事が掲載されていました。


http://weekly.ascii.jp/elem/000/000/295/295629/


どんな感じで配布されるだろうか。

2015年1月6日火曜日

あけまして障害多発

新年早々お疲れモード。

ORA-00600エラーが出てたりOSが落ちてるサーバがあったりと
なかなかにハードな年明けを迎えてしまいました。。

このところHW障害が多発していて、あまり技術調査を必要とするような
状況になっていないのですが、もう少し書き込み頻度を上げられたらいいなぁ。

ということで、実り多き1年になりますように (-人-)