ablog

不器用で落着きのない技術者のメモ

2010-06-01から1ヶ月間の記事一覧

Data Pump で特定のテーブルを除いてスキーマ単位でインポートする方法

Oracle on Linux の場合 nohup impdp system/manager directory=pump_dir remap_schema=scott:smith exclude=TABLE:\"IN \(\'EMP\',\'DEPT\'\)\" parallel=2 dumpfile=scott.dmp logfile=scott.log 2>&1 & 参考 http://www.oraclefaq.net/2007/03/09/expdp-d…

Data Pump で特定のテーブルのみインポートする方法

Data Pump でスキーマ単位でエクスポートされたダンプファイルから特定のテーブルのみインポートする方法。 nohup impdp neo/matrix directory=pump_dir remap_schema=scott:neo include=TABLE:\"IN \(\'EMP\',\'DEPT\'\)\" dumpfile=scott.dmp logfile=scot…

直近1時間分を残してそれより古いアーカイブログを削除する

$ rman target / RMAN> DELETE ARCHIVELOG UNTIL TIME 'sysdate – 1/24';

業務用のSSDはほとんどオーバースペック

業務用のSSDはほとんどオーバースペックっぽいな。ストレージの限界より先にFC 4Gbpsが埋まる SH2 on Twitter: "業務用のSSDはほとんどオーバースペックっぽいな。ストレージの限界より先にFC 4Gbpsが埋まる" たとえばSun Storage F5100の160万IOPSってI/Oサ…

Windows でIPアドレスからホスト名を調べる方法

> nbtstat -A 192.168.121.152 Name Type Status --------------------------------------------- YOHEI <00> UNIQUE Registered OFFICE <00> GROUP Registered YOHEI <20> UNIQUE Registered OFFICE <1E> GROUP Registered 参考 WindowsでIPアドレスからホ…

Linux でプロセスのカレントワーキングディレクトリを調べる方法

例えば、Oracle Database の PMON プロセスがどのディレクトリから起動されたか調べてみる。 まず、PMON プロセスの PID を確認して、 $ ps aux|grep pmon oracle 2872 0.0 0.1 2607684 4576 ? Ss Jun06 0:00 ora_pmon_orcl oracle 26709 0.0 0.0 61184 748 …

MERGE文使っているのに ORA-00001 発生

MERGE 文使ってるのに ORA-00001 が発生する>< java.sql.SQLException: ORA-00001: unique constraint (SCOTT.EMP_UK) violatedid:niwanos の SelectInsertするときにInsert先のテーブルにPK、UK、FK、NOTNULL制約などが張ってあって Insertに失敗すると結…

いんぽり監視

$ while :; do pgrep impdp || echo fin|mail -s 'fin' ablog_at_ezweb.ne.jp ; sleep 60; done & $ disown %1 追記: いんぽり終わったら1分間隔であほみたいにメールが飛んできて、眠かったけど起きれましたw

索引ヘブン

パフォチューしながら、twitter でつぶやいていたら、 門外不出のOracle現場ワザ (DB Magazine SELECTION) 続・門外不出のOracle現場ワザ (DB SELECTION) の著者で、日本オラクルのテクノロジーコンサルティング本部のあの五十嵐建平さんから @yoheia 索引ヘ…

jconsole で Tomcat に接続できない

jconsole で Tomcat に接続しようとすると、 接続に失敗しました: 再試行しますか? って怒られた。 netstat でみるとリスンしてるし、telnet で接続してみるとポートは空いている。ぐぐってみると、 結論から言うと、サーバの hosts の設定に問題があったみ…

Oracle Database Wait Event Cheat Sheet

Oracle Database Wait Event Cheat Sheet http://bit.ly/caC61u on 日本エクセムBlog http://bit.ly/cdCUM0 (via @D_Goto) 目を閉じても残像になるほど記憶するといいかも http://twitter.com/wmo6hash/status/16238844453

TweetDeck で "Ooops, TweetDeck can't find your data"

Mac

Mac OS X Snow Leopard で TweetDeck を使ってたけど、0.34.3 にアップデートしたら以下のエラーが発生して起動しなくなった。 Adobe AIR をアップデートしたりしてみたが、解決しなかった。 最終的に Adobe AIR と TweetDeck をアンインストール & インスト…

Oracle Database のユーザーがデフォルトで持っている権限

Oracle Database のユーザーがデフォルトで持っているオブジェクト権限は以下の2つ。たぶん。 自スキーマのオブジェクトに対する全てのオブジェクト権限。 ユーザーは、自分のスキーマに含まれているスキーマ・オブジェクトに関しては、すべてのオブジェクト…

自スキーマの TRUNCATE と DBMS_STATS.GATHER_SCHEMA_STATS の実行に必要な権限

SQL> CONN / AS SYSDBA SQL> CREATE USER NEO IDENTIFIED BY MATRIX DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK PROFILE DEFAULT QUOTA UNLIMITED ON USERS; SQL> GRANT CONNECT TO NEO; SQL> CREATE TABLE NEO.T1 (ID NUMBER(4));…

Oracle Database のユーザーの権限を表示する SQL スクリプト

Oracle Database のユーザーの権限を表示する SQL スクリプトを作ってみた。 yoheia/show_user_privs.sql at master · yoheia/yoheia · GitHub DEFINE user_name = &user_name set echo off set verify off set feed off set pagesize 50000 set linesize 20…

Oracle Database の事前定義済の自動システム・タスク

デフォルトでメンテナンス・ウィンドウで以下の2つのジョブが定義されている。 平日22:00〜6:00、土の 0:00〜月曜日の0:00で実行される。 夜間バッチ処理があるシステムでは両方無効化しておいたほうがよさげ。 GATHER_STATS_JOB(自動統計収集ジョブ) データ…

