始まりました

3月から個人事業主としての仕事が始まりました。
最初の数日間は貸与PCの設定や各種権限申請などでオフィス出勤でしたが、今はほぼリモートワークとなっています。

 

HW/SWともに保守が切れるオンプレ環境をクラウドに上げるのですが、そのためにまずは現行環境のインフラ構成、MWの設定、保守や監視の方法などを把握しなければいけません。
オフィス出勤していた数日間にざっくりとした説明ぐらいはあるだろうと踏んでいたのですが、そんなものはなく、現行の要件定義書や仕様書を読んで自力でキャッチアップしていくらしい。


正確に言えば、オフィスで10分ほど説明してもらってはいます。が、それは面談で見せられたペライチ資料をベースにしたもので、かなり端折った概要レベルでした。

 

今はまだ疑問点も整理しきれていないため、一人で黙々と資料を読んでいる段階ですが、来週あたりからは確認すべきことを質問し始めないと実作業が進められなくなってしまう予感。

 

来週も引き続きがんばります。

ビビり全開

あと数日で個人として初のお仕事が始まります。
AWSへのリフトプロジェクトで、アーキテクチャの設計やミドルの設定などがメイン業務のようですが、本当に自信がありません。面談で盛りすぎた気がします。昨晩は急に不安に襲われてなかなか寝付けませんでした。。

AWSを触っていたのは数年前なので、先日改めてAWS基礎のオンラインセミナーを受講しました。意外と知識が残っていて安心したものの、この程度で何ができるんだという気持ちは拭えません。

1人って不安。
でも頑張らないと。

【感想メモ】凍りのくじら

人が薦めているのを見て読んでみました。
途中、何度か泣きました。

 

家でも学校でもトモダチといても、どこか現実感がなくその場をくだらないなどと見下してしまう"スコシ・フザイ"な主人公・理帆子。

この小説を読む前、「読み初めは理帆子に共感しづらい」という評価を聞いていたのですが、私はこの主人公に最初から共感しまくりました。理帆子の言っていることはとても理解しやすかった。それは、よくぞ言ってくれたとさえ思うほどでした。(なので、冒頭から共感している自分に不安を覚えつつ読み進めることになります)

 

若干不安を感じつつも、理帆子の脳内描写に小気味よさを覚えながら読んでいたのですが、若尾が出てきた辺りから分からなくなります。
なんで理帆子ともあろう人が1人の男性に執着するのだろう、と。
それでも読み進めるうちに「理想主義な若尾は自分と同様に世界に不在で、馬鹿にできる。自分より劣るから執着できる」みたいなくだりがあって、「なるほど、自分より重症な若尾を見ていると安心するのか」そんな風に納得しました。

 

泣いたのは汐子の外泊がダメになった場面と、汐子の葬儀の場面。
仲良し親子ではないけれど、理帆子にとって、汐子との関係だけがスコシ・フザイではない、不器用で小っ恥ずかしい地に足のついた関係のように思えていました。

そんな汐子が亡くなり、この先理帆子はどうなるんだろうと不安に思っていたのですが、葬儀に訪れた同級生や校外の友達、郁也との間にもちゃんと居場所があったことを理帆子が感じ取れた場面があり、安心し、そしてここに一番泣きました。

理帆子の居場所を汐子が命を懸けて教えてくれたような気がして。

 

最後に別所の正体が分かるところは予想外で唐突な展開のような気がしたけど、冒頭の「その光を私は浴びたことがある」「もう何年も昔、私はそれに照らしてもらったことがある」に繋がったところで、海底や遠くの宇宙まで照らせるような写真を信念とする芹沢理帆子という写真家が本当に存在するかのように思えて、唐突だけどなんか納得!みたいな印象に変わりました笑。

