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命令语法:
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
实验:
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 命令监控时间
vim table_structure_no.sh
脚本内容:
#!/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"
执行:
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博客