显示标签为“AIX”的博文。显示所有博文
显示标签为“AIX”的博文。显示所有博文

2009年5月12日星期二

Unix Linx 平台 Oracle 自动备份 指南 crontab

一、把文档末尾的脚本保存为”oracle_auto_exp.sh”文件。

二、把文件上传至服务器,比如/home/oracle

三、用oracle用户登陆unix/linux系统
a) 设置文件的执行属性:chmod 777 /home/oracle/oracle_auto_exp.sh
b) 建立一个autoback的目录:#mkdir /home/oracle/autoback
c) 用vi命令修改oracle_auto_exp.sh里面的相关参数,注释里面有详细说明。
d) 修改脚本后保存;
e) 手工执行一次/home/oracle/oracle_auto_exp.sh,看是否在/home/oracle/autoback里面备份成功了。详细的信息可以看这个目录里面生成的文字。如果执行成功,说明备份脚本正确无误。

四、建立一个oracle用户的每天2点执行备份脚本的任务
a) 确认是用oracle用户登陆系统;执行如下命令:
b) #crontab –e oracle
c) 在编辑界面输入如下任务参数:
d) 0 2 * * * /home/oracle/oracle_auto_exp.sh
e) 这个界面就是vi界面,注意前面五个标志中间必须空格。保存退出。
f) 如果执行crontab –e oracle时报错,那说明oracle用户还没有被允许建立cron任务;
g) 用su – root切换到root用户,在/var/adm/cron/cron.allow文件中增加oracle用户名“oralce”。如果不存在/var/adm/cron/cron.allow,就建立这个文件。
h) 确保/var/adm/cron/cron.deny中没有oracle字样
i) Su – oracle 切换回oracle用户,重复执行b\c\d\e这几个步骤。

五、可以先把cron时间设置为当前时间5分钟以后的时间,看10分钟后是否备份成功。考虑备份本身也要耗用时间,可以稍微等一个比较长的时间去查看备份目录。


脚本内容:

#!/bin/bash
#Oracle环境参数,根据实际更改
export ORACLE_HOME=/oracle/product/10g/db_1
export ORACLE_BASE=/oracle
export ORACLE_SID=ncdb
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:$ORACLE_HOME/bin:$PATH:.:
export PATH

#设置shell语言编码参数,必须和Oracle所用的一致
#确认方法,用oracle用户登陆操作系统;
#运行sqlplus,执行 select * from v$nls_parameters where parameter='NLS_CHARACTERSET';语句
#sqlplus /nolog
#conn ncdb/ncdb as sysdba
#> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
#结果所示的编码,替换下面的ZHS16GBK
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

#数据备份的路径
#mkdir /home/oracle/autoback
export EXPORT_HOME=/home/oracle/autoback
#EXP导出所用的Oracle用户名密码,必须是NC所用的用户名,根据实际更改
export ORACLEUSER=ncXXX
export ORACLEPASSWD=ncXXX
export SPLIT_SIZE=10000000
#导出文件面加上日期
export TODAY=`date +%Y%m%d%H%M`
export LOG=$ORACLEUSER-$TODAY.log
export START_TIME=`date`
export EXP_FILE=$EXPORT_HOME/$ORACLEUSER-$TODAY.dmp.gz

cd $EXPORT_HOME

#删除老管道
rm -f once_compress_pipe
#建立压缩管道
mknod once_compress_pipe p
#设置权限
chmod 660 once_compress_pipe
#压缩命令
nohup gzip <> $EXP_FILE &
#导出数据
exp $ORACLEUSER/$ORACLEPASSWD FILE=once_compress_pipe buffer=10485760 RECORDLENGTH=65535 direct=y log=$EXPORT_HOME/$LOG
echo 'Starting at ' $START_TIME '\n' >> $EXPORT_HOME/$LOG
echo 'Ending at ' `date` '\n' >> $EXPORT_HOME/$LOG
#删除管道
rm -f once_compress_pipe

自己试验通过没有问题。不完善的地方,欢迎拍砖。

2009年5月8日星期五

超过AIX单用户最大进程数导致oracle无法登陆的解决

今天需要登陆到AIX上,往Oracle里面导入一个数据。先是用root身份,然后su切换到Oracle用户,结果发现切换不过去,挂在那里,半天没有反映。等了很久,才出来一个提示:该用户进程数过多,操作失败。

