Hatena::ブログ(Diary)

すこっと・たいがー! RSSフィード

2011-12-08

[] MacBookAir で Swingbench を使ってみる(その3)

Order Entry Install Wizardで作成したテーブルとインデックスの情報です。

SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
WAREHOUSES
PRODUCT_INFORMATION
PRODUCT_DESCRIPTIONS
ORDERENTRY_METADATA
CUSTOMERS
ORDER_ITEMS
ORDERS
INVENTORIES
LOGON

9行が選択されました。

SQL> select table_name, index_name from user_indexes;

TABLE_NAME		       INDEX_NAME
------------------------------ ------------------------------
WAREHOUSES		       WAREHOUSES_PK
WAREHOUSES		       WHS_LOCATION_IX
PRODUCT_INFORMATION	       PRODUCT_INFORMATION_PK
PRODUCT_INFORMATION	       PROD_SUPPLIER_IX
PRODUCT_INFORMATION	       PROD_CATEGORY_IX
PRODUCT_DESCRIPTIONS	       PRD_DESC_PK
PRODUCT_DESCRIPTIONS	       PROD_NAME_IX
ORDER_ITEMS		       ORDER_ITEMS_PK
ORDER_ITEMS		       ITEM_ORDER_IX
ORDER_ITEMS		       ITEM_PRODUCT_IX
ORDERS			       ORDER_PK
ORDERS			       ORD_SALES_REP_IX
ORDERS			       ORD_CUSTOMER_IX
ORDERS			       ORD_ORDER_DATE_IX
ORDERS			       ORD_WAREHOUSE_IX
INVENTORIES		       INVENTORY_PK
INVENTORIES		       INV_PRODUCT_IX
INVENTORIES		       INV_WAREHOUSE_IX
CUSTOMERS		       CUSTOMERS_PK
CUSTOMERS		       CUST_ACCOUNT_MANAGER_IX
CUSTOMERS		       CUST_LNAME_IX
CUSTOMERS		       CUST_EMAIL_IX
SQL> select table_name,num_rows,avg_row_len,blocks from user_tables;

TABLE_NAME			 NUM_ROWS AVG_ROW_LEN	  BLOCKS
------------------------------ ---------- ----------- ----------
WAREHOUSES			     1000	   27	      60
PRODUCT_INFORMATION		     1000	  177	      60
PRODUCT_DESCRIPTIONS		     1000	  215	      60
ORDERENTRY_METADATA			4	   24	      60
CUSTOMERS			  4000000	   63	   40288
ORDER_ITEMS			 13504287	   20	   48508
ORDERS				  4500000	   48	   40192
INVENTORIES			   901096	   14	   23152
LOGON				  1000000	   13	    4000

はい。手抜き更新です。

2011-12-07

[] Oracle SQL Developer 3.0 (3.0.04.34)をOELにインストールする。

オラクル社が無償で提供しているデータベース開発用ツールをOEL(Oracle Enterprise Linux)に導入し、MacBookAirから使ってみようと思います。

Oracle SQL Developer 3.0 ダウンロード

最新バージョンの3.0を上記のURLからダウンロードし、OELにインストールします。

MacBookAir$ scp Desktop/sqldeveloper-3.0.04.34-1.noarch.rpm oracle@192.168.11.41:/tmp
oracle@192.168.11.41's password: 
sqldeveloper-3.0.04.34-1.noarch.rpm                               100%  147MB   5.5MB/s   00:27    
MacBookAir(~)$ ssh -X oracle@192.168.11.41
oracle@192.168.11.41's password: 
Last login: Wed Dec  7 23:01:43 2011 from 192.168.11.3
[oracle@rac01 ~]$ sudo rpm -Uvh /tmp/sqldeveloper-3.0.04.34-1.noarch.rpm 
[sudo] password for oracle: 
準備中...                ########################################### [100%]
   1:sqldeveloper           ########################################### [100%]
[oracle@rac01 ~]$ 

次にJDK6がすでにインストールされていることを確認し、インストールされていない場合は以下からダウンロードして導入します。

Java SE Development Kit 6u29 download page

[oracle@rac01 tmp]$ sudo rpm -Uvh /tmp/jdk-6u29-linux-x64-rpm.bin 
[sudo] password for oracle: 
/tmp/jdk-6u29-linux-x64-rpm.bin: RPM パッケージ(またはパッケージのリスト)ではありません: 
[oracle@rac01 tmp]$ sudo sh /tmp/jdk-6u29-linux-x64-rpm.bin 
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
  inflating: jdk-6u29-linux-amd64.rpm  
  inflating: sun-javadb-common-10.6.2-1.1.i386.rpm  
  inflating: sun-javadb-core-10.6.2-1.1.i386.rpm  
  inflating: sun-javadb-client-10.6.2-1.1.i386.rpm  
  inflating: sun-javadb-demo-10.6.2-1.1.i386.rpm  
  inflating: sun-javadb-docs-10.6.2-1.1.i386.rpm  
  inflating: sun-javadb-javadoc-10.6.2-1.1.i386.rpm  
