ついったー


最近読んだ本(amazon版)

最近のトラックバック

phpMyAdmin インポートでエラー

自宅環境を変えて色々作業中…

業務系の環境を構築中に、エクスポートしたファイルをインポートしようとしたところ
Fatal error: Maximum execution time of 300 seconds exceeded ~」が発生。
割とありがちなエラーで、何回も解決をしているので過去のメモにあるかと
思って調べたがないです?
まぁ、php.ini あたりを見れば思い出すかと開いてみる。
max_execution_time=30
とある。300じゃない…? 一応、変更してみたが同じエラー。
てことは、原因は別なので phpMyAdmin の設定をみるが
web 環境から見つけられなかった。
phpMyAdmin フォルダーの「config.inc.php」もはずれ。
面倒なので、キーワード「300」で php ファイルを対象に単語単位でGrepする。
28個ほどHitする。
 「~\phpMyAdmin\libraries\config.default.php(708,25)  [SJIS]: $cfg['ExecTimeLimit'] = 300;」
と怪しいのを見つけたので、300 → 10 と変更してリトライ。
正解でした。10 → 3000 と元の10倍にして再実行。
無事、インポート完了。

postgreSQL で createdb に失敗

一応、商用で運用していたサービスを一旦停止して借りていたサーバーの契約を

切ることになったのだが、動作環境は残しておきたい…
あいにく、他の借りているサーバーとは構成が違くて別に用意しないといけない…
仕方ないので、ローカルに環境を作っているのだが、使用するDBを作ろうとしたところでエラーに。
-bash-4.1$ createdb -E EUC_JP new_DB
createdb: データベースの生成に失敗しました:ERROR:  符号化方式"EUC_JP"がロケール"ja_JP.UTF-8"に合いません
DETAIL:  選択されたLC_CTYPEを設定するには、符号化方式"UTF8"である必要があります。
…とりあえず、ログを見る。
-bash-4.1$ cat  9.4/data/pg_log/postgresql-Tue.log
< 2015-10-20 16:25:29.605 JST >ERROR:  符号化方式"EUC_JP"がロケール"ja_JP.UTF-8"に合いません
< 2015-10-20 16:25:29.605 JST >詳細:  選択されたLC_CTYPEを設定するには、符号化方式"UTF8"である必要があります。
< 2015-10-20 16:25:29.605 JST >ステートメント:  CREATE DATABASE "web_Naru" ENCODING 'EUC_JP';
一応、確認。
-bash-4.1$ psql -U postgres
psql (9.4.5)

"help" でヘルプを表示します.

postgres=# \l

                                         データベース一覧

   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権

-----------+----------+------------------+-------------+-------------------+-----------------------

 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |

 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +

           |          |                  |             |                   | postgres=CTc/postgres

 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +

           |          |                  |             |                   | postgres=CTc/postgres

(3 行)
ロケールを指定すれば良いらしいので、指定してみる。
-bash-4.1$ createdb -E EUC_JP --locale=ja_JP.EUC_JP  new_DB

createdb: データベースの生成に失敗しました:ERROR:  新しい符号化方式(EUC_JP)はテンプレートデータベースの符号化方式(UTF8)と互換性がありません

HINT:  テンプレートデータベースの符号化方式と同じものを使うか、もしくは template0 をテンプレートとして使用してください
そうなのね。じゃあ、指定してみる。
-bash-4.1$ createdb -E EUC_JP --locale=ja_JP.EUC_JP  new_DB --template=template0

-bash-4.1$ psql -U postgres

psql (9.4.5)

"help" でヘルプを表示します.


postgres=# \l

                                          データベース一覧
   名前    |  所有者  | エンコーディング |   照合順序   | Ctype(変換演算子) |      アクセス権

-----------+----------+------------------+--------------+-------------------+-----------------------

 postgres  | postgres | UTF8             | ja_JP.UTF-8  | ja_JP.UTF-8       |

 template0 | postgres | UTF8             | ja_JP.UTF-8  | ja_JP.UTF-8       | =c/postgres          +

           |          |                  |              |                   | postgres=CTc/postgres

 template1 | postgres | UTF8             | ja_JP.UTF-8  | ja_JP.UTF-8       | =c/postgres          +

           |          |                  |              |                   | postgres=CTc/postgres

 new_DB    | postgres | EUC_JP           | ja_JP.EUC_JP | ja_JP.EUC_JP      |

