Oracle11G自動備份

 一、以exp命令備份
     1.首先做個批處理腳本:backup.bat  腳本內容如下
        @echo off
       set curdate=%date:~0,4%%date:~5,2%%date:~8,2%
       set backuppath=D:\backup
       md %backuppath%
       exp scott/[email protected]/orcl file=%backuppath%\%curdate%.dmp owner(scott)                                    log=%backuppath%\%curdate%.log 
       forfiles /p "D:\backup" /s /m *.dmp /d -30 /c "cmd /c del @file"
    說明:在備份之前先在D盤建個backup文件夾.
   2.以Windows中的計劃任務程序來觸發這個備份腳本(以Win7爲例)
      (1)
         


















完成配置,這個自動備份腳本會在每天10:43的時候執行,將數據備份到D:\backup文件夾下 格式爲:20151212.dmp

2.導入dmp文件的命令
spool log.txt;
drop user scott cascade;
drop tablespace SCOTT including contents and datafiles;
create tablespace SCOTT logging  
datafile 'D:\orcl\SCOTT .dbf'
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local; 
create user scott identified by tiger default tablespace SCOTT;
grant connect,resource to scott;
grant dba to scott;
spool off;
exit;

在dos窗口輸入命名導入數據文件  imp scott/tiger@ORCL file=20151212.dmp full=Y


二、以expdp命名備份腳本如下
create directory mydmp as 'D:\backup'  --directory指定導出到本地目錄


--授權給操作用戶這個mydmp目錄的權限
grant read, write on directory mydmp to scott--需要超級管理員的賬號 sysdba


--查看一下是否存在該目錄
select * from dba_directories;

執行腳本如下
@echo off
rem set backupfile=%date:~0,4%%date:~5,2%%date:~8,2%.dmp 
rem set logfile=%date:~0,4%%date:~5,2%%date:~8,2%.log
rem delete 30days filesforfiles /p "D:\backup" /d -30  /c "cmd /c 
echo deleting @file ... && del /f @path"cd D:\backup
rem backup schemas
set backupfile=%date:~0,4%%date:~5,2%%date:~8,2%.dmp
set logfile=%date:~0,4%%date:~5,2%%date:~8,2%.log
expdp scott/tiger directory=mydmp  dumpfile=%backupfile%  logfile=%logfile% schemas=scott parallel=4


用expdp導出的必須要用impdp命令導入
impdp scott/tiger DIRECTORY=mydmp  DUMPFILE=20151212.DMP SCHEMAS=SCOTT

後記:
用expdp也會把空表也導出,非常好用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章