2015年1月14日水曜日

「2015 新春 JJUG 特別企画 Jenkins まつり」に参加しました

「2015 新春 JJUG 特別企画 Jenkins まつり」に参加しました
日時:2015-01-13(火)19:30 - 21:30
場所:東京都港区北青山2-5-8 オラクル青山センター
http://jjug.doorkeeper.jp/events/19259

■Javaユーザに贈るJenkins 25のTips
http://www.slideshare.net/linoSth/javajenkins-25tips

 ・佐藤さんの発表。同じグループ会社の人でした。
 ・1/16で会社やめるらしい。
 ・織田翔で本書いてる

 Jenkinsプラグインでよくダウンロードされているものや
 あまりみんなに知られていない標準機能、画面遷移などを
 紹介。半分くらい聞いたことあって、使ったことあるものでした。
 個人的にはworkflowプラグインを利用してみたいけど
 利用シーンがあるのかな~
 以下、簡単にメモ。

 1、Gitプラグイン
   標準でも入ってても良いと思うが、入っていない
   理由は、本体を軽くしたかったから(川口さん)
   関連プラグイン Validated Mergeプラグイン
           →JenkinsEnterpriseで利用可能
 2、Githubプラグイン
 3、Gradleプラグイン
   同じ事をgradleWrapperでもできるけど
   スレーブの環境内容を意識しないといけないので
   Gradleプラグインが便利です
 4、CheckStyleプラグイン
 5、FindBugsプラグイン
 6、TaskScannerプラグイン
    未解決のタスク(TODOの件数)を表示できる
 7、JobConfigHistryプラグイン
   設定を誰がどの箇所を変えたか表示してくれる
 8、Timestamper
   ビルドの結果にタイムスタンプを表示してくれる
   経過時間も出してくれる
 9、Emotional Jenkinsプラグイン
   jenkisおじさんの3変化
   Chuck Norris
 10、Green Balls
   青いボールがグリーンになる
 11、Nested Viewプラグイン
   ジョブが階層構造で表示できる
 12、Junitのテストレポートを
 13、マルチ構成プロジェクト
   OSとブラウザの組み合わせをマトリックスでする
 14、パンくずメニューでショートカット
 16、コンソールにジャンプ
 16、safeRestart
   コンソールでコマンドたたかなくても、Jenkinsの再起動が可能。
 17、Deployプラグイン
   アプリケーションサーバにデプロイするプラグイン
 18、Xvfbプラグイン
   仮想ディスプレイをエミュレートしてくれる
 19、BuildPiplineViewプラグイン
   ジョブの流れが分かりやすい
 20、Promoted Buildsプラグイン
   誰かが承認してくれたら、やってよいなどができる
 21、Workflowプラグイン
   フローを制御する
   Groovy DSLで設定を書く
   Jenkinsが再起動されても続きを実施してくれる
 22、Slackプラグイン
   chat opsの開発をやっている現場には有効だと思う
 23、Email-extプラグイン
   ビルド失敗時にメール通知する
 24、DiskUsageプラグイン
   ワークスペースが使っているディスクの量見える
 25、Monitoring
   JenkinsのCPU、メモリ、の可視化
   スレッドダンプが見える

■継続的インテグレーションから継続的デリバリーへ
 https://www.youtube.com/watch?v=LpsAY__CIPw
 UrbanCodeというアプリケーションのデリバリーを継続的に
 実施するために、簡単な利用が可能なツールの紹介
 
 製品紹介ページ
 https://developer.ibm.com/urbancode/

■Chef/Puppet + Jenkinsによる継続的デリバリ
 
 ・川口さん
 ・jenkinsプロジェクトでの開発についてどのように
  進めているのかと言う話でした。
  誰がいつビルドしてテストしてデプロイしたものを
  どのようにトレースしているのか。
 ・ファイル指紋をjenkins側で作成して、
  puppetで実行して、最後puppetがjenkins側に実行結果(ファイル指紋の情報がある)
  をpostして、jenkins側で認識できるようにした。
  ※やってることは電車の自動改札のイメージ
   →どこで入って、どこで出たかが分かるとおおよその経路が把握できるイメージ

 https://github.com/jenkins-infra
 https://github.com/jenkins-infra/jenkins-infra/blob/staging/Vagrantfile


2014年9月16日火曜日

DevLOVE甲子園2014東日本大会に行ってきた


8/23(土)に開催された『DevLOVE現場甲子園2014 東日本大会』に行ってきた。