(4 行)
とりあえず、作れたらしい。
参考 というか確認として調べた。悩んだのがアホだった。

PostgreSQL データーベース容量調査

Postgresqlの容量調査方法

データーベース
 SELECT * FROM pg_database_size('dbname');

テーブル
 SELECT
relname,
reltuples as rows,
(relpages * 8192) as bytes
 FROM
pg_class
 WHERE
relname in ('tablename')

PostgreSQL データーベースのコピー

何回もやっているのに毎回調べてる…きっと次も調べる

まずは、バックアップ。
-bash-3.2$ pg_dump base_db > base_db_20110923.dmp
Password:
-bash-3.2$

次にコピー先を作成しておく。(元がEUC-JPでシステムがUTF-8なので、文字コードEUC-JPで作成)
-bash-3.2$ createdb -E EUC_JP new_db
Password:
CREATE DATABASE
-bash-3.2$

バックアップしたものを新しいデーターベースへ
-bash-3.2$ psql new_db < base_db_20110923.dmp
Password:
SET
SET
COMMENT
CREATE LANGUAGE
SET
SET
SET
CREATE TABLE
ALTER TABLE
setval
--------
1531
(1 row)

CREATE TABLE
ALTER TABLE
ALTER TABLE
REVOKE
REVOKE
GRANT
GRANT
-bash-3.2$

結果確認のためpsqlで接続する。
-bash-3.2$ psql
Password:
Welcome to psql 8.1.4, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

postgres=# \c new_db;
You are now connected to database "new_db".
new_db=# \d
List of relations
Schema | Name | Type | Owner
--------+----------------------------+----------+----------
public | accesslog_tbl | table | postgres

public | user_tbl | table | postgres
(53 rows)

new_db=# select count(*) from accesslog_tbl;
count
-------
84
(1 row)

new_db=#

PostgreSQL 起動エラー

お客さんのサーバーが謎のロックを起こして、再起動を実行。

サーバー起動後、ナゼかPostgresSQLが起動していない…

webminから行うも起動できず…
仕方ないので、telnetでアクセスしてコマンドラインから…

# postmaster
エラー…rootじゃダメよと。
# su - postgres
$ postmaster
FATAL: pre-existing shared memory block (key 5432001, ID 1114114) is still in use
HINT: If you're sure there are no old server processes still running, remove the shared memory block with the command "ipcclean", "ipcrm", or just delete the file "postmaster.pid".

あーなんか出た。不意のダウンでファイルが残ったよと。
一番単純そうな最後の方法 "postmaster.pid"を削除することにした。
$ rm -f data/postmaster.pid

コマンドラインからでも良いんですが、webminの方は、script付きらしいので、そちらから起動を
試みる…

無事成功。

MySQL カラム追加関連

作業メモ

MySQL
 カラム追加(指定列の後)
  tblnameテーブルのcolhogeの後にcolname Varchar(10) を追加
  ALTER TABLE tblname ADD colname Varchar(10) AFTER colhoge;

 カラムにコメントを追加
  ALTER TABLE tblname CHANGE colname colname Varchar(10) COMMENT 'こめんと';

 カラム追加(指定列の後+コメント付)
  tblnameテーブルのcolhogeの後にcolname Varchar(10) を追加
  ALTER TABLE tblname ADD colname Varchar(10) COMMNET 'こめんと' AFTER colhoge;

PostgresSQL CSVファイルのインポート

PostgresSQLで、CSVファイルからテーブルデーターの作成方法メモ

テーブル「m_school」にファイル「/home/SchoolList.csv」をインポートするには…
postgres=#copy m_school from '/home/SchoolList.csv' with CSV;

これでOKでした。文字コードをあわせておくことに注意。
文字列をダブルクォーテーションで囲んだりしなくてもよい。


ちなみに、文字コードを間違えると下記のように怒られた。
(UnicodeのファイルをUTF-8のDBにいれようとしましたよ。)
invalid byte sequence for encoding "UTF8":0xff

