Oracle活動資料庫複製
Oracle可以從現有的資料庫中複製出一份新的資料庫。這在一些場合是很有用的。例如從生產庫中複製出一個測試庫來搭建開發和測試環境,生成大型報表而不影響生產系統的響應時間,從複製資料庫中匯出無意從生產庫中刪除的一個表,然後將它重新匯入到生產庫中,以及Data guard等應用。
在這裡,我們把原生產資料庫稱之為目標資料庫,而由生產庫複製出來的庫稱之為輔助資料庫。11g之前建立輔助資料庫過程需要將目標資料庫的備份(包括增量備份和歸檔日誌)事先儲存在輔助資料庫例項可以訪問到的檔案系統上。而11g開始無需為操作事先建立或複製備份,可直接從已開啟或已載入的目標資料庫中複製出輔助資料庫,這種技術稱之為活動資料庫複製(Active Database Duplicate)。
能夠建立輔助資料庫的基本要求是原目標資料庫應處於歸檔模式。當然,正常的生產庫都應當是具備這個條件的。
下面用例項說明,如何從我們網路上的一個生產資料庫mes中複製出一個輔助資料庫newdb到本地機器,實現活動資料庫複製。
1、建立口令檔案
輔助資料庫的口令必須與目標資料庫口令相同,透過在作業系統命令提示符下執行orapwd命令來完成
orapwd file=%Oracle_home%\database\PWDnewdb.ora password=mes entries=3 force=y
這裡口令檔案採用Windows系統下Oracle口令檔案標準的命名方式,即PWD<sid>.ora的形式。
2、編制靜態初始化引數檔案並建立相應目錄
檔案中一般需要指定以下幾個重要引數:
db_name:資料庫名稱
db_block_size:資料塊大小,應當與原資料庫匹配,如果未指定,則預設為2KB。而一般建立的資料庫塊大小預設都是8KB,所以這裡需要特別指定
control_files:控制檔案路徑
db_file_name_convert:用於轉換資料檔案和臨時檔案路徑的字串對
log_file_name_convert:用於轉換聯機日誌檔案路徑的字串對
log_archive_dest_1:歸檔日誌檔案目標位置
log_archive_format:歸檔日誌檔案命名格式
db_recovery_file_dest:閃回恢復區目標位置
db_recovery_file_dest_size:閃回恢復區大小
引數檔案路徑放置於%ORACLE_HOME%\database,按照pfile檔案的命名規則,檔名應為INITnewdb.ora,文字內容如下,缺少的目錄需手工建立
db_name=newdb
db_block_size=8192
control_files=('D:\ORADATA\NEWDB\CONTROL01.CTL','D:\ORADATA\FLASH_RECOVERY_AREA\NEWDB\CONTROL02.CTL')
db_file_name_convert=('D:\ORADATA\MES','D:\ORADATA\NEWDB')
log_file_name_convert=('D:\ORADATA\MES','D:\ORADATA\NEWDB')
log_archive_dest_1='location=d:\oradata\newdb\archivelog'
log_archive_format='arc_%d_%t_%r_%s.log'
db_recovery_file_dest='d:\oradata\flash_recovery_area'
db_recovery_file_dest_size=4g
3、建立Oracle例項服務
在作業系統命令提示符下執行oradim命令
oradim -new -sid newdb
4、連線空閒例項並啟動到nomount狀態
在作業系統命令提示符下切換SID到輔助庫
set oracle_sid=newdb
sqlplus / as sysdba
啟動例項到nomount狀態
startup nomount
5、構建spfile並重啟例項到nomount狀態
由pfile建立spfile
create spfile from pfile;
重啟例項到nomount狀態
shutdown abort
startup nomount
6、配置監聽和服務名
配置好本地機器的資料庫監聽和服務名,同時也要配置好目標機器上的服務名,確保本地機器和目標機器都能夠彼此連線到目標資料庫和輔助資料庫。
7、對目標庫做日誌切換
由於Duplicate過程對輔助庫執行不完整恢復,一直恢復到目標庫最後的歸檔日誌檔案為止。因此輔助庫並不包含目標庫尚未進入歸檔的事務。若要儘可能的與目標庫一致,可在Duplicate前先對目標庫做幾次日誌切換。
在作業系統命令提示符下切換SID到目標庫
set oracle_sid=mes
sqlplus / as sysdba
連續做三次日誌切換
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
8、用RMAN命令同時連線到目標資料庫和輔助資料庫
在作業系統命令提示符下啟動RMAN,這裡使用者名稱和密碼不能省略,否則複製不會成功
rman target sys/mes@mes auxiliary sys/mes@newdb
9、執行Duplicate活動資料庫複製
duplicate target database to newdb from active database nofilenamecheck;
命令中nofilenamecheck表示不對檔名進行檢查,如果輔助庫和目標庫檔名稱相同則需要該選項。
至此完成活動資料庫複製,從生產庫mes中複製出一份新的資料庫newdb到本地機器。於是我們可以在本地克隆出的資料庫上進行自己的開發、測試和學習研究,而不影響原庫的執行。
說明:複製過來的庫聯機日誌檔案預設在閃回恢復區,根據需要可以考慮重定向。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28974745/viewspace-2137058/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle sqldeveloper選擇性複製備份資料庫OracleSQLDeveloper資料庫
- 資料庫複製(一)–複製介紹資料庫
- DM7資料複製之資料庫級複製資料庫
- Oracle跨主機複製資料庫背後的意義Oracle資料庫
- 資料庫主從複製資料庫
- 監控資料庫活動資料庫
- Mysql(Mariadb)資料庫主從複製MySql資料庫
- 使用RMAN複製資料庫 active database資料庫Database
- dimitri/pgcopydb:Postgres資料庫複製工具MITGC資料庫
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- mysql資料庫實現主從複製MySql資料庫
- 分散式資料庫的複製原理 - Quastor分散式資料庫AST
- 架構設計(二):資料庫複製架構資料庫
- mybatis oracle資料庫批次插入資料,忽略主鍵重複MyBatisOracle資料庫
- [重慶思莊每日技術分享]-使用RMAN活動複製資料庫時出現報錯Ora-19625資料庫
- Oracle資料庫啟動步驟Oracle資料庫
- 資料共享(淺複製)與資料獨立(深複製)
- 利用SQL Server Management Studio(SSMS)複製資料庫SQLServerSSM資料庫
- TiDB 異構資料庫複製最佳實踐TiDB資料庫
- 異構資料庫間批量表快速複製資料庫
- GoldenGate異種資料庫之間的複製Go資料庫
- 4 配置Oracle資料庫自動啟動Oracle資料庫
- Oracle EBS 資料庫密碼複雜度設定Oracle資料庫密碼複雜度
- 每天自動備份Oracle資料庫Oracle資料庫
- Centos-Mysql複製備份還原資料庫CentOSMySql資料庫
- MySQL-主從複製之搭建從資料庫MySql資料庫
- MySQL-主從複製之搭建主資料庫MySql資料庫
- MongoDB資料庫之主從複製配置實戰【轉】MongoDB資料庫
- 什麼是單主資料庫複製? -Vlad Mihalcea資料庫
- Day 7.5 資料型別總結 + 複製 淺複製 深複製資料型別
- 資料庫如何應對保障大促活動資料庫
- Redis的資料複製Redis
- DM7資料複製之模式級複製模式
- 「Oracle」Oracle 資料庫安裝Oracle資料庫
- 資料庫複習資料庫
- 使用事件溯源、Kafka和OGG從Oracle內部複製資料事件KafkaOracle
- MongoDB在不同主機間複製資料庫和集合MongoDB資料庫
- linux下mysql主從複製,實現資料庫同步LinuxMySql資料庫
- 資料庫容災、複製解決方案全分析(轉)資料庫