« Home | DBMS_PROFILER: PL/SQL Performance Tuning » | Thanks for the question regarding "anydata type" » | Undocumented secrets for super-sizing your PGA » | Oracle SQL Injection Attacks » | How to unwrap Oracle PL/SQL » | Using an Oracle database link to connect to Excel » | ORASentry » | What is your experience with cursor_sharing? » | Building an Ajax Memory Tree » | Approach 4: Using Regular Expressions »

Data Pump:Not Just for Data Moves

今日はNYOUG(New York Oracle Users Group)からの引用です。

Arup Nandaさんが9月のGeneral Meetingで発表された
DataPumpの隠されたお宝機能の数々をご紹介します。

DataPumpは長年使われてきたimport/exportに変わる
Oracle10gのデータ移動用の新機能です。
(DA PUMPじゃないですよ)

★ マニュアル ★
<English>
http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14215/toc.htm
<Japanese>
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/toc.html


Arupさんはdata pumpを形容する為に

“Export/Import on Steroids”

という表現を使用しています。
on Steroidsは単純なステロイド使用的な意味の
他に増強するというようなニュアンスで使用する場合があります。
Sports選手が薬物使用でパワーアップするのと同じイメージですね。
"barry bonds on steroids"ではgoogleで2400件ヒットします。


気になる発表されているお宝機能の概要はこんな感じです。
これらに興味があれば、発表資料の一読をおすすめします。

1.DB全体のCreate文作成が一瞬で完了します。
<sqlfile>
2.Userの複製が簡単にできます。
<remap_schema>
3.本番環境からテスト環境へのデータ移行時に
小さく定義しなおしが簡単にできます。
<pctspace>
<sample>
4.異なるサーバーへ移動する際にデータファイル名を
簡単に変更できます。
<remap_datafile>
5.本番環境からテーブルスペースを移行しても
テスト環境に巨大なSTORAGE句は切れないとき。
<segment_attributes>
6.簡単にテーブルのリフレッシュができます。
<table_exists_action>
7.外部表をテキストファイルでなく、
DataPumpのDampファイルのままで使用できます。
<external type oracle_datapump>


今回は上記の機能紹介の中から1と2についてを引用しました。


■ New York Oracle Users Group, Inc.
http://www.nyoug.org/
(memberで無くてもPresentationsなどは参照できます)

■ 引用ページ
(arupをキーワードで検索するとすぐ見つかります)
http://www.nyoug.org/meetings.htm#2006_September_General_Meeting
http://www.nyoug.org/Presentations/2006/September_NYC_Metro_Meeting/200609Nanda_Data%20Pump.pdf
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
記事本文
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Data Pump:Not Just for Data Moves

<Show Metadata>

・Create a SQL File:

impdp directory=dump_dir dumpfile=md3.dmp sqlfile=a.sql

・A file called a.sql is created with all
the object creation DDL statements.

・You can filter too:
- INCLUDE=PROCEDURE, PACKAGE
- EXCLUDE=PROCEDURE:"='PROC1'"

<Create a User Like …>

・Problem:

- Quickly create a user like another, with all
its grants, system privs, tsquotas, etc.

・Old Solution:

- Painstakingly get the information from the data
dictionary and construct a SQL file

・Data Pump Solution:

- expdp schemas=arupcontent=metadata_only
- impdp remap_schema=ARUP:NEWUSER
- It creates the new user


_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語の語順に近い解釈

※自然な語順で解釈する癖をつけるために
敢えて不自然な日本語になっています。
()書きは後続修飾節の修飾対象です。
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◆ Data Pump:Not Just for Data Moves
単なるデータの移動だけではない。

<Show Metadata>
メタデータの表示

・Create a SQL File:
SQLFILEの作成

impdp directory=dump_dir dumpfile=md3.dmp sqlfile=a.sql

・A file called a.sql is created
a.sqlと呼ばれるファイルは作成されました。

with all the object creation DDL statements.
全てのオブジェクトの作成DDL文を伴って(作成されました)


・You can filter too:
フィルタをかけることもできます。

- INCLUDE=PROCEDURE, PACKAGE
- EXCLUDE=PROCEDURE:"='PROC1'"