Oracle パフォーマンスレポート ツール STATSPACKを利用する

仕事で資料を残さなきゃいけなくってまとめたので、せっかくだから自分のメモとして。

◎パフォーマンスレポート ツール STATSPACKを利用する

Oracle10gには、標準で用意されています。が、設定はされていないので…
出力の見方は、そのうち…作るかなぁ…?

※本来は、運用開始前に導入します。

■表領域の準備
 領域名:TOOLS (自由です)
 領域サイズ:400MB (最低64MB以上)
 エクステントサイズ:1MB(オススメ値:100K、1MB、5MB)

■インストールスクリプトを実行する(SYSDBAユーザーにて)
SQL> @?/rdbms/admin/spcreate.sql
PERFSTATユーザーが作成されます。パスワードは自由です
DEFAULT表領域に準備した表領域を設定(TOOLS)
TEMPORALY表領域には、TEMPを設定(別個に作成しても良い)


■スナップショットを定期的(1時間毎)に取得するようにスケジュールする(PERFSTATユーザー)
SQL> @?/rdbms/admin/spauto.sql

■定期的な取得を30分毎に変更する(PERFSTATユーザー)
SQL> EXECUTE DBMS_JOB.INTERVAL (:jobno, 'SYSDATE+(1/48)');

■スナップショット・レベルを変更する(PERFSTATユーザー)
  デフォルトはレベル5
  +------------+-----------------------------------------------------------+
  |i_snap_level| 取得データ |
  +------------+-----------+---------+---------+------------+--------------+
  | 基本統計 |アドバイス | SQL統計 | SQL詳細 | セグメント | 親・子ラッチ |
  +------------+-----------+---------+---------+------------+--------------+
  | レベル 0 | ○ | ○ | | | |
  | レベル 5 | ○ | ○ | ○ | | |
  | レベル 6 | ○ | ○ | ○ | | |
  | レベル 7 | ○ | ○ | ○ | ○ | |
  | レベル 10 | ○ | ○ | ○ | ○ | ○ |
  +------------+-----------+---------+---------+------------+--------------+
SQL> EXEC STATSPACK.MODIFY_STATSPACK_PARAMETER (i_snap_level=>7);
(SQL> EXECUTE STATSPACK.SNAP(i_snap_level => 7))


■レポートを参照する(PERFSTATユーザー)
※日本語だとうまく出力されないので、英語で。
DOS> set NLS_LANG=American_America.UTF8
SQL> @?/rdbms/admin/spreport.sql
  例)
  *************************
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
0000000000 XXXX 1 xxxx

Instances in this Statspack schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DB Id Inst Num DB Name Instance Host
----------- -------- ------------ ------------ ------------
0000000000 1 XXXX xxxx DB-SERVER

Using 0000000000 for database Id
Using 1 for instance number


Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing without
specifying a number lists all completed snapshots.

Listing all Completed Snapshots

Snap
Instance DB Name Snap Id Snap Started Level Comment
------------ ------------ --------- ----------------- ----- --------------------
xxxx XXXX 1 26 Aug 2009 21:20 7

34627 25 Jan 2010 00:19 7
34628 25 Jan 2010 00:49 7
34629 25 Jan 2010 01:19 7
34630 25 Jan 2010 01:50 7
34631 25 Jan 2010 02:20 7

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 34652
Begin Snapshot Id specified: 34652

Enter value for end_snap: 34741
End Snapshot Id specified: 34741

Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_34652_34741. To use this name,
press to continue, otherwise enter an alternative.

Enter value for report_name:

Using the report name sp_34652_34741

STATSPACK report for

Database DB Id
Instance Inst Num
Startup Time Release
RAC
~~~~~~~~ -----------
------------ --------
--------------- -----------
---
0000000000 xxxx 1 23-Jan-10 13:55
10.2.0.1.0 NO

Host Name: DB-SERVER Num CPUs: 4
Phys Memory (MB): 4,091
~~~~

Snapshot Snap Id Snap Time Sessions Curs/Sess Comment
~~~~~~~~ ---------- ------------------ -------- --------- -------------------
Begin Snap: 34652 25-Jan-10 08:51:08 36 7.4
End Snap: 34741 25-Jan-10 13:21:48 83 4.0
Elapsed: 270.67 (mins)