たしかに、父親のカメラを使って理帆子を撮る場面では、別所と理帆子のどちらがシャッターを切っているのか分からんな?と思いながら読んでいました。
タネ明かしされてから振り返ると、その場面はすごく映像的な感じがします。ドラマや映画だったら映像を切り貼りして、カメラマンと被写体を曖昧に見せる演出が容易に想像できますが、それを文章だけで上手いこと乗り切ってるのは流石だなぁと思いました。

 

最近小説なんて全然読んでいなかったのですが、久しぶりに読んだ小説がとても良い作品で感動しました。勢いで辻村さんの別の作品「傲慢と善良」も買っています。楽しみです。

****

私もどこにいても居心地が良くなくて、
「周りの人たちはなんでこのノリが楽しいんだろう」
「なんでその旅行が楽しみなんだろう」
「なんでそんなに素でこの場にいられるんだろう」
と思うことが多く、自分をどう振る舞わせていいか戸惑うばかりでした。なので、くだらないと馬鹿にしつつも周りに合わせていける理帆子より不器用ですよね、、

登場人物の中で一番怖いのは若尾の存在でした。
クレイジーだからというだけではなく、実は私の中にも若尾がいると思ったからです。
理帆子との会話の中で若尾が絶望的に空気の読めないズレたことを言い、「なんでこの流れでそんなことを言い出せるのか」と理帆子の背筋を冷たくさせる場面があるのですが、
いや、こういうこと、私も言いそう。
と容易に思い当たり、しっかりめに戦慄しました。

 

・・・今後は自分の言動に慎重にならざるを得ません。
できることなら、大至急どこかで情操教育を受けたいです

個人事業主になります

昨年末からいろいろありまして、会社を辞めることになりました。
そして来月から個人として働く予定です。
一応、参画先も決まっています。

 

正直、不安しかないです。
ちゃんと使い物になるのかな。
できなかったらどうしよう。
今からそんなことばかり考えてしまいますね。。

 

まぁ、やるしかないので前向きに頑張ります。
生きていけますように。

【手順】Oracle12cサイレントインストール

VirtualBoxOracle 12c をサイレントインストールしたときのメモ。基本的にはリファレンス通りの手順ですが、素人ゆえ自分用に加えた補足も残しておきたく。

環境

VIrtualBox 6.0
・RedHat6.7
Oracle 12c EE

事前準備

ダウンロードとインストール手順は割愛。バージョンは6.0です。
OSはRedHat6.7。とある業務でこのバージョンのRHEL+12cという要件があったので、やや古めのバージョンとなっています。6.7にはsystemctlコマンドがないんですね。
12cはここからダウンロードしました。

手順

カーネルパラメータの設定

# vi /etc/sysctl.conf
    fs.file-max = 6815744
    kernel.sem = 250 32000 100 128
    kernel.shmmni = 4096
    kernel.shmall = 1073741824
    kernel.shmmax = 4398046511104
    kernel.panic_on_oops = 1
    net.core.rmem_default = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048576
    net.ipv4.conf.all.rp_filter = 2
    net.ipv4.conf.default.rp_filter = 2
    fs.aio-max-nr = 1048576
    net.ipv4.ip_local_port_range = 9000 65500

/*設定反映*/
# /sbin/sysctl -p 

リソース制限の設定

# vi /etc/security/limits.conf
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728

OSグループ、OSユーザ作成

/*OSグループ作成*/
# groupadd -g 54321 oinstall
# groupadd -g 54322 dba
# groupadd -g 54323 oper
# groupadd -g 54324 backupdba
# groupadd -g 54325 dgdba

/*OSユーザ作成*/
# useradd -u 54321 -g oinstall -G dba,backupdba,dgdba,oper oracle

/*oracleユーザのパスワード設定*/
# passwd oracle

90-nproc.conf設定

/*この部分を*/
*          soft    nproc    1024

/*このように変更*/
* - nproc 16384

SELinux無効化

# vi /etc/selinux/config
   SELINUX=disabled

# reboot

再起動後、getenforceコマンドでDisabledが表示されることを確認

ファイアウォール無効化

