スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PostgreSQL テーブルのコピー

既存テーブルを基に新しいテーブルを作成する場合、
CREATE TABLE B AS SELECT * FROM A WHERE <条件>;

→全レコードをコピーしたい場合はWHERE句を省略
のようなSQLを利用することになると思いますが、PostgreSQLで以下のようにテーブルをコピーできないか?
という問い合わせが来ました。

・同じDB内に別名のテーブルとしてコピーする。
・テーブルの中身はコピーしない。
・制約/インデックスもコピーする。

現状、pg_dumpでテーブル定義をテキストでダンプし、そのテキストのテーブル名を別名に変えてリストア、という方法で実現しているようなのですが、より簡単にテーブルをコピーできないものだろうか…、という相談でした。

ちょいと調べてみたところ、CREATE TABLE文でLIKE句を使えば上手くいくことが分かり、その内容を伝えて無事に解決しました。
CREATE TABLE B (LIKE A INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES);

※INCLUDING句は、バージョンによって差異があります。
※バージョン8.3の環境で確認したところ、外部キー制約はコピーされませんでした。
CREATE TABLE(PostgreSQL 9.3.2)
スポンサーサイト

JMeter

新卒以来、SEとしてクラサバ系システムに携わってきましたが、今期からWeb系システム開発に関わるようになりました。

そのため、訳の分からないことだらけで、今のところ新たな職場で殆ど役に立っていません。

ま、そういうことは置いておいて、Web系のシステムということは、同時アクセス数が多い又は事前に見積もれないことが多いので、負荷をかけた性能試験を事前に行う必要になります。

HTTPレスポンスの性能評価でよく使われるツールとして、「JMeter」というものがありますが、それを使って性能試験を行うことになりそうなので、役立ちそうなサイトを書き残しておくことにします。

JMeter の利用方法(1) – Ramp-up、スレッド数、ループ回数の誤用
JMeter の利用方法(2) – テスト結果の確認方法
JMeter の利用方法(3) – 負荷テスト中に何を監視するのか?
JMeter の利用方法(4) – タイマによるスループットの制限方法

11gR2のアップグレード

1か月以上前に確認した内容です。

PCにインストールしているOracle Clientを11.2.0.1→11.2.0.3へアップグレードしようとしたところ、
『INS-30071』のエラー・メッセージが表示されアップグレードできませんでした。

その際に行った作業は、以下の通りです。

1. 以下にアクセスし、「p10404530_112030_WINNT_3of6.zip」をダウンロード
  https://updates.oracle.com/download/10404530.html

2. ダウンロードしたzipファイルをPC上で解凍

3. 解凍したフォルダの「p10404530_112030_WINNT_3of6¥client¥setup.exe」を実行

4. インストール・モードの選択画面で、「アップグレード」を選択し「次へ」をクリック

5. インストール場所の指定画面で、ソフトウェアの場所にOracleホーム・ディレクトリが設定されていること
  を確認し、「次へ」をクリック
  →『[INS-30071]実行中のプロセスまたはサービスを判別しようとしてエラーが発生しました。』
   のエラー・メッセージが表示される。



どうやら製品不具合が原因で、11.2.0.x にPSRを適用すると発生する事象のようです。
"INS-30071" Error During Upgrade Oracle Client or Server From 11.2.0.2 To 11.2.0.3

11gR2のPSRでは、これまでのアップグレードだけではなく、完全インストール(新規インストール)も可能になったようですが、製品不具合でアップグレードはできないみたいです。。
仕方がないので、既存の11.2.0.1を削除して、11.2.0.3のPSRでインストールし直しました。

今回はClientで発生しましたが、Serverも同様みたいです。

Oracle Client 11g の削除

職場のとあるPC(Windows7)で、とあるツールを起動してみたら、ORAエラーが発生するという話がありました。

どうやら、過去に幾つかのOracle ClientをPCにインストールしていたみたいで、中途半端に削除されているOracleホームが残っていたりしているようでした。

インストールされている全てのOracleホームとソフトウェアを削除して、インストールし直すことで、ORAエラーが発生しなくなると思って、実際にそのような結果になりました。

しかし、Oracle Clientの削除がマニュアル通りにいかなかったので、書き残しておきます。

