2014年3月9日日曜日

【Oracle】SecureFiles LOB

SecureFiles LOBを含んだテーブルの作り方

create table sh.t01 (empid number,c01 clob) tablespace securefile_tbs
lob (c01) store as securefile(
compress high
DEDUPLICATE
);

#確認を行う
SH@PROD1 > select table_name,TABLESPACE_NAME,COMPRESSION,DEDUPLICATION from user_lobs;

TABLE_NAME                     TABLESPACE_NAME                COMPRE DEDUPLICATION
------------------------------ ------------------------------ ------ ---------------
DR$SUP_TEXT_IDX$R              EXAMPLE                        NONE   NONE
DR$SUP_TEXT_IDX$I              EXAMPLE                        NONE   NONE
T01                             SECUREFILE_TBS                       HIGH   LOB

#圧縮率をhighからlowに変えてみる
ALTER TABLE t01 MODIFY
LOB(c01) (
COMPRESS LOW
);

SH@PROD1 > select table_name,TABLESPACE_NAME,COMPRESSION,DEDUPLICATION from user_lobs;

TABLE_NAME                     TABLESPACE_NAME                COMPRE DEDUPLICATION
------------------------------ ------------------------------ ------ ---------------
DR$SUP_TEXT_IDX$R              EXAMPLE                        NONE   NONE
DR$SUP_TEXT_IDX$I              EXAMPLE                        NONE   NONE
T01                             SECUREFILE_TBS                       LOW    LOB

BasicFiles LOB から SecureFiles LOB への移行

オンライン再定義を行う必要を試す。
オンライン定義そのもののマニュアルは管理者ガイド。
http://docs.oracle.com/cd/E16338_01/server.112/b56301/tables.htm#i1006790


#接続
conn scott/tiger

#表作成
create table cust
(
c_id number primary key,
c_zip number,
c_name varchar(30) default null,
c_lob clob
);

#データを入れる
INSERT INTO cust VALUES(1, 94065, 'hhh', 'ttt');


#オンライン再定義するのに必要な権限をつける
#後半二つはDBMS_REDEFINITION.COPY_TABLE_DEPENDENTSを実行するのに必要
GRANT EXECUTE ON DBMS_REDEFINITION TO scott;
GRANT ALTER ANY TABLE TO scott;
GRANT DROP ANY TABLE TO scott;
GRANT LOCK ANY TABLE TO scott;
GRANT CREATE ANY TABLE TO scott;
GRANT SELECT ANY TABLE TO scott;
GRANT CREATE ANY TRIGGER TO scott;
DECLARE
error_count pls_integer := 0;
BEGIN
DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS
('scott', 'cust', 'cust_int',
1, TRUE,TRUE,TRUE,FALSE, error_count);
   
DBMS_OUTPUT.PUT_LINE('errors := ' || TO_CHAR(error_count));
END;
/


#オンライン再定義をするための仮表をつくる(仮表はSecureFilesのLOBを持った表)
conn scott/tiger
CREATE TABLE cust_int
(c_id NUMBER NOT NULL,
c_zip NUMBER,
c_name VARCHAR(30) DEFAULT NULL,
c_lob CLOB
)
LOB(c_lob)
STORE AS SECUREFILE (NOCACHE FILESYSTEM_LIKE_LOGGING);

#元表と仮表の列名の紐づけを行う。
#col_mappingが長いので変数化して外だししているっぽい。

DECLARE
col_mapping VARCHAR2(1000);
BEGIN
col_mapping :=
'c_id c_id , '||
'c_zip c_zip , '||
'c_name c_name, '||
'c_lob c_lob';
DBMS_REDEFINITION.START_REDEF_TABLE('scott', 'cust', 'cust_int', col_mapping);
END;
/

#依存オブジェクト(索引や権限など)をコピーする。
マニュアルではCONS_ORIG_PARAMSという定数を使っているが、値=1(索引コピーしますという意味)なので
最初から1を入れておく。なので、

DECLARE
error_count pls_integer := 0;
BEGIN
DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS
('scott', 'cust', 'cust_int',
1, TRUE,TRUE,TRUE,FALSE, error_count);
   
DBMS_OUTPUT.PUT_LINE('errors := ' || TO_CHAR(error_count));
END;
/

