下载了一个RHEL AS4,刻录光盘,找到一台机器安装,一切都很顺利。第一次启动,出现错误:Kernel panic...,有经验者告诉我在启动时不要选择ELsmp,选择EL即可。果然登录进去了。此处问题暂存疑。
(
找到答案了,smp意为对称式多处理器,用于启动多CPU内核。没想到linux把多CPU这么处理。 )
首先配置可以远程登录和文件传输,省得老跑到机房里面听噪音。
一、 telnet
首先确认telnet程序已经被安装,新版本的linux往往缺省不安装该服务,那么请使用添加删除程序把它安装进来,然后启动。习惯了这个还真不想丢下。
etc/xinetd.d下面的 telnetdisable=yes改成disable=no,然后/etc/init.d/xient.d restart吧。或者使用图形界面的系统设置-服务设置-所有服务,把其中telnetd服务打开。
试一下能不能登录,如果还没有反应,那么检查一下防火墙设置,看看安全级别里是否允询telnet和网卡设备。
二、 vnc
这玩意是个好东西,图形界面都可以远程使用。使用图形界面的系统设置-服务设置-所有服务,把其中vncserver服务打开。
1
、必须安装的软件:
   vncserver
vncviewerRHEL AS4光盘上已经有这些东西了,如果没有安装,可以使用添加删除程序把他们安装上,记得还要有KDE或者GNOME。没有安装的话你配置的再对也不会出现图形界面。
如果没有可以从这里下载:[url]http://www.realvnc.com/download.html[/url]for Windowsfor LinuxServer/Viewer都要。在Windows下装上VNC,可以只装Viewer,因为XP下已经有桌面共享功能了;在Linux下装上VNC,解压后直接运行vncinstall即可。
2
、进入我的Linux帐户(我用的是root),编辑主目录下的.vnc/xstartup为如下内容:
gnome
桌面的配置文件如下:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session & 
配置成kde桌面的配置文件如下:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 
startkde &
我用的是KDE
3
、在我的帐户中打开终端,运行vncserver(第一次使用可能会要求输入授权密码,以后要改动的话可以用vncpassword命令),会显示类似下面的提示:
New 'lint:1 (lint)' desktop is root:1
Starting applications specified in xxx/.vnc/xstartup
Log file is xxx:1.log
说明Server1已经创建成功,这时应该已经开始启动同帐户的VNC Server了。
4.
此时已经可以在Linux注销当前会话,并登录到别的会话了,只要不关机,一般是不会影响到已经启动的VNC Server的。当然,也可以使用vncserver -kill来关掉指定的vnc server
这时要在Windows下利用VNC Viewer登录到Linux
首先启动VNC Viewer,然后输入远端主机的地址后加上VNC Server的标识号(:0表示当前桌面),这个号取决于上面用vncserver命令启动的server号,如提示为New 'lint:1 (lint)' desktop is root:1,则输入的地址后要加上:1,其他的依此类推。
输入后会要求输入启动服务器时输入的授权密码,确定即可看到1vncserverKDE界面了。
5
、相关配置:
修改 /etc/sysconfig/vncservers
VNCSERVERS="1:root"
ARGS="-geometry 1024x768 -alwaysshared "
ARGS中修改"1024x768"来适应自己的X桌面实际参数配置。可以在这里添加任何其他VNC服务器参数配置。在VNCSERVERS中修改jdimpson为你希望运行VNC桌面的用户。VNCSERVERS中的1表示VNC以桌面1运行,如果希望添加其他的桌面,可以修改配置如下:
VNCSERVERS="1:jdimpson 2:phred 3:sysadmin"
三、 ssh
OpenSSH 
 SSH Secure SHell 协议的免费开源实现。它用安全、加密的网络连接工具代替了 telnetftp rloginrsh  rcp 工具。