Windows7って、セキュリティ向上というかマイクロソフトが責任回避したいがため?、インストール時やCドライブ以下のファイル・アクセス等の際、やたらとメッセージが表示されて確認されるようになりましたよね。
そういうことが要因なのかどうか分かりませんが、11gではOUI(Oracle Universal Installer)からではなく、deinstallというツール(バッチファイル)で削除するように替わったようです。

Oracle Database Clientソフトウェアの削除

上記マニュアルに従い、Windwos7にてdeinstallツールを使って削除しようとしたところ、『ORACLEホーム・ディレクトリ(ORACLE_HOME)内のファイルが使用中のため削除に失敗』というようなメッセージ・ログが出力されました。

Oracleを利用するようなアプリは落としていたのですが、どうやらウィルスソフトがファイルを掴んでいる【オンアクセス (自動) スキャンが有効】ようでした。
でも、職場の環境上、ウィルスソフトを無効にできないため、以下の手順に従って、手動で削除を行いました。


1. Administrator権限を持つユーザとしてログインしていることを確認する。

2. 削除対象のORACLE_HOMEに関連しているアプリケーション等を停止する。
  併せて、Windowsのサービスがファイル等を掴まないよう、下記サービスも停止する。

  - IIS Admin Service
  - FTP Publishing Service
  - World Wide Web Publishing Service
  - Distributed Transaction Coordinator
  - Distributed File System
  - Distributed Link Tracking Client

3. 現時点のレジストリをバックアップ(エクスポート)する。

4. OUIインベントリからORACLE_HOMEを削除する。

  DOS> %ORACLE_HOME%¥OUI¥BIN¥setup -detachHome ORACLE_HOME=%ORACLE_HOME%
  ※%ORACLE_HOME%は、ORACLEホーム・ディレクトリのパス

5. レジストリ・エントリから以下を削除する。

  ・HKEY_LOCAL_MACHINE¥SOFTWARE¥ODBC¥ODBCINST.INI に移動し
   "Oracle in <ORACLE_HOME>" を削除する。

6. 環境変数を削除する。

  ・[コンピュータ] を右クリック -> [プロパティ] -> [システムの詳細設定] ->
   [詳細設定タブ] -> [環境変数] を選択する。

  ・システム環境変数で、削除対象のORACLE_HOMEのパスを含むエントリを削除する。
   一般的には、CLASSPATH、ORACLE_HOME、PATH、PERL5LIBに含まれている。

7. メニューアイコンを削除する。

  ・[スタート] -> [すべてのプログラム] を選択し、
   [Oracle - <ORACLE_HOME>] のフォルダを削除する。

8. 削除対象のORACLE_HOMEがPCにインストールされている唯一のOracle製品である場合、
  C:¥Program Files 配下のOracleフォルダを削除する。
  ※他のOracle製品がインストールされている場合は削除しないこと。

9. Windowsを再起動する。

10. ORACLE_HOMEをフォルダごと全て削除する。

SI Object Browser for Oracle Ver12.0

SI Object Browser for Oracle Ver.12.0 リリース!

本ツールで用いられている文字コードが「Shift JIS」から「Unicode(UTF-16)」に変わったことで、ツール上で簡体字・繁体字、ハングル文字などが表示できるようになりました。
※「ツール」→「オプション」→「データ」で、フォントを『MS UI Gothic』等に変えないと、表示されない場合があります。

「ツール」→「オプション」→「外部出力」→「テキストファイルの形式」で、入出力するテキストファイルの文字コードを指定できるようですが、SQL実行画面の
・結果をExcelファイルに出力する
・結果をクリップボードに出力する
をクリックした場合、必ずUnicodeで出力されるようです。

試しにクリップボードに出力して、それをテキストファイルに張り付けてみると、以下の2文字が「Shift JIS」に上手く変換(マッピング)できませんでした。
・-(全角マイナス)
・∥(双柱)

開発元に問い合せたところ、本ツール自体の問題ではない(ま、Unicodeで出力できてるわけやし)と言われてしまいましたが、改善要望として受け付けてはくれました(対応してくれるかどうかは分かりませんが…)。
NEXT≫
プロフィール

あんま覚えてへんわ


「あんま覚えてへんわ」です。

最新記事
最新コメント
月別アーカイブ
カテゴリ

openclose

カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
ブログ内検索

アクセス数
アクセスランキング
[ジャンルランキング]
日記
7806位
アクセスランキングを見る>>

[サブジャンルランキング]
会社員・OL
1488位
アクセスランキングを見る>>

天気予報
QRコード
QR
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。