Cache Sizes Begin End
~~~~~~~~~~~ ---------- ----------
Buffer Cache: 848M 832M Std Block Size: 8K
Shared Pool Size: 160M 176M
Log Buffer: 6,860K

Load Profile Per Second Per Transaction
~~~~~~~~~~~~ --------------- ---------------
Redo size: 6,017.10 1,855.21
(中略)
Tablespace IO Stats DB/Inst: ORCL/orcl Snaps: 34652-34741
->ordered by IOs (Reads + Writes) desc

Tablespace
------------------------------
Av Av Av Av Buffer Av Buf
Reads Reads/s Rd(ms) Blks/Rd Writes Writes/s Waits Wt(ms)
-------------- ------- ------ ------- ------------ -------- ---------- ------
SYSAUX
514 0 2.9 1.1 3,667 0 0 0.0
TOOLS
1,030 0 2.8 1.0 2,498 0 0 0.0
SYSTEM
1,547 0 3.9 1.0 889 0 0 0.0
(中略)
File IO Stats DB/Inst: ORCL/orcl Snaps: 34652-34741
->Mx Rd Bkt: Max bucket time for single block read
->ordered by Tablespace, File

Tablespace Filename
------------------------ ----------------------------------------------------
Av Mx Av
Av Rd Rd Av Av Buffer BufWt
Reads Reads/s (ms) Bkt Blks/Rd Writes Writes/s Waits (ms)
-------------- ------- ----- --- ------- ------------ -------- ---------- ------
SYSAUX D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
514 0 2.9 64 1.1 3,667 0 0

SYSTEM D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
1,547 0 3.9 32 1.0 889 0 0

TOOLS D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TOOLS_REORG0.D
1,030 0 2.8 16 1.0 2,498 0 0
(中略)
-------------------------------------------------------------
File Read Histogram Stats DB/Inst: ORCL/orcl Snaps: 34652-34741
->Number of single block reads in each time range
->ordered by Tablespace, File

Tablespace Filename
------------------------ ----------------------------------------------------
0 - 2 ms 2 - 4 ms 4 - 8 ms 8 - 16 ms 16 - 32 ms 32+ ms
------------ ------------ ------------ ------------ ------------ ------------
TOOLS D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TOOLS_REORG0.D
342 430 258 3 0 0
(中略)
Segments by Logical Reads DB/Inst: XXXX/xxxx Snaps: 34652-34741
-> End Segment Logical Reads Threshold: 10000
-> Pct Total shows % of logical reads for each top segment compared with total
logical reads for all segments captured by the Snapshot

Subobject Obj. Logical Pct
Owner Tablespace Object Name Name Type Reads Total
---------- ---------- -------------------- ------------ ----- ------------ -----
SYS SYSTEM I_HH_OBJ#_INTCOL# INDEX 318,064 11.1
SYS SYSAUX SYS_IOT_TOP_8802 INDEX 234,512 8.2
(中略)
undo_management AUTO
undo_tablespace UNDOTBS1
user_dump_dest D:\ORACLE\PRODUCT\10.2.0\ADMIN\OR
-------------------------------------------------------------

End of Report ( sp_34652_34741.lst )
  *************************
  SQLPLUSを実行したフォルダに「sp_34652_34741.lst」が出来ています。

■SQLレポートを参照する(PERFSTATユーザー)
 上記のレポート中から「SQL ordered by」のキーワードを探す.
  *************************
SQL ordered by CPU DB/Inst: ORCL/orcl Snaps: 34652-34741
-> Resources reported for PL/SQL code includes the resources used by all SQL
statements called by the code.
-> Total DB CPU (s): 562
-> Captured SQL accounts for 9.1% of Total DB CPU
-> SQL reported below exceeded 1.0% of Total DB CPU

CPU CPU per Elapsd Old
Time (s) Executions Exec (s) %Total Time (s) Buffer Gets Hash Value
---------- ------------ ---------- ------ ---------- --------------- ----------
26.84 535 0.05 4.8 30.58 19,340 1206412919
Module: OEM.SystemPool
BEGIN EMD_NOTIFICATION.QUEUE_READY(:1, :2, :3); END;
  *************************
