搭建配置服务器过程中遇到的问题及其解决办法(转)

在搭建配置服务器平台的过程中,由于涉及到数据库性能优化、数据库备份、配置管理工具的升级、linux的操作系统的维护等多个方面,所以碰到的问题特别杂,现在静下心来,整理成此文,愿对大家有所帮助。

问题OracleOraHome92Agent启动的问题

问题描述:在配置服务器移植过程中,由于要修改数据库服务器的机器名称,导致原来正常工作的OracleOraHome92Agent服务不能正常启动。

解决办法:删除d:/oracle/ora92/network/agent/*.Q ,重新启动服务即可。

问题二:oracle数据库的冷备份与恢复

问题描述:某夜在泰安三楼机房,加班至23:30,终于搞定,在将要撤退之际,由于一个误操作将数据库破坏,原来使用EXP备份的数据由于数据量太大,也不能正确使用IMP导入,实际上,系统已经瘫痪了。明天8:30,开发人员还要使用服务器进行开发,怎么办?

解决办法:死马当活马医,将备份服务器和主配置服务器上的oralce数据库服务全部停掉,将备份服务器的目录 d:/oracle/admin 、d:/oracle/ora92/database 、d:/oracle/ora92/network 、d:/oracle/oradata 四个目录拷贝到主配置服务器相应目录下,并覆盖;修改主配置服务器d:/oracle/ora92/network目录下和主机名称有关的几个文件。启动配置服务器oracle服务,数据库恢复成功。

注:这种恢复方法的前提是:两个机器上oracle的安装盘符和路径必须相同。

问题三:oracle数据库热备份与恢复

问题描述:泰安配置管理服务器支持20多个项目的在线开发,一旦数据库遭到破坏,后果不堪设想,如何实现数据库的热备份和回复?能在最短的时间完成数据库的恢复,丢失的数据量最少或者不丢失数据?

问题解决:首先热备份的前提是配置数据库为归档模式。使用的备份的工具为Oracle携带的Recovery Manager。配置服务器上待备份的目的库是ordb

在备份机上安装oracle9i数据库,建立目录资源库oemrep

备份的步骤如下:

1.使用rman 命令连接目的库ordb和目录资源库oemrep

   rman catalog ****/****@oemrep  target *****/*****@ordb

2.运行如下脚本

   run {

    allocate channel c1 type disk;

    backup full tag ‘ordbfull’ format ‘e:/Har_Oracle/Hot_bak/fullbak%d_%s_%pdatebase

    include current controfile;

    sql  ‘alter system archive log current’;

    backup filesperset 3 format ‘e:/Har_Oracle/Hot_Bak/arch%d_%s_%p

    archivelog all delete input;

    release channel c1;

    }

3.可以将上述代码写在文件里面,然后使用操作系统的计划任务,实现数据库的自动备份。改文件执行后,会在相应目录上生成两个文件,一个是数据库的全备份文件,一个是归档日志文件的备份。

4.通过拷贝命令可以将备份文件拷贝到备份数据库,由于一些备份控制信息存储在备份机的oemrep数据库中,所以,下面的步骤是在备份机上完成的。主要目的是实现数据库的恢复。

5.连接目的数据库ordb(待恢复的数据库)和目录数据库oemrep

  rman target ****/*****@ordb  catalog  *****/******@oemrep 

6.控制文件的恢复

   run {

allocate channel c1 type disk;

restore controlfile;

release channel c1;

}

7.数据文件的恢复

    run {

    allocate channel c1 type disk;

    sql “alter database mount”;

    restore datafile 1;

    restore datafile 2;

    restore datafile 3;

         …….

    Release channel c1;

}

8.归档日志文件的恢复

    run {

    allocate channel c1 type disk;

    restore archivelog all

    release channel c1

}

需要说明的是这种备份和恢复对环境和备份的文件要求苛刻。恢复起来十分麻烦。但是在泰安研发中心多次恢复失败之后,最后终于恢复成功,证明这种方式是可行的,是在万不得已下采用的一种恢复方式。

问题四:Oracl数据库备份时如何保证数据能保留一周

问题描述:数据备份的保留是个很麻烦的问题,保留时间长了,浪费空间而且没有必要,保留时间短了,需要管理员经常人工操作,进行删除。

解决办法:在Oracle数据库备份时,将备份文件名字中增加星期。例如备份文件名为:****星期一.,备份文件名称中包含星期的实现方法如下:

FOR /F “tokens=2,3,4 delims=’/ “ %%a IN (‘date /t’) DO set weekname==%%a

Set USER_NAME=harvest

Set USER_PASS=*****

Set ORACLE_HOME=E:/oracle/ora92

Set DUMPED_FILE=D:/harbak/harbak%weekname%.dmp

Set LOG_FILE=D:/harbak/harbak%weekname%.log

 

Time /t >> %LOG_FILE%

%ORACLE_HOME%/bin/exp USERID=%USER_NAME%/%USER_PASS@ordb  FILE=%DUMPED_FILE% LOG=%LOG_FILE%

通过以上办法,备份文件名称中具有星期,满足了数据保留一周的需求。

问题五:harvest5.2.1客户端安装过程中的选择项

问题描述与解决办法:我们通常使用的开发工具有eclipse和wsad,为了更好和这些开发工具集成,在安装客户端时,选择“Custom”自定义安装,在插件中选择Eclipse的插件安装,Harvest5.2.1和Eclipse集成直接支持的是Eclipse 2.1.x版本。更高的版本尤其是Eclipse3.0目前还不支持。

问题六:CVS管理多个项目,项目之间的安全问题。

问题描述:cvs服务器管理可以管理多个项目,但是多个项目在同一个服务器上,怎样保证项目资料在项目组内部是安全的,而其它项目组成员是无法访问的。

解决方法:建立多个项目数据仓库。每个项目有自己的管理员。修改启动文件cvspserver。由于xinetdserver_args长度限制,当你想运行很多的单个仓库的时候,可以这么做, 

#vi /etc/xinetd.d/cvspserver 
service cvspserver 

disable= no 
flags= REUSE 
socket_type= stream 
wait= no 
user= root 
server= /home2/cvsroot/cvs.run 
log_on_failure += USERID 

:wq 

然后写脚本/home2/cvsroot/cvs.run 

#vi /home2/cvsroot/cvs.run 
#!/bin/bash 
/usr/bin/cvs -f / 
--allow-root=/home2/cvsroot/pro1 / 
--allow-root=/home2/cvsroot/pro2 / 
--allow-root=/home2/cvsroot/pro3 / 
--allow-root=/home2/cvsroot/pro4 / 
--allow-root=/home2/cvsroot/pro5 / 
--allow-root=/home2/cvsroot/pro6 / 
pserver 
:wq 

 

通过service xinetd restart 重新启动服务,cvs就可以管理pro1、pro2、pro3、pro4、pro5、pro6等多个项目了。

问题七:cvs的用户问题

问题描述:cvs的用户分为系统验证用户和cvs用户,两者的关系?

解决方法:系统验证用户即操作系统的用户,如果不使用操作系统用户,也可以用来创建cvs用户。不使用系统帐号的原因是充分保证安全,避免系统帐号直接删除仓库里的文件.  虽然麻烦,但是很有必要,因为无法保证每一个程序员都对cvs操作很有经验. 

在这种情况下,为每一个工程各建一个等效系统用户,此用户应该是cvs组的成员.  不必有shell. 

#adduser -g cvs -G cvs -s /bin/false -d /home2/cvsroot/pro1 -M cvspro1 

创建用户hleil 
$htpasswd -c passwd hleil 
修改passwdcvs的格式 
$vi passwd 

hleil:svcsdasdcvjn:cvspro1 
:wq 

用户hlei1是cvs用户,但不是系统用户,可以访问项目pro1

问题八:使用wincvs访问linuxcvs服务器,有些操作命令不能使用?

问题描述:在从cvs服务器上作检出操作时,服务器目录的浏览功能不能使用。

问题解决:可以键入模块所在的路径,执行检出功能,也可以键入“.“将仓库中所有的文件全部检出。

问题九:济南配置服务平台CVS配置库的异地备份

问题描述:济南CVS配置服务器支持公司济南总部项目的在线开发。为确保数据安全、不丢失,需要实现数据的异地备份。但是CVS配置库是基于linux平台的,而我们其它的机器都是windows平台

问题解决:

实现CVS数据的异地备份,我们分为四步实现。

第一步:在Linux服务器上实现项目数据的打包、压缩

#!/bin/sh

. /home2/cvsroot/cvsroot/.bash_profile

cd /home2/cvsroot/pro1root

tar zcvf pro1.tar.gz ./pro1/.

cd /home2/cvsroot/pro2root

tar zcvf pro2.tar.gz ./pro2/.

cd /home2/cvsroot/pro3root

tar zcvf pro3.tar.gz ./pro3/.

cd /home2/cvsroot/pro4root

tar zcvf pro4.tar.gz ./pro4/.

保存为shell文件名称为:autobak.sh

第二步:使用crontab 调用上面的shell文件,实现系统的自动打包、压缩

  * * * * * *  sh autobak.sh

第三步:实现包的ftp传输

在备份机上执行如下程序,从服务器 10.9.11.2中通过ftp取包。

echo user cvsroot cvsroot > FTPCMD.txt

echo cd /home2/cvsroot/pro1root >> FTPCMD.txt

echo lcd h:/jncvsserver_bak >> FTPCMD.txt

echo get pro1.tar.gz >>FTPCMD.txt

echo cd /home2/cvsroot/pro2root >> FTPCMD.txt

echo lcd h:/jncvsserver_bak >> FTPCMD.txt

echo get pro2.tar.gz >>FTPCMD.txt

echo bye >> FTPCMD.txt

ftp -i -n 10.9.11.2 <FTPCMD.txt

第四步:将上述批处理文件加入到任务计划中,实现系统的自动ftp取包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值