Oracle备份与恢复脚本

jopen 8年前

1 备份

@echo off  set oracle_username=YOURORACLE_USERNAME  set oracle_password=YOUR_PASSWORD  set local_tnsname=LOCAL_TNSNAME  set url=%oracle_username%/%oracle_password%  if not %local_tnsname% == "" set url=%url%@%local_tnsname%    rem 执行时请确保同一目录下无重名的文件  exp %url% file=%oracle_username%.dmp log=%oracle_username%.log

将上述脚本保存为一个bat文件执行即可。脚本将local_tnsname指定的数据库中用户YOURORACLE_USERNAME的所有内容导出到YOURORACLE_USERNAME.dmp文件中,日志写到YOURORACLE_USERNAME.log中。

2 恢复

2.1 创建用户

第一步,把用户YOURORACLE_USERNAME(如果原来有此用户的话)彻底删除

DROP USER YOURORACLE_USERNAME CASCADE

第二步,创建表空间,根据需要设置YOUR_TABLESPACE,size和maxsize等。

create tablespace YOUR_TABLESPACE  logging  datafile 'D:\oracle\product\10.2.0\oradata\YOUR_TABLESPACE.dbf'  size 512m  autoextend on  next 64m maxsize 1024m  extent management local;

第三步,创建该用户

CREATE USER YOURORACLE_USERNAME  IDENTIFIED BY YOUR_PASSWORD  DEFAULT TABLESPACE YOUR_TABLESPACE  TEMPORARY TABLESPACE TEMP
第四步,赋予权限
GRANT DBA TO YOURORACLE_USERNAME WITH ADMIN OPTION

2.2 用IMP恢复

命令行下执行此脚本

imp YOURORACLE_USERNAME/YOUR_PASSWORD@LOCAL_TNSNAME FILE=YOURORACLE_USERNAME.DMP LOG=YOURORACLE_USERNAME.LOG FULL=Y

3 其他相关内容

使用windows批处理调用sqlplus执行SQL语句:

@echo off  rem sqlplus username/password@service @mysql.sql  sqlplus YOURORACLE_USERNAME/YOUR_PASSWORD@LOCAL_TNSNAME @20121228.sql  exit
其中20121228.sql是需要执行的sql脚本。

注:文中YOURORACLE_USERNAME,YOUR_PASSWORD以及LOCAL_TNSNAME需要使用时根据实际情况替换为特定的字符串。


来自: http://blog.csdn.net/kingzone_2008/article/details/8451062