BUFFER_POOL KEEP でテーブルをメモリ上にキャッシュする

EMP表をメモリ上にキャッシュするよう設定する。 SQL> ALTER TABLE EMP STORAGE (BUFFER_POOL DEFAULT); インスタンスを再起動する。 SQL> shutdown immediate SQL> startup EMP表をメモリ上に読み込む。 SQL> SELECT /*+ FULL(EMP) */ COUNT(*) FROM EMP; …

Java プロセスを多数起動すると、物理メモリより先に swap を使う?

以前、お仕事をさせて頂いた方から質問を頂いたのでちょっと調べてみた。 Q & A Q. Solaris10 で、java のプロセスを多数起動していくと物理メモリではなく、swap から使っているように見える。 vmstat の結果をチェックしていたら、free には余裕があるよう…

セグメントアドバイザ(AUTO_SPACE_ADVISOR_JOB)でDMLがロックされていた件

夜間バッチが終了しないので、セッション情報を見ると、別のセッションにブロックされている。 SQL> r 1 select proc.spid ospid, 2 ses.blocking_session block, 3 ses.sid, 4 ses.serial#, 5 ses.sql_id, 6 substr(ses.username,1,10) username, 7 ses.sta…

org.apache.poi.openxml4j.exceptions.InvalidOperationException: Can't open the specified file: ...

現象 Java のバッチ処理を実行すると、以下の例外が発生する。 org.apache.poi.openxml4j.exceptions.InvalidOperationException: Can't open the specified file: '/tmp/poifiles/...' 環境依存。発生する環境と発生しない環境がある。 原因 /tmp の容量不…

Oracle インスタンスのメモリ/ディスク・ソートの統計を表示する

ディスクソートされている割合を調べる SQL SQL> select m.value memory, d.value disk, d.value/(d.value+m.value)*100 "DISK SORT %" from v$sysstat d, v$sysstat m where d.name = 'sorts (disk)' and m.name = 'sorts (memory)'; MEMORY DISK DISK SORT…

Oracle の一時表領域の一時ファイルを開いているプロセスを調べる

# lsof /opt/app/oracle/oradata/orcl/temp*.dbf|perl -lane '$.>1 and print $F[1]'|sort -u|xargs ps u -p USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND oracle 14055 0.6 22.0 2310344 682440 ? Ds 16:39 1:32 oracleorcl (LOCAL=NO) oracle …

プロセスを一時停止して後で再開する方法

$ vi vmstat.sh #!/bin/bash vmstat 5 > /dev/null 2>&1 $ chmod +x vmstat.sh $ ./vmstat.sh & $ jobs -l [1]+ 12712 Running ./vmstat.sh & $ kill -s SIGSTOP 12712 [1]+ Stopped ./vmstat.sh $ ps u -p 12712 USER PID %CPU %MEM VSZ RSS TTY STAT START…

V$SQL_PLAN に問い合わせると ORA-03113、ORA-07445 が発生する場合の対処法

実行中のSQLの実行計画を見ようと思ったら、 SQL> conn / as sysdba SQL> @show_proc_ses_lock.sql OSPID BLOCK SID SERIAL# SQL_ID USERNAME STATUS TY LMODE REQUEST ID1 ID2 LOCK_TIME HASH_VALUE ADDRESS PLAN_HASH_VALUE SQL ... ----- ------ ------ -…

PHPで「ORA-01000 最大オープン・カーソル数を超えました」が発生

Oracle に接続して SQL を実行している PHP のプログラムで、 ORA-01000 最大オープン・カーソル数を超えましたが発生したので、初期化パラメータ OPEN_CURSORS の値を大きくしてほしいと言われた。 ソースコードを見せてもらったら、ループの中で何回も同じ…

LimeChat for Mac インストール

Mac

$ cd ~/Downloads $ curl -O http://cloud.github.com/downloads/psychs/limechat/LimeChat_2.14.tbz $ tar xfvz LimeChat_2.14.tbz $ mv LimeChat.app /Applications 参考 LimeChat: IRC Client for Mac

表にかけられている制約を確認するSQL

SQL select constraint_name, constraint_type from all_constraints where owner = upper('&owner') and table_name = upper('&table'); 実行例 SQL> select constraint_name, constraint_type from all_constraints where owner = upper('&owner') 2 3 4 a…

ダイレクト・パス・インサートが実行されているかどうかを確認する方法

SID を確認する。 SQL> conn / as sysdba SQL> !wget http://github.com/yoheia/yoheia/raw/master/oracle/sql/show_proc_ses_lock.sql SQL> @show_proc_ses_lock.sql OSPID BLOCK SID SERIAL# SQL_ID USERNAME STATUS TY LMODE REQUEST ID1 ID2 LOCK_TIME H…

パラレルDMLが実行されているか確認する方法

OSプロセスで確認する。 $ ps -U oracle -f ... oracle 10921 1 0 19:01 ? 00:00:00 ora_p000_orcl oracle 10923 1 0 19:01 ? 00:00:00 ora_p001_orcl oracle 10925 1 0 19:01 ? 00:00:00 ora_p002_orcl oracle 10927 1 0 19:01 ? 00:00:00 ora_p003_orcl V$…

nohup し忘れたけどハングアップしないようにしたいとき

$ cat test.sh #!/bin/bash while : do echo > /dev/null sleep 10 done $ ./test.sh & [1]+ 1057 Running ./test.sh & $ disown %1 disown でできる。 参考 disownコマンド - Do You PHP はてな ログアウトしてもプロセスを止めないようにする@bash | Mazn.…