oracle實驗記錄 (oracle 10G dataguard(3)檔案管理)
關於db_file_name_convert,log_file_name_convert,standby_file_management 引數,理解dg檔案管理
SQL> show parameter standby_file(standby)
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------
standby_file_management string auto
SQL> show parameter name_convert(standby)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string g:\oracle\product\10.2.0\orada
ta\xh, e:\standby\datafile
log_file_name_convert string g:\oracle\product\10.2.0\orada
ta\xh, e:\standby\datafile
SQL> show parameter recov_(standby)
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------
db_recovery_file_dest string e:\standby\archive
1.primary上create tablespace
SQL> create tablespace xhtr datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\xhtr.d
bf' size 10m;
表空間已建立。
SQL> col file_name format a35
SQL> col tablespace_name format a10
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE FILE_NAME
---------- -----------------------------------
USERS G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
\USERS01.DBF
SYSAUX G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
\SYSAUX01.DBF
UNDOTBS1 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
\UNDOTBS01.DBF
SYSTEM G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
\SYSTEM01.DBF
TABLESPACE FILE_NAME
---------- -----------------------------------
EXAMPLE G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
\EXAMPLE01.DBF
XHTR G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
\XHTR.DBF
已選擇6行。
SQL> alter system switch logfile;
系統已更改。
SQL>
2.standby1 上應用
SQL> alter database recover managed standby database disconnect from session;
資料庫已更改。
SQL> alter database recover managed standby database cancel;
資料庫已更改。
SQL> alter database open read only;
資料庫已更改。
SQL> col file_name format a35
SQL> col tablespace_name format a10
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE FILE_NAME
---------- -----------------------------------
USERS E:\STANDBY\DATAFILE\USERS01.DBF
SYSAUX E:\STANDBY\DATAFILE\SYSAUX01.DBF
UNDOTBS1 E:\STANDBY\DATAFILE\UNDOTBS01.DBF
SYSTEM E:\STANDBY\DATAFILE\SYSTEM01.DBF
EXAMPLE E:\STANDBY\DATAFILE\EXAMPLE01.DBF
XHTR E:\STANDBY\DATAFILE\XHTR.DBF~~~~~~~~看到primary db上 新create 的datafile
已選擇6行。
如果要是primary 上 drop tablespace的話 ,standby 也會應用完archivelog後 自動drop tablespace
3.primary 上create tablespace (standby standby_file_management改為manual)
SQL> alter system set standby_file_management=MANUAL;(standby)
系統已更改。
SQL> create tablespace xhtr2 datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\xhtr2(primary)
.dbf' size 10m;
表空間已建立。
SQL> alter system switch logfile;(primary)
系統已更改。
SQL> alter database recover managed standby database disconnect from session;(standby)
資料庫已更改。
SQL> select applied from v$archived_log;(standby)
APP
---
.................
YES
NO~~~~~~~~~~~~~~~~~~~~~~可以看到 這個archivelog 沒有應用完
已選擇16行。
檢視standby 的alert.log
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00007'
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00007
從alert資訊可以看到standby應用archived log時沒有對應的目錄,standby file 管理為手動
SQL> select name from v$datafile;(standby)
NAME
------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.D
BF
E:\STANDBY\DATAFILE\UNDOTBS01.
DBF
E:\STANDBY\DATAFILE\SYSAUX01.D
BF
E:\STANDBY\DATAFILE\USERS01.DB
F
NAME
------------------------------
E:\STANDBY\DATAFILE\EXAMPLE01.
DBF
E:\STANDBY\DATAFILE\XHTR.DBF
G:\ORACLE\PRODUCT\10.2.0\DB_1\~~~~~可以看到standby有一個錯誤的檔名字
DATABASE\UNNAMED00007
已選擇7行。
SQL> select name from v$tablespace;(standby)
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~standby 中加入了primary 的新tablespace資訊
已選擇8行。
SQL> alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA
MED00007' as 'e:\standby\datafile\xhtr2.dbf';**********
資料庫已更改。
SQL> select name from v$datafile;(standby)
NAME
------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.D
BF
E:\STANDBY\DATAFILE\UNDOTBS01.
DBF
E:\STANDBY\DATAFILE\SYSAUX01.D
BF
E:\STANDBY\DATAFILE\USERS01.DB
F
NAME
------------------------------
E:\STANDBY\DATAFILE\EXAMPLE01.
DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
已選擇7行。
SQL> alter database recover managed standby database disconnect from session;(standby)
資料庫已更改。
SQL> select applied from v$archived_log;(standby)
......
YES
YES~~~~應用了
已選擇16行。
SQL> drop tablespace xhtr2 including contents and datafiles;(primary)
表空間已刪除。
SQL> alter system switch logfile;(primary)
系統已更改。
SQL> select name from v$tablespace;(standby)
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
已選擇7行。
SQL> select name from v$datafile;(standby)
NAME
------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.D
BF
E:\STANDBY\DATAFILE\UNDOTBS01.
DBF
E:\STANDBY\DATAFILE\SYSAUX01.D
BF
E:\STANDBY\DATAFILE\USERS01.DB
F
NAME
------------------------------
E:\STANDBY\DATAFILE\EXAMPLE01.
DBF
E:\STANDBY\DATAFILE\XHTR.DBF
已選擇6行。
可以看到manual情況 中standby 的tablespace資訊刪除了 ,但實際的資料檔案 沒刪除
C:\>dir e:\standby\datafile
驅動器 E 中的卷沒有標籤。
卷的序列號是 AC5C-2ED7
e:\standby\datafile 的目錄
.................................
2009-11-03 17:18 10,493,952 XHTR2.DBF***********************物理上還存在
16 個檔案 1,132,747,162 位元組
4.primary create tablespace 但 datafile 不含在 standby 引數db_file_name_convert中(standby_file_management auto)
SQL> alter system set standby_file_management=AUTO;(standby)
系統已更改。
SQL> show parameter db_file_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string g:\oracle\product\10.2.0\orada
ta\xh, e:\standby\datafile
下面是primary 和standby的 狀態
SQL> col tablespace_name format a10
SQL> col file_name format a50
SQL> select tablespace_name,file_name from dba_data_files;(primary)
TABLESPACE FILE_NAME
---------- --------------------------------------------------
USERS G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\USERS01.DBF
SYSAUX G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSAUX01.DBF
UNDOTBS1 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\UNDOTBS01.DBF
SYSTEM G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSTEM01.DBF
EXAMPLE G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\EXAMPLE01.DBF
XHTR G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF
已選擇7行。
SQL> select name from v$tablespace;(standby)
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
已選擇8行。
SQL> select name from v$datafile;(standby)
NAME
--------------------------------------------------------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
SQL> create tablespace xhtr2 datafile 'g:\xhtr2.dbf' size 10m; (primary)
表空間已建立。
SQL> alter system switch logfile; (primary)
系統已更改。
SQL> select CREATOR,applied from v$archived_log;(standby)
ARCH YES
CREATOR APP
------- ---
ARCH NO~~~~~~看到 這個由arch程式傳遞過來的最新歸檔沒有應用
已選擇23行。
檢視standby alert.log
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
Wed Nov 04 09:39:47 2009
Errors in file e:\standby\bdump\standby1_mrp0_2616.trc:
ORA-01274: cannot add datafile 'G:\XHTR2.DBF' - file could not be created
ORA-01119: error in creating database file 'G:\XHTR2.DBF'
ORA-27038: created file already exists
OSD-04010: 指定了
但這個檔案 已由primary建立
SQL> select name from v$datafile;(standby)
NAME
--------------------------------------------------------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00007(一個不知名的檔案)
已選擇7行。
SQL> select name from v$tablespace;(standby)
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2~~~~~~~~~~~~~~~~~資訊已經應用
已選擇8行。
SQL> alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA (standby)
MED00007' as 'e:\standby\datafile\xhtr2.dbf';
alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00
007' as 'e:\standby\datafile\xhtr2.dbf'
*
第 1 行出現錯誤:
ORA-01275: 自動進行備用檔案管理時, 不允許進行 CREATE DATAFILE 操作。
SQL> alter system set standby_file_management=MANUAL; (standby)~~~必須改會manual才行
系統已更改。
SQL> alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA (standby)
MED00007' as 'e:\standby\datafile\xhtr2.dbf';
資料庫已更改。
SQL> alter database recover managed standby database disconnect from session;(standby)
資料庫已更改。
SQL> select applied from v$archived_log;(standby)
APP
---
YES~~~~~~~~~~~~~~~已經應用成功
已選擇23行。
這樣就明白了db_file_name_convert的 意義主要就是應用redo時 轉換目錄對映目錄.(log_file_name_convert意思是一樣的)
不含在db_file_name_conver中可以用 OMF解決
但前提是standby_file_management=auto
SQL> show parameter standby_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string MANUAL
SQL>
SQL> alter system set db_create_file_dest='e:\standby\datafile';(standby)
系統已更改。
SQL> show parameter db_create_file_dest (standby)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string e:\standby\datafile
SQL> create tablespace xhtr3 datafile 'g:\xhtr3.dbf' size 10m;(primary)
表空間已建立。
SQL> alter system switch logfile;(primary)
系統已更改。
SQL> select applied from v$archived_log;(standby)
APP
---
YES
NO~~~~在standby 這個 收到的archivelog 還是沒有 應用
已選擇24行。
檢視standby alert.log
Wed Nov 04 10:05:54 2009
Errors in file e:\standby\bdump\standby1_mrp0_3624.trc:
ORA-01111: name for data file 8 is unknown - rename to correct file
ORA-01110: data file 8: 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00008'
ORA-01157: cannot identify/lock data file 8 - see DBWR trace file
ORA-01111: name for data file 8 is unknown - rename to correct file
ORA-01110: data file 8: 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00008'
這個錯誤是standby_file_management manual時錯誤
SQL> alter system set standby_file_management=AUTO;
系統已更改。
SQL> alter database recover managed standby database disconnect from session;(standby)
資料庫已更改。
SQL> select applied from v$archived_log;(standby)
YES
YES
YES
YES
APP
---
YES
NO~~~~~~~~~~~~~~~~~~~~~~~還是應用不行
已選擇24行。
SQL> show parameter db_create_file_dest(standby)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string e:\standby\datafile
SQL> show parameter standby_file_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string AUTO
SQL> select name from v$tablespace;(standby)
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2
XHTR3
已選擇9行。
SQL> select name from v$datafile;(standby)
NAME
--------------------------------------------------------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00008
已選擇8行。
SQL> alter system set standby_file_management=MANUAL;(standby)
系統已更改。
SQL> alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA (standby)
MED00008' as 'e:\standby\datafile\xhtr3'
2 ;
資料庫已更改。
SQL> alter database recover managed standby database disconnect from session;
(standby)
資料庫已更改。
SQL> select applied from v$archived_log;(standby)
APP
---
APP
---
YES
YES~~~~~~~~~~~成功應用
已選擇24行。
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2
XHTR3
已選擇9行。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
E:\STANDBY\DATAFILE\XHTR3
已選擇8行。
SQL> alter system set standby_file_management=AUTO;(standby)
系統已更改。
SQL> create tablespace xhtr4 datafile 'g:\xhtr4.dbf' size 10m;(primary)
表空間已建立。
SQL> alter system switch logfile;(primary)
系統已更改。
SQL> select applied from v$archived_log;(standby)
YES~~~~~~~~~~~~~~應用成功
已選擇27行。
SQL> select name from v$tablespace;(standby)
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2
XHTR3
XHTR4
已選擇10行。
SQL> select name from v$datafile;(standby)
NAME
--------------------------------------------------------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
E:\STANDBY\DATAFILE\XHTR3
E:\STANDBY\DATAFILE\STANDBY1\DATAFILE\O1_MF_XHTR4_5H2778OZ_.DBF 應用成功檔名按OMF 管理名字命名
已選擇9行。
上面可以看 出 如果standby file managment 為auto ,而primary 新增的datafile 不再 db_file_name_convert中可以 用omf解決,不過要提前設定omf 和 standby file management 為auto,standby要是開著恢復模式(recover managed standby) 那麼日誌資訊會應用~~controlfile中會記錄下錯誤的資訊,這之後再開omf或設為auto已經晚了 ,因為control file中已經有了該檔案的錯誤資訊
SQL> create tablespace xhtr5 datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\xhtr5(primary)
.dbf' size 10m;
表空間已建立。
SQL> alter system switch logfile;(primary)
系統已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
E:\STANDBY\DATAFILE\XHTR3
E:\STANDBY\DATAFILE\STANDBY1\DATAFILE\O1_MF_XHTR4_5H2778OZ_.DBF
E:\STANDBY\DATAFILE\STANDBY1\DATAFILE\O1_MF_XHTR5_5H28JPVT_.DBF~~~~即便primary建立時,在db_file_name_convert中 ,且standby file管理為auto,但日誌應用時候還是 建立在omf指定的上面
已選擇10行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-619711/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle dataguard failover 實戰OracleAI
- [20191129]oracle Audit檔案管理3.txtOracle
- ORACLE 概要檔案管理Oracle
- Oracle 10g大檔案表空間(轉)Oracle 10g
- [20190530]oracle Audit檔案管理.txtOracle
- Oracle RAC引數檔案管理Oracle
- 【DATAGUARD】Oracle Dataguard nologging 塊修復Oracle
- oracle dataguard broker 配置Oracle
- Oracle 10g expdp attach引數體驗Oracle 10g
- oracle監聽檔案listener.ora for 10g/11gOracle
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- Oracle 單機配置DataGuardOracle
- Oracle資料檔案和臨時檔案的管理Oracle
- Oracle 11.2.0.4 physical dataguard和snapshot dataguard切換Oracle
- 【DATAGUARD】Oracle Dataguard體系架構詳解Oracle架構
- Oracle Linux 7使用syslog來管理Oracle ASM的審計檔案OracleLinuxASM
- Oracle DataGuard歸檔日誌丟失處理方法Oracle
- [20191128]oracle Audit檔案管理2.txtOracle
- oracle 19c dataguard silent install (oracle 19c dataguard 靜默安裝)Oracle
- oracle 10g flashback databaseOracle 10gDatabase
- Oracle之11g DataGuardOracle
- Oracle 11.2 DataGuard RAC To RAC搭建Oracle
- Oracle實驗8--Merge與歸檔Oracle
- Oracle 控制檔案Oracle
- 【DATAGUARD】Oracle19c dataguard新特性及部署Oracle
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- Oracle Linux 7使用cron來管理Oracle ASM審計檔案目錄的增長OracleLinuxASM
- Oracle DataGuard FAL[client, ARC2]: Error 16191 connecting to 問題處理過程記錄OracleclientError
- Scheduler in Oracle Database 10g(轉)OracleDatabase
- Oracle 10g 下載地址Oracle 10g
- oracle 10G特性之awrOracle 10g
- oracle11g dataguard切換Oracle
- Oracle Dataguard故障轉移(failover)操作OracleAI
- 7 Oracle DataGuard 命令列參考Oracle命令列
- Oracle 密碼檔案Oracle密碼
- 【Dataguard】Oracle多租戶環境對Dataguard的影響Oracle
- Oracle實驗(04):floatOracle
- ISO 映象安裝oracle 10gOracle 10g
- Oracle 10g RAC故障處理Oracle 10g