sh文件:
sqlplus '/ as sysdba'<<!
conn / as sysdba
shutdwon immediate
startup
shutdown
!cp /****/*.dbf /***sqlplus '/ as sysdba'<<!
startup
!

解决方案 »

  1.   

    exp username/password full=y file=yourdata.dmp grants=y rows=yexp参数:
    关键字 说明(默认)   
    ----------------------------------------------
    USERID 用户名/口令
    FULL 导出整个文件 (N)
    BUFFER 数据缓冲区的大小
    OWNER 所有者用户名列表
    FILE 输出文件 (EXPDAT.DMP)
    TABLES 表名列表
    COMPRESS 导入一个范围 (Y)
    RECORDLENGTH IO 记录的长度
    GRANTS 导出权限 (Y)
    INCTYPE 增量导出类型
    INDEXES 导出索引 (Y)
    RECORD 跟踪增量导出 (Y)
    ROWS 导出数据行 (Y)
    PARFILE 参数文件名
    CONSTRAINTS 导出限制 (Y)
    CONSISTENT 交叉表一致性
    LOG 屏幕输出的日志文件
    STATISTICS 分析对象 (ESTIMATE)
    DIRECT 直接路径 (N)
    TRIGGERS 导出触发器 (Y)
    FEEDBACK 显示每 x 行 (0) 的进度
    FILESIZE 各转储文件的最大尺寸
    QUERY 选定导出表子集的子句
      

  2.   

    可以用IMP/EXP,这两个程序只要是装过ORACLE的地方都有,不管是ORACLE服务器,还是装过ORACLE客户端的WINDOWS机器,而且一般在路径中已经加过了,所以可以直接敲EXP命令。如果不行,可以用操作系统的查找功能找一下EXP*.*。推荐使用WINDOWS上的版本。
    ★★★★以下是一个备份用的BAT,如果有装了ORACLE客户端的机器,使用会很简单,用法
    exp_any 本地服务名 应导出用户名 日期
    输出文件在H:\DATA_BAK中,可以自己修改路径。该BAT假设数据库SYSTEM用户的密码是MANAGER
    exp_any.bat
    @echo off
    echo service name: %1
    echo database name: %2
    echo date: %3
    EXP USERID=SYSTEM/MANAGER@%1 OWNER=(%2) FILE=(H:\DATA_BAK\%2a.%3,H:\DATA_BAK\%2b.%3,H:\DATA_BAK\%2c.%3,H:\DATA_BAK\%2d.%3,H:\DATA_BAK\%2e.%3,H:\DATA_BAK\%2f.%3,H:\DATA_BAK\%2g.%3,H:\DATA_BAK\%2h.%3) FILESIZE=1500M DIRECT=Y compress=Y RECORDLENGTH=64000 LOG=H:\DATA_BAK\%2%3.LOG
    类似的是导入程序,可用于恢复:
    imp_any.bat
    @echo off
    echo service name: %1
    echo database name: %2
    echo date: %3
    imp system/manager@%1 fromuser=%2 touser=%2 file=(h:\data_bak\%2a.%3,h:\data_bak\%2b.%3,h:\data_bak\%2c.%3,h:\data_bak\%2d.%3,h:\data_bak\%2e.%3,h:\data_bak\%2f.%3,h:\data_bak\%2g.%3,h:\data_bak\%2h.%3) commit=Y ANALYZE=N ignore=y FEEDBACK=2000 log=h:\imp%3.log这2个BAT可以让你用的更方便,找台装了ORACLE客户端的机器试试吧,已经有好多人用过了。我们这里是用来备份所有的开发环境数据库的。