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#';
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
