天天看點

oracle 資料庫備份與還原

一、下載下傳oracle資料庫用戶端,并在電腦上安裝

二、配置環境變量 找到oracle用戶端的安裝路徑中Bin目錄,将其路徑配置到Path中。 截圖如下:

oracle 資料庫備份與還原

三、按Win+R打開cmd視窗,敲入exp指令,檢視環境變量是否配置正确:如果跟下面截圖一樣,則安裝正确。

oracle 資料庫備份與還原

四、利用指令導出、導入Oracle資料庫

導出資料庫:exp imis/[email protected]/orcl file=d:/imis.dmp log=d:/imislog.log 備注:exp 使用者名/密碼@資料庫所在IP/資料庫服務名 file=導出備份檔案路徑 log=導出日志 導入資料庫:imp kpchen/[email protected]/orcl full=y file=d:/imis.dmp log=d:/impimis.log ignore=y

注意:1、如果敲入exp 或者 imp 指令,不支援,說明你沒有配置環境變量和安裝oracle 用戶端    2、導入資料庫時,為了避免不必要的錯誤,先清空資料庫(簡單操作:删除使用者,這樣就會清空該用的所具有的所有資訊。在建立使用者)

五、Java web程式中備份oracle資料庫 執行個體 1.生成備份檔案:

public ActionForward createDmp(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        Calendar c = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String fileName = "data_oracle" + sdf.format(c.getTime());
        String dmpFolder = request.getSession().getServletContext()
                .getRealPath("")
                + "\\datas\\dmp\\";
        String logFolder = request.getSession().getServletContext()
                .getRealPath("")
                + "\\datas\\log\\";

        String cmd = "exp username/[email protected] file='" + dmpFolder + fileName
                + ".dmp' log='" + logFolder + fileName + ".log' owner=username";
        Runtime.getRuntime().exec(cmd);
        Thread.sleep(100 * 1000);
        request.setAttribute("msg", "備份成功,檔案生成會有延遲,請稍等");
        return mapping.findForward("dmpCreated");
    }
           

2.查詢備份檔案:

public ActionForward findDmp(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        String dmpFolder = request.getSession().getServletContext()
                .getRealPath("")
                + "\\datas\\dmp\\";
        File folder = new File(dmpFolder);
        File[] files = folder.listFiles();
        List<String[]> fileList = new ArrayList<String[]>();
        for (int i = 0; i < files.length; i++) {
            if (files[i].getName().indexOf(".dmp") > 0) {
                String[] one = new String[2];
                one[0] = files[i].getName();
                one[1] = files[i].length() / 1000 + "K";
                fileList.add(one);
            }
        }
        request.setAttribute("fileList", fileList);
        return mapping.findForward("dmpList");
    }
           

3.删除備份檔案:

public ActionForward deleteDmp(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        String dmpFolder = request.getSession().getServletContext()
                .getRealPath("")
                + "\\datas\\dmp\\";
        File folder = new File(dmpFolder);
        File[] files = folder.listFiles();
        String fileName = request.getParameter("dmpName");
        for (int i = 0; i < files.length; i++) {
            if (files[i].getName().equals(fileName)) {
                files[i].delete();
                request.setAttribute("msg", "删除成功");
                break;
            }
        }
        return mapping.findForward("dmpList");
    }