Oracle 12c中DBCA搭建備庫體驗(r11筆記第92天)
Oracle 12c中DBCA有一個特性看起來蠻有意思,就是直接透過DBCA來搭建Data Guard,當然這麼說也有點噱頭,我們來實際看看。
Oracle提供的官方命令結構如下: dbca -createDuplicateDB
-gdbName global_database_name
-primaryDBConnectionString easy_connect_string_to_primary
-sid database_system_identifier
[-createAsStandby
[-dbUniqueName db_unique_name_for_standby]]
[-customScripts scripts_list] 至少我開始聽到的時候是很興奮的,真正看到這個幫助命令的時候還是很欣喜的,感覺一種要革命化的衝動,恨不得現在就在生產中馬上投入使用,實際上我看簡單了。
部署兩套資料庫軟體,有了靜默安裝,有了克隆,這些都是分分鐘的事情。 使用dbca的help得到的命令解釋比官方文件更加細緻,還提供了引數示例,這個很難得。$ dbca –silent -createDuplicateDB -help
-createDuplicateDB - Command to Duplicate a database.
-gdbName <Global database name>
-primaryDBConnectionString <EZCONNECT string to connect to primary database for example "host:port/servicename">
-sid <Database system identifier>
[-createAsStandby <Option to create a standby database>]
[-dbUniqueName <db_unique_name for standby db>]
[-customScripts <A comma separated list of SQL scripts which needs to be run post db creation.The scripts are run in order they are listed>]
[-datafileDestination <Destination directory for all database files>]
[-initParams <Comma separated list of name=value pairs>]
[-initParamsEscapeChar <Specify escape character for comma when a specific initParam has multiple values.If the escape character is not specified backslash is the default escape character>]
然後我簡單修改了下就開始了DBCA,沒想到提示了下面的資訊。
$ dbca –silent -createDuplicateDB -primaryDBConnectionString
newtest.oracle.com:1521/test12c -gdbName test12c -sid test12c
-initParams instance_name=test12c –createAsStandby
DISPLAY not set.
Set DISPLAY environment variable, then re-run. 這個剛開始感覺還挺納悶,最後發現我這個伺服器上安裝了多套環境,11g,12c並存,我竟然使用了11g的ORACLE_HOME,所以這個是個開篇的簡單問題,我們簡單跳過.
簡單調整後繼續嘗試,發現這次的錯誤讓我大跌眼鏡。
$ dbca -silent -createDuplicateDB -primaryDBConnectionString
newtest.oracle.com:1521/test12c -gdbName test12c -sid test12c
-initParams instance_name=test12c -createAsStandby -dbUniqueName
stest12c
Enter SYS user password:
[FATAL] [DBT-16057] Specified primary database is a container database (CDB).
CAUSE: Duplicate database operation is supported only for non container databases.
竟然丟擲了一個致命錯誤,而主要原因就是DBCA不支援容器複製,在非容器資料庫環境下才可以。
帶著疑問,再次開啟文件,發現這個命令開篇就解釋的很清楚了,明確表示了只支援非容器資料庫。The DBCA command qualifier used to create the physical standby database is createDuplicateDB .
DBCA can only be used to create standby databases for non-multitenant primary databases. 12c的亮點之一就是容器,而這個場景中我們只能使用非容器模式,然後搭建備庫,這個讓我的積極性消失了大半。
究其原因,其實和12cR2裡面的PDB層面的特殊定製有關。有一個相關的引數ENABLED_PDBS_ON_STANDBY,在PDB的場景下,可做多重定製,實際上對線上應用來說,和我的預期還有一些差別。
那麼我們牽強一下,是否能夠輕鬆完成非容器資料庫的Duplicate呢。這個地方實際上也讓我不大滿意。
我重新dbca初始化了1套環境,指定為非容器模式。
dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname test12cs -sid test12cs -characterSet UTF8 -createAsContainerDatabase false -sysPassword oracle -systemPassword oracle然後繼續使用上面的命令來嘗試建立DG,產生了下面的日誌。
Listener config step
33% complete
Auxiliary instance creation
66% complete
RMAN duplicate
DBCA Operation failed.最後還是失敗了,這個地方牽扯到一些網路的配置原因。
當然翻看日誌可以很快定位出一些方向,但是實際上的操作讓我感覺到,網路的配置不是我期望的那麼規範,而最重要的是,最後完成的不是DG的搭建,就如同這個命令選項所說,只是Duplilcate,Data Guard的配置沒有,主備庫都不用自動啟用DG Broker,對於搭建Data Guard的一個最佳實踐其實DG Broker就是一個很不錯的選擇,而在這裡似乎沒有找到我期望中的亮點。
所以我感覺這個特性目前對於我而言,沒有想象中那麼好。而我手工嘗試搭建了下,實際上幾分鐘也能達到同樣那個命令的效果,因為只在duplicate部分截止,後期的工作職能透過定製指令碼等方式來實現了。與其如此,還不如用我自己之前寫指令碼,最起碼能夠達到基本的可控和規範。
這個特性本身是一個不錯的想法,但是在這個特定的版本環境下,竟然有點華而不實,而退開一步來看,其實有些配置還達不到目前我們要求的一個配置要求,所以瞭解學習一下還是必要的,但是不隆重推薦給大家使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2134695/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12cR2初體驗(r11筆記第91天)Oracle筆記
- Oracle 12c DBCA淺析(r12筆記第48天)Oracle筆記
- Oracle 12c資料字典的小問題(r11筆記第49天)Oracle筆記
- Oracle 12c中JOB執行失敗的簡單處理(r11筆記第66天)Oracle筆記
- 返京途中(r11筆記第61天)筆記
- MySQL中的undo截斷(r11筆記第89天)MySql筆記
- MySQL中的半同步複製(r11筆記第65天)MySql筆記
- 兩個資料庫的問題(r11筆記第4天)資料庫筆記
- Oracle 12c 使用RMAN搭建物理備庫(RAC to RAC)Oracle
- 分分鐘搭建MySQL Group Replication測試環境(r11筆記第83天)MySql筆記
- 軟體技術大會歸來(r11筆記第8天)筆記
- 閃回資料庫不是“萬金油”(r11筆記第73天)資料庫筆記
- Oracle閃回原理-Logminer解讀redo(r11筆記第17天)Oracle筆記
- MySQL和Oracle行值表示式對比(r11筆記第74天)MySqlOracle筆記
- Oracle Data Guard延遲的幾個可能(r11筆記第69天)Oracle筆記
- 搭建windows到linux的oracle 12c physical standby備庫WindowsLinuxOracle
- 我的女兒二三事(r11筆記第87天)筆記
- 【12C】Oracle 12C 新特性“可插拔資料庫”功能體驗Oracle資料庫
- 出去吃頓飯容易嘛(r11筆記第5天)筆記
- 閃回原理測試(二)(r11筆記第23天)筆記
- 需要了解的pssh(r11筆記第28天)筆記
- MySQL 5.7 General Tablespace學習(r11筆記第34天)MySql筆記
- 我眼中的寶雞景點(r11筆記第53天)筆記
- 我眼中的兵馬俑(r11筆記第55天)筆記
- 德魯克人生五問(r11筆記第71天)筆記
- 關於責任和業務(r11筆記第60天)筆記
- MySQL Online DDL(二)(r11筆記第88天)MySql筆記
- oracle 12c中CDB和PDB的備份還原實驗Oracle
- 淺談MySQL中的事務隔離級別(r11筆記第86天)MySql筆記
- 用Oracle的眼光來學習MySQL 5.7的sys(上)(r11筆記第24天)OracleMySql筆記
- 用Oracle的眼光來學習MySQL 5.7的sys(下)(r11筆記第25天)OracleMySql筆記
- MySQL引數對比淺析(r11筆記第97天)MySql筆記
- Java隨機演算法(一)(r11筆記第14天)Java隨機演算法筆記
- 寫在2016年底(r11筆記第30天)筆記
- 【12C】Oracle 12c 可插拔資料庫之資料泵功能體驗Oracle資料庫
- 資料庫收縮資料檔案的嘗試(三)(r11筆記第22天)資料庫筆記
- Oracle 12c 安裝記錄(-)準備Oracle
- 使用sysbench壓力測試MySQL(一)(r11筆記第3天)MySql筆記