準備中...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...
Installing JavaDB
準備中...                ########################################### [100%]
   1:sun-javadb-common      ########################################### [ 17%]
   2:sun-javadb-core        ########################################### [ 33%]
   3:sun-javadb-client      ########################################### [ 50%]
   4:sun-javadb-demo        ########################################### [ 67%]
   5:sun-javadb-docs        ########################################### [ 83%]
   6:sun-javadb-javadoc     ########################################### [100%]

Java(TM) SE Development Kit 6 successfully installed.

Product Registration is FREE and includes many benefits:
* Notification of new versions, patches, and updates
* Special offers on Oracle products, services and training
* Access to early releases and documentation

Product and system data will be collected. If your configuration
supports a browser, the JDK Product Registration form will
be presented. If you do not register, none of this information
will be saved. You may also register your JDK later by
opening the register.html file (located in the JDK installation
directory) in a browser.

For more information on what data Registration collects and 
how it is managed and used, see:
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html

Press Enter to continue.....

 
Done.

インストールされたjavaのバージョンを確認します。ちゃんと1.6が入っていますね。

[oracle@rac01 tmp]$ /usr/java/jdk1.6.0_29/bin/java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)

では、sqldeveloperを起動してみましょう。

[oracle@rac01 ~]$ sqldeveloper 

Oracle SQL Developer
 Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 

Type the full pathname of a J2SE installation (or Ctrl-C to quit), the path will be stored in ~/.sqldeveloper/jdk

J2SEのパスの入力を求められましたので、$HOME/.sqldeveloper/jdkにJDK6へのパスを記載します。

[oracle@rac01 ~]$ cat $HOME/.sqldeveloper/jdk
/usr/java/jdk1.6.0_29

もう一度、sqldeveloperを実行するとGUIが起動してきました。sshでXをトネリングするときは、-Xオプションを忘れないで指定する必要がありますので。

MacBookAir$ ssh -X oracle@192.168.11.41
oracle@192.168.11.41's password: 
Last login: Thu Dec  8 00:00:40 2011 from 192.168.11.3
[oracle@rac01 ~]$ sqldeveloper

Oracle SQL Developer
 Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 
:

f:id:greenballs:20111208001533p:image:w500


SQL Developerは便利なようですが、あまり使ったことがないので少し勉強してみようかと。

2011-12-06

[] OEL上のSQL*Plusでrlwrapをyumで導入する

Oracle使いにとってSQL*Plusは必須のツールですが、逐次SQLコマンドを入力していかなければならいので、タイポとか繰り返すとキーッとなることが多いんじゃないでしょうか。そんなSQL*Plusにコマンド履歴と編集機能を提供してくれるrlwrapという便利なユーティリティーがあるので、Oracle Enterprise Linuxyumを使ってさくっと導入する方法を紹介したいと思います。


OELでyumを使用できるようにする方法については、以下の更新を参照してください。この設定をおこなっている前提で進めます。

Oracle Enterprise Linuxでyumリポジトリを使用可能にする。

まずは、Readlineライブラリをインストールします。このライブラリは過去に実行したコマンドラインの一覧を保持するとともに、過去に実行したコマンドを呼び出し、編集する機能を提供してくれます。

[root@rac01 ~]# yum install readline readline-devel ncurses-devel
Loaded plugins: rhnplugin, security
This system is not registered with ULN.
ULN support will be disabled.
Excluding Packages in global exclude list
Finished
Setting up Install Process
Package readline-5.1-3.el5.x86_64 already installed and latest version
Package readline-5.1-3.el5.i386 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package ncurses-devel.i386 0:5.5-24.20060715 set to be updated
---> Package ncurses-devel.x86_64 0:5.5-24.20060715 set to be updated
---> Package readline-devel.i386 0:5.1-3.el5 set to be updated
--> Processing Dependency: libtermcap-devel for package: readline-devel
---> Package readline-devel.x86_64 0:5.1-3.el5 set to be updated
--> Running transaction check
---> Package libtermcap-devel.x86_64 0:2.0.8-46.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                    Arch             Version                    Repository             Size
====================================================================================================
Installing:
 ncurses-devel              i386             5.5-24.20060715            ol5_u7_base           1.6 M
 ncurses-devel              x86_64           5.5-24.20060715            ol5_u7_base           1.7 M
 readline-devel             i386             5.1-3.el5                  ol5_u7_base           146 k
 readline-devel             x86_64           5.1-3.el5                  ol5_u7_base           160 k