使用 OpenSSH 工具将会增进你的系统安全性。 所有使用 OpenSSH 工具的通讯,包括口令,都会被加密。 telnet  ftp 使用纯文本口令,并被明文发送。这些信息可能会被截取,口令可能会被检索,然后未经授权的人员可能会使用截取的口令登录进你的系统而对你的系统造成危害。你应该尽可能地使用 OpenSSH 的工具集合来避免这些安全问题。  
另一个使用 OpenSSH 的原因是,它自动把 DISPLAY 变量转发给客户机器。换一句话说,如果你在本地机器上运行 X 窗口系统,并且使用 ssh 命令登录到了远程机器上,当你在远程机器上执行一个需要 X 的程序时,它会显示在你的本地机器上。如果你偏爱图形化系统管理工具,却不能够总是亲身访问该服务器,这就会为你的工作大开方便之门。
关于ssh的一个好帖:[url]http://www.chinaunix.net/forum/viewtopic.php?t=111248[/url]
RHEL AS4
默认以ssh替代了telnet,并且是默认开放的。如果没有,使用图形界面的系统设置-服务设置-所有服务,把其中sshd服务打开。随便找一个客户端工具就可以试一下行不行了,比如SecureCRT
配置文件位置: /etc/ssh*
服务程序位置: /etc/init.d/sshd
四、 ftp
基本的文件传输必须有啊,不然没有办法装软件和传数据了。
首先确认vsftpd服务已经安装,然后启动它。OK,可以用普通用户登录到主机了。
五、 samba
根据samba主页:[url]http://us4.samba.org/samba/what_is_samba.html[/url]的介绍:
Samba 
是一套 open source 的软件,它可提供linux/unixWindows客户端之间进行文件共享和打印服务。
首先验证您的机器中是否已经安装 samba
rpm -qa|grep samba,
如果出现类似
samba-common-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3.0.10-1.4E
samba-3.0.10-1.4E
samba-client-3.0.10-1.4E
system-config-samba-1.2.21-1
那么恭喜你,你已经安装好了samba,如果没有以上那些东东,请安装。
配置文件位置: /etc/samba/smb.conf
服务程序位置: /etc/init.d/smb
关于samba配置的两个好帖:[url]http://www.chinaunix.net/jh/4/201152.html[/url][url]http://www.lslnet.com/linux/docs/linux-3199.htm[/url] [url]http://www.gbunix.com/htmldata/2004_[/url]07/15/27/article_163_1.html
我要说的是注意目录权限问题,下级目录权限从属于上级目录权限。我在一个用户目录下:/home/user1/增加了一个pub目录想让他像/tmp目录一样完全共享,却怎么也不能访问;把他移到/home下就可以了。
一、数据库版本选择
  一直试图安装oracle 10.1.0.3,但该版本官方口径尚不支持RedHat AS 4,加上中间很长时间在忙别的事情,一直等到10.2.0.1发布时发现已经支持该版本了。于是用了这个版本。
二、安装文档
  
这是从oracle官方网站拿到的在Linux RedHat AS 4.0上安装Oracle 10g 10.2.0.1的文档,翻译成了中文,加了一点自己的理解。原文地址: [url]http://www.oracle-base.com/articles/10g/OracleDB10gR2InstallationOnRedHatAS4.php[/url]
三、系统要求
1
、物理内存: 512M
2
、交换空间 2G
3
、禁用 secure Linux 
4
、已经安装下列包(为简单起见,安装RedHat AS 4时最好选择全部安装,登录语言选择英文):
  A
X Window System
  B
GNOME Desktop Environment
  C
Editors
  D
Graphical Internet
  E
Text-based Internet
  F
Server Configuration Tools
  G
Development Tools
  H
Administration Tools
  I
System Tools
四、本文内容
1.
下载软件
2.
解压软件
3.
修改host文件
4.
设置核心参数
5.
参数配置
6.
安装
7.
安装后配置
五、下载软件
1.Oracle Database 10g Release 2 (10.2.0.1) Software
下载位置:
[url]http://otn.oracle.com/software/products/database/oracle10g/index.html[/url]
六、 解压软件
1.
解压命令: unzip 10201_database_linux32.zip
2.
解压后产生一个包含安装文件的目录(db/Disk1)(实际上解压到一个名为database的目录,不知道是官方文档有误还是怎么回事)
七、 修改host文件
1./etc/hosts
文件中必须包含 a fully qualified name for the server
<IP-address>  <fully-qualified-machine-name>  <machine-name>
八、设置核心参数
1.
/etc/sysctl.conf文件中加入下列行:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
2.
运行下列命令改变核心参数:/sbin/sysctl  p
3.
/etc/security/limits.conf文件中加入下列行:
*               soft    nproc   2047
*               hard    nproc   16384
*               soft    nofile  1024
*               hard    nofile  65536
4.
/etc/pam.d/login文件中加入下列行,如果里面没有的话:
session    required     /lib/security/pam_limits.so
5.
通过编辑/etc/selinux/config 文件禁用secure linux,确认其中的SELINUX标记如下:SELINUX=disabled。也可以通过GUI工具(Applications > System Settings > Security Level),选择SELinux禁用该属性。
九、参数配置
1.
检查下列包是否安装,若未安装则要先安装:
# From RedHat AS4 Disk 2
cd /media/cdrom/RedHat/RPMS
rpm -Uvh setarch-1.6-1.i386.rpm
rpm -Uvh compat-libstdc++-33-3.2.3-47.3.i386.rpm
rpm -Uvh make-3.80-5.i386.rpm
rpm -Uvh glibc-2.3.4-2.i386.rpm

