かきスタンプ

福岡でフリーランスの物流系のエンジニアやってます。

Windows:復元ポイントについて

Windows 8 が入っているノーパソの調子が悪くなり、調査とパッチ当てに結構時間使った。何が原因かは知らんが、定期的に復元ポイント作っておくように心がけておこうと思った。

復元ポイント作成&復元

Windows 7、8、10】

コントロールパネル→システム→システムの保護→作成

 

【XP】

すべてのプログラム→アクセサリ→システムツール→システムの復元

作成したファイルはそのままで、環境だけを元に戻してくれる。 

何かしらのツールをインストールする前には復元ポイントを作っておく事にしよう。

サービスパックの復元もできるみたいで、XPで試したところ、SP3→SP2に戻す事も可能でした。というか、アップデートする時に、自動で復元ポイントを作ってくるので、別に行儀の悪いやり方ではないと思われます。

ちなみに「コントロールパネル→プログラムの追加と削除」にてサービスパックをアンインストールすると、アップデートした時点の復元ポイントが自動で削除されます。

どちらを使うかはお好みで。

Oracle:表領域ごとの使用量、使用率、空き容量を表示

Oracleにて、表領域ごとの使用量、使用率、空き容量を表示するSQLを書いてみた。

SQL

select 
    DBA_DATA_FILES.TABLESPACE_NAME
   ,min(DBA_DATA_FILES.BYTES)/1024/1024  as  "現サイズ(MB)"
   ,round(min(DBA_DATA_FILES.BYTES)/(1024*1024) - sum(DBA_FREE_SPACE.BYTES)/ (1024 *1024),2)  as  "使用量(MB)"
   ,round( (min(DBA_DATA_FILES.BYTES)/(1024 *1024) - sum(DBA_FREE_SPACE.BYTES)/(1024 *1024))/ (min(DBA_DATA_FILES.BYTES)/1024/1024) *100,2)  as  "使用率(%)"
   ,round(sum(DBA_FREE_SPACE.BYTES)/(1024 *1024),2) "空き容量(MB)"
from 
    DBA_DATA_FILES
   ,DBA_FREE_SPACE
where  1=1
  and  DBA_DATA_FILES.FILE_ID = DBA_FREE_SPACE.FILE_ID
group by 
    DBA_DATA_FILES.TABLESPACE_NAME
order by 1

実行結果例

NAME SIZE(MB) 使用量(MB) 使用率(%) 空き(MB)
TABLESPACE01 4103.3 2899.2 70.66 1204
TABLESPACE02 730 676.5 92.68 53.44
TABLESPACE03 370 361.3 97.65 8.69

 

SQL plusで実行したい場合は、1行あたりの表示文字数を変更。

 set linesize 500

など。 

Oracle:どんなSQLが過去に発行されたか追跡

過去に発行されたSQLを表示

select * from v$sqlstats

 これだけだと、誰が実行したか(ユーザ、マシンなど)がわからないので、合わせて知りたい場合はセッション情報と結びつける。

セッション確認

select * from v$session

 v$sqlstats.sq_id と v$session.sql_id は結びつく。

Oracle:テーブル名一覧とカラム名一覧を取得

テーブル名一覧とコメントを取得

select
    USER_TABLES.TABLE_NAME
   ,USER_TAB_COMMENTS.COMMENTS
from
    USER_TABLES
    left join USER_TAB_COMMENTS on USER_TABLES.TABLE_NAME = USER_TAB_COMMENTS.TABLE_NAME
where  1=1
order by 1

 カラム名一覧とコメントを取得

select
    USER_TAB_COLUMNS.COLUMN_ID
   ,USER_TAB_COLUMNS.TABLE_NAME
   ,USER_TAB_COMMENTS.COMMENTS
   ,USER_TAB_COLUMNS.COLUMN_NAME
   ,USER_COL_COMMENTS.COMMENTS
from
    USER_TAB_COLUMNS
    left join USER_TAB_COMMENTS on USER_TAB_COLUMNS.TABLE_NAME = USER_TAB_COMMENTS.TABLE_NAME
    left join USER_COL_COMMENTS on USER_TAB_COLUMNS.TABLE_NAME  = USER_COL_COMMENTS.TABLE_NAME
                               and USER_TAB_COLUMNS.COLUMN_NAME = USER_COL_COMMENTS.COLUMN_NAME
where  1=1
  and  USER_TAB_COLUMNS.TABLE_NAME in ('table_name') --テーブル名を指定
order by
    USER_TAB_COLUMNS.TABLE_NAME
   ,USER_TAB_COLUMNS.COLUMN_ID

カラムの定義情報(サイズやデフォルト値など)も表示したい場合、「USER_TAB_COLUMNS.*」で。

 

 全ユーザを見る場合、「USER」を「ALL」に置き換え。

Oracle:ロックセッションKILL(削除)

デッドロック発生時の対策。

ロックセッションサーチ

select
    SID
   ,SERIAL# 
from 
    V$SESSION
where SID in (
               select SID from V$LOCK where TYPE in ('TM','TX')
             )

SID、SERIAL# をメモし、以下のコマンドを実行。

ロックセッションKILL

※要管理者権限

alter system kill session 'sid, serial#'

(実行例)

alter system kill session '15, 22738'

AWS:Redmine での MySQL Workbench起動

AWS Marketplace(EC2)の Redmineは DBがMySQLで動いているんで、MySQL Workbenchを動かしてみた。

【手順】

  1. sshログイン
  2. sudo apt-get update
  3. sudo apt-get install ubuntu-desktop
  4. sudo apt-get install mysql-workbench
  5. sudo dpkg-reconfigure x11-common 実行後、「Anybody」を選択
  6. インスタンス再起動
  7. sshログイン(オプションに、 -Y -C を追加)
  8. mysql-workbench 

起動および動作は結構重い。こんな乱暴な使い方する事を前提にしてないだろうから、当然っちゃあ当然だけど。

Bash on Windows 10:sudo 実行時「名前解決できません」の対処

Windows 10のbashにて、sudoを実行すると「(コンピュータ名)の名前解決ができません」というメッセージと共にパスワード入力を要求されるようになった。
あれ?今まで要求されてたっけ?と思いつつ、正しいパスワードを入力してもエラー。

調べると、
/etc/hosts を編集する事で解決できるとの事だが、編集にはsudoが必要。

えええ!ここでもsudo要求されたら解決できねーじゃん!
という現象が起こったんで、以下の方法で強引に解決してみた。

  1. Windows側にて、%userprofile%\AppData\Local\lxss\rootfs\etc\hosts を開く
  2. localhostという記述の後ろに、「,127.0.1.1 (コンピュータ名)」を追加

(注意点)
hostsファイル編集後はUTF-8で保存。SJISで保存なんかしちゃうと、エラーが起こってbashが起動しなくなる。使うのはメモ帳でいいです。
WindowsLinuxでは改行コードが異なるので、変に改行を入れない方がいい

ちなみに、%userprofile% は、コマンドプロンプトにて「cd %userprofile%」でも移動できるし、エクスプローラにて入力してもOKです。


何にせよ、rootパスワードがわからないままだと具合が悪いので、再インストールする事にした。以下、コマンドプロンプトにて実行。

 

アンインストール

lxrun /uninstall

インストール

lxrun /install

 

再インストール後も「(コンピュータ名)の名前解決ができません」というメッセージは出るものの、パスワードは要求されず。むぅ。何が原因で上記のようになったんだろう。