十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
怎么在Linux中使用Oracle设置定时任务备份数据库?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
10年的南票网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整南票建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“南票网站设计”,“南票网站推广”以来,每个客户项目都认真落实执行。1、查看数据库的字符集
数据库的字符集必须和Linux下设置的环境变量一致,不然会有乱码。
以下两个sql语句都可以查到:
select*fromnls_database_parameterstwheret.parameter='NLS_CHARACTERSET';select*fromv$nls_parameterswhereparameter='NLS_CHARACTERSET';查询结果为:NLS_CHARACTERSET AL32UTF8
2、用oracle用户登录oracle服务器,创建相关的目录
创建备份数据的目录 mkdir -p /home/oracle/dbbak/data
创建备份脚本目录 mkdir -p /home/oracle/dbbak/shell
创建导出数据日志目录 mkdir /home/oracle/dbbak/log
3、在脚本目录下创建脚本文件
vi/home/oracle/dbbak/shell/dbbak.sh脚本中内容:
#[plain]viewplaincopy#!/bin/shexportORACLE_BASE=/u01/app/oracleexportORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1exportORACLE_SID=orclexportPATH=$PATH:$HOME/bin:$ORACLE_HOME/binexportDATA_DIR=/home/oracle/dbbak/dataexportLOGS_DIR=/home/oracle/dbbak/logexportDELTIME=`date-d"30daysago"+%Y%m%d`exportBAKUPTIME=`date+%Y%m%d%H%M%S`exportNLS_LANG=AMERICAN_AMERICA.AL32UTF8mkdir-p$DATA_DIRmkdir-p$LOGS_DIRecho"Startingbakup..."echo"Bakupfilepath$DATA_DIR/$BAKUPTIME.dmp"expuser/pwd@orclfile=$DATA_DIR/orcl$BAKUPTIME.dmplog=$LOGS_DIR/orcl$BAKUPTIME.logecho"Deletethefilebakupbefore30days...filepath:$DATA_DIR/orcl$DELTIME*.dmp"rm-rf$DATA_DIR/orcl$DELTIME*.dmprm-rf$LOGS_DIR/orcl$DELTIME*.logecho"Deletethefilebakupsuccessfully."echo"Bakupcompleted."根据自己的需要修改相关内容:
exportDELTIME=`date-d"30daysago"+%Y%m%d`配置保留数据的时间,这里是保留30天,根据自己需要和服务器的存储空间进行相应的修改即可;exportNLS_LANG=AMERICAN_AMERICA.AL32UTF8字符编码格式,需跟第一步查询中结果保持一致;expDISPLAY/DISPLAY@orclfile=$DATA_DIR/orcl$BAKUPTIME.dmplog=$LOGS_DIR/orcl$BAKUPTIME.log导出语句,全表导出,可以根据需要修改,exp 用户名/密码@SID file=dmp文件全路径 log=日志文件全路径
4、修改脚本文件的执行权限
chmod 777 dbbak.sh
测试是否可以执行:./ dbbak.sh
Export terminated successfully without warnings.表示导出没有问题,如果有问题,解决
5、添加定时任务
在Oracle用户下
crontab –e
插入:59 23 * * * /home/oracle/dbbak/shell/dbbak.sh
表示每天的23点59分执行脚本
重启crond:
service crond restart
6、导入dmp文件
导入前需删除相应用户下的所有表,避免导入后表数据出现问题:
sqlplususer/pwd//用户名密码登录数据库SQL>SELECT'droptable'||table_name||';'FROMUSER_TABLESORDERBYTABLE_NAME;然后执行查询出来的结果
执行此行,避免表字段注释乱码 :
exportNLS_LANG=AMERICAN_AMERICA.AL32UTF8;导入数据:impDISPLAY/DISPLAYfile=/home/oracle/dbbak/data/orcl20191121113703.dmpfromuser=DISPLAYtouser=DISPLAYignore=y;//ignore=y忽略错误,继续执行看完上述内容,你们掌握怎么在Linux中使用Oracle设置定时任务备份数据库的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注箭头云行业资讯频道,感谢各位的阅读!