# From RedHat AS4 Disk 3
cd /media/cdrom/RedHat/RPMS
rpm -Uvh openmotif-2.2.3-6.RHEL4.2.i386.rpm
rpm -Uvh compat-db-4.1.25-9.i386.rpm
rpm -Uvh libaio-0.3.102-1.i386.rpm
rpm -Uvh gcc-3.4.3-9.EL4.i386.rpm

# From RedHat AS4 Disk 4
cd /media/cdrom/RedHat/RPMS
rpm -Uvh compat-gcc-32-3.2.3-47.3.i386.rpm
rpm -Uvh compat-gcc-32-c++-3.2.3-47.3.i386.rpm
2.
创建下列组和用户
groupadd oinstall
groupadd dba
groupadd oper

useradd -g oinstall -G dba oracle
passwd oracle
3.
创建安装oracle的目录
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u01
4.
root登录,执行下列指令:
xhost +<machine-name>
5.
oracle登录把下列行加在.bash_profile文件末尾,注意把其中ORACLE_SID换成自己的实例名:
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=TSH1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
#LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi
十、安装
1.
oracle用户登录。如果用的是X模式,要把DISPLAY设置如下:
DISPLAY=<machine-name>:0.0; export DISPLAY
2.
Disk1目录下用如下命令开始安装:
./runInstaller
3.
在安装过程中输入合适的ORACLE_HOME和实例名。详细过程就不说了,大家看着提示填写就好。完成后的画面中会有管理端入口地址和sqlplus入口地址。
十一、安装后配置
1.
编辑/etc/oratab文件设置每个实例的重启标志为“Y”:
TSH1:/u01/app/oracle/product/10.2.0/db_1:Y

OK,
安装结束了,你可以从浏览器了键入安装完成管理端地址即可登录进行数据库性能监测调整和用户管理了。我用的是系统用户SYS
RedHat AS 4.0 Oracle 10g 10.2.0.1proc编程方法  
1.1 
主题意图  
1.
描述在Linux RedHat AS 4.0上安装Oracle 10g 10.2.0.1proc编程过程。  
1.2 
安装  
1.
安装oracle时,要把程序开发包选上。  
1.3 
环境配置  
1.
为编译方便,在$ORACLE_HOME/precomp/admin/pcscfg.cfg文件里加上如下内容,也可添加用户自己的include路径  
include=/home/oracle/product/10.2.0.1/db_1/precomp/public 
include=/home/oracle/product/10.2.0.1/db_1/precomp/hdrs 
include=/home/oracle/product/10.2.0.1/db_1/tpcc2x_2/src 
include=/home/oracle/product/10.2.0.1/db_1/precomp/include 
include=/home/oracle/product/10.2.0.1/db_1/oracore/include 
include=/home/oracle/product/10.2.0.1/db_1/oracore/public 
include=/home/oracle/product/10.2.0.1/db_1/rdbms/include 
include=/home/oracle/product/10.2.0.1/db_1/rdbms/public 
include=/home/oracle/product/10.2.0.1/db_1/rdbms/demo 
include=/home/oracle/product/10.2.0.1/db_1/nlsrtl/include 
include=/home/oracle/product/10.2.0.1/db_1/nlsrtl/public 
include=/home/oracle/product/10.2.0.1/db_1/network_src/include 
include=/home/oracle/product/10.2.0.1/db_1/network_src/public 
include=/home/oracle/product/10.2.0.1/db_1/network/include 
include=/home/oracle/product/10.2.0.1/db_1/network/public 
include=/home/oracle/product/10.2.0.1/db_1/plsql/public 
2.
为方便所有用户访问oracle,在/etc/profile中加上如下代码,也可只在开发用户目录下的.bash_profile文件里进行添加:  
ORACLE_BASE=/home/oracle;export ORACLE_BASE 
ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1;export ORACLE_HOME 
ORACLE_SID=TEST;export ORACLE_SID 
ORACLE_TERM=xterm;export ORACLE_TERM 
PATH=/usr/sbin:$PATH:$HOME/bin:$ORACLE_HOME/bin;export PATH 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATH 
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATH 
3.
root登录把开发用户加到oinstalldba组中: usermod -G oinstall,dba username 
1.4 
编译make文件  
1.
编写make文件有两种方式,一是利用ORACLE本身提供的make文件的基本模板来编写,二是自己完全自定义编写。  
2.
利用ORACLE提的make文件模板的 makefile: 
include $(ORACLE_HOME)/precomp/lib/env_precomp.mk
SAMPLES=myprogram
samples:$(SAMPLES)
build:$(OBJS)
        $(DEMO_PROC_BUILD_SHARED)
