2015年11月18日水曜日

awsのスケールアップ失敗

構築タイミングでt1.smallで構築し、リリース前にc4.xlargeに変更したところステータスチェックで1/2となりEC2が起動しない状況がありました。

調べたところ、拡張ネットワーキング機能が原因でした。

VPC 内の Windows インスタンスでの拡張ネットワーキングの有効化 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/enhanced-networking.html


今回はWindows 2012 ServerだったんですがWindows OS側でこの拡張ネットワーキングを有効化していないことでネットワーク接続ができず1/2のステータスチェックエラーになっているようでした。

これは気づかない・・・

2015年11月11日水曜日

Oracle RAC DB手動削除

Oracle RAC DBの手動削除手順です

1-1.oracleユーザにスイッチ
 # su - oracle

1-2.クラスタデータベースの起動を確認。起動してなかったら起動させる。
 $ srvctl status database -d クラスタデータベース名
 Instance XXXXX01 is running on node ホスト1
 Instance XXXXX02 is running on node ホスト1
 $ srvctl start database -d クラスタデータベース名

1-3.DBに接続
 $ sqlplus SYSTEM/SYSTEM@クラスタデータベース名
 SQL> select instance_name from v$instance;
 INSTANCE_NAME
 ----------------
 XXXXX01 もしくは XXXXX02

1-4.DBを単一インスタンスモードに変更
 SQL> alter system set cluster_database=FALSE scope=spfile;
 SQL> quit

1-5.DB 停止
 $ srvctl stop database -d  クラスタデータベース名
 $ srvctl status database -d クラスタデータベース名
 Instance XXXXX01 is not running on node ホスト1
 Instance XXXXX02 is not running on node ホスト2

1-6.排他モードでDB起動
 $ export ORACLE_SID=クラスタSID

$ sqlplus / as sysdba
 SQL> STARTUP MOUNT EXCLUSIVE RESTRICT;
 ORACLEインスタンスが起動しました。

 Total System Global Area 1.7180E+10 bytes
 Fixed Size                  5304248 bytes
 Variable Size            2372763720 bytes
 Database Buffers         1.4663E+10 bytes
 Redo Buffers              138514432 bytes
 データベースがマウントされました。

SQL> select instance_name from v$instance;
 INSTANCE_NAME
 ----------------
 クラスタデータベース名

1-7.DB削除
 SQL> DROP DATABASE;

 データベースが削除されました。

 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
 With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
 Advanced Analytics and Real Application Testing optionsとの接続が切断されました。
 SQL> quit

1-8.DBリソースの削除
 $ srvctl status database -d クラスタデータベース名
 Instance XXXXX01 is not running on node ホスト1
 Instance XXXXX02 is not running on node ホスト2
 Instance クラスタデータベース名 is not running on node ホスト1

$ srvctl remove database -d クラスタデータベース名
 Remove the database クラスタデータベース名? (y/[n]) y

 $ srvctl status database -d クラスタデータベース名
 PRCD-1120 : The resource for database クラスタデータベース名 could not be found.
 PRCR-1001 : Resource ora.クラスタデータベース名.db does not exist


1-9.ASM上データ削除
 $ exit
 # su - grid
 $ asmcmd -p
 ASMCMD [+] > cd DATA
 ASMCMD [+] > ls
 ASMCMD [+] > rm -r データベースファイル格納ディレクトリ
 You may delete multiple files and/or directories.
 Are you sure? (y/n)
 ASMCMD [+] > ls



1-10.1号機、2号機側データベースサーバ上の不要ファイル削除
 $ exit
 # find / -name クラスタデータベース名
 # find  / -name 1号機側インスタンス名 or 2号機側インスタンス名
 # rm -fr findで見つけた不要ファイル