Oracle導出備份和導入恢復自動產生sql源代碼
2024-08-29 13:46:00
供稿:網友
以下是Oracle導出備份和導入恢復自動產生sql源代碼各變量含義為:
EXP_BACK_DIR: 導出ORACLE數據庫的DMP文件所放目錄
SCRipT_FILE: 此代碼所生成的批處理文件路徑及文件名稱
LOG_FILE: 導出日志文件存放路徑及文件名稱
INT_USER:導出的ORACLE數據庫的用戶名
INT_PWD: 導出的ORACLE數據庫的用戶的口令
以下代碼存成sql文件后
可以通過COMMAND :sqlplus internal/oracle@sqcdb @產生備份SQL代碼的原文件名 <參數> 來運行。EXP導出備份SQL源文件--You must have select PRivileges on the v$parameter
--v$logfile v$datafile and v$controlfile data
--dictionary views belonging to SYS to run this program define EXP_BACK_DIR = e:/oradb/expbackups
define SCRIPT_FILE = e:/back/expbackup.bat
define LOG_FILE= e:/back/expbackup.log
define INT_USER = gas
define INT_PWD = gas
set feedback off
set heading off
set pagesize 0
set linesize 128
set verify off
set echo off
col a new_value b
col c new_value d
select value a,to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') c from v$parameter where name ='db_name';spool &SCRIPT_FILE
prompt rem ***** EXP ORACLE DATABASE FOR &INT_USER USER of &b ON WINDOWS NT ON &d*****
prompt
prompt rem ***** SET BACKUP FILES DirectorY *****
prompt md e:/oradb
prompt md e:/oradb/expbackups
prompt
select 'del &EXP_BACK_DIR/exp&INT_USER.dmp' from dual;
prompt
select 'exp Userid=&INT_USER/&INT_PWD file=&EXP_BACK_DIR/exp&INT_USER.dmp Buffer=102400 log=&EXP_BACK_DIR/exp&INT_USER grants=y indexes=y' from dual;
prompt
select 'copy &EXP_BACK_DIR/exp&INT_USER.dmp &EXP_BACK_DIR/exp&INT_USER'to_char(sysdate, 'MMDDHH24MI')'.dmp' from dual;
prompt
prompt set LogFile=&LOG_FILE
prompt echo COMPLETE EXP BACKUP FOR &INT_USER USER "&b" DATABASE STARTED ON &d ...> %logFile%
prompt exit spool off$&SCRIPT_FILE
$del &SCRIPT_FILE
exit IMP整個用戶導入的SQL源文件--You must have select privileges on the v$parameter
--v$logfile v$datafile and v$controlfile data
--dictionary views belonging to SYS to run this program define EXP_BACK_DIR = e:/oradb/expbackups
define SCRIPT_FILE = e:/back/imprevall.bat
define LOG_FILE= e:/back/imprevall.log
define INT_USER = gas
define INT_PWD = gas
define TO_USER = gas
set feedback off
set heading off
set pagesize 0
set linesize 128
set verify off
set echo off
col a new_value b
col c new_value d
select value a,to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') c from v$parameter where name ='db_name';
spool &SCRIPT_FILE
prompt rem ***** IMP ORACLE DATABASE FOR &INT_USER USER OF &b ON WINDOWS NT ON &d*****
prompt
select 'imp Userid=&INT_USER/&INT_PWD fromuser=&INT_USER touser=&TO_USER commit=y ignore=y Buffer=102400 file=&EXP_BACK_DIR/exp&INT_USER.dmp log=&EXP_BACK_DIR/imp&TO_USER ' from dual;
prompt
prompt set LogFile=&LOG_FILE
prompt echo COMPLETE IMP RECOVER FOR &INT_USER USER OF "&b" DATABASE STARTED ON &d ...> %logFile%
prompt exit spool off$&SCRIPT_FILE
$del &SCRIPT_FILE
exit IMP單個表導入的SQL源文件--You must have select privileges on the v$parameter
--v$logfile v$datafile and v$controlfile data
--dictionary views belonging to SYS to run this program -- define tablename =a3define EXP_BACK_DIR = e:/oradb/expbackups
define SCRIPT_FILE = e:/back/imprevtab.bat
define LOG_FILE= e:/back/imprevtab.log
define SQL_FILE = e:/back/truntab.sql
define TRIG_FILE = e:/back/entrig.sql
define INT_USER = gas
define INT_PWD = gas
define TO_USER = gas
set feedback off
set heading off
set pagesize 0
set linesize 128
set verify off
set echo off
col a new_value b
col c new_value d
select value a,to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') c from v$parameter where name ='db_name';
spool &SQL_FILE
select 'alter table &&1 disable all triggers;' from dual;
select 'truncate table &&1 ;' from dual;
select 'exit' from dual;
spool off
spool &TRIG_FILE
select 'alter table &&1 enable all triggers;' from dual;
select 'exit' from dual;
spool off
spool &SCRIPT_FILE
prompt rem ***** IMP ORACLE DATABASE FOR TABLE OF &INT_USER USER OF &b ON WINDOWS NT ON &d*****
prompt sqlplus gas/gas@sqcdb.sqc.com @&SQL_FILE
select 'imp Userid=&INT_USER/&INT_PWD fromuser=&INT_USER touser=&TO_USER commit=y ignore=y Buffer=102400 tables=&&1 file=&EXP_BACK_DIR/exp&INT_USER.dmp ' from dual;
prompt sqlplus gas/gas@sqcdb.sqc.com @&TRIG_FILE
prompt set LogFile=&LOG_FILE
prompt echo COMPLETE IMP RECOVER FOR TABLE OF &INT_USER USER OF "&b" DATABASE STARTED ON &d ...> %logFile%
prompt exit
spool off$&SCRIPT_FILE
$del &SQL_FILE
$del &TRIG_FILE
$del &SCRIPT_FILE
exit