oracle 自動備份、恢複功能

來源:互聯網
上載者:User

1.自動備份

可以採用exp方式(前提是你要有匯出的許可權),並寫一個作業系統的指令碼,如果windows系統,可寫一個bat,在其中使用exp進行匯出,然後將BAT添加計劃任務。
backup.bat

--代碼如下:
echo off
exp system/sa@orcl file=d:\autobackup\ies%date%.dmp log=d:\autobackup\ies%date%_exp.log owner=(ies) buffer=655000 compress=y

pause

 

2.自動回復

備份是定期做,恢複一般只有當需要恢複時才發生,所以恢複是不添加到計劃任務中的,

但是為了操作方便,也可以做成.bat檔案。

恢複時一般要做兩件事情:1.啟動sqlplus,建立資料表空間和使用者,並推出sqlplus;2.匯入備份的.dmp檔案。

recover.bat

--代碼如下:

sqlplusw system/oracle@oracle @sqlplus_cuser.sql
echo off
imp system/oracle@oracle fromuser=(ies) touser=(ies) buffer=655000 ignore=y commit=y file=d:\autorecover\ies2010-11-23.dmp log=d:\autorecover\ies2010-11-23_imp.log

pause

注意:

1.需要使用者手工做的操作時將備份的×××.dmp檔案放在指定目錄(d:\autorecover)下,並將檔案名稱改為ies2010-11-23.dmp(或者可以不改檔案名稱,而是將recover.bat用記事本開啟,將ies2010-11-23.dmp改為對應的檔案名稱)

2.sqlplus_cuser.sql是建立資料表空間和使用者的功能。

--代碼如下:

spool cuser.log
connect system/oracle@oracle;
--刪除使用者--
drop user ies cascade;
--刪除資料表空間--
drop tablespace iests including contents;
--建立資料表空間--
create tablespace iests datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\IESTS.DBF' size 200m reuse autoextend on next 50m;
--建立使用者並授權--
create user ies identified by ies2010 default tablespace iests;

grant resource,connect to ies;
grant select any dictionary to ies;
grant select any sequence to ies;
grant create any table,alter any table,drop any table to ies;
grant select any table,insert any table,update any table,delete any table to ies;
grant create any trigger,alter any trigger,drop any trigger to ies;
grant create any procedure,alter any procedure,drop any procedure,execute any procedure to ies;
grant create any view,drop any view to ies;
grant create any synonym to ies;
grant create any snapshot to ies;

exit;
spool off;

 

3.在資料庫恢複時(匯入),需要停止web服務,是資料庫處於不被串連的狀態,否則使用者刪除時報錯,不能被刪除。
如果不刪除使用者,只刪除資料表空間,將導致使用者下的object不能被刪除(object包括function,procedure,synonym,package,Javasource,javaclass等),同樣object不能被匯入。
function,procedure,synonym,package,Javasource,javaclass,type 都在sys.source$下存著
試圖是dba_source,表是SOURCE$。
如果已經停止了web服務,刪除使用者時如果提示:“使用者當前正被串連不能刪除”時,需要殺掉該進程,
alter system kill session 'sid,serid#';

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.