天天看点

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");
    }