SQL> @?/rdbms/admin/sprepsql.sql
  例)
  *************************

Current Instance
~~~~~~~~~~~~~~~~

DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
0000000000 XXXX 1 xxxx

Instances in this Statspack schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DB Id Inst Num DB Name Instance Host
----------- -------- ------------ ------------ ------------
0000000000 1 XXXX xxxx DB-SERVER

Using 0000000000 for database Id
Using 1 for instance number


Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing without
specifying a number lists all completed snapshots.

Listing all Completed Snapshots

Snap Snap
Instance DB Name Id Snap Started Level Comment
------------ ------------ --------- ----------------- ----- --------------------
xxxx XXXX 1 26 Aug 2009 21:20 7

34652 25 Jan 2010 08:51 7
34661 25 Jan 2010 09:21 7
34671 25 Jan 2010 09:51 7
34681 25 Jan 2010 10:21 7
34691 25 Jan 2010 10:51 7
34701 25 Jan 2010 11:21 7
34711 25 Jan 2010 11:51 7
34721 25 Jan 2010 12:21 7
34731 25 Jan 2010 12:51 7
34741 25 Jan 2010 13:21 7
34751 25 Jan 2010 13:51 7
34761 25 Jan 2010 14:21 7

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 34652
Begin Snapshot Id specified: 34652

Enter value for end_snap: 34741
End Snapshot Id specified: 34741

Specify the old (i.e. pre-10g) Hash Value
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for hash_value: 1206412919
Hash Value specified is: 1206412919

Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_34652_34741_1206412919. To use this name,
press to continue, otherwise enter an alternative.

Enter value for report_name:

Using the report name sp_34652_34741_1206412919


STATSPACK SQL report for Old Hash Value: 1206412919 Module: OEM.SystemPool

DB Name DB Id Instance Inst Num Release RAC Host
------------ ----------- ------------ -------- ----------- --- ----------------
XXXX 0000000000 xxxx 1 10.2.0.1.0 NO DB-SERVER

Start Id Start Time End Id End Time Duration(mins)
--------- ------------------- --------- ------------------- --------------
34652 25-Jan-10 08:51:08 34741 25-Jan-10 13:21:48 270.67

SQL Statistics
~~~~~~~~~~~~~~
-> CPU and Elapsed Time are in seconds (s) for Statement Total and in
milliseconds (ms) for Per Execute
% Snap
Statement Total Per Execute Total
--------------- --------------- ------
Buffer Gets: 19,340
36.1 .25
Disk Reads: 2
0.0 .01
Rows processed: 0
0.0
CPU Time(s/ms): 27
50.2
Elapsed Time(s/ms): 31
57.2
Sorts: 0
.0
Parse Calls: 535
1.0
Invalidations: 0
Version count: 1
Sharable Mem(K): 16
Executions: 535

SQL Text
~~~~~~~~
BEGIN EMD_NOTIFICATION.QUEUE_READY(:1, :2, :3); END;

Plans in shared pool between Begin and End Snap Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Shows the Execution Plans found in the shared pool between the begin and end
snapshots specified. The values for Rows, Bytes and Cost shown below are those
which existed at the time the first-ever snapshot captured this plan - these
values often change over time, and so may not be indicative of current values
-> Rows indicates Cardinality, PHV is Plan Hash Value
-> ordered by Plan Hash Value

--------------------------------------------------------------------------------
| Operation | PHV/Object Name | Rows | Bytes| Cost |
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

End of Report
  *************************


■レポートを削除する(PERFSTATユーザー)
 スナップショットが溜まると表領域の使用率も増えるので、不要なものは削除します。
SQL> @?/rdbms/admin/sppurge.sql
  例)
  *************************
Database Instance currently connected to
========================================

Instance
DB Id DB Name Inst Num Name
----------- ---------- -------- ----------
0000000000 XXXX 1 xxxx


Snapshots for this database instance
====================================

Base- Snap
Snap Id Snapshot Started line? Level Host Comment
-------- --------------------- ----- ----- --------------- --------------------
32997 18 1月 2010 00:24:2 7 DB-SERVER
32998 18 1月 2010 00:54:3 7 DB-SERVER
(中略)
34721 25 1月 2010 12:21:3 7 DB-SERVER
34731 25 1月 2010 12:51:4 7 DB-SERVER
34741 25 1月 2010 13:21:4 7 DB-SERVER


