shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中

下面是“shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中”的完整攻略。

前置条件

  • 已安装Oracle数据库,并导入需要刷新的数据。
  • ftp服务器账户、密码和文件传输路径已确定。

实现步骤

1. 创建 shell 脚本

首先,需要创建一个shell脚本,来实现将Oracle服务器中数据增量刷新到ftp服务器中的功能。

#!/bin/bash

#oracle connect info
ORACLE_USER="username"
ORACLE_PASS="password"
ORACLE_SID="oracle_sid"

# ftp connect info
FTP_HOST="ftp.example.com"
FTP_USER="ftp_username"
FTP_PASS="ftp_password"
FTP_PATH="/data/"

# sql
sql="SELECT * FROM table_name WHERE update_time >= trunc(sysdate) - 1 AND update_time < trunc(sysdate)"

echo "======== `date +%F-%H:%M:%S` Starting to retrieve data from Oracle ========"
echo $sql

sqlplus -s ${ORACLE_USER}/${ORACLE_PASS}@${ORACLE_SID} <<EOF
set linesize 1024
set feedback off
set trimout on
set heading off
set underline off
set trimspool on
set pagesize 0
set termout off
set colsep ","
SET SERVEROUTPUT ON SIZE 100000
spool data.csv
$sql;
spool off
exit;
EOF

echo "======== `date +%F-%H:%M:%S` Retrieving data from Oracle completed ========"
echo "======== `date +%F-%H:%M:%S` Starting to upload data to ftp server ========"
ftp -n <<EOF
open $FTP_HOST
user $FTP_USER $FTP_PASS
cd $FTP_PATH
mput data.csv
close
bye
EOF

echo "======== `date +%F-%H:%M:%S` Upload data to ftp server completed ========"

这个脚本的作用是连接到Oracle数据库服务器中,并查询指定时间范围内的数据,然后将数据导出到一个名为“data.csv”的文件中。接着,使用ftp客户端连接到指定的ftp服务器,并将导出的数据上传到指定路径中。

2. 设置定时任务

接下来,需要使用crontab来定时运行这个脚本。

crontab -e

在打开的配置文件中添加如下一行代码,表示每天凌晨12:00分运行此脚本:

0 0 * * * /bin/bash /path/to/refresh.sh

3. 测试运行

为了验证脚本是否正常工作,可以手动运行脚本,并检查数据是否被成功上传到ftp服务器中。

/bin/bash /path/to/refresh.sh

示例说明

示例一

例如,我们需要将“customer”表中最新一天的客户信息定时上传到ftp服务器中的“/data/customer/”路径下。

SELECT * FROM customer WHERE update_time >= trunc(sysdate) - 1 AND update_time < trunc(sysdate)

这条sql命令表示从“customer”表中查询更新时间在昨天的数据,并导出至“data.csv”文件中。

示例二

如果数据文件太大,不能直接上传,可以先压缩后再上传,例如将“data.csv”文件压缩成“data.tar.gz”文件。

tar cvzf data.tar.gz data.csv

然后修改脚本中的ftp命令为:

ftp -n <<EOF
open $FTP_HOST
user $FTP_USER $FTP_PASS
cd $FTP_PATH
put data.tar.gz
close
bye
EOF

这样就能在ftp服务器上找到经过压缩的数据备份文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 详解Redis数值操作命令的7种使用方法

    Redis是一个基于内存的键值对数据库,支持丰富的数据结构和操作命令,其中数值操作命令是其中一个重要的部分。 接下来本文将详细讲解Redis数值操作命令。 INCR和DECR命令 INCR命令是将指定的键对应的数值加1,如果键不存在,则创建一个对应值为1的新键,并返回新值。代码示例如下: > set counter 0 OK > incr counter (…

    Redis 2023年3月18日
    00
  • 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

    1.0 help == ? 帮助指令,查询某个指令的解释、用法、说明等。详情参考博文: 【数据库】6.0 MySQL入门学习(六)——MySQL启动与停止、官方手册、文档查询  https://www.cnblogs.com/xiaofu007/p/10301005.html  2.0 在cmd命令行中,输入“”ysql –help”,可以查看由mysql…

    MySQL 2023年4月12日
    00
  • mssql2008

    mssql2008完整攻略 MSSQL2008是Microsoft SQL Server 2008的缩写,是Microsoft开发的一款关系型数据库管理系统,此处整理一份mssql2008的完整攻略。 安装MSSQL2008 安装MSSQL2008可以通过以下步骤完成: 下载安装文件,建议从Microsoft官方网站下载。 双击运行安装文件,打开SQL Se…

    database 2023年5月21日
    00
  • Mysql语法、特殊符号及正则表达式的使用详解

    Mysql语法、特殊符号及正则表达式的使用详解 Mysql语法 Mysql是一款常用的关系型数据库管理系统,它支持多种查询和操作语句。以下是一些常用的语法: 数据库操作语句 创建数据库 CREATE DATABASE database_name; 删除数据库 DROP DATABASE database_name; 使用数据库 USE database_na…

    database 2023年5月21日
    00
  • PHP以及MYSQL日期比较方法

    下面是关于PHP以及MySQL日期比较方法的完整攻略: PHP日期比较方法 在PHP中,可以通过比较两个日期来判断它们的先后顺序。以下是两种比较方法: 方法一:直接比较时间戳 可以使用 strtotime() 函数将日期或时间字符串转换为 UNIX 时间戳,然后进行比较。示例如下: $date1 = "2022-01-01"; $date…

    database 2023年5月22日
    00
  • MySQL如何为字段添加默认时间浅析

    MySQL为字段添加默认时间的方法是使用DEFAULT关键字和NOW()函数结合。 首先,在创建表时,可以在定义字段时为字段添加DEFAULT关键字和NOW()函数。例如,我们创建一个名为users的表,其中包含一个创建时间字段create_time和一个修改时间字段update_time,它们都有一个默认值为当前时间: CREATE TABLE users…

    database 2023年5月22日
    00
  • 非常不错的MySQL优化的8条经验

    非常不错的MySQL优化的8条经验 MySQL 是一种现代的数据库管理系统,广泛用于各种类型的 Web 应用程序中。当您的应用程序承载大量数据时,优化 MySQL 数据库非常重要。本文将介绍一些简单的技术,可以帮助您优化MySQL 数据库性能,提高您的应用程序的响应速度。 1. 使用正确的数据类型 当设计表时,请始终使用最小的数据类型。例如,如果您需要存储一…

    database 2023年5月22日
    00
  • MySQL数据库JDBC编程详解流程

    下面我将详细讲解“MySQL数据库JDBC编程详解流程”的完整攻略。 MySQL数据库JDBC编程详解流程 本文将详细讲解在Java程序中使用MySQL数据库JDBC编程的流程。这个过程主要包含以下几个步骤: 步骤一:加载数据库驱动 在Java程序中,我们需要通过加载数据库驱动来连接数据库。不同的数据库有不同的驱动,而我们使用MySQL数据库,所以我们需要加…

    database 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部