Oracle Duplicate database

Duplicate database

標籤: 
流程:
一、Backup Source DB and Copy file to Duplicate DB
二、從Source DB備份spfile到pfile
三、設定Duplicate DB password
四、設定Duplicate DB TNS
五、修改pfile檔案內容及路徑,並建立路徑
六、Duplicate DB(From Disk & Tape+RC)
 


 

 
 
DB:Oracle 10.2.0.4
Source DB:testdb(來源端,要被Duplicate DB)
Target DB:orcl2(Duplicate 出來的DB)
 
OS:Redhat 5.4
 
*****************(同台電腦使用RMAN,不同SID)
Source DB:
一、備份資料(因此測試是在同一台,所以資料兩台都可以看得到)
#export ORACLE_SID=testdb
# rman target /
rman>
run {
backup database;
sql 'alter system  archive log current';
backup archivelog all;
}
二、備份spfilepfile
SQL> create pfile='/home/oracle/initorcl2.ora' from spfile;  –使用source database的parameter file產生基本的auxiliary parameter file
把產生的pfile放到target db,當然備份檔案也要copy過去給Duplicate Server(若是同一台就沒有差異)
 
三、設定Duplicate DB Password
Target DB:
建立duplicate database(orcl2)的password file,假設orcl2為instance name(同一台機器上不能有相同名字的instance出現,dbname也是如此)
[oracle@oracleDB ~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=10 ignorecase=y
Ps:ignorecase=y是在11g才有的參數,忽略大小寫
 
四、設定Duplicate DB TNS
建立net service name(testdb2),可以連到auxiliary instance
  –如果要使用@orcl2連到auxiliary instance,則記得必須對listener進行static registration
TESTDB2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.55.79.26)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl2)
    )
  )
[oracle@oracleDB ~]$ tnsping testdb2
 
五、修改pfile檔案內容及路徑,並確認所有的路徑都存在
**修改initorcl2.ora將其變成正確的auxiliary instance的parameter file
#vi /home/oracle/initorcl2.ora
orcl2.__db_cache_size=415236096
orcl2.__java_pool_size=4194304
orcl2.__large_pool_size=4194304
orcl2.__shared_pool_size=150994944
orcl2.__streams_pool_size=0
*.audit_file_dest='/u1/oracle/admin/orcl2/adump'
*.background_dump_dest='/u1/oracle/admin/orcl2/bdump'
*.compatible='10.2.0.3.0'
*.control_files='/u2/oradata/orcl2/control01.ctl','/u2/oradata/orcl2/control02.ctl','/u2/oradata/orcl2/control03.ctl'#Restore Controlfile
*.core_dump_dest='/u1/oracle/admin/orcl2/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl2' <–若duplicated database位在同一台機器上,則必須與target database不同名字
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcl2XDB)'
*.job_queue_processes=10
*.log_archive_dest_1='LOCATION=/archive/orcl2'
#*.log_archive_start=TRUE <-這一行需註解掉,否則會出現ORA-32006: LOG_ARCHIVE_START initialization parameter has been deprecated
*.open_cursors=300
*.pga_aggregate_target=418381824
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=581959680
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u1/oracle/admin/orcl2/udump'
*.db_file_name_convert='/u2/oradata/testdb','/u2/oradata/orcl2'    <—-重要
*.log_file_name_convert='/u2/oradata/testdb','/u2/oradata/orcl2'   <—-重要
 
 
–在duplicated database所在機器上進行
–建立相關的目錄(根據pfile來建立File)
[oracle@C5TDB2 ~]$ mkdir -p /u1/oracle/admin/orcl2/adump
[oracle@C5TDB2 ~]$ mkdir -p /u1/oracle/admin/orcl2/bdump
[oracle@C5TDB2 ~]$ mkdir -p /u1/oracle/admin/orcl2/cdump
[oracle@C5TDB2 ~]$ mkdir -p /u1/oracle/admin/orcl2/udump
[oracle@C5TDB2 ~]$ mkdir -p /u2/oracle/orcl2
[oracle@C5TDB2 ~]$ mkdir -p /archive/orcl2
[oracle@C5TDB2 ~]$ mkdir /u2/oradata/orcl2
 
六、Duplicate DB (From Disk & Tape)
1.startup aux instance nomount
[oracle@oracleDB ~]$ export ORACLE_SID=orcl2
[oracle@oracleDB ~]$ sqlplus / as sysdba
Connected to an idle instance.
 