<Create a User Like …>
USERの複製

・Problem:

- Quickly create a user like another,
素早いUSERの作成。他のUSERと同様の(USER)

with all its grants, system privs, tsquotas, etc.
全てのその権限、システム権限、割り当て容量、その他を伴って。
(作成)


・Old Solution:
(古い解決方法)

- Painstakingly get the information
念入りに情報を入手します。

from the data dictionary
データディクショナリから(入手します)

and construct a SQL file
そしてSQL FILEを構築します。


・Data Pump Solution:
DataPumpによる解決方法

- expdp schemas=arupcontent=metadata_only
- impdp remap_schema=ARUP:NEWUSER
- It creates the new user
それ(上記の2行の文)は新しいユーザを作成します。


_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
英語解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Metadata

※データそのものではなく、データに関する特徴などを
定義したデータを指します。Oracleの場合だと
テーブルやインデックス、データベース自身の定義内容
などを指します。


SQL File

※ここではメタデータを定義する為のSQL文が含まれる
ファイルを指しています。


DDL statements.

※Deta Definition Language(データ定義文)


filter

※言葉通りで必要なものだけを抽出する意味です。
今回はPROCEDUREやPACKAGEに特定した
SQL FILEを作成する例と、PROC1というPROCEDUREを
除外する例が示されています。



grants, system privs,

※Oracleでは権限をUSERに与える場合にGrant文を使用します。
system privsも権限のひとつですが、ここでのgrantsは
object権限(テーブルなどの読取権限など)を指しているのでは
ないでしょうか。


tsquotas

※quotaは分け前というニュアンスを持ちます。
tsはtablespaceの略で、Oracleでは
USER毎に分配するtablespaceの使用可能容量をtsquota
と呼びます。


Painstakingly

※pains-take-ing:痛みを伴う行動。(苦労など)

<文字制限の関係で続きは別の投稿になります>
http://blogs.yahoo.co.jp/yakusa_oracle/21950069.html?p=1&pm=l
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
★ 英語ぷちクイズ ★

※答えと思うリンクをぷちっとクリックしてください。
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
☆どれが一番命令口調ですか?

◆You should get this work done.
┗ http://clickenquete.com/a/a.php?M0002066Q0017445A19042
◆You must get this work done.
┗ http://clickenquete.com/a/a.php?M0002066Q0017445A2ee1f
◆You ought to get this work done.
┗ http://clickenquete.com/a/a.php?M0002066Q0017445A3697d
◆You had better get this work done.
┗ http://clickenquete.com/a/a.php?M0002066Q0017445A4a31a
○結果を見る
http://clickenquete.com/a/r.php?Q0017445Cc87c


締切:2006年10月25日18時00分
協力:クリックアンケート http://clickenquete.com/

もし目上の人に向かって言ってしまうと
取り返しのつかないことになるかもしれません。

こたえは次回に発表します。

ランキングとやらに参加してみました。
こちらも「ぷちっ」していただけるととても嬉しいです。(^-^)
http://english.blogmura.com/in/080814.html


■ 前回のこたえ

☆「(恋愛関係などで)彼女から身を引くよ」英語でなんて言いますか?

◆bow out
◆go out
◆pull out
◆draw out
○結果を見る
http://clickenquete.com/a/r.php?Q0017258C565c

答えは実は2つあります。

bow outとpull outです。どちらも意味としては正しいのですが、
pull outの場合は、少しエッチな話になってしまうのですが、
コンドームをつけないで直前で外に出す手法をも指しますので
恋愛ネタでこちらを使うと誤解される可能性が高いです。
bow outがより安全です。

例えば選挙戦などでブッシュ、ケリー、ディーンが
争っている時にディーンが途中で撤退する場合など
Dean pulled out of the race
などと表現できます。

go outはお出掛けですね。

draw outは引き出すイメージなどで使われますが、
内気な彼女の心をひっぱりだしてオープンに
しようと試みているイメージでも使えます。




_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Oracle解説
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
たぶんこのプレゼン資料はDataPumpの基本機能を
押さえている人向けになっているので、
DataPumpはまだ初めて。。。という方は以下も
目を通したほうが実験の効率が良いと思います。