#エラーがあるか確認
select object_name, base_table_name, ddl_txt from DBA_REDEFINITION_ERRORS where BASE_TABLE_NAME='SCOTT.CUST';
SYS@PROD1 > select object_name, base_table_name, ddl_txt from DBA_REDEFINITION_ERRORS where BASE_TABLE_NAME='CUST';

レコードが選択されませんでした。


#再定義を完了
EXEC DBMS_REDEFINITION.FINISH_REDEF_TABLE('scott', 'cust', 'cust_int');

#変換できたか確認
select TABLE_NAME,SECUREFILE,COLUMN_NAME from user_lobs


TABLE_NAME                     SEC COLUMN_NAME
------------------------------ --- ------------------------------
CUST_INT                       NO  C_LOB
CUST                           YES C_LOB



<全体的な参考箇所>
Oracle® Database SecureFilesおよびラージ・オブジェクト開発者ガイド
4 Oracle SecureFiles LOBの使用
http://docs.oracle.com/cd/E16338_01/appdev.112/b56263/adlob_smart.htm#BABDIEGE

2012年7月7日土曜日

デリバティブについて勉強メモ

完全に「ノリ」で、デリバティブを勉強してみる。

#一応ルーツはあるんだけど。。。
#高校生のときは金融工学とかに結構興味があって、そういうところを志望校にしてたんだけど、大学入って気分が変わった。。。笑

*************************


デリバティブの概要
金融派生取引とも呼ぶ。
元となる金融取引(対象取引or対象資産)を派生
大きくわけて以下の3つに分類できる

  1. フューチャーズ(先物取引)→将来売買することを前もって約束する取引
  2. オプション取引→将来売買する権利を前もって売ったり買ったりする取引
  3. スワップ取引→経済価値の等しいキャッシュフローをあらかじめ取り決めた条件に従い、一定期間お互いが交換する取引


*************************



デリバティブの効果1〜リスクヘッジ
不確実な将来の価格を現時点で確定できる。収益を安定させることができる。→これをリスクヘッジという。
リスク(危険)+ヘッジ(損失や不利を避けるために先物で買っとく)
投機(Speculation)にも利用可能。
例えば6ヶ月後に欲しいものがあれば、現時点での原価を確定させる
50円と決めておいたとして、購入時点で100円に値上がりしてれば、50円の利益をゲットできる。
逆に購入時点で20円に値下げしてたら、30円損するけど。
リスクヘッジと投機は動機が違うだけで、行為(=先物を買う)は一緒



*************************


リスクヘッジについて
ヘッジ対象取引(=国債取引とか)+デリバティブ取引がワンセット
例えば国債。先物(=デリバティブ)の価格と現物取引はほぼパラレル
現物取引は100円→90円に下がったとする
80円に下がるであろう先物取引を100円のときに売っておく
そうすると現物取引で10円損しているが、先物取引で将来的には20円得するようになっている。つまりトータルで10円得


*************************



デリバティブの効果2〜レバレッジ
少ない投資金額で大きな取引ができることを指す
証拠金(Margin)を積むことで、現物取引に必要な資金と比べたら遥かに少ない少額の資金で取引ができる

*************************



自分的に、何かにまとめるときにスライドを使うのが好きなのでそうしてみたってだけなんですが、だったら図かなにか入れろって話ですね。はい。次回から。

【参考〜本記事を書くにあたり、以下のページ・文献を参照しました】

Oracle Master Gold 11g 合格メモ



6月下旬に、Oracle Master Gold 11g に合格したので、メモ。

<勉強期間>
Silverに合格してから、1ヶ月。
すぐにGoldの参考書を買い、研修を予約し、Gold受験の準備に入りました。


<研修>
受講したのはこちら。Gold受ける人はだいたいこれっぽい。
受講者全員、Goldこれから受けようとしていた人でした。
Oracle Database 11g: 管理ワークショップ II

「講義→演習」の流れで5日間。
この教材をみると、市販参考書はこの研修教材を参考にしてつくったんだなとしみじみ感じます。

演習では、データファイル壊してリカバリしたり、パッチをあえて削除してアラート吐いた事を確認するなどなど。
自作自演でトラブル起こして自分で消火をします。
手順が全部書いてあるので、それを見ればできるといえばできるのですが、自分が今なにやっててどういう意味があるのかを考えないと身に付きません。ま、なんでもそうか。

