UJP - Oracle 11g Express Edition on Red Hat 7.6 その6 オンラインバックアップ

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

  • カテゴリ ハウツー の最新配信
  • RSS
  • RDF
  • ATOM

ブログ - Oracle 11g Express Edition on Red Hat 7.6 その6 オンラインバックアップ

Oracle 11g Express Edition on Red Hat 7.6 その6 オンラインバックアップ

カテゴリ : 
ハウツー
ブロガー : 
ujpblog 2019/4/10 22:31
 Oracle 11g EXを稼働したまま,データのバックアップを取ってみる.

 バックアップ対象データの確認.
-bash-4.2$ pwd🆑
/u01/app/oracle/oradata/XE🈁
-bash-4.2$ ls -la🆑
total 9753824
drwxr-xr-x 2 oracle dba       4096 Apr  1 14:51 .
drwxr-x--- 3 oracle dba       4096 Jan 21 17:28 ..
-rw-r----- 1 oracle dba   10493952 Apr  4 22:59 APP_idx_tbs.dbf
-rw-r----- 1 oracle dba 8602918912 Apr  4 22:59 APP_tbs.dbf
-rw-r----- 1 oracle dba   10240000 Apr  5 09:37 control.dbf
-rw-r----- 1 oracle dba  807411712 Apr  5 09:35 sysaux.dbf
-rw-r----- 1 oracle dba  387981312 Apr  5 09:30 system.dbf
-rw-r----- 1 oracle dba   11542528 Apr  4 22:57 temp.dbf
-rw-r----- 1 oracle dba   52436992 Apr  5 09:35 undotbs1.dbf
-rw-r----- 1 oracle dba  104865792 Apr  4 22:59 users.dbf
-bash-4.2$
 オンラインバックアップを実行するには,アーカイブログモードで運用されている必要があるので,現在状態を確認する.
SQLPlusで接続.
-bash-4.2$ sqlplus system/manager@xe🆑

SQL*Plus: Release 11.2.0.2.0 Production on Fri Apr 5 09:37:27 2019

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL>
 アーカイブログモードで運用されているか確認する.
SQL> archive log list🆑
ORA-01031: insufficient privileges🈁
SQL>
 systemユーザだと権限が無かった.SYSDBAユーザで接続する.
SQL> quit🆑
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
-bash-4.2$ sqlplus / as sysdba🆑

SQL*Plus: Release 11.2.0.2.0 Production on Fri Apr 5 09:39:57 2019

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL>
 アーカイブログモードを確認する.
SQL> archive log list;🆑
Database log mode              No Archive Mode🈁
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     8998
Current log sequence           8999
SQL>
 No Archive Modeなので,アーカイブログモードになってない.
 別の方法でも確認できる.
SQL> select log_mode from v$database;🆑

LOG_MODE
------------
NOARCHIVELOG🈁

SQL>
 ここでも,NO ARCHIVEモードが確認できた.

アーカイブログモードに変更する

 アーカイブログモードに変更してみる.
SQL> alter database archivelog;🆑
alter database archivelog
*
ERROR at line 1:
ORA-01126: database must be mounted in this instance and not open in any
instance🈁


SQL>
 database must be mounted in this instance and not open in anyは,日本語では「データベースはこのインスタンスでマウントし,どのインスタンスでもオープンしないでください」とでるらしい.
 データベースを停止したのちに,マウントした後に設定変更を実行し,データベースをオープンする必要がある.
 
 これは,現在のままだとマルチユーザ接続ができるので,停止した後,シングルユーザモードで接続して,設定変更し,利用を再開するためにデータベースをオープンすることとなる.
 
 まずは,Oracleをシャットダウン.
SQL> shutdown immediate🆑
Database closed.🈁
Database dismounted.
ORACLE instance shut down.
SQL>
 マウントしながら起動.
SQL> startup mount🆑
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2233344 bytes
Variable Size             788532224 bytes
Database Buffers          272629760 bytes
Redo Buffers                5541888 bytes
Database mounted.🈁
SQL>
 インスタンスが起動したので,データベースの設定を変更.
SQL> alter database archivelog;🆑

Database altered.

SQL>
 変更されたか確認.
SQL> archive log list;🆑
Database log mode              Archive Mode🈁
Automatic archival             Enabled🈁
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     8998
Next log sequence to archive   8999
Current log sequence           8999
SQL>
 データベースをオープンさせる.
SQL> alter database open;🆑

Database altered.🈁

SQL>
 もう1つの手段で,設定状態を確認する.
SQL> select log_mode from v$database;🆑