http://devlove.doorkeeper.jp/events/11792
http://www.slideshare.net/DevLOVE/dev-love2014

感想。
一日8時間セッションをずっと聞けるのはありがたい反面疲れました。
登壇者の方々、スタッフの方々お疲れ様でした。ありがとうございます。


<印象に残ったセッション>
プロダクトをリリースした後に、どのように成長させて行くのかについて
発表された以下のセッションが興味深かったです。

・社内スタートアップでの組織の成長に伴い発生する痛みとその解決策(スクラム&顧客開発&リーンスタートアップ導入)について
・失敗上等!世にも奇妙な「旅行会社でのUXデザイン 裏話」

内容としては、リリース後に様々な情報を取得しその情報から仮説を立て、検証を実施し、
プロダクトを成長させる取り組みを実施しているとの話でした。
物を作ることも大切ですが、その後のことも大切な事だと考えさせられる
一日でした。改善、かいぜん、KAIZEN。


<今日の一言>

これからは、「ステップ/時間の生産性」ではなく「改善/時間」
で能力が図られる

2009年2月9日月曜日

Silver DBA 10g (1Z0-042J)その17

昨日Silverを受験してきました。結果は撃沈。
合格得点率68%のところ60%でした。
という事で、以下反省点および今後の進め方です。

オラクルに受からなかった件の反省
 ・問題集は暗記した
 ・理解していない部分があるのか?
  理解している部分といない部分をどのように吸収するか
  →難しい問題。。。
 ・インプレスの問題集以外をやってみて解答できなければダメ
  問題集にキーワードとして載っていないものがあれば仕方ない
  一部でも記載があったら、理解しているべきである。

オラクルでやること(上記の反省を踏まえ)
 ・インプレスの問題集を理解する
  →解答番号で覚えない
 ・めざせオラクルマスタの問題を理解する
  →正解率100%

応用情報でやること
 ・コンパクト本を理解する→最低2周
 ・問題集を理解する→最低2周

平日 オラクルWEB問題 帰宅後
   空き時間で応用情報の本を読む

週末 応用情報の問題集を解く
   オラクルの問題集を解く

-----スケジュール------
3月15日 オラクル
4月19日 応用情報


2009年2月1日日曜日

Silver DBA 10g (1Z0-042J)その16

<データベースのセキュリティ>

□07_DICTIONARY_ACCESSIBILITY
 ●データディクショナリ実表へのアクセスを制御する初期化パラメータ
  ①ANY TABLE権限を付与されているユーザであっても、データディクショナリ実表(aud$など)にあくせすできない(データディクショナリビューにはアクセス可能)
  ②SYSユーザはSYSDBAもしくはSYSOPER権限付きでないとログインできない

□DBA_TAB_PRIVSビュー
 ●データベース内の全てのオブジェクトに付与されている権限が確認できる

□DBA_SYS_PRIVSビュー
 ●ユーザおよびロールに付与されたシステム権限が確認できる

□V$PWFILE_USERSビュー
 ●SYSDBA権限、SYSOPER権限が付与されているユーザが確認できる

□AUDIT_SYS_OPERATIONS初期化パラメータ
 ●SYSDBAおよびSYSOPER権限で接続したユーザが実行した全てのSQL文を監査することができる
 ●AUDIT_FILE_DEST初期化パラメータで指定したディレクトリに監査レコードが記録されたファイルが作成される

□標準データベース監査を使用するための手順
 ①監査の有効化
  ●AUDIT_TRAIL初期化パラメータにて監査を有効化する
   ・NONE・・監査の無効化
   ・DB・・監査を有効にし、監査レコードをデータベース内に(SYS.AUD$表)に格納する
   ・OS・・監査を有効にし、監査レコードをOS上のファイルに記録する

 ②監査条件の指定
  ●AUDITコマンドで条件を指定できる
   ・文監査
   ・権限監査
   ・オブジェクト監査

 ③監査結果の確認
  ●取得された監査レコードはSYS.AUD$に格納される
   ただし、通常、監査レコードはDBA_AUDIT_TRAILなどのデータディクショナリビューを通して参照する

□ファイングレイン監査(FGA)
 ●監査ポリシーを作成することにより監査条件を詳細に絞り込んだ上で、表やビューに対するアクセス(SELECT、INSETR、UPDATE、DELETE)の「監視」や「監査」を行う機能