咱不怕,还是用root身份,ps -ef |grep oracle。一看,大约有近百条oracle远程连接进程。因为(LOCALE=NO)。回想起来,我们的确是建立了很多测试帐套和培训帐套,每个帐套都有很多最小连接数,NC一启动,就要建立连接池的,连接就建立了。

而在unix上,Oracle有自己的专属进程,基本上每一个远程连接就启动一个进程。这样oracle进程就超多了,超过了每用户最大128个的上限。oracle用户就再无法连接和登录了。

解决办法:

先查看系统那个设置:

# lsattr -E -l sys0

显示:

maxuproc 128 Maximum number of PROCESSES allowed per user

更改为800

# chdev -l sys0 -a maxuproc=800

再看:

maxuproc 800 Maximum number of PROCESSES allowed per user

su - oracle ,一切正常。

有点好玩的,每次su,都显示[YOU HAVE NEW MAIL]

郎啊郎别太忙 | langalang.blogspot.com


2008年12月1日星期一

AIX UNIX 平台安装 NC oracle 和 WAS 经验数则

一个全国性的大客户,120家3级单位,上了NC系统。运行于AIX UNIX平台,数据库Oracle,NC使用了IBM WAS 中间件做群集。
硬件方面,四台IBM Sytem P5 小型机,两台SNA盘阵,一个带库。分成两组,每组一台数据一台应用,一组在线,另一组灾备,HACMP群集。折腾oracle、nc、WAS遇到几个问题。问题虽然都解决了,对于不熟悉的人来说还是很费劲的。
随便写几点,想到哪里,写到哪里。
  1. NC连接不上oracle,用任何客户端都连不上,监听ping得通,但是就是不正常。原因是由于oracle装在盘阵上,而ha还没有配置好,监听配置指定IP的话,解析不到,只能写hostname。这个折腾了一下午,鄙视一下Oracle的经销商。
  2. AIX自带了一个java1.5,位于/usr/java5,直接export JAVA_HOME=/usr/java5就可以。公司流传的那个版本是linux平台的,在aix ppc 64平台上没法用。
  3. AIX环境的LANG设置:export LANG=Zh_CN。和linux平台不一样,注意大小写。这个不写对,nc是乱码,日志"报无法解析语言配置文件"错误。
  4. System P5的机器,WAS要使用AIX PPC 64的版本,如果跑NC502,要使用.11的补丁,.07的不行,补丁和tools也要相应的版本。在这里强烈谴责一下集团办事的人,3张WAS盘,补丁和tools盘都发错了,去ftp上下载,要下一天。怎么在办事啊?浪费时间。
  5. AIX 平台 umount 光驱的问题,大活人被那个什么憋死,怎么都umount不了cdrom,总是说资源忙。上网查,有大把的同病相怜的兄弟姐妹。光驱不umount的话,光盘弹不出来,换不了盘,WAS可是有三张盘的哦。被折腾的火大,大叫一声FUCK user,谁在使用光驱啊,使用这个命令,他可以显示出谁在使用光驱:fuse -uck /cdrom,看到是root在用,root不就是自己吗?FUCK到自己头上了。高。但是就是kill不掉这个root进程,没办法,惹不起,我还躲不起,关掉所有的连上去的远程端,再重新进,fuse -uck /cdrom,这次ok 了,umount /cdrom,跑到机房换光盘去。这个问题折腾了老半天。晕死。
  6. 装WAS的时候,直接进cdrom的WAS目录,运行setup.sh安装。刚开始的时候,想和win下面一样,运行launch.sh,结果说必须在浏览器里运行,机器上又没有mozilla,搞死个人。
  7. 宁可麻烦一点,mount光驱,拷贝WAS安装文件到硬盘再装,要不然10倍数的cdrom,装的慢死。装第二台时,速度刷刷的。
  8. smitty是个好东西。
  9. smitty jfs2,可以进去调整挂载的硬盘分区的大小。这台机器由于要做磁带备份,默认只备份根分区,根分区搞的很小,只有3G、太小了。
  10. 待续。。。

--
郎啊郎别太忙 | langalang.blogspot.com