SQL> startup nomount pfile=/home/oracle/initorcl2.ora    –必須事先將修改完成的initorcl2.ora傳遞到duplicated database所在的主機上
 
2.在auxilary instance進行duplicate database
[oracle@oracleDB ~]$ export ORACLE_SID=orcl2
[oracle@oracleDB ~]$ rman target sys/oracle@testdb2 auxiliary /  –@orcl連線到target database
connected to target database: ORCL (DBID=1257464825)
connected to auxiliary database: ORCL2 (not mounted)
RMAN> run {
allocate auxiliary channel aux1 device type disk;
duplicate target database to orcl2;}  –orcl2必須與parameter file的db_name相同
**其餘工作將由RMAN自動產生的memory script完成所有操作
 
*******************補充資料,透過Tape還原+Catalog****************
Source db:c5pepm
Source Server:c5subdb1
 
若資料是放在Tape,有catalog DB,還原方式如下:
PS.若需要NBU Agent,當然需要先設定好及安裝好設定
#export ORACLE_SID=c5pepm
設定要從catalog server還原的server(主機名稱)(NBU指定的電腦名稱)
#export NB_ORA_CLIENT=c5subdb1
 
sqlplus / as sysdba
SQL>startup nomount pfile=/home/oracle/c5pepm.ora
 
$rman target sys/oracle@c5pepm catalog rman/rman@c5rman auxiliary /
Recovery Manager: Release 10.2.0.4.0 – Production on Tue Jan 14 10:52:05 2014
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
connected to target database: C5PEPM (DBID=223792576)
connected to recovery catalog database
connected to auxiliary database: C5PEPM (not mounted)
 
run {
allocate auxiliary channel aux1 device type 'sbt_tape';
allocate auxiliary channel aux2 device type 'sbt_tape';
duplicate target database to c5pepm;}
 
**也可以使用active target database當作資料來源-> RMAN> duplicate target database to orcl2 from active database;
 
常見問題
Q1:
released channel: aux1
RMAN-00571: ==================================================
RMAN-00569: ==== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ==================================================
RMAN-03002: failure of Duplicate Db command at 01/13/2014 11:40:44
RMAN-03015: error occurred in stored script Memory Script
RMAN-06026: some targets not found – aborting restore
RMAN-06100: no channel to restore a backup or copy of datafile 5
RMAN-06100: no channel to restore a backup or copy of datafile 4
RMAN-06100: no channel to restore a backup or copy of datafile 3
RMAN-06100: no channel to restore a backup or copy of datafile 2
RMAN-06100: no channel to restore a backup or copy of datafile 1
 
A:target端未做archive log backup
 
run {
sql 'alter system  archive log current';
backup archivelog all;
}
 
Q: ORA-32006: LOG_ARCHIVE_START initialization parameter has been deprecated
A:
Control file需把”*.log_archive_start=TRUE”註解掉或刪除掉,在google找到的原因是說10g之後已把這個參數拿掉了。
 
Q:
RMAN-03002: failure of Duplicate Db command at 01/13/2014 13:51:05
RMAN-06136: ORACLE error from auxiliary database: ORA-01503: CREATE CONTROLFILE failed
ORA-01504: database name 'ORCL2' does not match parameter db_name 'TESTDB'
 
A:
從duplicate端啟動db,可以看到說未找到參數檔,copy啟動參數到這個目錄底下:
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u1/oracle/10gr2/dbs/initorcl2.ora'
 
# cp /home/oracle/initorcl2.ora /u1/oracle/10gr2/dbs/initorcl2.ora
 
Q: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
A:啟動DB時,需要Resetlog
SQL>startup mount;
SQL> alter database open resetlogs;
 
Q: RMAN-05001: auxiliary filename /oradata/c5pepm/data/c5pepm/sysaux01.dbf conflicts with a file used by the target database
RMAN-05001: auxiliary filename /oradata/c5pepm/data/c5pepm/undotbs01.dbf conflicts with a file used by the target database
RMAN-05001: auxiliary filename /oradata/c5pepm/data/c5pepm/system01.dbf conflicts with a file used by the target database
 
A:未設定此兩個參數,一定要全部都設定完成
*.db_file_name_convert='source1',’dest1’, 'source2',’dest2’ , 'source3',’dest3’
*.log_file_name_convert='source1',’dest1’, 'source2',’dest2’ , 'source3',’dest3’
 
