【Linux专栏】Oracle的listagg、Linux的scp脚本 验证

Linux && Oracle相关文档,希望互相学习,共同进步

风123456789~-优快云博客


1.背景

        linux跨服务器移动文件可以用scp命令,由于scp到其他服务器时需要数据密码,本文主要是针对scp命令、scp命令放在脚本中的使用、数据库expdp+scp复制 脚本的展示。

        另外,对函数listagg进行描述。

2. 实用函数、命令

2.1 listagg函数

场景:需要查询分组后,某个字段按顺序拼接为一个字符串。

         如科目信息表中,按机构、账套查询,分别列出相应的科目编号,且科目编号升序。

解决:采用oracle函数-listagg

      listagg(distinct 字段,',')  within group(order by 字段) 

命令: 

select /*+parallel(6)*/k.social_credit_code,k.book_id,count(*),listagg(k.subjects_code,',') within group(order by subjects_code) aa
from nh_dW_hbl.nhtc_subject_info  k   --126
where  k.end_dt = date'3000-12-31'
and exists(select * from NHTC_BANK_UPDATE_INSERT f 
           where k.kid= f.kid and f.social_credit_code= k.social_credit_code)
group by k.social_credit_code,book_id

结果截图:

2.2 scp命令+脚本

cat  /home/data/exp_data/scp_feng.sh  

脚本内容如下: 

#! /bin/bash
source ~/.bash_profile


echo "文件传输17开始"
cd /home/oracle/backup/
passwd='xxxxxxx'

`/usr/bin/expect <<-EOF
set timeout -1
spawn scp -r table_structure_result_no.log oracle@192.168.3.17:/home/oracle/important/
expect "*password:"
send "$passwd\r"
interact
expect eof
EOF`

echo "文件传输17完成"

执行脚本: 

sh /home/data/exp_data/scp_feng.sh

结果截图:

 

2.3.expdp备份+scp脚本

#!/bin/sh
#Oracle环境设置
remotePath=/data2/oracle/backup
DATA_DIR=/data2/oracle/backup
DMP_FILE=bak_expdp_$(date +%Y%m%d).dmp
LOG_FILE=bak_expdp_$(date +%Y%m%d).log
FILE_NAME=bak_expdp_$(date +%Y%m%d)

expdp xxx/xxx schemas=test directory=BACKUP DUMPFILE=$DMP_FILE logfile=$LOG_FILE;

cd $DATA_DIR

#通过tar命令将dmp文件进行压缩
tar czvf $FILE_NAME.tar.gz $DMP_FILE $LOG_FILE

#可通过scp命令,将备份文件传输至其他服务器
#!/usr/bin/expect
expect -c "
  spawn scp /data2/oracle/backup/$FILE_NAME.tar.gz root@192.168.3.11:/data2/oracle/backup
  expect {
    \"*assword\" {set timeout 300; send \"p@ssw0rd\r\";}
    \"yes/no\" {send \"yes\r\"; exp_continue;}
  }
  expect eof"

#删除超过7天的备份文件和日志文件
find $DATA_DIR -mtime +7 -name "bak_expdp_*"  -exec rm -f {} \;

 

结束:ok 


项目管理--相关知识   

项目管理-项目绩效域1/2-优快云博客

项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-优快云博客

项目管理-项目绩效域2/2_绩效域 团不策划-优快云博客

高项-案例分析万能答案(作业分享)-优快云博客

项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-优快云博客

项目管理-配置管理与变更-优快云博客

项目管理-项目管理科学基础-优快云博客

项目管理-高级项目管理-优快云博客

项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-优快云博客


Oracle其他文档,希望互相学习,共同进步

Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-优快云博客

oracle 跟踪文件--审计日志_oracle审计日志-优快云博客

ORA-12899报错,遇到数据表某字段长度奇怪现象:“Oracle字符型,长度50”但length查却没有50_varchar(50) oracle 超出截断-优快云博客

EXP-00091: Exporting questionable statistics.解决方案-优快云博客

Oracle 更换监听端口-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值