oracle 数据库备份与还原

来源:互联网 发布:python split 字符串 编辑:程序博客网 时间:2024/05/14 05:16


一、下载oracle数据库客户端,并在电脑上安装

二、配置环境变量
找到oracle客户端的安装路径中Bin目录,将其路径配置到Path中。
截图如下:

三、按Win+R打开cmd窗口,敲入exp命令,查看环境变量是否配置正确:如果跟下面截图一样,则安装正确。


四、利用命令导出、导入Oracle数据库

导出数据库:exp imis/123456@192.168.26.27/orcl file=d:/imis.dmp log=d:/imislog.log
备注:exp 用户名/密码@数据库所在IP/数据库服务名 file=导出备份文件路径 log=导出日志
导入数据库:imp kpchen/123456@192.168.26.27/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/password@orcl 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");    }




0 0