LOG_MODE
------------
ARCHIVELOG🈁

SQL>

アーカイブログの出力先

 オンラインバックアップ中は,アーカイブログに更新情報が記録されるわけだけれど,その状態を確認してみる.

SQL> show parameter log_archive_dest;🆑

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_11                  string
log_archive_dest_12                  string
log_archive_dest_13                  string
log_archive_dest_14                  string
log_archive_dest_15                  string
log_archive_dest_16                  string
log_archive_dest_17                  string
log_archive_dest_18                  string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_19                  string
log_archive_dest_2                   string
log_archive_dest_20                  string
log_archive_dest_21                  string
log_archive_dest_22                  string
log_archive_dest_23                  string
log_archive_dest_24                  string
log_archive_dest_25                  string
log_archive_dest_26                  string
log_archive_dest_27                  string
log_archive_dest_28                  string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_29                  string
log_archive_dest_3                   string
log_archive_dest_30                  string
log_archive_dest_31                  string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string
log_archive_dest_state_1             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_10            string      enable
log_archive_dest_state_11            string      enable
log_archive_dest_state_12            string      enable
log_archive_dest_state_13            string      enable
log_archive_dest_state_14            string      enable
log_archive_dest_state_15            string      enable
log_archive_dest_state_16            string      enable
log_archive_dest_state_17            string      enable
log_archive_dest_state_18            string      enable
log_archive_dest_state_19            string      enable
log_archive_dest_state_2             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_20            string      enable
log_archive_dest_state_21            string      enable
log_archive_dest_state_22            string      enable
log_archive_dest_state_23            string      enable
log_archive_dest_state_24            string      enable
log_archive_dest_state_25            string      enable
log_archive_dest_state_26            string      enable
log_archive_dest_state_27            string      enable
log_archive_dest_state_28            string      enable
log_archive_dest_state_29            string      enable
log_archive_dest_state_3             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_30            string      enable
log_archive_dest_state_31            string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable
SQL>
 アーカイブログのログスイッチを発生させて,ログファイルを確認してみる.
SQL> alter system switch logfile;🆑

System altered.

SQL> alter system switch logfile;🆑

System altered.

SQL>alter system switch logfile;🆑

System altered.

SQL>
 SQLPlusから,!(感嘆符)を使ってコマンドラインに移動してファイルを確認する.
SQL> !🆑
bash-4.2$ cd /u01/app/oracle/fast_recovery_area/XE🆑
bash-4.2$
 ファイルの一覧を.
bash-4.2$ ls -laRh🆑
.:
total 16K
drwxr-x--- 4 oracle dba 4.0K Apr  5 09:58 .
drwxr-x--- 3 oracle dba 4.0K Jan 21 17:28 ..
drwxr-x--- 3 oracle dba 4.0K Apr  5 09:58 archivelog
drwxr-x--- 2 oracle dba 4.0K Jan 21 17:28 onlinelog

./archivelog:
total 12K
drwxr-x--- 3 oracle dba 4.0K Apr  5 09:58 .
drwxr-x--- 4 oracle dba 4.0K Apr  5 09:58 ..
drwxr-x--- 2 oracle dba 4.0K Apr  5 09:58 2019_04_05

./archivelog/2019_04_05:
total 13M
drwxr-x--- 2 oracle dba 4.0K Apr  5 09:58 .
drwxr-x--- 3 oracle dba 4.0K Apr  5 09:58 ..
-rw-r----- 1 oracle dba  13M Apr  5 09:58 o1_mf_1_8999_gbfb1bps_.arc
-rw-r----- 1 oracle dba 2.0K Apr  5 09:58 o1_mf_1_9000_gbfb1hwf_.arc
-rw-r----- 1 oracle dba 1.0K Apr  5 09:58 o1_mf_1_9001_gbfb1lw7_.arc

./onlinelog:
total 101M
drwxr-x--- 2 oracle dba 4.0K Jan 21 17:28 .
drwxr-x--- 4 oracle dba 4.0K Apr  5 09:58 ..
-rw-r----- 1 oracle dba  51M Apr  5 09:58 o1_mf_1_g4c0p796_.log
-rw-r----- 1 oracle dba  51M Apr  5 10:03 o1_mf_2_g4c0p7hq_.log
bash-4.2$
 3回ログスイッチを実行したので,3つファイルがあることを確認.
 テーブルを作成して,データベースに変更を加えてみる.
bash-4.2$ sqlplus scott/tiger@xe🆑

SQL*Plus: Release 11.2.0.2.0 Production on Fri Apr 5 10:05:18 2019

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> create table testtable_deleteme (aa int);🆑

