【Linux &&Oracle】time命令+oracle exp压缩

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

风123456789~-CSDN博客


1.说明

Linux中的time命令:主要用于测量命令的执行时间,并显示该命令在执行过程中所使用的系统资源情况,如CPU时间、内存和I/O等‌‌。

Oracle 导出时 把数据卸出到文件系统, 产生一个.dmp文件, 对于中小型数据库来说, 全数据库的exp所产生的dmp文件可能小于2GB, 但对稍大型的数据库, exp产生的数据动辄数十至上百个GB. 同时随着数据库的不断增大, 导出所需时间越来越长以致实际上很难实施。

exp + gzip 或 expdp +compression=all 解决。

2. 实验

2.1 time命令语法

time命令语法:

sql 复制代码
time [options] command [arguments...]

在命令执行完成之后就会打印出CPU的使用情况:

real 0m5.064s <== 实际使用时间(real time)

user 0m0.020s <== 用户态使用时间(the process spent in user mode)

sys 0m0.040s <== 内核态使用时间(the process spent in kernel mode)

time命令跟上-p参数可以只打印时间数值(秒数),不打印单位。

2.2 time + ls

命令:

time ls

time -p ls #只打印时间数值秒

结果截图:

2.3 time+ oracle 导出命令

1)time + exp压缩

普通导出:exp 用户名/密码@ip file=xx.dmp log=xx.log tables=xxx

time+ 普通导出: time exp 用户名/密码@ip file=xx.dmp log=xx.log tables=xxx

带压缩的exp导出:exp 用户名/密码@ip file=>(gzip>/路径/xx.dmp.gz) log=xx.log tables=xxx

time+ 带压缩的普通导出:

time exp 用户名/密码@ip file=>(gzip>/路径/xx.dmp.gz) log=xx.log tables=xxx

实验:

sql 复制代码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

time exp xx/xxx@192.168.3.x/prodpdb file=>(gzip>/home/oracle/backup/exp_erp_20250225_test.dmp.gz) log=/home/oracle/backup/exp_erp_test_20250225.log tables=ERP_FINANCE_PROJECT_STATIS_NON_LABOR

结果截图:

解压:gzip -d xx.dmp.gz

2)运用到每日备份脚本,在脚本中加入time 命令监控时间

sql 复制代码
vim  table_structure_no.sh 

脚本内容:

sql 复制代码
#!/bin/bash
#Description: Oracle database backup
#Version:1.0

starttime=`date +'%Y-%m-%d %H:%M:%S'`

echo "`date`"
#获取 Oracle 的环境变量
source ~/.bash_profile
#设置字符集  解决  EXP-00091 报错信息
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#获取时间
BATH_TIME=`date +%Y%m%d`

#文件保存总路径
BACKUP_MENU="/home/oracle/backup"
BACKUP_ROUTE="${BACKUP_MENU}/${BATH_TIME}_NO"

if [ ! -d ${BACKUP_ROUTE}  ]
 then
   echo "创建 ${BACKUP_ROUTE}"
   `/usr/bin/mkdir  ${BACKUP_ROUTE}`
   chmod 777 ${BACKUP_ROUTE}
fi

#需要备份的 用户名单
ORACLE_USER="${BACKUP_MENU}/expdp_user.txt"

echo "-----${BATH_TIME} 日,备份开始" >>  ${BACKUP_MENU}/table_structure_result_no.log


for name in `cat ${ORACLE_USER}`
do

#定义 文件名称
FILENAME="${name%%/*}_${BATH_TIME}_hasnodata13.dmp"

echo "*************************************************"
echo "开始备份 ${FILENAME}"
time expdp  "${name}  directory=BACKUP CONTENT=metadata_only dumpfile=${FILENAME} logfile=${FILENAME}.log  compression=all  "

echo "备份完毕 ${BACKUP_ROUTE}/${FILENAME}"


cd ${BACKUP_MENU}

echo "进入 ${BACKUP_MENU} 目录下"

echo "开始压缩文件"

#压缩文件

zip  ${FILENAME}.zip ${FILENAME}  

#${FILENAME}.log 

echo "压缩完毕 ${FILENAME}.zip"

echo "准备删除 ${FILENAME}"

#删除 dmp 文件

rm -rf ${FILENAME}
echo "删除完毕 ${FILENAME}"

mv  ${FILENAME}.zip  ${BACKUP_ROUTE}/
mv  ${FILENAME}.log  ${BACKUP_ROUTE}/

done


echo "*************************************************"


echo "`date`"

endtime=`date +'%Y-%m-%d %H:%M:%S'`

start_seconds=$(date --date="$starttime" +%s);

end_seconds=$(date --date="$endtime" +%s);

echo "本次运行时间: "$((end_seconds-start_seconds))"s"

执行:

sql 复制代码
sh table_structure_no.sh

结果截图:

说明:实际运行时间 1分11.147秒。

实验结束:ok

3.总结

time 命令是linux 中很实用的命令,它可以用来评估脚本、命令或程序的性能。

  • real:实际运行时间。

  • user:用户态下CPU使用时间。

  • sys:内核态下CPU使用时间。

数据流重定向:

标准输入(stdin):代码为0,使用<或<<;

标准输出(stdout):代码为1,使用>或>>;

标准错误输出(stderr):代码为2,使用2>或2>>

exp 加压缩:

exp 用户名/密码@ip file=>(gzip>/路径/xx.dmp.gz) log=xx.log tables=xxx

expdp加压缩:

expdp 用户名/密码@ip dumpfile=../x.dmp logfile=../x.log directory=backup compression=all

ok


项目管理--相关知识

项目管理-项目绩效域1/2-CSDN博客

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

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

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

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

项目管理-配置管理与变更-CSDN博客

项目管理-项目管理科学基础-CSDN博客

项目管理-高级项目管理-CSDN博客

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


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

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

oracle 跟踪文件--审计日志_oracle审计日志-CSDN博客

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

EXP-00091: Exporting questionable statistics.解决方案-CSDN博客

Oracle 更换监听端口-CSDN博客

相关推荐
为思念酝酿的痛4 小时前
POSIX信号量
linux·运维·服务器·后端
专业白嫖怪4 小时前
什么是docker
运维·docker·容器
人还是要有梦想的6 小时前
linux下用搜狗输入法,中英文切换
linux·运维·服务器
北京智和信通6 小时前
某部队IT基础设施及机房动环统一运维建设实例
运维·网管平台·网管软件·网络管理系统·网络运维平台·网络运维系统
乐维_lwops6 小时前
从 “救火运维” 到 “自动驾驶”:运维智能体到底解决了什么?
运维·人工智能·运维智能体
bush46 小时前
嵌入式linux学习记录二
linux·运维·学习
9分钟带帽6 小时前
linux_通过NFS挂载远程服务器的硬盘
linux·服务器
TheRouter6 小时前
AI Agent 记忆体系建设实战:短期、长期与工作记忆的工程实现
数据库·人工智能·oracle
weixin_468466856 小时前
MoneyPrinterTurbo 短视频自动化生产实战指南
运维·人工智能·自动化·大模型·音视频·moneyprinter
難釋懷7 小时前
Nginx自签名-图形化工具 XCA
运维·nginx