#あとから聞いた話ですが、やはり研修はオラクルが青山でやっているのが一番いいらしい。いろんな研修会社もこのワークショップを担当してますが、やはりオラクル製品はオラクルで学ぶのが良いみたい。


<勉強法>
①教科書としては以下の参考書を利用。

オラクル認定資格試験対策書】ORACLE MASTER Gold[Gold DBA11g](試験番号:1Z0-053)完全詳解+精選問題集 (オラクルマスタースタディガイド)

オラクルマスター教科書 Gold Oracle Database DBA11g編 (試験番号:1Z0-053)

Goldは「問題集」がないので、それぞれの章末問題をやりました。
巻末に「模擬試験」がついていて、2冊から合計3回分をやりました。
受験前の、かなり土壇場にやったので正答率は55〜60くらい。合格ラインは65%なので、届いてませんでした。。。

なので、テスト前はミスった問題をノートにまとめて必死に頭の中を整理しました。

②上記とは別に、Oracleの研修(=管理ワークショップ2)でゲットした教材PDFをiPadに入れて、通勤中などに見てました。
このPDFはなかなかいい感じで、結構役立ちました。


<試験>
バックアップ/リカバリとフラッシュバック機能の話が盛りだくさん。

バックアップ/リカバリは、研修でもかなり時間を割いて重点的にやったので、そこまで苦労しませんでしたが、フラッシュバック機能の整理がちょっとできてなかったので、間違えまくりました。たぶん。

#受験後に渡されるスコアシートに間違えた問題のジャンルが書いてあるんですが、そこの8割くらいが「フラッシュバック機能」に関するものでした。。

フラッシュバック機能については、①前提条件はなにか ②使用するデータは何か(=UNDO?ごみ箱?)の2つを押さえておけばどうにかなるんじゃないかという感触です。

バックアップ/リカバリについては、
「Silverで概要固めたのでそれを具体的にコマンドで書くとどういう順番でしょうか?」
っていう問題が大半です。


結果は、正答率67%で合格でした。


次も頑張ります。

2012年6月17日日曜日

Oracle Master Silver 11g 合格メモ


5月下旬に、Oracle Master Silver 11g に合格したので、メモ。

<勉強期間>
だらだらと3ヶ月。。実質1ヶ月くらい。
→Bronze取ったのが12月で、そこからLPICに浮気をしたため、Oracleの知識を復活させるのに少々時間がかりました。

<勉強法>
教科書としては以下の参考書を利用。

【オラクル認定資格試験対策書】ORACLE MASTER Silver[Silver DBA11g](試験番号:1Z0-052)完全詳解+精選問題集 (オラクルマスタースタディガイド) [単行本]

1章ずつ読んで、ノートにまとめなおして、電車の中とかで見返す。。を繰り返し。
EMのキャプチャが非常に多いのでとんでもない分厚さになっていますが、説明は割合丁寧に書かれているので、理解しやすい1冊でした。
演習問題もついています(1章につき10〜15問)。
ただしこれだけの演習量では足りない気がしたので、以下の問題集も使用しました。

徹底攻略ORACLE MASTER Silver DBA11g 問題集[1Z0-052J] (ITプロ/ITエンジニアのための徹底攻略) [単行本]

出版社が違うので、ページとか章分けに100%互換性があるわけではありませんが、だいたい同じです。
むしろ、視点がちょっとずつ違っているので勉強にもなりました。
重要だと強調する部分が同じだった場合も、「あ、ここは本当に大事なんだなー」とわかるので、ますます勉強になります。

問題演習は1.5週程度です。ちょっと足りないかなとも思いつつ、受験しました。


<試験>
バックアップ/リカバリの話が多かったです。

Bronzeでは相当ざっくりな内容を聞かれますが、Silverではもう少々つっこんだところが聞かれます。ただしコマンドレベルでの質問ではなく、あくまで「定義」とか「手順」などが特に聞かれたかなーという印象です。

定義はしっかり覚えるとして、手順に関してはだいたい理にかなっています。
(このファイルはこういう特性があるから、こういう操作をしなければいけない(というかそれしかできない)とか)
たまに「こういう仕様です」っていうのもありますけど、そこはまあ置いといて。
とにかく定義を覚えて理屈を抑えれば、Silver合格はできるかなと感じました。


