最好还是利用oracle提供的几个工具,imp,exp以及sqlldr.参考一下toad的做法。

解决方案 »

  1.   

    以下是一个asp备份与恢复sql server例子:
    <HTML>
    <HEAD>
    <TITLE>SQL Server 数据库的备份与恢复</TITLE>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </HEAD>
    <BODY>
    <form method="post" name=myform>
    选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup"  value="backup"><label for=act_backup>备份</label> 
    <INPUT TYPE="radio" NAME="act" id="act_restore" value="restore"><label for=act_restore>恢复</label>
    <br>数据库名:<INPUT TYPE="text" NAME="databasename" value="<%=request("databasename")%>">
    <br>文件路径:<INPUT TYPE="text" NAME="bak_file" value="c:\$1.bak">(备份或恢复的文件路径)<br>
    <input type="submit" value="确定">
    </form>
    <%
    'SQL Server 数据库的备份与恢复!
    '海娃
    'http://www.51windows.Net
    dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
    sqlserver = "localhost" 'sql服务器
    sqlname = "sa"   '用户名
    sqlpassword = "sa"  '密码
    sqlLoginTimeout = 15 '登陆超时
    databasename = trim(request("databasename"))
    bak_file = trim(request("bak_file"))
    bak_file = replace(bak_file,"$1",databasename)
    act = lcase(request("act"))
    if databasename = "" then
     response.write "input database name"
    else
     if act = "backup" then
      Set srv=Server.CreateObject("SQLDMO.SQLServer")
      srv.LoginTimeout = sqlLoginTimeout
      srv.Connect sqlserver,sqlname, sqlpassword
      Set bak = Server.CreateObject("SQLDMO.Backup")
      bak.Database=databasename
      bak.Devices=Files
      bak.Files=bak_file
      bak.SQLBackup srv
      if err.number>0 then
       response.write err.number&"<font color=red><br>"
       response.write err.description&"</font>"
      end if
      Response.write "<font color=green>备份成功!</font>"
     elseif act = "restore" then
      '恢复时要在没有使用数据库时进行!
      Set srv=Server.CreateObject("SQLDMO.SQLServer")
      srv.LoginTimeout = sqlLoginTimeout
      srv.Connect sqlserver,sqlname, sqlpassword
      Set rest=Server.CreateObject("SQLDMO.Restore")
      rest.Action=0 ' full db restore
      rest.Database=databasename
      rest.Devices=Files
      rest.Files=bak_file
      rest.ReplaceDatabase=True 'Force restore over existing database
      if err.number>0 then
       response.write err.number&"<font color=red><br>"
       response.write err.description&"</font>"
      end if
      rest.SQLRestore srv
      
      Response.write "<font color=green>恢复成功!</font>"
     else
      Response.write "<font color=red>没有选择操作</font>"
     end if
    end if
    %>
    </BODY>
    </HTML>
      

  2.   

    To visc(visc) :我看你才无聊,不懂/不想说就闭嘴。解释一下需要:财务数据库
    结束当天帐务处理后,初始化为一个新财务日之前,需要通过程序备份帐务数据。不通过程序备份,难道要用户每次告诉我:今天我结账了,要初始化财务日期,用oracle工具来帮我备份一下数据库吧?!
      

  3.   

    Oracle中是不是无法解决这一类问题?或者,哪位大虾给一个解决方案,总之结账前是必须要备份的