Table created.

SQL> desc testtable_deleteme;🆑
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 AA                                                 NUMBER(38)

SQL>
 テーブルを作成したので,ログスイッチを実行してファイルを確認する.
bash-4.2$ exit🆑
exit

SQL> alter system switch logfile;🆑

System altered.

SQL> !🆑
bash-4.2$ cd /u01/app/oracle/fast_recovery_area/XE🆑
bash-4.2$ ls -laRh🆑
.:
total 16K
drwxr-x--- 4 oracle dba 4.0K Apr  5 09:58 .
drwxr-x--- 3 oracle dba 4.0K Jan 21 17:28 ..
drwxr-x--- 3 oracle dba 4.0K Apr  5 09:58 archivelog
drwxr-x--- 2 oracle dba 4.0K Jan 21 17:28 onlinelog

./archivelog:
total 12K
drwxr-x--- 3 oracle dba 4.0K Apr  5 09:58 .
drwxr-x--- 4 oracle dba 4.0K Apr  5 09:58 ..
drwxr-x--- 2 oracle dba 4.0K Apr  5 10:07 2019_04_05

./archivelog/2019_04_05:
total 14M
drwxr-x--- 2 oracle dba 4.0K Apr  5 10:07 .
drwxr-x--- 3 oracle dba 4.0K Apr  5 09:58 ..
-rw-r----- 1 oracle dba  13M Apr  5 09:58 o1_mf_1_8999_gbfb1bps_.arc
-rw-r----- 1 oracle dba 2.0K Apr  5 09:58 o1_mf_1_9000_gbfb1hwf_.arc
-rw-r----- 1 oracle dba 1.0K Apr  5 09:58 o1_mf_1_9001_gbfb1lw7_.arc
-rw-r----- 1 oracle dba 144K Apr  5 10:07 o1_mf_1_9002_gbfblm45_.arc🈁

./onlinelog:
total 101M
drwxr-x--- 2 oracle dba 4.0K Jan 21 17:28 .
drwxr-x--- 4 oracle dba 4.0K Apr  5 09:58 ..
-rw-r----- 1 oracle dba  51M Apr  5 10:07 o1_mf_1_g4c0p796_.log
-rw-r----- 1 oracle dba  51M Apr  5 10:07 o1_mf_2_g4c0p7hq_.log
bash-4.2$
 新しくアーカイブログファイルが増えたことがわかる.
 ファイル名とログのシーケンス番号を突き合わせてみる.
bash-4.2$ exit🆑
exit

SQL> archive log list;🆑
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     9002🈁
Next log sequence to archive   9003
Current log sequence           9003
SQL>
 アーカイブログのファイル名がo1_mf_1_9002_gbfblm45_.arcとなっていて,Oldest online log sequenceが9002となっているので,値が一致している.

オンラインバックアップを行う

 アーカイブログモードになったので,オンラインバックアップを実行する.オンラインバックアップは表領域のファイルをOSコマンドでコピーする.
 オンラインバックアップモードに変更.
SQL> alter database begin backup;🆑

Database altered.

SQL>
 データベースデータをコピーする.
SQL> !🆑
bash-4.2$ pwd🆑
/u01/app/oracle/oradata/XE🈁
bash-4.2$ ls -la🆑
total 9753824
drwxr-xr-x 2 oracle dba       4096 Apr  1 14:51 .
drwxr-x--- 3 oracle dba       4096 Jan 21 17:28 ..
-rw-r----- 1 oracle dba   10493952 Apr  5 10:19 APP_idx_tbs.dbf
-rw-r----- 1 oracle dba 8602918912 Apr  5 10:19 APP_tbs.dbf
-rw-r----- 1 oracle dba   10240000 Apr  5 10:20 control.dbf
-rw-r----- 1 oracle dba  807411712 Apr  5 10:19 sysaux.dbf
-rw-r----- 1 oracle dba  387981312 Apr  5 10:19 system.dbf
-rw-r----- 1 oracle dba   11542528 Apr  5 09:54 temp.dbf
-rw-r----- 1 oracle dba   52436992 Apr  5 10:19 undotbs1.dbf
-rw-r----- 1 oracle dba  104865792 Apr  5 10:19 users.dbf
bash-4.2$
 今回はとりあえずなので,その場でディレクトリを作成しcpコマンドでバックアップを行う.
bash-4.2$ mkdir backup🆑
bash-4.2$ cp *.dbf backup/.🈁
bash-4.2$
 バックアップが完了したので,バックアップモードを終了する.
