Linux 平台下 Oracle 数据泵备份(expdp) SHELL 脚本
2010-07-07 22:21
531 查看
数据泵是Oracle 10g的新特性,10g以后的版本才有。 关于数据泵的理论知识参考我的Blog:
Oracle 10g EXPDP和IMPDP使用说明
http://blog.csdn.net/tianlesoftware/archive/2009/10/16/4674224.aspx
Logicalbackup.sh
#!/bin/ksh
# ##################################################################
#
# created by tianlesoftware
# 2010-7-7
# Email: tianlesoftware@vip.qq.com
# ##################################################################
# Oracle Environment settings
PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin
export PATH
ORACLE_SID=SID; pw=oracle ; export pw ; export ORACLE_SID
ORACLE_BASE=/dba/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data ; export ORA_NLS33
TNS_ADMIN=$ORACLE_HOME/network/admin ; export TNS_ADMIN
LD_LIBRARY_PATH=$ORACLE_HOME/lib ; export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:/usr/local/bin:/usr/ccs/bin:$PATH:/usr/sbin
export PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib ; export CLASSPATH
backup_dir=/u03/oradata/dump_backup_dir
#数据泵需要directory,这里指定自己的目录就可以了
#SQL>CREATE DIRECTORY backup as ‘/u03/oradata/dump_backup_dir’;
#SQL>grant read,write on directory backup to SYSTEM;
DMP_FILE=SID_`date +%d%m%Y_%H%M%S`.dmp
LOG_FILE=SID_`date +%d%m%Y_%H%M%S`.log
#
# Let's start with an export of the database
#
expdp user/pwd DIRECTORY=dump_backup_dir DUMPFILE=$DMP_FILE TABLESPACES=TS_NAMEE logfile=$LOG_FILE parallel=3;
# 这里的2个说明,用户名和密码换成自己的,我这里是备份表空间。
# parallel 这个参数是控制并行度的,默认是1,但对于数据库比较大的时候,可以设置parallel,这样可以较少备份的
#时间,但是设置并行会耗CPU 资源,如果CPU 资源比较紧张的话,就不要设了。
#
# Just to be safe (with space), we'll compress the export file
# 压缩dmp 文件,较少对空间的占用
#
cd $backup_dir
compress *.dmp
#
# Let's delete the backups and logs that are more than 1 days old
# 删除超过一天的dmp文件
#
find $backup_dir -name "NewccsTablespace*" -mtime +1 -exec rm {} /;
# That's all
部署的时候,只要把这个sh 脚本添加到crontab 中就可以了。
添加方法: crontab -e 进入编辑状态,然后把脚本的路径和相关执行时间写上。保存后用crontab -l 就可以查看内容:
$ crontab -l
45 1 * * * /u03/scripts/logicbackup.sh
前面5个参数的意义:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
有于更多crontab 的使用,参考blog:
Unix crontab 命令详解
http://blog.csdn.net/tianlesoftware/archive/2010/02/22/5315039.aspx
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977
DBA3 群:63306533; 聊天 群:40132017
Oracle 10g EXPDP和IMPDP使用说明
http://blog.csdn.net/tianlesoftware/archive/2009/10/16/4674224.aspx
Logicalbackup.sh
#!/bin/ksh
# ##################################################################
#
# created by tianlesoftware
# 2010-7-7
# Email: tianlesoftware@vip.qq.com
# ##################################################################
# Oracle Environment settings
PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin
export PATH
ORACLE_SID=SID; pw=oracle ; export pw ; export ORACLE_SID
ORACLE_BASE=/dba/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data ; export ORA_NLS33
TNS_ADMIN=$ORACLE_HOME/network/admin ; export TNS_ADMIN
LD_LIBRARY_PATH=$ORACLE_HOME/lib ; export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:/usr/local/bin:/usr/ccs/bin:$PATH:/usr/sbin
export PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib ; export CLASSPATH
backup_dir=/u03/oradata/dump_backup_dir
#数据泵需要directory,这里指定自己的目录就可以了
#SQL>CREATE DIRECTORY backup as ‘/u03/oradata/dump_backup_dir’;
#SQL>grant read,write on directory backup to SYSTEM;
DMP_FILE=SID_`date +%d%m%Y_%H%M%S`.dmp
LOG_FILE=SID_`date +%d%m%Y_%H%M%S`.log
#
# Let's start with an export of the database
#
expdp user/pwd DIRECTORY=dump_backup_dir DUMPFILE=$DMP_FILE TABLESPACES=TS_NAMEE logfile=$LOG_FILE parallel=3;
# 这里的2个说明,用户名和密码换成自己的,我这里是备份表空间。
# parallel 这个参数是控制并行度的,默认是1,但对于数据库比较大的时候,可以设置parallel,这样可以较少备份的
#时间,但是设置并行会耗CPU 资源,如果CPU 资源比较紧张的话,就不要设了。
#
# Just to be safe (with space), we'll compress the export file
# 压缩dmp 文件,较少对空间的占用
#
cd $backup_dir
compress *.dmp
#
# Let's delete the backups and logs that are more than 1 days old
# 删除超过一天的dmp文件
#
find $backup_dir -name "NewccsTablespace*" -mtime +1 -exec rm {} /;
# That's all
部署的时候,只要把这个sh 脚本添加到crontab 中就可以了。
添加方法: crontab -e 进入编辑状态,然后把脚本的路径和相关执行时间写上。保存后用crontab -l 就可以查看内容:
$ crontab -l
45 1 * * * /u03/scripts/logicbackup.sh
前面5个参数的意义:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
有于更多crontab 的使用,参考blog:
Unix crontab 命令详解
http://blog.csdn.net/tianlesoftware/archive/2010/02/22/5315039.aspx
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977
DBA3 群:63306533; 聊天 群:40132017
相关文章推荐
- Linux 平台下 Oracle 数据泵备份(expdp) SHELL 脚本
- Linux平台下Oracle定时备份数据
- Linux环境下Oracle数据泵(expdp)备份报ORA-39006: internal error
- LINUX下ORACLE定时备份数据,使用的expdp。
- linux平台的oracle11201借用expdp定时备份数据库
- Linux环境中Oracle数据导入与导出备份创建用户操作
- Linux 定时备份oracle库的数据
- oracle数据泵备份(Expdp命令)
- Linux环境下用exp备份Oracle数据表并导入的脚本
- linux 平台下 postgres 使用 (安装 启动 关闭 数据备份 还原)
- linux平台oracle自动备份
- linux & oracle 数据库自动备份,保留7天数据
- linux 下使用exp/imp 或者expdp/impdp导出导入oracle数据表数据
- Linux环境下用exp备份Oracle数据表并导入的脚本
- oracle expdp impdp 数据迁移 备份恢复某个用户数据
- Linux平台和Windows平台下两种自动备份MySQL数据的脚本(Shell&Bat)和步骤
- Linux环境中Oracle数据导入与导出备份操作
- oracle 11g 数据泵(expdp)命令备份数据的方法
- linux平台下的oracle自动备份案例(使用exp工具)
- linux 平台下 postgres 使用 (安装 启动 关闭 数据备份 还原)