Linux下Oracle设置定时任务备份数据库的教程
1、查看数据库的字符集
数据库的字符集必须和Linux下设置的环境变量一致,不然会有乱码。
以下两个sql语句都可以查到:
select*fromnls_database_parameterstwheret.parameter='NLS_CHARACTERSET'; select*fromv$nls_parameterswhereparameter='NLS_CHARACTERSET';
查询结果为:NLS_CHARACTERSETAL32UTF8
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/sh exportORACLE_BASE=/u01/app/oracle exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 exportORACLE_SID=orcl exportPATH=$PATH:$HOME/bin:$ORACLE_HOME/bin exportDATA_DIR=/home/oracle/dbbak/data exportLOGS_DIR=/home/oracle/dbbak/log exportDELTIME=`date-d"30daysago"+%Y%m%d` exportBAKUPTIME=`date+%Y%m%d%H%M%S` exportNLS_LANG=AMERICAN_AMERICA.AL32UTF8 mkdir-p$DATA_DIR mkdir-p$LOGS_DIR echo"Startingbakup..." echo"Bakupfilepath$DATA_DIR/$BAKUPTIME.dmp" expuser/pwd@orclfile=$DATA_DIR/orcl$BAKUPTIME.dmplog=$LOGS_DIR/orcl$BAKUPTIME.log echo"Deletethefilebakupbefore30days...filepath:$DATA_DIR/orcl$DELTIME*.dmp" rm-rf$DATA_DIR/orcl$DELTIME*.dmp rm-rf$LOGS_DIR/orcl$DELTIME*.log echo"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用户名/密码@SIDfile=dmp文件全路径log=日志文件全路径
4、修改脚本文件的执行权限
chmod777dbbak.sh
测试是否可以执行:./dbbak.sh
Exportterminatedsuccessfullywithoutwarnings.表示导出没有问题,如果有问题,解决
5、添加定时任务
在Oracle用户下
crontab–e
插入:5923***/home/oracle/dbbak/shell/dbbak.sh
表示每天的23点59分执行脚本
重启crond:
servicecrondrestart
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设置定时任务备份数据库,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。