bash-4.2$ exit🆑

SQL> alter database end backup;🆑

Database altered.

SQL>

制御ファイルのバックアップ

 Oracleのの構成情報を持っている制御ファイル(コントロールファイル)をバックアップする.
 まずは,コントロールファイルの場所を確認.
SQL> col name for a40🆑
SQL> select * from v$controlfile;🆑

STATUS  NAME                                     IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- ---------------------------------------- --- ---------- --------------
        /u01/app/oracle/oradata/XE/control.dbf   NO       16384            624

SQL>
 データベース形式になったのか...
 バックアップを指定したディレクトリに行う.
SQL> alter database backup controlfile to '/u01/app/oracle/oradata/XE/backup/control.bak'🆑
  2  ;🆑

Database altered.🈁

SQL>
 traceファイルのバックアップを実施.
SQL> alter database backup controlfile to trace;🆑

Database altered.🈁

SQL>
 traceファイルの場所を確認.
SQL> show parameter diagnostic_dest;🆑

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest                      string      /u01/app/oracle
SQL>
 それぞれファイルが作成されたか確認する.
 まずはコントロールファイル.
bash-4.2$ ls -la /u01/app/oracle/oradata/XE/backup/control.bak🆑
-rw-r----- 1 oracle dba 10240000 Apr  5 10:33 /u01/app/oracle/oradata/XE/backup/control.bak
bash-4.2$ ls -la /u01/app/oracle/oradata/XE/backup/control.dbf🆑
-rw-r----- 1 oracle dba 10240000 Apr  5 10:23 /u01/app/oracle/oradata/XE/backup/control.dbf
bash-4.2$
 まったく同じものが存在している.
 次に,トレースファイル.
bash-4.2$ ls -lat /u01/app/oracle/diag/rdbms/xe/XE/trace/|head🆑
total 2291148
-rw-r-----  1 oracle dba      2075 Apr  5 10:45 XE_mmon_57519.trc
-rw-r-----  1 oracle dba       179 Apr  5 10:45 XE_mmon_57519.trm
-rw-r-----  1 oracle dba      9022 Apr  5 10:44 XE_dbrm_57503.trc
-rw-r-----  1 oracle dba       478 Apr  5 10:44 XE_dbrm_57503.trm
-rwxrwxr-x  1 oracle dba   3568695 Apr  5 10:34 alert_XE.log🈁
-rw-r-----  1 oracle dba      7093 Apr  5 10:34 XE_ora_57599.trc
-rw-r-----  1 oracle dba       101 Apr  5 10:34 XE_ora_57599.trm
-rw-r-----  1 oracle dba       956 Apr  5 10:07 XE_arc0_57657.trc
-rw-r-----  1 oracle dba        70 Apr  5 10:07 XE_arc0_57657.trm
bash-4.2$
 alert_XE.logファイルを確認.
bash-4.2$ tail -n 16 /u01/app/oracle/diag/rdbms/xe/XE/trace/alert_XE.log🆑
Fri Apr 05 10:19:59 2019
alter database begin backup
Completed: alter database begin backup
Fri Apr 05 10:32:50 2019
ALTER SYSTEM ARCHIVE LOG
Fri Apr 05 10:32:50 2019
Thread 1 advanced to log sequence 9004 (LGWR switch)
  Current log# 2 seq# 9004 mem# 0: /u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_2_g4c0p7hq_.log
Archived Log entry 5 added for thread 1 sequence 9003 ID 0xab9db495 dest 1:
Fri Apr 05 10:33:51 2019
alter database backup controlfile to '/u01/app/oracle/oradata/XE/backup/control.bak'
Completed: alter database backup controlfile to '/u01/app/oracle/oradata/XE/backup/control.bak'
Fri Apr 05 10:34:13 2019
alter database backup controlfile to trace
Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/xe/XE/trace/XE_ora_57599.trc
Completed: alter database backup controlfile to trace
bash-4.2$
 トレースファイル名がわかったので,ファイルの中を確認.
bash-4.2$ head  -n 4 /u01/app/oracle/diag/rdbms/xe/XE/trace/XE_ora_57599.trc🆑
Trace file /u01/app/oracle/diag/rdbms/xe/XE/trace/XE_ora_57599.trc
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe
System name:    Linux
bash-4.2$
 トレースファイルがあれば,コントロールファイルを再生可能.

 最後に,アーカイブログを作成しておいて,これをバックアップして退避しておくことで,バックアップからデータを戻すことができるようになる.

SQL> alter system archive log current;

System altered.

SQL>

トラックバック


広告スペース
Google