由於咱們數據庫服務器的空間有限,同時也考慮到異地備份的好處,雖然說異地備份操做比同機備份繁瑣,可是咱們仍是推薦使用Rman 的異地備份。 1.在備份之前請確認數據庫的歸檔方式 RMAN CMD C:\Documents and Settings\cpnuser>sqlplus /nolog SQL*Plus: Release 11.1.0.7.0 - Production on Tue Jul 16 15:08:13 2013 Copyright (c) 1982, 2008, Oracle. All rights reserved. SQL> conn ***/***@*** as sysdba Connected. SQL> 查看數據庫歸檔方式 SQL> SELECT log_mode from v$database; LOG_MODE ------------ NOARCHIVELOG 若是結果爲NOARCHIVELOG則須要將數據庫模式設置爲歸檔模式,不然跳過此步 SQL> shutdown immediate; (當即關閉數據庫) SQL> startup mount (啓動實例並加載數據庫,但不打開) SQL> alter database archivelog; (更改數據庫爲歸檔模式) SQL> alter database open; (打開數據庫) SQL> alter system archive log start; (啓用自動歸檔) SQL> conn ***/***@*** as sysdba Connected. 查看數據庫歸檔方式 SQL> SELECT log_mode from v$database; LOG_MODE ------------ ARCHIVELOG 2.設置備份端的共享目錄。 配置數據庫服務器與備份目的主機 賬戶配置(假定有主機A,B 且A爲數據庫服務器,B爲備份目的主機,且能互相ping通) 若是主機A與主機B使用的Administrator密碼相同,且A上的OracleServiceDBNAME(PRPCV6)服務和 OracleOraHome11TNSListener服務都以"本地系統帳戶登錄" 若是主機A與主機B使用不一樣的Administrator密碼,處於安全考慮不宜設爲相同,則則能夠分別在主機A與主機B上新建一用戶,假定在主機A上創建DBA_oracle,密碼爲ORA_PWD,則在主機B上也創建該用戶(用戶名能夠不一樣,密碼必須相同),密碼一樣設置爲ORA_PWD。將剛建好的用戶在各自主機將其加入到Aministrators組 設定OracleServiceDBNAME服務和OracleOraHome92TNSListener服務的啓動賬戶。在運行處輸入services.msc。在主機A上設定使用此賬戶登錄,即便用剛剛創建的DBA_oracle,輸入密碼啓動,該設置須要重啓後有效。 在主機B上設定共享文件夾,如RMAN_Shared,設置其權限爲徹底控制(在A上使用\\IP\RMAN_Shared測試是否可寫入文件) PS:爲何須要指定一個用戶來控制一個service? 在windows 裏,默認的本地系統帳戶不容許往共享目錄中寫入的權限。 On Windows, your default is the OracleService<SID> service, which runs as the user LocalSystem. The Windows LocalSystem user is not allowed to write to shared drives. 3.使用腳本進行備份 腳本文件已經配置好。打開腳本文件修改路徑便可。 配置文件上,雙擊Test.bat便可。 4.數據庫還原 Rman target sys/Hello1234@PRPCV6 RMAN> list backup of database; restore database; -->還原數據庫 recover database; -->恢復數據庫 以CPNPS爲例 RMAN> connect target sys/sys@CPNPS RMAN> startup mount; RMAN> restore database; RMAN> recover database; RMAN> alter database open; 以CPNPS爲例 RMAN> connect target sys/Hello1234@PRPCV6 RMAN> startup mount; RMAN> restore database; RMAN> recover database; RMAN> alter database open;