如果需要从oracle中每天定时导出数据用什么方法?

如果需要从oracle中每天定时导出数据用什么方法?,第1张

1、创建数据库日志表导出为文本文件的脚本tabout.ctl或tabout.sql

注意:该日志导出后在c:\HttpLog目录下

tabout.ctl脚本内容如下:

SET NEWPAGE NONE

SET HEADING OFF

SET TERM OFF

SET SPACE 0

SET PAGESIZE 0

SET TRIMOUT ON

SET TRIMSPOOL ON

SET LINESIZE 2500

set feedback off

set echo off

SET VERIFY OFF

column v_date new_value filename

select to_char(sysdate,'yyyymmdd') || '.log' v_date from dual

spool ..\HttpLog\&&filename            

select id||','||name from orcluser.test

spool off

exit

2、创建调用该脚本的logout.bat文件

logout.bat内容如下:

mkdir ..\HttpLog\

C:\oracle\ora92\bin\sqlplus orcluser/orcl @C:Oracleout.ctl

说明:该bat文件直接在当前目录下创建名为HttpLog的文件夹,以便tabout.ctl脚本输出的文件存放到该目录下。其通过调用Oracle中sqlplus可执行文件来执行tabout.ctl脚本,所以该文件直接双击即可运行,无需其他 *** 作。

3、通过windows定时任务实现自动定期执行

“在控制面板——任务计划——添加任务计划”中建立定期将数据库中日志表数据导出为文本格式(如:你可以根据需求设置为每天对日志表数据进行导出)。根据你当前对日志文件路径的存储需求,修改上面两个脚本中的存储路径,在windows定时任务直接调用logout.bat文件执行即可。

一、对于Windows主机

==============

假想环境:

MySQL

安装位置:C:\MySQL

论坛数据库名称为:bbs

MySQL

root

密码:123456

数据库备份目的地:D:\db_backup\

@echo

off

C:\MySQL\bin\mysqladmin

-u

root

–password=123456

shutdown

C:\MySQL\bin\mysqldump

–opt

-u

root

–password=123456

bbs

>

D:\db_backup\bbs.sql

C:\MySQL\bin\mysqld-nt

将以上代码保存为backup_db.bat

然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)

二、对于Linux主机

===========

假想环境:

MySQL

安装位置:/usr/local/mysq

论坛数据库名称为:bbs

MySQL

root

密码:123456

数据库备份目的地:/var/db_backup/

#!

/bin/bash

/usr/local/mysql/bin/mysqladmin

-u

root

–password=123456

shutdown

/usr/local/mysql/bin/mysqldump

–opt

-u

root

–password=123456

bbs

>

/var/db_backup/bbs.sql

/usr/local/mysql/bin/mysqld_safe

–user=mysql

&

将上述代码保存在/usr/local/sbin/backup_db.sh

对该脚本赋予执行权限:

#

chmod

755

/usr/local/sbin/backup_db.sh

加入crontab中自动执行:

#

crontab

-e

加入:

0

5

*

*

*

/usr/local/sbin/backup_db.sh


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6763258.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存