勝手に yum update がかからないように [cloudpack OSAKA blog]
ナスです。
なんか勝手に yum update が走ってるぞ…
AmazonLinux の AMI を作成して、それを基に EC2 インスタンスを起動したら、勝手に yum update がかかってしまいました。今インストールしている特定のミドルウェアだけを更新したかったのに、全部のミドルウェアのバージョンが上がってしまいました。
今まで何気なくやっていた作業なのに気付かなかったなーと思ったら、だいたい構築し終わってすぐに AMI 作成して EC2 の起動確認するから気付かなかったんですね。ちょっとした作業でも気づきがあって、クラウドの世界って面白いです。(ハマると悲惨ですが…
さて、これなんとかならないものか
簡易なDRを組んでいて訓練等でDRサイトで AmazonLinux を起動したり、検証で AMI から新規に AmazonLinux を作成したりした時に毎回 yum update が動くと困ります。なんか回避手段ないかなーと調べてみたら、普通にありました。しかもよくある質問に。
よくある質問 - Amazon Linux AMI | AWS
AMI から EC2 を起動する時に、ユーザデータの箇所を下記のようにするだけでいけます。
#cloud-config
repo_upgrade: none
こうすることで、EC2 起動時にパッケージの更新がされなくなります。
最近はしっかりとドキュメントを読んでるつもりでしたが、まだまだ知らないことがたくさんありそうです。
Oracle on CentOS にサンプルデータを入れるまで [cloudpack OSAKA blog]
ナスです。
とある検証のために環境を準備した際にハマったことです。
作りたかった環境
EC2 × 1
OS: CentOS7
DB: Oracle12c
DBの中に表領域数個と1つの表領域のテーブルの中に100万件レコードを入れる
たったこれだけなのに2日間もかかってしまったので、二度と同じ過ちを犯さないため&私みたいに DB に詳しくない人が同じところで困らないように書き残しておきます。
Oracle にテーブルを作るまで
CentOS の EC2 を起動した場合、ssh アクセスするユーザは centos です。まずこれで半日はかかりました…
Oracle をインストールするのは簡単です。
HowTos/Oracle12onCentos7 - CentOS Wiki
ただ、作られると思っていた orcl データベースが中途半端に出来上がり、mount できない状態でした。色々試したけど制御ファイルがどこにも見当たらなかったので、諦めようとしてたら、新しくデータベースを作ればいいことに気がつきました。
create database って SQL 文で作れるみたいですが、これはこれでなんかオプションいっぱいあるなーと思って途方に暮れてました。
で、さらに根気よく調べていくと、dbca っていうお手軽 GUI ツールがあることを知りまして、やってみると簡単に作れちゃいました。
oracle ユーザで ssh -X <servername> でログインした後に、dbca とだけ叩いて起動します。まずは何をするかを選択。今回はdb作る、で。
db作るのに必要な情報を入れて次へ。
あとは前提条件チェックが走って、実際に DB が作られます。むちゃくちゃ楽チンでした。
サンプルデータ100万件入れる
さっき作った DB にサンプルデータはどうやって入れようかと調べてたら、最終的に Oracle さんの web にたどり着きました。
しばちょう先生の試して納得!DBAへの道 第3回 データ領域管理の理解~SQLチューニングにも挑戦~
ここの「再帰的With句を活用したSQL」という手法で100万件作ったんですが、5秒くらいで終わりました。早い。ただ、残念ながら、この再帰的With句がまだちゃんと理解できてません… またの機会に調べよう。
↓はこのページからの引用。
SQL> insert into <tablename> select i+j,rpad(to_char(i+j),100,'A') from ( with DATA2(j) as ( select 0 j from DUAL union all select j+1000 from DATA2 where j < 999000 ) select j from DATA2 ), ( with DATA1(i) as ( select 1 i from DUAL union all select i+1 from DATA1 where i < 1000 ) select i from DATA1 );
と、ここまで書いてみて全然大したことしてないように見えますが、知識がないとこういう作業も数日かかってしまうので、いろんなことに手を出して勉強してみるのも大事だなと思いました。