N久以前,还没有使用灾备的时候,需要手工对生产数据库进行备份,而且还需要保留一段时间才能将以前的老的备份给删除掉.最关键的是数据库的数据量比较大,一台机器不能保留那么多的备份,因此写了一个备份的小东西,发上来与大家共享.在里边还带有了一点备份管理查询的功能.
1,创建备份管理的表.主要记录备份的文件名,开始结束时间,以及备份的目的地
create table EXP_BACK
(
NO NUMBER(10) not null,
BACK_SJ DATE,
BACK_WJ VARCHAR2(40),
BACK_BEGIN_SJ DATE,
BACK_END_SJ DATE,
IPP VARCHAR2(25)
);
2,备份的引导脚本,在win下需要保存成.bat(批处理文件).
这里必须使用sys用户登陆,因为我这里是9i,在备份的时候中间可能会出一些关于lob数据类型的报错,为了防止报错的出现,需要执行一些语句.
3,备份脚本:d:\data_back\Export\doexport.sql.
column today new_val dt
column del new_val del
set time on;
select to_char( sysdate, 'yyyymmddhh24miss' ) today from dual;
spool d:\data_back\Export\log\Spool_&dt..log;
select '数据记录' from dual;
select 'del d:\'||min(back_wj) del from username.exp_back where ipp=sys_context('userenv','ip_address');
delete from username.exp_back where to_char(back_sj,'yyyymmdd')=substr('''||&del||''',19,8) and ipp=sys_context('userenv','ip_address');
host &del;
delete from username.exp_back where back_sj=to_date(substr(&dt,1,8),'yyyymmdd') and ipp=sys_context('userenv','ip_address');
insert into username.exp_back values(username.EXP_BACK_NEW.NEXTVAL,to_date(substr(&dt,1,8),'yyyymmdd'),'Product_'||substr(substr(&dt,1,14),1,14)||'.dmp',sysdate,sysdate,sys_context('userenv','ip_address'));
commit;
select '更新视图' from dual;
CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL
SELECT * FROM SYS.EXU9TNEB;
select '备份开始' from dual;
host exp
userid=username/password@to_server' file=d:\Product_&dt..dmp wner=username compress=y log=d:\data_back\Export\log\Product_&dt..log STATISTICS=NONE ;
select '备份结束,恢复视图' from dual;
CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1;
select '数据记录更新' from dual;
update username.exp_back set back_end_sj=sysdate where back_sj=to_date(substr(&dt,1,8),'yyyymmdd');
commit;
spool off;
exit ;
exit;
这样就可以在多台机器上分别布置备份了,然后通过计划任务进行调用.当然这只是在灾备条件不允许的情况下采取的下下策,最好还是上灾备系统.这才是万全之策.
使用中要注意,1目录名,2 文件名,3,用户名和密码,4,连接字串.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/38006/viewspace-662182/
,如需转载,请注明出处,否则将追究法律责任。