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

yizhihongxing

下面是“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日

相关文章

  • MySQL如何分析查询语句?

    MySQL是一种开源的、用于管理关系型数据库的软件,它支持许多不同的数据类型和适用于各种应用程序的查询语句。因此,在对MySQL上运行的查询进行优化和调整时,它可以提供一些有用的工具以确保查询能够更快速和有效地执行。 MySQL可以分析查询语句,以便在查询之前确定最佳的查询计划。查询计划是指MySQL如何检索数据并将它们返回给用户的过程。MySQL通过分析查…

    MySQL 2023年3月10日
    00
  • MySQL索引、字符编码、表结构

    一、索引:   就是用来提高搜索性能的 只有我们数据量非常大的时候,索引可以展现出它的优势来!     注意:索引,我们在添加了以后,不用刻意的去使用它,它会自动生效   1. 常规索引(index):没有任何限制,就是普通的索引     1> 在建表时创建普通索引       create table t1(         id int unsig…

    MySQL 2023年4月16日
    00
  • laravel中redis数据库的简单使用

    1.简介 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也…

    Redis 2023年4月13日
    00
  • 全新Mac配置PHP开发环境教程

    首先我们需要为Mac配置PHP开发环境,这个过程大致可以分为以下几个步骤: 安装Homebrew Homebrew是Mac OS X下面非常方便的包管理器,我们可以利用它来安装PHP版本和相关的扩展等。安装Homebrew的方式有两种,一种是命令行安装,另一种是通过官网安装。 命令行安装: $ /usr/bin/ruby -e "$(curl -f…

    database 2023年5月22日
    00
  • 怎么提升索引的使用效率,设计出更高效的索引?

    索引是数据库系统中的重要概念之一,它可以提升数据库的检索和有效的存储,能够加快数据检索的速度,缩短数据库查询的响应时间,提高数据库的性能。 虽然索引的应用对性能的提升有很大的作用,但是索引设计不合理也会适得其反,导致数据库查询性能变差。因此要提升索引的使用效率,需要设计出更高效的索引,以下是几个方面的详细说明: 合理选择索引字段 在设计索引时,应该注意合理选…

    MySQL 2023年3月10日
    00
  • SQL Server 存储过程遇到“表 ”#TT” 没有标识属性无法执行 SET 操作”错误

    当运行 SQL Server 存储过程时,有时会遇到以下错误: Msg 213, Level 16, State 1, Procedure <StoredProcedureName>, Line XX 表 ”#TT” 没有标识属性无法执行 SET 操作。 此错误出现的原因可能是在存储过程中有一段代码试图在没有标识列的临时表上执行 SET 操作…

    database 2023年5月21日
    00
  • 向MySQL发送一个请求的时候,MySQL到底做了些什么?

    当向MySQL发送一个请求时,MySQL会执行以下步骤: 首先,MySQL会解析SQL语句,确定查询的类型和所涉及的数据表。 MySQL会检查用户是否有足够的权限执行该查询操作。 如果查询需要访问多个数据表,则MySQL会决定如何连接这些数据表,以及采用哪种连接算法。 MySQL会根据查询条件和数据表中的索引信息来生成执行计划,该计划将指导MySQL如何访问…

    MySQL 2023年3月10日
    00
  • MySQL数据库安装后服务无法启动的解决办法

    MySQL是一款非常流行的关系型数据库管理系统,但在安装MySQL过程中,有时会出现无法启动MySQL服务的情况。这时我们需要进行修复,以下是MySQL数据库服务无法启动的解决方法的完整攻略: 1. 检查错误日志文件 如果MySQL服务无法启动,一般是由于配置文件中有错或者数据库文件损坏导致的。我们首先需要检查MySQL的错误日志文件。错误日志文件一般位于M…

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