Month: March 2011

海外でiPadを使う(北米)

  アメリカにはiPadも持ってきたので、iPadの接続もしてみた。 0. 前提として、ソフトバンクモバイルの「海外パケットし放題」サービスに加入していること。渡航前に確認しておこう。 ちなみに、ソフトバンクショップは店によってはiPadの契約手続きができないので注意。 ソフトバンクモバイル 海外パケットし放題 http://mb.softbank.jp/mb/ipad/service/international_roaming/packet/ 1. 海外についたら、「設定」をタップ。 2. 「モバイルデータ通信」をオンにする。 3. 設定に戻り、「キャリア」にて事業者名を選択。アメリカの場合はAT&TやT-Mobileが使えるようだ。 海外のサービスエリアと利用料金 http://mb.softbank.jp/mb/ipad/service/international_roaming/ 4. 設定に戻り、「モバイルデータ通信」にてデータローミングをオンにする。 なお、TwitterやFacebook等のパケット通信をしない時間帯は、データローミングはオフにしておくと料金を節約できるはず。 割とすぐつながった。  

海外でGALAXY Sを使う(北米)

  出張でアメリカに来た。日本の家族との連絡用に、GALAXY Sを利用する。 0. 前提として、3G+GSMエリア対応ケータイを利用していること。GALAXY Sは対応している。 また、日本国内の「パケット定額サービス」か「定額データプラン」に加入していること。じゃないとパケ死することになる。 1. 海外についたら、端末左下のマークをタップし、「設定」を選択。 2. 「無線とネットワーク」を選択。 3. 「モバイルネットワーク」を選択。 4. 「ネットワークオペレータ」を選択し、事業者名が表示されるのを待つ。 5. アメリカ(本土)の場合は「AT&T」や「Cingular」を明示的に選択すること。 ※私の場合はシカゴでAT&Tの回線を利用したのだが、「T-Mobile」もネットワークオペレータとして表示された。 T-Mobileはアメリカの海外パケホーダイの対象事業者ではないようなので、おそらく自動選択されたりするとパケット通信料が非常に高額になると思われる。 「海外パケ・ホーダイ」対象事業者 http://www.nttdocomo.co.jp/service/world/roaming/outline/content/kaigai_pake_hodai/network/ 6. ネットワークオペレータを選択できたら「モバイルネットワーク」設定に戻り、「データローミング」をオンにすること。 なお、パケット通信をしない時間帯は、データローミングはオフにしておくと料金を節約できるはず。 私の場合、空港に着いてすぐはAT&Tの回線に接続できなかった。上記設定を何回か繰り返している内に繋がったので、うまくいかない人は何回かリトライするべし。 2011/05/19追記: こんなのもあるらしい。 NTTドコモ、”海外パケ・ホーダイ”の設定をサポートするAndroidアプリ「ドコモ海外利用」を公開、HT-03Aもサポート http://juggly.cn/archives/29181.html  