#変な話、実機を一度もいじったことなくても頑張れば合格すると思います。
#逆にSilver合格したからといって、Silverの参考書に書かれているあんなことやこんなことが全て自力でできるかと言われるとハッキリ言って無理です。少なくとも私は無理です。

あと余談ですが、ネットワークがいけないのかPCのスペックがいけないのか、「次の問題」をクリックしてもなかなかページが切り替わらずちょっと焦りました(クリックしすぎてもなんか嫌だし。。)


結果は、正答率69%で合格でした。


次も頑張ります。

2012年5月2日水曜日

curlコマンド便利!


ギガバイト級のファイルをダウンロードするとき、ブラウザからやってみるとなんとなく嫌だったのでコマンドでどうにかできないかと模索していたのでメモ。
wgetでも良かったが、今回はcurlというものを使ってみた。便利!
#OS X限定のようですが、、、、

あ、以下の説明では
△=半角スペース としています。

#ファイルをダウンロードする
curl△-O△URL


#例。というか実際やったコマンド(Windows8のisoイメージダウンロード)

curl△-O△http://iso.esd.microsoft.com/(中略)Windows8-ConsumerPreview-32bit-Japanese.iso


で、さらに便利、というか多用しまくったのがこちら。

#中断したダウンロード再開
curl△-C△-△-o△ファイル名△URL


#例。というか実際やったコマンド(一度中断したWindows8のisoイメージダウンロード)
curl△-C△-△-o△Windows8-ConsumerPreview-32bit-Japanese.iso△http://iso.(中略)〜se.iso

イーモ○イルなど無線な環境でやっているとどうしてもネットワークが不安定だったら制限かけられて、途中で切れるのです。。。それがこのコマンドなら、切れても続きからできるので便利です。
(これに気づくのにかなり時間がかかって、相当ロスしました。。。)


以下にリンクを載せたページをみると、正規表現的なものを使って、一気にファイルを落としたり、アップロードもできるらしい。便利。。。

【参考にさせていただいたページ】

Virtual Boxをインストール

基本はMac使いなので、仮想マシンいれるためにVirtual Boxをこのたびインストール。
(実際は1月くらいでしょうか。。んーブログ書くのが遠ざかりすぎた)

①ダウンロードはこちらから
②インストール開始!





1番を選択。

インストールウィザードが開始。流れにのってそのまま続ける。






→続ける。





→HD選択して、続ける。






→インストール。




。。。若干まつ。


→閉じる。







③インストール完了!MacのFinderからアプリケーションにとんで、インストールされていることを確認します。早速起動してみる。起動できた。めでたし。










#本当は、Scientific LinuxとWindows8を入れて遊んだんだけど、ブログはまた次回。。

【参考にさせていただいたページ】
MacとWindowsを同時使用できる無料の仮想化ソフト「VirtualBox」の使い方

LPIC 102受験メモ。


LPIC 102 に合格したので(2月に受かったので、もう2ヶ月以上前、、、)メモ。
今回は一発で合格しました。。よかった。。


<概要>
LPIC Level1を取得すべく、102を受験しました。
テスト体系はこのへんに書いてあります。
LPI-Japan


<勉強期間>
1月〜2月でしたが、実質2週間くらい。


<勉強法>
○あずき本
とりあえず読む。理解する。

Linux教科書 LPICレベル1 第4版
101はコマンドのオプションがやたら多くて大変でしたが、102は設定ファイルがちょっといろいろあって大変だなというイメージ。
あとはunixコマンドの問題でしょうか。これはもう実際に叩くしか無いと思います。

○黒本
徹底攻略LPI 問題集 Level1/Release3 対応

問題を解く。
とりあえず3月までにどうにか合格したかった&でもギリギリで合格は綱渡りすぎる。ということで、たぶん1.5週しかしてませんでした。

<試験>
そこまで超難しいと思ったことはなかったです。
101は2回受験しているのでその分勉強していた、というのはありますが、102はあまり勉強しなくてもそこそこ取れました。

合格点500点に対して、600点くらいで合格。

<振り返り>
101が鬼門。。


#てきとー。