□DBMS_FGAパッケージ
 ●監査ポリシーの作成や削除、また監査の有効化・無効化などのFGAの管理を実施
 ●主なFGAの使用手順
 ①DBMS_FGAパッケージを使用した監査ポリシーの作成および有効化
  ※監査ポリシー名はデータベース内で一意である必要がある
 ②監査情報の取得
 ③DBA_FGA_AUDIT_TRAILビューなどを使用した監査レコードの参照



Silver DBA 10g (1Z0-042J)その15

<PL/SQL>

□PLSQL_CODE_TYPE初期化パラメータ
 ●PL/SQLコードをPL/SQLバイトコード形式にコンパイルするのかシステム固有のコードに
  コンパイルするかを決める
   
□PLSQL_OPTIMIZE_LEVEL
 ●PL/SQLのコンパイルに使用する最適化レベルを指定する初期化パラメータ
  1:コンパイラパフォーマンス重視
  2:ランタイムパフォーマンス重視

□トリガーが起動するイベント
 ●AFTER SUSPEND
  ・領域不足状態のためSQL文が一時停止された後に起動する
 ●AFTER TRUNCATE
  ・オブジェクトの切捨てが実行された後に起動する
 ●AFTER REVOKE
  ・権限、ロールの取り消しが実行された後に起動する
 ●BEFORE SHUTDOWN
  ・インスタンスが停止される前に起動する


参考サイト
http://wiki.superdry.org/index.php?PL%2FSQL

2009年1月25日日曜日

Silver DBA 10g (1Z0-042J)その14

<オブジェクトとデータ管理>

