Chinaunix首页 | 论坛 | 博客
  • 博客访问: 668626
  • 博文数量: 77
  • 博客积分: 6055
  • 博客等级: 准将
  • 技术积分: 617
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-17 02:15
个人简介

一句话太少

文章分类

全部博文(77)

文章存档

2018年(1)

2015年(1)

2014年(1)

2013年(6)

2011年(1)

2010年(1)

2009年(4)

2008年(2)

2007年(21)

2006年(39)

我的朋友

分类: 数据库开发技术

2007-03-02 10:17:09

前提:
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天的数据会覆盖第一天的数据

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

前面做的复杂了,修改一下,其实没必要删除,直接覆盖就可以了
阅读(1813) | 评论(0) | 转发(0) |
0

上一篇:杂文小记

下一篇:crontab 命令

给主人留下些什么吧!~~