Oracleでmysqldump的なことをするには

PHP,MySQLしか触っていないとダメですね。。
mysqldump oracle みたいな検索ワードしか浮かばずに見つけるのに苦労したので書き留めて起きます

Oracle的にはエクスポート、らしいです

exp ユーザー名@DB名 file=db.dmp log=dmp.log full=y

ただしこれだと余計なテーブルも全部出ちゃっている気が・・・

エクスポート/インポートがすごくわかりやすいのでベストな引数を探ってみる

上記コマンドはoracleユーザーで実行しないとパスが通っていなかったりするので要注意です(´Д`;)ヾ

table名で絞り込む場合

exp system@orcl file=db.dmp log=dbdmp.log tables=DTB%

DTBで始まるtableとそれに関係するindexも出力されている模様
ただしシーケンスは出力されないっぽい、さらに

EXP-00091: 不審な統計をエクスポートしています。

というエラーがひたすら出ているのでさらに引数を増やしてみます

統計情報の出力をやめる

exp system@orcl file=db.dmp log=dbdmp.log tables=tables=\(DTB%, MTB%\) STATISTICS=none

これでぱっと見は必要なdumpデータになったような気がします

シーケンスの出力

【ORACLE】SEQUENCE エクスポート/インポート | KYO'S BLOG

というのを見つけたけどよくわからんな・・・
それよりかは手作業でsql分作ったほうがいいかもしれんと思ってしまった。。

現在のシーケンスを見る
[sql]
select sequence_name from user_sequences;
[/sql]

シーケンスを作る
[sql]
CREATE SEQUENCE [シーケンス名] START WITH 1 MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE ;
[/sql]

とりあえず、備忘録なのでだらだらっと書いてみました
移行がうまくいかなかったらまた追記します

コメント

タイトルとURLをコピーしました