參考資料:
Rman Duplicate database&常見問題
http://shortterm.blog.163.com/blog/static/588188242009635282339/
異機使用rman備份檔(11g)

 

http://ladfi.blogspot.tw/2013/07/oracle-11g-duplicate-database-rman.html

Read more

How to document Home Lab and Network

運維機房和跨域的網路,會遇到各式需求與問題,用對工具才能分析問題,個人覺得最重要的是使用能處理問題的工具。 推薦目前想學和正在使用的平台與軟體,協助將公司/家用機房文件化 佈告欄任務管理 Focalboard 白板可管理任務指派 網路架構文件編寫 netbox 精細管理網路設備與連接線路 IP 資源管理 phpipam 專注網路IP分配 邏輯塊文件編寫 draw.io 視覺化概念圖 機房設備管理 ITDB 管理設備生命週期與使用者

By Phillips Hsieh

如何在Raspberry Pi4上安裝Proxmox for ARM64

第一步 準備好Raspberry Pi 4 / CM4 4GB RAM,這裡要留意CM4如果是買有內建eMMC storage會限制不能使用SD卡開機而限制本地空間容量,如果沒有NAS外接空間或使用USB開機的話,建議買CM4 Lite插上大容量SD卡 第二步 去Armbian官網下載最小化Debian bookworm image https://www.armbian.com/rpi4b/ Armbian 25.2.2 Bookworm Minimal / IOT 然後寫入SD/USB開機碟,寫入方法參考官方文件 https://github.com/raspberrypi/usbboot/blob/master/Readme.md Note: 官方提供的預先設定系統方法,可以在Armbian初次啟動自動化完成系統設定。連結在此 https://docs.armbian.com/User-Guide_Autoconfig/

By Phillips Hsieh

世界越快心越慢

在晚飯後的休息時間,我特別享受在客廳瀏灠youtube上各樣各式創作者的影音作品。很大不同於傳統媒體,節目多是針對大多數族群喜好挑選的,在youtube上我會依心情看無腦的動畫、一些旅拍記錄、新聞時事談論。 尤其在看了大量的Youtube的分享後,我真的感受到會限制我的是我的無知,特別是那些我想都沒想過的實際應用,在學習後大大幫助到我的生活和工作層面。 休息在家時,我喜歡想一些沒做過的菜,動手去設計生活和工作上的解決方案,自己是真的很難閒著沒事做。 如創作文章,陪養新的習慣都能感覺到成長的喜悅,是不同於吃喝玩樂的快樂的。 創作不去限制固定的形式,文字是創作、影像聲音也是創作,記錄生活也是創作,我想留下的就是創造—》實現—》回憶,這樣子的循環過程,在留下的足跡面看到自己一路上的成長、失敗、絕望、重新再來。 雖然大部份的時候去做這些創作也不明白有什麼特別的意義,但不去做也不會留下什麼,所以呀不如反事都去試試看,也許能有不一樣的水花也許有意想不到的結果,投資自己永遠不會是失敗的決定,不是嗎?先問問自己再開始計畫下一步,未來沒人說得準。 像最近看youtube仍大一群人在為DOS開

By Phillips Hsieh

知識管理的三個步驟:一小時學會把知識運用到生活上

摘錄瓦基「閱讀前哨站」文章作為自己學習知識管理的內容 Part1「篩選資訊」 如何從海量資訊中篩選出啟發性、實用性和相關性的精華,讓你在學習過程中不再迷失方向。 1. 實用性 2. 啟發性 Part2「提高理解」 如何通過譬喻法和應用法,將抽象的知識與日常生活和工作緊密結合,建立更深刻的理解。 1. 應用法 2. 譬喻法 Part3「運用知識」 如何連結既有知識,跟自己感興趣的領域和專案產生關聯,讓你在運用知識的路途上游刃有餘。 1. 跟日常工作專案、人際活動產生連結 # 為什麼要寫日記? * 寫日記是為了忘記,忘卻瑣碎事情,保持專注力 * 寫日記就像在翻譯這個世界,訓練自己的解讀能力 * 不只是透過日記來記錄生活,而是透過日記來發展生活 #如何寫日記? * 不要寫流水帳式的日記,而是寫覆盤式的日記 當我們試著記錄活動和感受之間的關聯,有助於辦認出真正快樂的事 日記的記錄方式要以過程為主,而非結果 * 感恩日記的科學建議,每日感恩的案例

By Phillips Hsieh