Installing for dependencies:
 libtermcap-devel           x86_64           2.0.8-46.1                 ol5_u7_base            56 k

Transaction Summary
====================================================================================================
Install       5 Package(s)
Upgrade       0 Package(s)

Total download size: 3.7 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): libtermcap-devel-2.0.8-46.1.x86_64.rpm                                |  56 kB     00:00     
(2/5): readline-devel-5.1-3.el5.i386.rpm                                     | 146 kB     00:00     
(3/5): readline-devel-5.1-3.el5.x86_64.rpm                                   | 160 kB     00:01     
(4/5): ncurses-devel-5.5-24.20060715.i386.rpm                                | 1.6 MB     00:05     
(5/5): ncurses-devel-5.5-24.20060715.x86_64.rpm                              | 1.7 MB     00:05     
----------------------------------------------------------------------------------------------------
Total                                                               250 kB/s | 3.7 MB     00:15     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libtermcap-devel                                                             1/5 
  Installing     : ncurses-devel                                                                2/5 
  Installing     : ncurses-devel                                                                3/5 
  Installing     : readline-devel                                                               4/5 
  Installing     : readline-devel                                                               5/5 

Installed:
  ncurses-devel.i386 0:5.5-24.20060715            ncurses-devel.x86_64 0:5.5-24.20060715           
  readline-devel.i386 0:5.1-3.el5                 readline-devel.x86_64 0:5.1-3.el5                

Dependency Installed:
  libtermcap-devel.x86_64 0:2.0.8-46.1                                                              

Complete!

次にEPEL(Extra Packages for Enterprise Linux)をインストールします。このパッケージは、Red Hat Enterprise Linux 用の比較的マイナーな拡張パッケージの集合のことで、このパッケージ群に目的のrlwrapがあります。