# service iptables status
# service iptables stop
# chkconfig iptables off
# service iptables status

oracleユーザの環境変数設定

# su - oracle
$ mkdir -p /home/oracle/scripts
$ cat > /home/oracle/scripts/setEnv.sh <<EOF
    # Oracle Settings
    export TMP=/tmp
    export TMPDIR=\$TMP
    
    export ORACLE_HOSTNAME=mylocal.domain
    export ORACLE_UNQNAME=cdb1
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=\$ORACLE_BASE/product/12.1.0.2/dbhome_1
    export ORA_INVENTORY=/u01/app/oraInventory
    export ORACLE_SID=cdb1
    export PDB_NAME=pdb1
    export DATA_DIR=/u02/oradata
    
    export PATH=/usr/sbin:/usr/local/bin:\$PATH
    export PATH=\$ORACLE_HOME/bin:\$PATH
    
    export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
    export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
    EOF
    
$ echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile

インストールメディアのマウント
virtual box のメニューから、RHEL6.7のインストールメディアをマウントしておく。

# mount -t iso9660 /dev/cdrom /mnt
# ls /mnt
# vi /etc/yum.repos.d/dvd.repo
   [dvd]
   name=dvd
   baseurl=file:///mnt
   enabled=1
   gpgcheck=0
   gpgkey=file:///mnt//RPM-GPG-KEY-redhat-release

/*dvd以外のリポジトリを無効化*/
# cd /etc/yum.repos.d
# vi <リポジトリ名>
    enabled=0
# yum clean all
# yum repolist
 dvd のみ出力されることを確認

パッケージのインストール
yumで12cに必要なパッケージをインストール

ソフトウェアインストール用のディレクトリ作成

# mkdir -p /u01/app/oracle/product/12.1.0.2/db_1
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01

これでインストール準備は整いました。次の手順からOracleソフトウェアインストールと、DB作成の手順になります。

インストールパッケージの展開など

/*/home/oracleにzipをscpしておく*/
# su - oracle
$ unzip linuxamd64_12102_database_1of2.zip
$ unzip linuxamd64_12102_database_2of2.zip

パッケージの配置場所はどこでもいいはず。2つのzipをunzipすると、その場所にdatabaseというディレクトリが作成されます。 ・レスポンスファイル作成
/home/oracle/response にサンプル db_install.rsp があるのでコピーして自分用のレスポンスファイルを作成します。参考までに今回使用したレスポンスファイルは次のようなものです。(明示的に値を設定した項目のみ抜粋)

レスポンスファイル oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=your.domain
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
oracle.install.db.BACKUPDBA_GROUP=dba
oracle.install.db.DGDBA_GROUP=dba
oracle.install.db.KMDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.PDBName=pdb1
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.password.ALL=YourePassword
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata
DECLINE_SECURITY_UPDATES=true

Oracleインストーラ実行

/*パッケージを展開したディレクトリに移動*/
$ cd /home/oracle/database
$ ./runInstaller -ignorePrereq -waitforcompletion -silent \
    -responseFile /home/oracle/database/response/db_install.rsp \
    oracle.install.option=INSTALL_DB_SWONLY \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
    UNIX_GROUP_NAME=oinstall \
    INVENTORY_LOCATION=${ORA_INVENTORY} \
    SELECTED_LANGUAGES=en,en_GB \
    ORACLE_HOME=${ORACLE_HOME} \
    ORACLE_BASE=${ORACLE_BASE} \
    oracle.install.db.InstallEdition=EE \
    oracle.install.db.OSDBA_GROUP=dba \
    oracle.install.db.OSBACKUPDBA_GROUP=dba \
    oracle.install.db.OSDGDBA_GROUP=dba \
    oracle.install.db.OSKMDBA_GROUP=dba \
    oracle.install.db.OSRACDBA_GROUP=dba \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
    DECLINE_SECURITY_UPDATES=true

