Hack Reduce Amazon RDS for Oracle Database powered by JPOUG にブログでも参加

AWS Console Mobile App

Relational Database Service (RDS)を追加

Amazon Web Services ブログ: 【AWS発表】 モバイル版AWSコンソール、AWS Console Mobile Appがアップデート。ELB、RDSのサポートも追加

とのことなので Androidで使ってみています。

わたしの RDS for Oracle Databaseのインスタンスは こんな感じです。
って、誰かに見せても、みなさん反応が薄いんですけどね…

Patch Composition

# su - oracle
$ ls
Desktop    Downloads           Music           Pictures  Templates
Documents  instantclient_12_1  oradiag_oracle  Public    Videos
$
$ export PATH=/home/oracle/instantclient_12_1:${PATH}
$ export LD_LIBRARY_PATH=/home/oracle/instantclient_12_1
$ sqlplus oracle/oracle123@sr4nt4iynabpkx.cod1oirox6ww.ap-northeast-1.rds.amazonaws.com:1521/ORCL
SQL*Plus: Release 12.1.0.1.0 Production on Fri Sep 27 12:52:34 2013

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production

SQL> select COMMENTS,ACTION,ACTION_TIME from sys.REGISTRY$HISTORY;

COMMENTS
--------------------------------------------------------------------------------
ACTION
------------------------------
ACTION_TIME
---------------------------------------------------------------------------
PSU 11.2.0.2.10
APPLY
01-MAY-13 07.05.14.165873 PM


SQL>

先の AWS Console の画像の RDS Dashboard の DB Instances を見れば Engine は oracle-se1(11.2.0.2.v7) と表示されているので、あえてこんな確認しなくてもいいのだけれど、じゃぁどんなパッチが適用されているのか確認したくて AWS Documentation » Amazon Relational Database Service (RDS) » User Guide » Oracle on Amazon RDS » Appendix: Oracle DB Engine Patch Composition を見ると“Bugs fixed: ”の後ろに ずらっと Bug#が並んでるので…こんなSQLの実行結果が見たくなりました。

Bug#を並べるよりも「 Patch 16056267 が適用されてること」と、「Patch 16056267 の他に適用している Patch #が書かれていれば」いいのになぁと思いませんか ?
opatch lsinventory -detail とか おもむろに実行したくなる衝動にかられません ?

Audit Files

Audit file /rdsdbdata/admin/ORCL/adump/orcl_ora_3632_1.aud
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
ORACLE_HOME = /rdsdbbin/oracle
System name:	Linux
Node name:	ip-10-0-0-85
Release:	2.6.18-238.el5xen
Version:	#1 SMP Sun Dec 19 14:42:02 EST 2010
Machine:	x86_64
VM name:	Xen Version: 3.4 (PVM)
Instance name: ORCL
Redo thread mounted by this instance: 1
Oracle process number: 24
Unix process pid: 3632, image: oracle@ip-10-0-0-85 (TNS V1-V3)

Tue Sep 24 16:22:53 2013 +00:00
LENGTH : '154'
ACTION :[7] 'CONNECT'
DATABASE USER:[1] '/'
PRIVILEGE :[6] 'SYSDBA'
CLIENT USER:[5] 'rdsdb'
CLIENT TERMINAL:[0] ''
STATUS:[1] '0'
DBID:[10] '1342082494'

こんなのが いっぱいできてるんだよね…

RDS Management Consoleというか RDS Dashboardの DB Instanceの Logが こんな感じになっちゃってて…


ログファイル、監査ファイルへどうやってアクセスするのか
ログファイル、監査ファイルのメンテナンスはどうやって実行するのか、そもそもメンテナンスする必要があるのか

Amazon RDS for Oracle Databaseに触ってみました&気になることメモ (コーソル DatabaseエンジニアのBlog)

監査ファイルを見るのは「RDS Dashboardの DB Instanceの Log」でいいとして、メンテナンスは どうするんでしょうか ?

Alert Files & Trace Files

アラート・ファイルは日に一回ローテートされて .YYYY-MM-DDが末尾について保存されています。

「RDS Dashboardの DB Instanceの Log」からアラートもトレースも Downloadできます。

Amazon RDS purges trace files by default and log files that are older than seven days.