$(SAMPLES):
        $(MAKE) -f $(MAKEFILE) OBJS=$@.o EXE=$@ build
.SUFFIXES: .pc .c .o .typ .h
pc1:
        $(PCC2C)
.pc.c:
        $(MAKE) -f $(MAKEFILE) PROCFLAGS="$(PROCFLAGS)" PCCSRC=$* I_SYM=include= pc1
.c.o:
        $(C2O)
MAKEFILE=/tmp/1/test.mk
OTTFLAGS=$(PCCFLAGS)
PROCPLSFLAGS=sqlcheck=full userid=$(USERID)
PROCPPFLAGS=code=cpp $(CPLUS_SYS_INCLUDE)
USERID=myuser/854612
INCLUDE=$(I_SYM). $(I_SYM)$(PRECOMPHOME)public $(I_SYM)$(RDBMSHOME)public $(I_SYM)$(RDBMSHOME)demo $(I_SYM)$(PLSQLHOME)public $(I_SYM)$(NETWORKHOME)public
3.
自己自定义编写的makefile例子 :
ORALIBPATH=$(ORACLE_HOME)/lib        
ORALIBS=-lclntsh
ORAINCLUDE=-I. -I/home/oracle/product/10.2.0.1/db_1/precomp/public -I/home/oracle/product/10.2.0.1/db_1/rdbms/public -I/home/oracle/product/10.2.0.1/db_1/rdbms/demo -I/home/oracle/product/10.2.0.1/db_1/plsql/public -I/home/oracle/product/10.2.0.1/db_1/network/public
testobj = myprogram.o

all:   proc_a  cco_a  build_a
proc_a:
        proc  parse=full myprogram.pc
cco_a:
        cc  -c $(ORAINCLUDE)  myprogram.c
build_a: 
        cc $(testobj) -L$(ORALIBPATH) $(ORALIBS) -o myprogram           
delete:
        rm *.o
        rm *.cc
        rm *.lis
        rm tp?????? 
1.5 
编程注意事项  
1.
包含头文件时不能用pc指定的EXEC SQL INCLUDE 语法,要改用标准的#include 语法。
2.
这个版本的编译器在编译过程会产生以tp开头后面是6个随机字符命名的0字节中间文件,不知道怎么避免。
3.pc
程序中执行修改数据指令后必须调用commit还能提交,否则不会真正执行更改。
4.
一个简单pc程序 myprogram.pc:
#include <stdio.h>
#include <sqlca.h>

int main(int argc,char *argv[])
{
  char uid[20],pwd[20],ser[20];
  char key[20],value[20];

  strcpy(uid,"username");
  strcpy(pwd,"password");
  strcpy(ser,"TEST");
  EXEC SQL CONNECT :uid IDENTIFIED BY :pwd USING :ser;
  if(sqlca.sqlcode!=0)
  {
     printf("sqlcode=%ld,sqlerr=%s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
     printf("connect error\n");
  }
  else printf("connect ok\n");
  EXEC SQL insert into table1 values('key','value');
  if(sqlca.sqlcode) {
    printf("sqlcode=%ld,sqlerr=%s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
    printf("Insert Error\n");
  }
  else printf("Insert OK!\n");
  EXEC SQL commit;
  EXEC SQL select key,value into :key,:value from table where key='key';
  printf("sqlcode=%ld,sqlerr=%s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
  printf("key=%s,value=%s\n",key,value);

  return 0;
}