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

相关推荐
夜光小兔纸32 分钟前
-bash: lsof: command not found
linux·运维·oracle
要好好养胃1 小时前
1-7makefile
linux·服务器·前端
重生之我在20年代敲代码1 小时前
【Linux第一弹】Linux基础指令(上)
linux·运维·服务器
晓看天色*1 小时前
【深入理解JWT】从认证授权到网关安全
运维·服务器
ljh5746491192 小时前
linux vim 撤销 回退操作
linux·运维·vim
企鹅侠客2 小时前
服务器IPMI用户名、密码批量检查
运维·服务器
luojiaao2 小时前
【Jenkins】一种用纯Bash实现参数传递的Jenkinsfile的写法
运维·jenkins·bash
要好好养胃3 小时前
2-1文件描述符
linux·服务器
振宇i3 小时前
golang安装(1.23.6)
linux·运维·服务器
abstract学习3 小时前
zookeeper
linux·zookeeper·apache