スポンサーサイト

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

Oracle Data Pumpについて

Oracle Master を持っている人には、ただの一般常識かもしれない。
でも、10gまで慣れ親しんだ人には、大変役立つユーティリティ。

Data Pump 機能

通常、Oracle を使う人が dmpを扱う際は、
imp
exp
を使用すると思うが、DBが重たくなってくると、これが少々厄介である。
とくにインポートするのに、何十分も待たされ、イライラする
ようなことはざらである。
パソコンはほとんどフリーズしたかと思うような錯覚に 陥る。

遅まきながら、私も担当しているシステムで 11g にOracleをリプレイスしようと
している。
で、dmp のエクスポートのバックアップ・ローテーションをバッチで
組み込もうとしたところ、
imp
exp
が標準サポートされていない、とある。。
ナレッジやOTNを見ると、下位互換のためだけにあるとある。

http://www.oracle.com/technetwork/jp/ondemand/db-basic/20100908-expimp-beginner-244718-ja.pdf

で、10gから実装された、
expdp
impdp
なのだが、どうも10g 実装当初は、トラブルもあって
あまり注目されていなかったようである。

これは原則、サーバ上で動作するとある。
その他、いくつか前提条件がある。
で、ダイレクトパスモードでテストしてみたのだが、スピードが格段に違う。。
私が使用している Oracle 10g R2 では、
dmp ファイルが、1GB 前後のサイズなのだが、
エクスポートで約15倍、
インポートで5倍のスピードが出ている。
(ただし、オーバーヘッドが重いので、小さなサイズのDBでは効果は実感できない)
桁違いの早さ、これはもろに効く。。。

Enterprise Manager を使うことはほとんどないが、やはり
Oracle Master の知識は最低限必要か??

スポンサーサイト

テーマ : ソフトウェア開発
ジャンル : コンピュータ

日付をバッチコマンドで操作する

覚え書き
バッチで日付を操作する方法
■細かいやつ・・
@echo off
set date_tmp=%date:/=%
set time_tmp=%time: =0%
set yyyy=%date_tmp:~0,4%
set yy=%date_tmp:~2,2%
set mm=%date_tmp:~4,2%
set dd=%date_tmp:~6,2%
set hh=%time_tmp:~0,2%
set mi=%time_tmp:~3,2%
set ss=%time_tmp:~6,2%
set sss=%time_tmp:~9,2%
set datetime=%yyyy%%mm%%dd%_%hh%%mi%_%ss%%sss%
set wday=%yyyy%%mm%%dd%_%hh%%mi%_%ss%%sss%

■一発もん
set yyy=%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2%
set ttt=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
set nnooww=%yyy%_%ttt%

■1ヶ月前の年月
rem 1か月前の年月
set YYYYMM=%DATE:~-10,4%%DATE:~-5,2%
set /a ONEMONTHAGO=YYYYMM-1
if %ONEMONTHAGO:~-2%==00 set /a ONEMONTHAGO+=12-100
if %ONEMONTHAGO:~-2% GTR 12 set /a ONEMONTHAGO+=12-100

■1日前の年月(少し長いので注意)
@echo off
set date_tmp=%date:/=%
set time_tmp=%time: =0%
set yyyy1=%date_tmp:~0,4%
set yy1=%date_tmp:~2,2%
set mm1=%date_tmp:~4,2%
set dd1=%date_tmp:~6,2%
set hh1=%time_tmp:~0,2%
set mi1=%time_tmp:~3,2%
set ss1=%time_tmp:~6,2%
set sss1=%time_tmp:~9,2%
set wday=%yyyy1%%mm1%%dd1%

REM ---------------
REM 日付のn日前を求める
REM 引数1・・・n(数値)
REM 引数1がないときは1(前日)
REM 引数2・・・YYYY/MM/DD 形式
REM 引数2がないときは本日とする。
rem ***2014/10/10 1日前の日付を求める
REM ---------------

if "%1"=="" (
set n=1
) else (
set n=%1
)

if "%2"=="" (
for /F "tokens=1" %%a in ('date /t') do set orgdate=%%a
) else (
set orgdate=%2
)

:年月日の分割
set yy=%orgdate:~0,4%
set mm=%orgdate:~5,2%
set dd=%orgdate:~8,2%
set count=0

:Repeat

:月日の数値化(8進数対策)
set /a mm=1%mm%-100
set /a dd=1%dd%-100

set /a dd=%dd%-1

if %dd% NEQ 0 goto end

:月跨り処理
set /a mm=%mm%-1
if %mm% EQU 0 set mm=12&&set /a yy=%yy%-1

set /a dd=%dd%+31
if "%mm%"=="2" set /a dd=%dd%-3
if "%mm%"=="4" set /a dd=%dd%-1
if "%mm%"=="6" set /a dd=%dd%-1
if "%mm%"=="9" set /a dd=%dd%-1
if "%mm%"=="11" set /a dd=%dd%-1

:閏年処理
:4で割り切れるか?
set /a u=%yy% %% 4
if not %u%==0 goto end
:100で割り切れて、400で割り切れないか?
set /a u=%yy% %% 400
set /a v=%yy% %% 100
if %v%==0ec if not %u%==0 goto end
:2月か?
if %mm% EQU 2 set /a dd=%dd%+1

:END
set mm=0%mm%
set mm=%mm:~-2%

set dd=0%dd%
set dd=%dd:~-2%
set /a count=%count%+1
set DT=%yy%%mm%%dd%

IF %count% NEQ %n% goto Repeat

rem echo %n%日前は%DT%です。



テーマ : パソコン関連お役立ち情報
ジャンル : コンピュータ

カレンダー
10 | 2017/11 | 12
- - - 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 - -
カテゴリ
最近の記事
プロフィール

walton

Author:walton
世の中、流されて、流されず・・
徒然なるままに、末まったり・・

最近のコメント
管理者用
ブログ内検索
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。