【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博客

相关推荐
KoiHeng9 分钟前
操作系统简要知识
linux·笔记
Johny_Zhao4 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
小毛驴8504 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
一心0925 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上5 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊6 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
tan180°6 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
代码老y6 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程7 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9987 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github