□表名の規則
  ・長さは1~30バイト
  ・Oracleの予約語(SELECT,CREATE,GRANT)は使用できない
  ・1文字目は英字で指定する
  ・英数字以外にアンダースコア(_)、ドル記号($)、シャープ記号(#)が使用できる

□同一スキーマ内の同一名オブジェクトについて
  ・通常は同じ名前のオブジェクトは作成できない
  ・ネームスペースが異なれば同一スキーマ内でも同じ名前のオブジェクトが作成可能
  ●ネームスペースを共有する主なオブジェクト①
   (オブジェクトタイプが異なっても同一名称をつけることができない)
   ・表
   ・ビュー
   ・順序
   ・プライベートシノニム
   ・ストアドプロシージャ
   ・ストアドファンクション
   ・パッケージ
  ●ネームスペースを共有する主なオブジェクト②
   (オブジェクトタイプが異なれば同一名称をつけることができる)
   ・索引
   ・制約
   ・データベーストリガー
   ・データベースリンク

□フラッシュバックドロップ
  ・削除した表を簡単にリカバリできる機能
  ・SYSTEM表領域に格納されている表には適用できない

□表の削除
  ・表に対応付けされている索引、トリガーは自動で削除される
  ・ビュー、シノニムは削除されない

□制約
  ・表に制約を追加する場合、CONSTRAINT句で制約に名称をつけられる
  ・制約名を省略すると、SYS_Cxxxxxxが自動で割り当てられる
  ・USER_CONSTRAINTSビューで確認できる

□参照整合性制約
  ・ON DELETE CASCADEオプション
   親表のレコードを削除すると、対応する子表のレコードが削除される

□Data Pumpユーティリティ
  データおよびメタデータをデータベース間で高速に移動するためのユーティリティ。
  ●Data Pump Export
   ・expdpコマンドもしくはEnterprise Manager(EM)で実行する
   ・SCHEMASパラメータを使用する事によりスキーマモードでエクスポートするスキーマを
    指定することが可能。このオプションは、EXP_FULL_DATABASEロールがある場合に
    自分のスキーマ以外の単一のスキーマまたはスキーマ名リストを指定できる

  ●Data Pump Import
   ・impdpコマンドもしくはEMをしようし実行する

□ディレクトリオブジェクト
  ・OSのディレクトリパスに名前を対応付けたもの
  ・ディレクトリオブジェクトに対するREAD権限およびWRITE権限をユーザやロールに付与して、データベースから
   OSファイルシステムへのアクセスに対するセキュリティを制御します
  ・Data Pumpユーティリティでは、ディレクトリオブジェクトを使用してダンプファイルの出力先を指定する必要がある
  ●ディレクトリオブジェクトの作成
   ・CREATE DIRECTORY ディレクトリ名 AS 'OSのディレクトリパス';
  ●ディレクトリオブジェクトに対するアクセス権の付与
   ・GRANT READ,WRITE ON DIRECTORY ディレクトリ名 TO ユーザ名,ール名;

REMAP_SCHEMA=ソーススキーマ名ターゲットスキーマ名

□SQL*Loaderの出力ファイル
  ●ログファイル
  ●不良ファイル
   ・入力形式が不適切、表の制約に違反したためSQL*LoaderやOracleにより拒否されたレコードを記録するファイル   
  ●廃棄ファイル
   ・制御ファイルに指定されているレコード選択基準を満たさなかったため、ロード対象から除外されたレコードが
    記録されるファイル


2009年1月24日土曜日

Silver DBA 10g (1Z0-042J)その13

<ユーザの管理>

□新規ユーザ作成
  ・CREATE USER ユーザ名
   IDENTIFIED 認証方式
   [DEFAULT TABLESPACE 表領域]
   [TEMPORARY TABLESPACE 一時表領域名]
   [QUOTA サイズ ON 表領域]
   [PASSWORD EXPIRE]→
→SQL*Plusで最初にログインした時に
                                  パスワードの変更を要求される指定
   [ACCOUNT ロック状態]
   [PROFILE プロファイル];

□ユーザが作成するオブジェクトの格納表領域の優先順位
  ①ユーザがオブジェクトを作成するときにTABLESPACE句で指定した表領域
  ②ユーザ作成時にDEFAULT TABLESPACE句で指定された表領域
  ③データベースのDEFAULT TABLESPACEに指定されている表領域
  ④SYSTEM表領域

□ユーザが使用する一時表領域の優先順位
  ①ユーザ作成時にTEMPORARY TABLESPACE句で指定した表領域
  ②データベースのDEFAULT TEMPORALY TABLESPACEに指定されている表領域
  ③SYSTEM表領域

□DBA_USERSビューによるパスワードの確認
  ・select username ,password from dba_users;

□ユーザが表領域を作成するためには!!
  ・CREATE TABLEシステム権限が付与されている
  ・表を格納する表領域に対するクォータが与えられている
   (表領域に対するクォータはデフォルトではすべての表領域に対して0となっている)

□CONNECTロールに付与されている権限
権限               |説明
-----------------------------------|---------------------------------------
ALTER SESSION       |セッションのパラメータを変更できる
CREATE CLUSTER     |クラスタセグメントを作成できる
CREATE DATABASE LINK|データベースリンクを作成できる
CREATE SEQUENCE    |順序オブジェクトを作成できる
CREATE SESSION      |セッションを確立できる
CREATE SYNONYM    |シノニム(別名オブジェクト)を作成できる
CREATE TABLE       |表を作成できる
CREATE VIEW        |ビューを作成できる

  ●ロールに付与されている権限の確認
   ・SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'CONNECT'

□ユーザプロファイル
  ・ユーザのリソースやパスワードの制限を設け名前をつけたもの
  ・CREATE PROFILE プロファイル名 LIMIT
   パスワード制限のパラメータ指定
   リソース制限のパラメータ指定
  
 [パスワード制限のパラメータ]
 ・FAILED_LOGIN_ATTEMPTS:アカウントがロックされるまでのログイン執行回数を指定
 ・PASSWORD_LIFE_TIME:同じパスワードを使用できる期間(日数
を指定
 ・PASSWORD_REUSE_TIME:同じパスワードを再利用できるまでの期間(日数)を指定
 ・PASSWORD_REUSE_MAX:同じパスワードを再利用できるまでの変更回数を指定
 ・PASSWORD_LOCK_TIME:FAILED_LOGIN_ATTEMPTS制限によりロックされたアカウントをロック
  する期間(日数)を指定
 ・PASSWORD_GRACE_TIME:PASSWORD_LIFE_TIMEで指定した期間の経過後、変更が促されてから
  パスワードを変更せずにログインが許可される期間(日数
 ・PASSWORD_VERIFY_FUNCTION:パスワードの複雑さを検証するファンクション名を指定

 [リソース制限パラメータ]・・・セッションレベルとコールレベルの2種類がある
 ●セッションレベル・・・各セッションに対する制限を設定する。
              制限を超えた場合、現行トランザクションをロールバックし、セッションが切断される
 ●コールレベル・・・・・各SQL文のコールに対する制限を設定する。
              制限を超えた場合、実行中のSQL文が取り消され、現行トランザクションとセッション
              はそのまま保持される
 ・SESSIONS_PER_USER:1ユーザあたりの同時セッション数を指定
 ・CPU_PER_SESSION:1セッションあたりの合計CPU時間(1/100秒)を指定
 ・CONNECT_TIME:セッションの連続接続時間()を指定
 ・IDLE_TIME:セッションのアイドル時間()を指定
 ・LOGICAL_READS_PER_SESSION:1セッションあたりの読み込みブロック数を指定
 ・COMPOSITE_LIMIT:1セッションあたりで複数リソースを組み合わせたコストを指定
   セッションあたりのCPU時間
   セッションあたりの読み込みブロック数
   接続時間
   プライベートSGA
 ・CPU_PER_CALL:1コールあたりの合計CPU時間(1/100秒)を指定
 ・LOGICAL_READS_PER_CALL:1コールあたりの読み込みブロック数を指定

□プロファイルの削除
  ・DROP PROFILE プロファイル名 [CASCADE]
  ・CASCADEオプションを指定し、すでにユーザに割り当てられているプロファイルを削除する
   ユーザにはDEFAULTプロファイルが自動で割り当てられる

  ・プロファイルの確認
   SELECT PROFILE FROM DBA_USERS

  ※プロファイルを使用したリソース制限を行うためにはRESOURCE_LIMIT初期化パラメータ
    TRUEにする必要がある。RESOURCE_LIMIT初期化パラメータがFALSEの場合、
    プロファイルの制限は無効になります。

□スキーマオブジェクト
  ・データベースリンク
  ・データベーストリガー
  ・索引
  ・順序
  ・ストアドファンクション、プロシージャおよびパッケージ
  ・シノニム
  ・表および索引構成表
  ・ビュー
-----------------
  いかのオブジェクトはスキーマオブジェクトではない
  ・プロファイル
  ・ロール
  ・表領域
  ・ユーザ

□権限
 ●システム権限
  ・ユーザがデータベースに対して特定の操作を可能にするために管理者が付与する権限
  <例>CREATE TABLE
       CREATE USER
       SELECT ANY TABLE
       UNLIMITED TABLESPACE
  ・GRANT システム権限名 TO ユーザ名[WITH ADMIN OPTION];
  ※WITH ADMIN OPTIONを使用して権限を付与されたユーザは、その権限を他のユーザに付与できる
  ※SYSTEMユーザ→(権限A付与:
WITH ADMIN OPTION)→DEMOUSER
    DEMOUSER→
(権限A付与)→HR
    DEMOUSERから権限A削除 でもHRには権限Aは付与されたまま

 ●オブジェクト権限
  ・特定のオブジェクトに対してアクセスを許可するときに付与する権限
  <例>SELECT
       INSERT
       UPDATE
       DELETE
       EXECUTE
  ・GRANT オブジェクト権限名 ON オブジェクト名 TO ユーザ名 [WITH GRANT OPTION]
  ※WITH GRANT OPTIONを使用して権限を付与されたユーザは、その権限を他のユーザに付与できる
  ※SYSTEMユーザ→(権限B付与:WITH GRANT OPTION)→DEMOUSER
    DEMOUSER→
(権限B付与)→HR
    DEMOUSERから権限B削除 HRからも権限Bが削除される

□システム権限の取り消しコマンド
  ・REVOKE システム権限名 FROM ユーザ名;

□オブジェクト権限の取り消しコマンド
  ・REVOKE オブジェクト権限名 ON オブジェクト名 FROM ユーザ名;

□ユーザがオブジェクトを作成するためには下記いずれかの方法で使用可能な領域サイズを
  割り当てる必要がある
 ●クォータサイズの指定
  ・CREATE USER文もしくはALTER USER文によりQUOTAを指定する
  ・SELECT TABLESPACE_NAME,BYTES FROM USER_TS_QUOTASでユーザに割り当てられているクォータサイズを
   確認できる
 ●UNLIMITED TABLESPACE権限の付与
  ・
UNLIMITED TABLESPACE権限が付与されている場合、クォータの設定に関わらず全ての表領域に対して
   無制限で領域が使用可能
  ・SELECT * FROM SESSION_PRIVSで現行セッションの権限を確認できる

□ユーザのデフォルトロールの変更方法
  ・ALTER USER ユーザ名 DEFAULT ROLE ロール名;
  ※デフォルトロール以外は、SETコマンドで使用可能にする必要がある

□定義済みのユーザー
SYS :データベースの管理ユーザー。データディクショナリの実表やビューを所有する
SYSTEM:データベースの管理ユーザー。ツールや製品で使用される内部表などを所有する
SYSMAN:OEM(Oracle Enterprise Manager)の管理ユーザー。OEMに接続して管理作業を行う
DBSNMP:OEMの内部ユーザー。データベースを管理する際、内部的に接続して操作を行う