--- DataPump 最低限の動作手順 ココカラ! -----------------

■ ダンプファイルやログファイル、SQLファイルのデフォルト出力先の確認

select directory_name ,directory_path from dba_directories

DIRECTORY_NAME
DIRECTORY_PATH
----------------------------------------------------------
DATA_PUMP_DIR
/app/oracle/product/10.2.0/db_1/rdbms/log/

※上記パスは特権ユーザか、DATA_PUMP_DIRディレクトリ
オブジェクトへのアクセス権がないと使用できない


■ 上記パスを使用しない場合、環境変数(DATA_PUMP_DIR)で
別のディレクトリオブジェクトを指定するか、
expdpコマンドのdirectoryオプション
で別のディレクトリオブジェクトを使用する

■ ディレクトリオブジェクトの作成方法

create directory furu_dir as '/home/oracle/dump_dir/tmpdb';
grant read,write on directory furu_dir to yakuser;
mkdir -p /home/oracle/dump_dir/tmpdb
chmod -R 775 /home/oracle/dump_dir/tmpdb

■ expdp

expdp system/manager content=metadata_only tables=aaa dumpfile=aaa.dmp directory=furu_dir

expdp yakuser/pass logfile=yakuser.expdp.log content=metadata_only schemas=yakdb directory=furu_dir dumpfile=yakdb.dmp exclude=table_statistics exclude=index_statistics

■ impdp

impdp system/manager dumpfile=yakdb.dmp sqlfile=yakdb.sql directory=furu_dir
※SQLFILEパラメータを使用した場合、DBにはなんら変更は実施されない

impdp yakuser/pass dumpfile=yakdb.dmp sqlfile=emp.sql directory=furu_dir tables=emp logfile=emp.imp.log


impdp hr/hr DIRECTORY=furu_dir LOGFILE=parallel_import.log JOB_NAME=imp_par3 DUMPFILE=par_exp%U.dmp PARALLEL=3

※sqlfile生成時、STORAGEを生成したくない場合、
impdp yakuser/pass dumpfile=emp.dmp sqlfile=emp.sql directory=furu_dir tables=emp logfile=emp.imp.log transform=storage:n[:table :index]

別の表領域にIMPORTしたい場合、
remap_tablespaceパラメータを使用する
remap_tablespace=source_tablespace_name:target_tablespace_name


--- DataPump 最低限の動作手順 ココマデ! -----------------

_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
編集後記
_________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

今号からご購読いただいた皆様はじめまして。
本日も最後まで読んでいただきありがとうございます。

Arup Nandaさんの記事をご紹介するのは
第1号を含め、今回で4回目です。

<過去掲載記事>
#001 【Project Lockdown】セキュリティ強化How To
http://blogs.yahoo.co.jp/yakusa_oracle/archive/2006/7/4
#007 【Project Lockdown Part 2】
http://blogs.yahoo.co.jp/yakusa_oracle/archive/2006/7/13
#008 【The Top 20 Features for DBAs】10g新機能特集
http://blogs.yahoo.co.jp/yakusa_oracle/archive/2006/7/14

Arup(読み:urup)さんはインド出身の経歴12年の
Super DBAです。2003年のDBA of the Yearの受賞者であり、
O'ReillyやRampantでの書籍執筆活動、
OTN,DBAzine,SearchOracle,OracleMagazineでの数々の
Article投稿、今回の様に様々なUserGroupやConference
での発表など、活躍は数え切れません。

以下のサイトでArupさんのResumeが拝見できます。
DBA向けの就職(転職)活動などのSampleとしてはいいですね^^
http://www.proligence.com/arup_resume_long.doc

ちなみに生声はこちらで。
http://www.dbazine.com/audios/dbazine-arup-nanda-oracle-security.mp3

ちなみにGoogleで"arup nanda"でworld wideで検索すると
私のメルマガが27900件中の8位でした。なんでやねん(笑)
日本から検索すると日本のページが有利になるのかな。。。

!若いころは週90時間労働でCatchUPしていたそうです。

それではまた。

About me

  • I'm yaksa
  • From Tokyo, Japan
My profile
にほんブログ村 IT技術ブログへ

blogRanking