いつもブログ閲覧頂いている皆様方、ペタ戴いている皆様方こんばんは。

ssss です。

今日は仕事初めで5時起き生活の再開です。

といっても本当は明日からが仕事で、今回は一足早く、臨出してのお仕事なのでした。

でも都心の電車 電車 はいつもと変わらなかった気が...。(バス バス はガラガラでしたが)



で、今日のお仕事の一つに、サーバのファイルシステム変更に伴うOracleDBの構成変更がありました。

シェルで一括処理させる勇気はないので、

ALTER DATABASE 文を叩きまくり です。


では日誌も兼ねて再現。たまにはオラクルネタです。
日々是勉強-o2

-------------------------------------------------------


オラクルにSYSDBAでログインして、


$ sqlsys <-- (alias で sqlplus / as sysdba してます。)



データベースを一旦止めて、


shutdown immediate;


もしOPEN状態でやりたい場合は、


alter tablespace 表領域名 offline

/


alter tablespace 表領域名 rename datafile '変更前のデータファイル名'
to '変更後のデータファイル名'
/


alter tablespace 表領域名 online

/


です。

ただし、SYSTEM表領域やデフォルト一時表領域はOFFLINEにできないのでこの方法は不可です。


ご注意を。



マウントモードで上げて、


startup mount


対象ファイル名を確認したい場合は、動的パフォーマンスビュー(V$xxxxx)で見てね。
(MOUNTモードではディクショナリ・ビュー(DBA_DATA_FILES 等) は見れません。)


select xxx,xxx from v$datafile
/


select xxx,xxx from v$tempfile
/


select xxx,xxx from v$logfile
/


select xxx,xxx from v$database
/


まぁ普通、事前に確認しておくだろうけど...。



対象のファイルをコピー!コピー!コピー!


!cp -p /db1/oradata1/sys/* /db2/oradata2/sys/


!cp -p /db1/oradata1/data/* /db2/oradata2/data/


!cp -p /db1/oradata1/temp/* /db2/oradata2/temp/



で、構成変更です。(リネーム)


alter database rename file '変更前のファイル名(フルパス)' to '変更後のファイル名(フルパス)'
/

   ・
   ・
   ・ ひたすら打ちます。
   ・
   ・



データファイルもテンポラリファイルも、


alter database rename file '変更前のファイル名(フルパス)' to '変更後のファイル名(フルパス)'
/

   ・
   ・
   ・ 打って打って、
   ・
   ・



オンラインREDOログファイルも、


alter database rename file '変更前のファイル名(フルパス)' to '変更後のファイル名(フルパス)'
/

   ・
   ・
   ・
打ちまくりました。


( あ、いや、一つの文でいっぺんにやればいいやん...ってツッコミは無しで。 )



アーカイブ・ログの先を変更して~、


alter system set log_archive_dest_1='location=変更後のアーカイブ先ディレクトリ'
/


alter system set log_archive_dest_2='location=変更後のアーカイブ先ディレクトリ'
/



ダンプファイル出力先を変更して~、


alter system set background_dump_dest='変更後のbdumpディレクトリ'
/


alter system set core_dump_dest='変更後のcdumpディレクトリ'
/


alter system set user_dump_dest='変更後のudumpディレクトリ'
/



で、最後に制御ファイルの変更っと。


alter system set control_files = '変更後の制御ファイル1',

'変更後の制御ファイル2',

'変更後の制御ファイル3'
scope=spfile
/



満足したら、正常停止。(即OPENじゃないよ)


shutdown immediate


ORA-01109: データベースがオープンされていません。 エラーが出るけど当たり前なので無視!



制御ファイルをコピーします!


!cp -p 移動前の制御ファイル1 移前後の制御ファイル1


!cp -p 移動前の制御ファイル2 移前後の制御ファイル2


!cp -p 移動前の制御ファイル3 移前後の制御ファイル3



さて、起動します。(ドキドキ...)


startup



で、完了。

日々是勉強-o3
おめでとーーーーーーーーーー(-^□^-)





あ、今回は 10g だったけど、8i ~ 9i あたりのローカル管理テンポラリファイル (一時表領域のファイル)は


alter database rename file '変更前のテンポラリファイル名(フルパス)'

to '変更後のテンポラリファイル名(フルパス)'

/

だとエラーになるかも。

事前に DBA_TEMP_FILES にあるかどうか確認してみて。(おせっかい)

無難に DROP --> CREATE してくださいな。


でわでわ。

   




追伸:

 DB構成変更後は、すみやかにバックアップ(できればコールドバックアップ)を取得すること。

 あとは、 alter system backup controlfile to trace しとけば完璧!(たぶん)


日々是勉強-o1



ではまた。


良かったら フォローしてください。

日々是勉強 ( ̄∩ ̄@