どや。
成功すると、次のようなメッセージが現れるのでrootユーザになってから実行します。

rootユーザーとして次のスクリプトを実行します:
        1. /u01/app/oraInventory/orainstRoot.sh
        2. /u01/app/oracle/product/12.1.0.2/dbhome_1/root.sh

初期化パラメータファイル
これを作らずに進み、DBを起動させようとしたら「初期化パラメータファイルがありません。」というエラーになりました。自動的に作成されるものではないのか。。

$ cd $HOME_ORACLE/dbs/

/*デフォルトで作成されているinit.oraをinitcdb1.oraとしてコピー*/
/*コピー後のファイル名はSID名に同じ*/
$ cp init.ora initcdb1.ora
$ vi initcdb1.ora
    <ORACLE_BASE>の部分を自分の環境に合わせて編集

initcdb1.ora db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='/u01/app/oracle/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'
私の設定がどこか間違っていたのか、audit_file_dest、db_recovery_file_dest、diagnostic_destの3つのディレクトリは手動で作成しなければなりませんでした。これらがないと、「そんなディレクトリ知りません」と突っぱねられてしまいます。

データベース作成

# su - oracle
$ dbca -silent -createDatabase  
    -templateName General_Purpose.dbc \
    -gdbname ${ORACLE_SID} -sid  ${ORACLE_SID} -responseFile NO_VALUE \
    -characterSet AL32UTF8 \
    -sysPassword SysPassword1 \
    -systemPassword SysPassword1 \
    -createAsContainerDatabase true \
    -numberOfPDBs 1 \
    -pdbName ${PDB_NAME} \
    -pdbAdminPassword PdbPassword1 \
    -databaseType MULTIPURPOSE \
    -totalMemory 2000 \
    -storageType FS \
    -datafileDestination "${DATA_DIR}" \
    -redoLogFileSize 50 \
    -emConfiguration NONE \
    -ignorePreReqs


完成!
psqlで接続できるようになります。サーバとクライアントが同じマシン上にあるのですが、一応リスナー経由でもアクセスできることを確認済みです。listener.oraとtnsname.oraも自動作成されなかったので、$ORACLE_HOME/network/admin/sample 配下にあるサンプルをコピって自作しました。

悩み

VirtualBoxでGuest Additionsの設定がうまくできません。。事情によりVirtualBoxはインターネット接続ができない環境に置かれているのですが、kernel-headerが合わないとか、古いとか、そんな感じのエラーをずっと解決できずにおります。どうしたらいいの。。

Silver SQL合格しました

何とか合格。
試験終了ボタンを押す瞬間は生きた心地がしませんでした。
神よ、、

 

GW前半に勉強期間を終えることができてハッピーです。おかげで連休後半はのっぺりと過ごせています。

もうしばらく勉強しないぞー。

新Silver黒本 SQLとDBAの違い

Oracle Master SilverのSQL黒本を一通り読み終わり、この本の内容はDBAの黒本のSQL部分とほぼ同じだということが分かりました。

 

DBAの試験範囲にSQLも含まれているので、DBAを先に受けた私はもしかしてSQLは結構ラクなのかも?(と願いたい。)

 

DBA黒本との主な違いを抜き出すとこんな感じ。
・1-2 リレーショナルモデルの設計とE-Rモデル
・8-4 相関副問合せ
・10-1-6 マルチテーブルINSERT
・10-1-7 MERGE文による行の更新または追加

 

細かいことを言えば、INSERT, UPDATE, REFERENCESは列レベルで設定できるとか、GRANTオプション付きで付与されたオブジェクト権限の取消しは波及する、なんて話は初耳だなと思いましたが、こまけーことはいーんだ。

 

とにかく、DBA試験のときの残像で戦える部分が大きいことは間違いありません。勉強期間はあまり長引かせたくないので、受験日も早めに決めてしまおうかなと思っています。

 

でもやっぱりSQLは苦手だからな、、(弱気)

/*** Original ***/