database:oracledb9i:backup_restore
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
database:oracledb9i:backup_restore [2023/05/19 16:40] – mikoto | database:oracledb9i:backup_restore [2023/07/14 16:20] (現在) – [SQLファイルを使う場合] mikoto | ||
---|---|---|---|
行 1: | 行 1: | ||
====== バックアップとリストア ====== | ====== バックアップとリストア ====== | ||
[[database: | [[database: | ||
+ | |||
+ | ===== 物理バックアップとリストア ===== | ||
アーカイブログモードかどうかの確認 | アーカイブログモードかどうかの確認 | ||
行 7: | 行 9: | ||
</ | </ | ||
+ | ==== オフラインバックアップを行う ==== | ||
+ | データベースを止める | ||
+ | <code sql> | ||
+ | shutdown immediate | ||
+ | </ | ||
+ | データファイル、REDOログ、制御ファイルをコピーする。 | ||
+ | < | ||
+ | $ cp / | ||
+ | $ cp / | ||
+ | $ cp / | ||
+ | $ cp / | ||
+ | $ cp / | ||
+ | $ cp / | ||
+ | $ cp / | ||
+ | $ cp / | ||
+ | </ | ||
+ | |||
+ | データベースを再開する | ||
+ | <code sql> | ||
+ | startup | ||
+ | </ | ||
+ | |||
+ | ==== オンラインバックアップを行う ==== | ||
バックアップすべきファイルの場所を表示する | バックアップすべきファイルの場所を表示する | ||
<code sql> | <code sql> | ||
行 14: | 行 39: | ||
SELECT MEMBER FROM V$LOGFILE; | SELECT MEMBER FROM V$LOGFILE; | ||
</ | </ | ||
+ | |||
+ | オンラインバックアップモードに変更 | ||
+ | <code sql> | ||
+ | alter database begin backup; | ||
+ | </ | ||
+ | データファイル、REDOログをコピーする。 | ||
+ | |||
+ | 制御ファイルについては以下のコマンドでバックアップする。 | ||
+ | <code sql> | ||
+ | ALTER DATABASE BACKUP CONTROLFILE TO '/ | ||
+ | ALTER DATABASE BACKUP CONTROLFILE TO TRACE; | ||
+ | </ | ||
+ | |||
+ | オンラインバックアップモードを解除する。 | ||
+ | <code sql> | ||
+ | alter database end backup; | ||
+ | </ | ||
+ | |||
+ | ==== リストア ==== | ||
+ | データベースを停止する | ||
+ | <code sql> | ||
+ | shutdown immediate | ||
+ | </ | ||
+ | |||
+ | データファイル、制御ファイル、REDOファイルをリストアする。 | ||
+ | ただし、データの破損などの場合は制御ファイルとREDOログをリストアしない。前の状態までしか戻せなくなる。 | ||
+ | |||
+ | DBをマウント状態まで起動、リカバリを実行してオープン状態まで起動する。 | ||
+ | <code sql> | ||
+ | startup mount | ||
+ | recover database; | ||
+ | alter database open; | ||
+ | </ | ||
+ | |||
+ | ===== 論理バックアップとリストア ===== | ||
+ | |||
+ | まずは移行対象ユーザーのオブジェクトを確認する | ||
+ | <code sql> | ||
+ | select object_name, | ||
+ | from dba_objects | ||
+ | where owner=' | ||
+ | order by object_name; | ||
+ | </ | ||
+ | あるいは対象のユーザーにスイッチして確認 | ||
+ | <code sql> | ||
+ | conn user/pass | ||
+ | select object_name, | ||
+ | from user_objects; | ||
+ | </ | ||
+ | |||
+ | ユーザーのデフォルト表領域を確認するには | ||
+ | < | ||
+ | select tablespace_name from dba_segments where owner = ' | ||
+ | </ | ||
+ | |||
+ | ===== リストア手順 ===== | ||
+ | まず、オブジェクトなどを初期化するためにスキーマを削除する | ||
+ | <code sql> | ||
+ | drop user ' | ||
+ | </ | ||
+ | '' | ||
+ | 次に、スキーマを再作成する。その際、デフォルトの表領域を設定しておく。またはスキーマの作成後に割り当てる。 | ||
+ | <code sql> | ||
+ | create user username identified by password default tablespace tbs_name; | ||
+ | </ | ||
+ | <code sql> | ||
+ | alter user username default tablespace tbs_name; | ||
+ | </ | ||
+ | < | ||
+ | imp userid=username/ | ||
+ | </ | ||
+ | |||
+ | ^オプション^説明^ | ||
+ | |userid|ユーザーID/ | ||
+ | |file|ダンプファイルのパスを指定| | ||
+ | |full|フルインポートかどうか。y/ | ||
+ | |ignore|エラーがあっても処理を続行するかどうか。続行(y)/ | ||
+ | |log|ログファイルの出力先を指定| | ||
+ | |commit|y/n 指定することでコミットを確定できる。| | ||
+ | |||
+ | ==== SQLファイルを使う場合 ==== | ||
+ | < | ||
+ | sqlplus " | ||
+ | imp userid=' | ||
+ | </ | ||
+ | |||
+ | <file | drop_and_create.sql> | ||
+ | DROP USER < | ||
+ | CREATE USER < | ||
+ | GRANT UNLIMITED TABLESPACE TO < | ||
+ | GRANT DBA TO < | ||
+ | GRANT CONNECT TO < | ||
+ | GRANT RESOURCE TO < | ||
+ | QUIT; | ||
+ | </ | ||
+ |
database/oracledb9i/backup_restore.1684482032.txt.gz · 最終更新: 2023/05/19 16:40 by mikoto