[root@rac01 ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm を取得中
警告: /var/tmp/rpm-xfer.In5nWp: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

これでyumを使ってrlwrapを簡単に導入できるようになります。

[root@rac01 ~]# yum install rlwrap
Loaded plugins: rhnplugin, security
This system is not registered with ULN.
ULN support will be disabled.
epel                                                                         | 3.7 kB     00:00     
epel/primary_db                                                              | 3.9 MB     00:00     
Excluding Packages in global exclude list
Finished
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rlwrap.x86_64 0:0.37-1.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package               Arch                  Version                      Repository           Size
====================================================================================================
Installing:
 rlwrap                x86_64                0.37-1.el5                   epel                 92 k

Transaction Summary
====================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 92 k
Is this ok [y/N]: y
Downloading Packages:
rlwrap-0.37-1.el5.x86_64.rpm                                                 |  92 kB     00:00     
警告: rpmts_HdrFromFdno: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6
epel/gpgkey                                                                  | 1.7 kB     00:00     
Importing GPG key 0x217521F6 "Fedora EPEL <epel@fedoraproject.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : rlwrap                                                                       1/1 

Installed:
  rlwrap.x86_64 0:0.37-1.el5                                                                        

Complete!

これで導入は完了。


あとは、次のようにSQL*Plusを実行するだけ。

[oracle@rac01 ~]$ rlwrap sqlplus /nolog

CTRL+P、CTRL+Nや↑↓で履歴を行ったり来たり。CTRL+Aで行頭に戻ったり、CTRL+Dで一文字削除。CTRL+Kで一行削除など...これでSQL*Plusを自由自在に操れるでしょう。もちろんRMANでも使えますよ。

oracleユーザーの「.bash_profile」にこんな感じでエイリアスと登録しておくとよいでしょう。

alias rlsqlplus='rlwrap sqlplus /nolog'
alias rlrman='rlwrap rman'

以上です。

2011-12-05

[] MacBookAir で Swingbench を使ってみる(その2)

前回は、ウィザードを使用してオーダーエントリーのスキーマとデータを作成しましたが、作成された表領域名を確認してみたところファイルシステム上に作成されていることがわかりました。

SQL> select * from dba_data_files where tablespace_name = 'SOE';

FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID
----------
TABLESPACE_NAME
--------------------------------------------------------------------------------
     BYTES     BLOCKS STATUS			  RELATIVE_FNO AUTOEXTEN
---------- ---------- --------------------------- ------------ ---------
  MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_STATUS
---------- ---------- ------------ ---------- ----------- ---------------------
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/soe.dbf
	 5
SOE
3771727872     460416 AVAILABLE 			     5 YES
3.4360E+10    4194302	      8192 3770679296	   460288 ONLINE

Oracle ASM上にデータベースを作成しているので、ファイルシステムは使ってほしくありません。他のデータファイルと同じファイルパスでOracle ASM上に作成する方法を確認してみます。


まずは、作成してしまった表領域、スキーマ、データを削除します。

Select Task

「Drop the Order Entry Schema」を選択し、Nextをクリック。

f:id:greenballs:20111204235101p:image:w450


Database Details

前回の更新と同様に設定します。データベースへの接続設定を行います。

f:id:greenballs:20111204235102p:image:w450


Schema Details

削除するユーザー名と表領域を指定。

f:id:greenballs:20111204235103p:image:w450


All Details Entered

「Finish」をクリックすると削除が始まります。

f:id:greenballs:20111204235104p:image:w450


Dropping Schema

f:id:greenballs:20111204235105p:image:w450


今度は以下の設定でもう一度作成します。データファイル名に配置したいASMディスクグループ名のみを指定することで、指定した表領域名で指定の場所に作成されます。

  • 表領域名:SOE
  • データファイル名:+ASMDG01

f:id:greenballs:20111205000518p:image:w450


アラートログを参照すると、実際に実行されているDDLを確認することができます。

[oracle@rac01 ~]$ adrci

ADRCI: Release 11.2.0.2.0 - Production on 月 12月 5 00:03:27 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/u01/app/oracle"
adrci> show alert 
:
create  tablespace SOE datafile '+ASMDG01'
size 3277M
autoextend on next 64M maxsize unlimited
extent management local uniform size 1M
segment space management auto
:

ウィザードが完了したした後にデータファイル名を確認すると、今度は意図したとおりに「ASMDG01」に作成されていました。

SQL> select * from dba_data_files where tablespace_name = 'SOE';

FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID
----------
TABLESPACE_NAME
--------------------------------------------------------------------------------
     BYTES     BLOCKS STATUS			  RELATIVE_FNO AUTOEXTEN
---------- ---------- --------------------------- ------------ ---------
  MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_STATUS
---------- ---------- ------------ ---------- ----------- ---------------------
+ASMDG01/orcl/datafile/soe.267.769041043
	 5
SOE
3436183552     419456 AVAILABLE 			     5 YES
3.4360E+10    4194302	      8192 3435134976	   419328 ONLINE

次回はSwingBenchを実行してみます。


プロとしてのSQLチューニング入門

プロとしてのSQLチューニング入門

2011-12-04

[] MacBookAir で Swingbench を使ってみる。(その1)

Oracleデータベースベンチマークツールとして有名なSwingbenchを使ってみます。

Javaで動作するのでMacでも実行可能で、データ生成からベンチマークまで実行するためのツールが提供されています。


まずは、Swingbenchで使用するテストデータを作成します。

今回ダウンロードしたのは「swingbench240838.zip」です。解凍後、bin/oewizardをダブルクリックするとウィザードが起動します。

f:id:greenballs:20111204213821p:image:w450

Welcome to Order Entry Install Wizard

オーダーエントリーシステムをシュミレートするためのスキーマおよびデータ作成を開始します。

f:id:greenballs:20111204213814p:image:w450


Select Task

ここでは「Create the Order Entry Schema ( User, Tables, Indexes, Data etc ) 」を選択します。

f:id:greenballs:20111204213815p:image:w450


Database Details

次の項目を設定します。Connect Stringにはデータベースが動作するサーバーのIPアドレスと、サービス名(SID)を入力します。

  • Connect String
  • Connection Type
  • DBA username
  • DBA password

f:id:greenballs:20111204213816p:image:w450


Schema Details

オーダーエントリーのスキーマを作成するユーザー名、パスワード、表領域名、データファイル名を指定します。あと、パーティション機能、BIGFILE形式のテーブルスペースとするかどうか、圧縮機能を有効にするかどうかの選択ができます。

f:id:greenballs:20111204213817p:image:w450


Sizing Details

作成するデータのサイズを設定します。大きな領域を用意していないので、1GBとしました。

f:id:greenballs:20111204213818p:image:w450


All Details Entered

データロードの並列度を設定します。CPUの2倍までに設定するのが適当です。

f:id:greenballs:20111204213819p:image:w450


作成が終わるとこの画面が表示されます。約20分ほどかかりました。

f:id:greenballs:20111204222312p:image:w450


ただ、一つ問題が。。。次回に続きます。

あわせて読みたいブログパーツ アクセス解析 Firefox3 Meter