第六章 複製數据庫

  當系統停机和用戶正在等待時,常常就不必進行數据庫恢复。事實上一些恢复可以預先做好計划

  複製數据庫可以被稱為副本或克隆數据庫。數据庫的副本名稱与原數据庫相同,克隆數据庫則与原數据庫名稱不同。當同時創建一個副本和一個克隆時,數据庫將被複製到相同的主机以及不同的主机上。

  複製帶來的好處:

    1) 開發小組擁有一個用於編程和測試的模擬數据庫。

    2) 可以難証當前數据庫備份的質量。

    3) 可以衡量,驗証備份和恢复存儲過程。

    4) 可以練習數据庫恢复技能。

  複製數据庫可以從一個主數据庫創建,無論這個數据庫是打開的還是關閉的。關閉備份的數据文件不需要恢复。打開備份的數据文件需要恢复,因為各個文件之間相互不一致。將克隆數据庫時,必須創建一個新的控制文件(Create ControlFile)

  數据庫控制文件可以用Create ControlFile 命令來創建。在很多情況下,這個命令都是有用的或者必要的。

    1) 丟失了所有控制文件

    2) 需要更改重做日誌成員或組的最大設置。

    3) 必須更改數据文件或實例的最大序號。

    4) 希望更改數据庫文件的名稱和位置(當然也可以在數据庫打開時通過其他辦法實際 offline)

    5) 希望更改數据庫的名稱。

  在給出Create ControlFile 命令後,Oracle 根据語句中給定的信息創建一個新的控制文件,Create ControlFile Create Database有點類似。

  創建控制文件的注意事項:

    1) 數据庫實例必須啟動,但沒有加載(NOMOUNT)。如果執行成功,Create ControlFile 語句則加載新創建的控制文件。

    2) 擁有OSDBA角色。

    3) 當創建一個新的控制文件時,會丟失所保存的歷史資料,例如歸檔日誌歷史和RMAN備份。

[@more@]
-- 備份前的數据
SYS@HUIYI>select * from t;

COL
------------------
09-Mar-07 10:42:05

SYS@HUIYI>insert into t values(sysdate);

1 row created.

SYS@HUIYI>commit;

Commit complete.

SYS@HUIYI>select * from t;

COL
------------------
09-Mar-07 10:42:05
10-Mar-07 09:46:12

-- 備份
SYS@HUIYI>@open_backup;

-- 複製參數文件
G:>copy %oracle_home%databaseinithuiyi.ora %oracle_home%databaseinithuiyi2.
        1 file(s) copied.

-- 替代參數文件中huiyi->huiyi2

-- 新建一個windows服務
G:>oradim -new -sid huiyi2

-- 產生密碼文件
G:>orapwd file=%oracle_home%databasepwdhuiyi2.ora password=111111

-- 建立相應目錄
G:>mkdir %oracle_home%oradatahuiyi2

G:>mkdir %oracle_home%adminhuiyi2bdump

G:>mkdir %oracle_home%adminhuiyi2cdump

G:>mkdir %oracle_home%adminhuiyi2udump

G:>mkdir %oracle_home%adminhuiyi2create

G:>mkdir %oracle_home%adminhuiyi2pfile

-- 拷貝數据文件
G:>copy g:bbackuphot*.dbf %oracle_home%oradatahuiyi2

-- 創建控制文件
-- 創建控制文件時,因為要指定在線重做日誌文件,以及數据文件的位置
-- 比較麻煩,所以可以用源數据庫的控制文件的創建方法,并做相應的修改來完成
SYS@HUIYI>alter database backup controlfile to trace resetlogs;

Database altered.

-- 拷貝產生的角本文件
1) 去掉註釋的部分
2) CREATE CONTROLFILE REUSE 改成 CREATE CONTROLFILE SET
3) 修改資料庫名稱
4) 修改數据文件日誌文件的路徑
SYS@HUIYI>host copy G:A9IadminHUIYIudumphuiyi_ora_144.trc G:A9Iadminhuiyi2createcreate_controlfile.sql
        1 file(s) copied.

-- 角本類似
STARTUP NOMOUNT
CREATE CONTROLFILE SET DATABASE "HUIYI2" RESETLOGS  ARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 50
    MAXLOGMEMBERS 5
    MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 113
LOGFILE
  GROUP 1 'G:A9IORADATAHUIYI2REDO01.LOG'  SIZE 100M,
  GROUP 2 'G:A9IORADATAHUIYI2REDO02.LOG'  SIZE 100M,
  GROUP 3 'G:A9IORADATAHUIYI2REDO03.LOG'  SIZE 100M
-- STANDBY LOGFILE
DATAFILE
  'G:A9IORADATAHUIYI2SYSTEM01.DBF',
  'G:A9IORADATAHUIYI2UNDOTBS01.DBF',
  'G:A9IORADATAHUIYI2DRSYS01.DBF',
  'G:A9IORADATAHUIYI2EXAMPLE01.DBF',
  'G:A9IORADATAHUIYI2INDX01.DBF',
  'G:A9IORADATAHUIYI2ODM01.DBF',
  'G:A9IORADATAHUIYI2TOOLS01.DBF',
  'G:A9IORADATAHUIYI2USERS01.DBF',
  'G:A9IORADATAHUIYI2XDB01.DBF',
  'G:A9IORADATAHUIYI2TBS01.DBF'
CHARACTER SET ZHT16MSWIN950
;

-- 創建控制文件
SYS@huiyi2>@%oracle_home%adminhuiyi2createcreate_controlfile;
ORACLE instance started.

Total System Global Area  143727516 bytes
Fixed Size                   453532 bytes
Variable Size             109051904 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes

Control file created.

-- 恢复,如果採用冷備份,不需要此恢复
SYS@huiyi2>set logsource d:archiveloghuiyi
SYS@huiyi2>recover database using backup controlfile until cancel;
ORA-00279: change 486128991 generated at 03/10/2007 09:46:23 needed for thread 1
ORA-00289: suggestion : D:ARCHIVELOGHUIYIARC00003.001
ORA-00280: change 486128991 for thread 1 is in sequence #3


Specify log: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 486129330 generated at 03/10/2007 09:47:35 needed for thread 1
ORA-00289: suggestion : D:ARCHIVELOGHUIYIARC00004.001
ORA-00280: change 486129330 for thread 1 is in sequence #4
ORA-00278: log file 'D:ARCHIVELOGHUIYIARC00003.001' no longer needed for this recovery


ORA-00326: log begins at change 486137902, need earlier change 486129330
ORA-00334: archived log: 'D:ARCHIVELOGHUIYIARC00004.001'


SYS@huiyi2>alter database open resetlogs;

Database altered.

SYS@huiyi2>select * from t;

COL
------------------
09-Mar-07 10:42:05
10-Mar-07 09:46:12

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8799875/viewspace-903654/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8799875/viewspace-903654/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值