AWS Documentation » Amazon Relational Database Service (RDS) » User Guide » Monitoring a DB Instance » Working with Database Log Files » Working with Oracle Database Log Files

このページに書いてあることを実行

SQL> exec rdsadmin.rdsadmin_util.show_configuration;

PL/SQL procedure successfully completed.

SQL>
SQL> exec rdsadmin.manage_tracefiles.purge_tracefiles('MYTRACE*');
BEGIN rdsadmin.manage_tracefiles.purge_tracefiles('MYTRACE*'); END;

*
ERROR at line 1:
ORA-20102: Error in manage_tracefiles.rm_tracefiles. ORA-20101: Error trying to
run rm_tracefiles in /rdsdbbin/scripts/rm-tracefile
ORA-06512: at "SYS.MANAGE_TRACEFILES", line 246
ORA-06512: at "RDSADMIN.MANAGE_TRACEFILES", line 41
ORA-06512: at line 1


SQL>

わたしの やり方がよくないのでしょう ora
みなさんどのように管理されているのでしょうか ?

System State Dump

最初から*1 コレが興味深かったので書きます。

SQL> exec rdsadmin.manage_tracefiles.dump_systemstate;

PL/SQL procedure successfully completed.

SQL>

これを実行しているのとは別のプロセスでSQL*Plusを実行して oradebug dump systemstate 266 が発行されています。
気軽に「RDS Dashboardの DB Instanceの Log」から Downloadできます。

Trace file /rdsdbdata/log/diag/rdbms/orcl_a/ORCL/trace/ORCL_ora_21609_SYSTEMSTATE.trc
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
ORACLE_HOME = /rdsdbbin/oracle
System name:	Linux
Node name:	ip-10-0-0-85
Release:	2.6.18-238.el5xen
Version:	#1 SMP Sun Dec 19 14:42:02 EST 2010
Machine:	x86_64
VM name:	Xen Version: 3.4 (PVM)
Instance name: ORCL
Redo thread mounted by this instance: 1
Oracle process number: 26
Unix process pid: 21609, image: oracle@ip-10-0-0-85 (TNS V1-V3)


*** 2013-09-27 19:56:59.582
*** SESSION ID:(29.3473) 2013-09-27 19:56:59.582
*** CLIENT ID:() 2013-09-27 19:56:59.582
*** SERVICE NAME:(SYS$USERS) 2013-09-27 19:56:59.582
*** MODULE NAME:(sqlplus@ip-10-0-0-85 (TNS V1-V3)) 2013-09-27 19:56:59.582
*** ACTION NAME:() 2013-09-27 19:56:59.582
 

*** TRACE CONTINUED FROM FILE /rdsdbdata/log/diag/rdbms/orcl_a/ORCL/trace/ORCL_ora_21609.trc ***


*** 2013-09-27 19:56:59.582
Processing Oradebug command 'tracefile_name'

*** 2013-09-27 19:56:59.582
Oradebug command 'tracefile_name' console output: 
/rdsdbdata/log/diag/rdbms/orcl_a/ORCL/trace/ORCL_ora_21609_SYSTEMSTATE.trc

*** 2013-09-27 19:56:59.582
Processing Oradebug command 'dump systemstate 266'
===================================================
SYSTEM STATE (level=10, with short stacks)
------------
System global information:
     processes: base 0x736307e0, size 44, cleanup 0x73638500
     allocation: free sessions 0x73680ec8, free calls (nil)
     control alloc errors: 0 (process), 0 (session), 0 (call)
     PMON latch cleanup depth: 0
     seconds since PMON's last scan for dead processes: 61
     system statistics:

これは先頭行だけですが、中を見ていると…

https://twitter.com/wmo6hash/status/382908019278753793:twitter


何か他に気になった方は、京セラドーム大阪*2で大島さんと渡部さんと盛り上がってください !

謝辞

これを書くにあたって RDS for Oracle Databaseをとりあえずさわってみよう - KNOPP’s blog の CloudFormationを利用しました。どうもありがとうございます。
Amazon RDS for Oracle Standard Edition One (License Included) は現在 $0.05 per RDS Micro Instance hour (or partial hour)です。DB インスタンスを削除するまで何日も使っていると、一日当たり1.2ドルです。ご利用は計画的に。

補足

現在の Amazon Relational Database Service User Guide は(API Version 2013-05-15) です。