Warning
~~~~~~~
sppurge.sql deletes all snapshots ranging between the lower and
upper bound Snapshot Id's specified, for the database instance
you are connected to. Snapshots identified as Baseline snapshots
which lie within the snapshot range will not be purged.

It is NOT possible to rollback changes once the purge begins.

You may wish to export this data before continuing.


Specify the Lo Snap Id and Hi Snap Id range to purge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
losnapidに値を入力してください: 32997
Using 32997 for lower bound.

hisnapidに値を入力してください: 34626
Using 34626 for upper bound.

Deleting snapshots 32997 - 34626.
行は切り捨てられます。


Number of Snapshots purged: 335
Purge of specified Snapshot range complete.
  *************************


■レポートを"全て"削除する(PERFSTATユーザー)
SQL> @?/rdbms/admin/sptrunc.sql

■スケジュールを削除する(PERFSTATユーザー)
job_numberを調べる
SQL> select job,to_char(next_date,'YYYYMMDD HH24:MI:SS'),what from user_jobs;
この結果でWHAT が 「statspack.snap;」のものが対象
SQL> EXECUTE DBMS_JOB.REMOVE(job_number);


■アンインストールする(SYSDBAユーザーにて)
SQL> @?/rdbms/admin/spdrop.sql


■参考URI
 Oracleデータベースの性能対策機能 ~StatspackとDiagnostics Packを使いこなす~
 http://otn.oracle.co.jp/skillup/stats_diag/1/index.html

 パフォーマンスセラピー
 http://perfopy.ashisuto.co.jp/statspack01.html

 パフォーマンステストでの STATSPACK の取得について
 http://d.hatena.ne.jp/yohei-a/20090729/1248835068


Oracle DBConsole が起動しない

Oracle 10g (10.1)で、DBConsoleのサービスが起動しなくなっていた。

原因は、IPアドレスが変わったから?もしくはホスト名が変わったから?
管理者が不在の状態だったようで、新DBサーバー導入後の管理が不明で
サービス毎停止していた。

動作確認用として利用しようと起動してみたところ、DBConsoleが起動せず
大した情報も出さない…
Windowsのサービスで駄目でも、コマンドプロンプトからだと動いたり
するんで試した。
> set ORACLE_SID=orcl
まずはおまじないね。

> emctl start dbconsole
だめ。

念のため
> emctl status dbconsole
…not runnning
あぁそうですか。

参考になるサイトをググる。
猫目的日々 DBConsole for Oracle Enterprise Manager
http://catseye.cocolog-nifty.com/nekome/2006/11/kuma_20.html

一挙に解決かと思いきや、10.1では「emca -deconfig ~」がエラーになります。
ちゃんとオプション見ろ!これだ!てな感じで、ずらずら表示してくれます。

いろいろ見て回ると、リポジトリを再作成してみろてなことが見受けられる。
とりあえず、素でいってみよう。なるようになる。

※言うまでもありませんが、下記のことを試して問題が起きても知りませんよん。
  自己責任でよろ。

>emca

EMCAの開始時刻 Tue Aug 04 13:24:41 JST 2009
構成するデータベースに関して、次の情報を入力してください
リスナーのポート番号: 1521
データベースのSID: orcl
サービス名: orcl.WORLD
通知用の電子メール・アドレス:
通知用の電子メール・ゲートウェイ:
DBSNMPのパスワード:
SYSMANのパスワード:
SYSのパスワード: :
SYSのパスワード:
-----------------------------------------------------------------

次の設定が指定されています

データベースのORACLE_HOME ................ D:\oracle\product\10.1.0\Db_1
Enterprise ManagerのORACLE_HOME ................ D:\oracle\product\10.1.0\Db_1

データベースのホスト名 ................ DATA-SERVER-OLD
リスナーのポート番号 ................ 1521
データベースのSID ................ orcl
サービス名 ................ orcl.WORLD
通知用の電子メール・アドレス ...............
通知用の電子メール・ゲートウェイ ...............

