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#';