Apacheでトップページへのアクセスを特定URIにリダイレクト

  よくある要件。 トップページ(例:http://www.hogehoge.com/)へのアクセスを、特定のページに自動的にリダイレクトさせたい。 おなじみのmod_rewriteを使った例。 以下は、httpd.confの の中に記述すること。 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !test.*$ RewriteRule ^(.*)$ test/$1 [R,L] “http://www.hogehoge.com/”へのアクセスは、”http://www.hogehoge.com/test/”に自動的にリダイレクトされる。 参考: http://blog.dawgsdk.org/weblog/archives/411011 http://web-tan.forum.impressrd.jp/e/2010/01/05/6369  

CONFIG: ORA-20001: SYSMAN already exists..

  AWS上で、Oracle DBの11.2.0を試している。 例の如く、EC2インスタンスのprivate ipがOS起動毎に変わる影響で、EMが起動しない。EMのレポジトリを再作成しようとしたが、表題のエラーが発生して再作成が失敗する。また、シューティングしている中で以下のようなエラーも発生。 CONFIG: ORA-00955: name is already used by an existing object ググって、以下の情報を見つけた。 http://blog.mclaughlinsoftware.com/oracle-architecture-configuration/changing-windows-hostname-and-oracle-enterprise-manager/ http://arjudba.blogspot.com/2008/04/stack-of-problems-while-creating.html http://forums.oracle.com/forums/thread.jspa?threadID=1057381&tstart=0&start=45 1、先ず、いつものようにEMのレポジトリをドロップ emca -deconfig dbcontrol db -repos drop 2、SYSMAN関連のオブジェクトを、手動でドロップ DROP USER sysman CASCADE; DROP PUBLIC SYNONYM setemviewusercontext; DROP ROLE mgmt_user; DROP PUBLIC SYNONYM mgmt_target_blackouts; DROP USER mgmt_view; DROP PUBLIC SYNONYM MGMT_AVAILABILITY; 3、EMのレポジトリを再作成 emca -config dbcontrol db -repos.

EBSブートしたルートパーティションの領域拡張

  us-westのEC2環境を使い始めたのを機に、昨年末話題になっていたEC2インスタンスのEBSブートを試した。 その際、以下の各サイトを参考にさせて頂いた。 http://nxdxa.blogspot.com/2010/02/amazon-ebs-ec2.html http://blog.suz-lab.com/2010/01/migrating-centos-s3-based-ami-to-ebs.html http://coderslike.us/2009/12/07/amazon-ec2-boot-from-ebs-and-ami-conversion/ ネット上の情報を見るに、EC2インスタンスのEBSブートには、以下のようなメリットがあるようだ。 ・S3ベースのインスタンスと比較し、起動が速い。 ・インスタンス停止時に”terminate”ではなく”stop”を実行することで、ルートパーティション上のデータが消されないで済む。 ・S3ベースのインスタンスのルートパーティションの領域は、10GBが上限。一方、EBSベースの場合、1TBまで領域を拡張できる。 1つ目、2つ目のメリットについては噂通り。 インスタンスの起動時間は計測したわけではないが、速くなっている印象を受けた。 また、ルートパーティション上で変更を加えた場合(/etcの下のファイルをイジる、とか・・・)、以前ならec2-bundle-volしないといけなくてウザかったのだが、その必要はなくなった。インスタンスをterminateせず、stopしておけば、ルートパーティション上のデータは消えず、課金もされない。個人でちょくちょく使う利用者にとってはうれしい機能だ。 一方、3つ目のメリット、ルートパーティションの領域拡張については、最初若干うまくいかなかった。 参考にさせて頂いた3つめのサイトの情報を基に、インスタンス起動時にblock-device-mappingを指定してルートパーティションの領域を拡張しようとしたのだが、これがどうにもうまくいかない。ec2run -hの情報を見て色々試行錯誤したのだが、コマンドだとうまくいかない・・・なんでだろう? C:\Amazon Web Services>ec2run ami-XXXXXXXX –block-device-mapping /dev/sda1=:50 -k xxxx -g xxxx -z us-west-1a WARNING: Ignoring extra parameter(s): [ :50 ] Invalid argument for option ‘-b, –block-device-mapping MAPPING’: ‘/dev/sda1’ (-h for usage) 結局、インスタンスはAWS Management Consoleで普通に起動させ、起動後にサーバにログインし、resize2fsしたら普通にうまくいった。 (以下はCentOSの例) [root@hogehoge ~]# df -k Filesystem.

Amazon EC2 APIで、us-east以外のregionを管理

  Amazon EC2でus-west(N. California)にインスタンスを立てたのだが、インスタンス上でec2-describe-instancesしても、何も表示されない。 どうやら、Amazon EC2 API Toolsのデフォルトregionは、us-eastになっているようだ。 http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?setting-up-your-tools.html By default, the Amazon EC2 tools use the Eastern United States region (us-east-1) with the us-east-1.ec2.amazonaws.com service endpoint URL. This section describes how to specify a different region by changing the service endpoint URL. regionの切り替えは、環境変数で行う。EC2_URLに、管理を行いたいregionのURLを設定する。 以下は、us-west、Linux環境の例。Windowsなら、当然ながらsetにすること。 export EC2_URL=https://ec2.us-west-1.amazonaws.com URLのFQDN部分は、ec2-describe-regionsで調べられる模様。 [root@hogehoge ~]# ec2-describe-regions REGION eu-west-1 ec2.eu-west-1.amazonaws.com REGION.

ORA-1092

  データベース作成時に発生し、データベース作成失敗。 ORA-1092 : opiodr aborting process unknown ospid (5701_2513792) Sat Jun 06 11:06:48 2009 ORA-1092 : opitsk aborting process 直感的にはわからなかったが、どうやらcreate databaseする時にディスクの領域が足りなかったようだ。 ググると、oracleユーザがディレクトリ権限を持っていない場合も発生したりするらしい。

Amazon Elastic Block Storeの容量を拡張したい

  Oracleのインスタンス用に使っているAmazon EBSのボリューム容量が手狭になってきたため、容量を増やすことにした。 ネットで軽く調べた限り、作成済みのEBSボリュームの容量を拡張することはできなさそう。 また、snapshotを作成後、以下のようにsnapshotオプションを指定して新規EBSボリュームを作成すれば、擬似的にボリュームの容量を拡張できるのではと思ったが、ボリュームの容量が増えても、OSが認識するパーティションのサイズは変わらないので、要件を満たせない。 ec2-create-volume –size 50 –snapshot snap-xxxexxxb -z us-east-1a というわけで、新しいボリュームマウントして、素直にデータコピーしましたが何か?という結果になった。 1、新しいボリュームを作成 $ ec2-create-volume –size 50 -z us-east-1a 2、新旧のボリュームをマウント $ ec2-attach-volume -d /dev/sdf -i $ ec2-attach-volume -d /dev/sdg -i 3、新しいボリュームのファイルシステムを作成 $ mkfs -t ext3 /dev/sdf 4、両方マウント $ mount /dev/sdf /opt/oracle $ mount /dev/sdg /mnt 5、古いボリュームから、データをコピー 6、Oracle起動して確認 うまくいったみたい。  

ec2-bundle-volが失敗する

  ec2-bundle-volでバックアップを取得しようとすると、エラーが出て失敗する。 $ ec2-bundle-vol -d /vol -k /root/pk-hogehoge.pem -c /root/cert-hogehoge.pem -u xxxx-xxxx-xxxx –fstab /etc/fstab -r i386 Copying / into the image file /vol/image… Excluding: /sys /proc /dev/pts /proc/sys/fs/binfmt_misc /dev /media /mnt /proc /sys /vol/image /mnt/img-mnt 1+0 records in 1+0 records out 1048576 bytes (1.0 MB) copied, 0.003753 seconds, 279 MB/s mke2fs 1.39 (29-May-2006) ERROR: execution.

AWSとOracleとElastic IP

  (旧ブログから移行したので情報が古い。もうOracleのRDSまで出るもんなあ。AWSの機能追加・改善のスピードにはいつも驚かされる) Amazon Web Services上でOracle用のインスタンスをlaunchして、Elastic IPを割り振った後、何点かハマったのでメモ。 インスタンス起動すると、listener.oraのHOSTが古いままなんですけど 症状: AWSのインスタンスは、起動する度にホスト名が変わってしまう。 listener.oraは、こんな感じになっているのだが、 $ cat listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) (ADDRESS = (PROTOCOL = TCP)(HOST = domU-XX-XX-XX-XX-XX-XX)(PORT = 1521)) ) ) HOSTの文字列が更新されない。ちなみに、tnsnames.oraのHOSTも同じ。 どうしよう: 参考:[TechDay] 第6回 Amazon Elastic Compute Cloud (Amazon EC2) http://builder.japan.zdnet.com/member/u502383/blog/2008/10/25/entry_27017395/ 上記サイトを参考に、Oracleの起動スクリプトを書き換える。上記サイトではOracle XEをベースに解説されているが、Enterprise Editionの場合は/etc/init.d/dboraを書き換える。ポイントとしては、元の起動スクリプトだと、/root/firstrunがないとlistener.oraの更新がされないようになっていたので、条件文コメントアウトした。 インスタンス起動すると、環境変数ORACLE_HOSTNAMEが古いままなんですけど 症状: oracleユーザの環境変数ORACLE_HOSTNAMEも、前回起動していたインスタンスのホスト名が割り当てられたまま。 どうしよう:.