-----------------------------------------------------------------
続行しますか。 [はい/いいえ]: はい
DBConsoleはデータベースorclにすでに構成されています
指定したデータベースのDBConsoleを再構成しますか。 [はい/いいえ]: はい
DBConsoleが停止していることを確認してください
続行する準備ができたら、[Enter]を押してください

2009/08/04 13:25:40 oracle.sysman.emcp.EMConfig checkConfiguration
致命的: リポジトリはすでに存在します。 エラーを修正し、スタンドアロン・モードでEM Configuration Assistantを再度実行して
ください。
構成を完了できませんでした。詳細はログ・ファイルを参照してください

なるほど、やはり存在しているから!
と言われますね。

>emca -r

EMCAの開始時刻 Tue Aug 04 13:25:52 JST 2009
構成するデータベースに関して、次の情報を入力してください
リスナーのポート番号: 1521
データベースのSID: orcl
サービス名: orcl.WORLD
通知用の電子メール・アドレス:
通知用の電子メール・ゲートウェイ:
DBSNMPのパスワード:
SYSMANのパスワード:
SYSのパスワード: :
SYSのパスワード:
-----------------------------------------------------------------

次の設定が指定されています

データベースのORACLE_HOME ................ D:\oracle\product\10.1.0\Db_1
Enterprise ManagerのORACLE_HOME ................ D:\oracle\product\10.1.0\Db_1

データベースのホスト名 ................ DATA-SERVER-OLD
リスナーのポート番号 ................ 1521
データベースのSID ................ orcl
サービス名 ................ orcl.WORLD
通知用の電子メール・アドレス ...............
通知用の電子メール・ゲートウェイ ...............

-----------------------------------------------------------------
続行しますか。 [はい/いいえ]: はい
DBConsoleはデータベースorclにすでに構成されています
指定したデータベースのDBConsoleを再構成しますか。 [はい/いいえ]: はい
DBConsoleが停止していることを確認してください
続行する準備ができたら、[Enter]を押してください

2009/08/04 13:26:22 oracle.sysman.emcp.EMConfig updateReposVars
情報: ファイルD:\oracle\product\10.1.0\Db_1\sysman\emdrep\config\repository.variablesの更新中...
2009/08/04 13:26:26 oracle.sysman.emcp.EMConfig stopOMS
情報: DBConsoleの停止中...
2009/08/04 13:26:27 oracle.sysman.emcp.EMConfig addPortEntries
情報: ファイルD:\oracle\product\10.1.0\Db_1\install\portlist.iniの更新中...
2009/08/04 13:26:27 oracle.sysman.emcp.EMConfig updateEmdProps
情報: ファイルD:\oracle\product\10.1.0\Db_1\sysman\config\emd.propertiesの更新中...
2009/08/04 13:26:27 oracle.sysman.emcp.EMConfig updateConfigFiles
情報: targets.xmlファイルは正常に更新されました
2009/08/04 13:26:28 oracle.sysman.emcp.EMConfig updateEmomsProps
情報: ファイルD:\oracle\product\10.1.0\Db_1\sysman\config\emoms.propertiesの更新中...
2009/08/04 13:26:28 oracle.sysman.emcp.EMConfig updateConfigFiles
情報: emoms.propertiesファイルは正常に更新されました
2009/08/04 13:26:29 oracle.sysman.emcp.EMConfig startOMS
情報: DBConsoleの起動中...
2009/08/04 13:28:19 oracle.sysman.emcp.EMConfig perform
情報: DBConsoleは正常に起動されました
2009/08/04 13:28:19 oracle.sysman.emcp.EMConfig perform
情報: >>>>>>>>>>> Enterprise ManagerのURLはhttp://DATA-SERVER-OLD:5501/emです <<<<<<<<<<<
Enterprise Managerの構成が正常に完了しました
EMCAの終了時刻 Tue Aug 04 13:28:19 JST 2009

出来たらしい。
なぜだか、ポート番号が「5500」だったのが、「5501」になっているのが
気になりますが…

IEで接続を試みたら、無事に接続できました。
ポートの変更とかも出来ますが、変わった理由が分からんので
とりあえず、これで。


しかし、なんで10.1と10.2でオプションが違うんだ?