Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103729641
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-10 13:28:22

前提:

1、需要知道的信息:

oracle 的system密码以及要备份数据库账户的账户名和密码

Sco unix 的root密码、oracle密码

2、会使用vi编辑文件、mkdir创建文件夹、chmod改变文件权限、su 切换用户、文件的执行

3、了解sco unix的用户、组、权限及crontab的用途、oracle的dmp文件生成

一、建立数据库dmp文件存放目录

#su - oracle 
$cd /dbf 
$mkdir dmpbak 
$cd dmpbak 
$mkdir zd 
$mkdir cm

二、建立导出数据库dmp的文件

1、指定目录

#su - oracle 
$cd bin

2、用vi编辑exp_t文件

$vi exp_t 
exp_t内容: 
ORACLE_HOME=/oracle 
ORACLE_SID=ora7 
ORACLE_TERM=ansi 
export ORACLE_HOME ORACLE_SID ORACLE_TERM 
MENU5PATH=$ORACLE_HOME/forms30/admin/resource 
export MENU5PATH 
ORATERMPATH=$ORACLE_HOME/forms30/admin/resource 
export ORATERMPATH 
NLS_LANG=American_America.ZHS16CGB231280 
export NLS_LANG 
ORA_NLS=/oracle/ocommon/nls/admin/data 
export ORA_NLS 
home1='/dbf/dmpbak' 
dt1=`date "+%H%M"` 
echo ' ' >'$home1/'new_record 
file_name="$home1"/zd/zd"$dt1" 
echo $file_name >>'$home1'/new_record 
$ORACLE_HOME/bin/exp zd/zdzd file=$file_name.dmp owner=zd grants=y buffer=204800 rows=y indexes=y compress=y  
file_name="$home1"/cm/cm"$dt1" 
echo $file_name >>'$home1'/new_record 
$ORACLE_HOME/bin/exp common/cmcm file=$file_name.dmp owner=common grants=y buffer=204800 rows=y indexes=y compress=y  
file='/dbf/dmpbak/new_record' 
backup_dir='/oracle/sec_back' 
if [ -d $backup_dir ] 
then 
for i in `cat $file` 
do 
cp $i $backup_dir/ 
done 
echo ' '>$file 
fi

3、给exp_t权限

$chmod 755 exp_t

4、测试exp_t

$cd /oracle/bin 
$exp_t

5、查看dmp文件是否生成

$cd /dbf/dmpbak/zd 
$ls

例如:11点35生成的文件是:1135.dmp

如果生成dmp文件,证明exp_t可以使用

三、编辑crontab

#crontab -e

增加行:

35 * * * * su - oracle -c /oracle/bin/exp_t

意思是每天每个小时的35分备份一次dmp文件

第2天的数据会覆盖第一天的数据

以上为个人总结,已经经过试验,不足之处会进行改进,希望对大家有所帮助

前面做的复杂了,修改一下,其实没必要删除,直接覆盖就可以了

阅读(547) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~