首页 > 学技术 > 技术网文 > Solaris > 正文

[原创] SUN相关的问题的整理和汇总(3)


来源 chinaunix.net 酷勤网整理

以下内容来自于CU,solaris区帖子的整理
IPMP设置示例
1) ok setenv local-mac-address?  true 
2) 使用vi编辑器修改hosts文件,在/etc/hosts文件中,增加双机中另一节点的机器名和IP地址,以方便双机之间的访问。 
在scha1的hosts文件中增加行: 
#vi /etc/hosts 
   127.0.0.1       localhost 
   156.36.16.37   scha1   loghost           
   156.36.16.38   ce0test                 
   156.36.16.39   ce2data                 
   156.36.16.40   ce2test                 
   156.36.16.41   scha2                   
   156.36.16.45   ha-ora-lh               
在scha2的hosts文件中增加行: 
   #vi /etc/hosts 
    127.0.0.1       localhost 
    156.36.16.41   scha2   loghost           
    156.36.16.42   ce0test                 
    156.36.16.43   ce2data                 
    156.36.16.44   ce2test                 
    156.36.16.37   scha1                   
    156.36.16.45   ha-ora-lh   
3). 配置主备双机的IP多路径 
对外公布的IP地址为:156.36.16.45 
双机中每台主机有4块网卡ce0、ce1、ce2、ce3,规定ce0、ce2作数据网卡,互为主备用。两个网卡的逻辑组名要求一致,这里组名是abc。   
   当ce0链路出现问题时,ce1自动生成一个ce1:1的逻辑网卡,其IP地址为ce0的IP地址,当ce0恢复正常后,ce1:1 自动撤消,ce0仍然使用原来的IP地址。同理,当ce1链路出现问题时,ce0:1接替ce1工作,保证了网络使用的可靠性。(注意,该处的所有的IP地址要求处于同一网段,) 

在主机scha1上使用vi编辑器编辑/etc/hostname.ce0和/etc/hostname.ce1两个文件,具体操作如下: 
#vi /etc/hostname.ce0   
  scha1 group abc up \ 
  addif ce0test -failover deprecated up 
  #vi /etc/hostname.ce2   
  ce2data group abc up \ 
  addif ce2test -failover deprecated up 
在主机scha2上使用vi编辑器编辑/etc/hostname.ce0和/etc/hostname.ce1两个文件,具体操作如下: 
#vi /etc/hostname.ce0   
  scha2 group abc up \ 
  addif ce0test -failover deprecated up 
  #vi /etc/hostname.ce2   
  ce2data group abc up \ 
  addif ce2test -failover deprecated up 
4) 在双机上使用vi编辑器修改/kernel/drv/scsi_vhci.conf文件,具体操作步骤如下: 
#vi /kernel/drv/scsi_vhci.conf   
将以下行: 
mpxio-disable="yes" 
修改为: 
mpxio-disable="no" 
5.修改/etc/system,添加ce网卡bug修正参数: 
set ce:ce_reclaim_pending=1 
set ce:ce_taskq_disable=1
测试办法:
IPMP从Solaris 8 
(01/01)开始就已经成为Solaris的标准配置了,所以大家都可以用,对于这些新的feature,大家不要客气啊,不用白不用啊! 
下面就用配置文件的方式来配置IPMP,假设如下: 
multipathing test IP 10.170.1.81 测试地址1 
multipathing test IP 10.170.1.82 测试地址1 
Logical IP 10.170.1.80 逻辑地址,这是我们访问的地址 
Group Name mswitch 这个名字,随便取的 
Network Card ce0,ce1 

1、首先更改hosts文件 
#vi /etc/hosts 
10.170.1.80 host1 loghost 

10.170.1.81 host1-1 
10.170.1.82 host1-2 

2、然后创建文件hostname.ce0 , hostname.ce1 
#vi /etc/hostname.ce0 
host1 group mswitch up 
addif host1-1 -failover deprecated up 

#vi /etc/hostname.ce1 
host1-2 group mswitch -failover deprecated up 

3、重新启动计算机,就可以了 
#reboot 

4、after reboot , you can use ifconfig -a to view the configure 
information. 
#ifconfig -a 
做做测试,看看会不会failover!

ORACLE FOR SUN SOLARIS 安装手册
ORACLE 是大型关系型数据库,是高可靠的、耐用的、安全的、可扩充的数据库。 
在分布方式、平行方式、多线索方式下都有良好的表现,特别适用于象CHINA ON 
LINE 这样的大型的遍布全国的数据存储方式;加上它有许多优秀的前台开发工具 
如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端P 
C 平台的应用程序,特别适用于象CHINA ONLINE 这样的需要编写适用于各行各业 
大量的应用工作的任务,计费系统就是一个例子。 
ORACLE 的安装分三个大步骤,首先是安装 C COMPILER,接着是 ORACLE 安装前 
的准备工作,最后才是进ORACLE 安装窗口进行安装及安装后处理。 
一、安装 C COMPILER ( 编译器 ) 
ORACLE WEB SERVER的安装过程有些步骤需要用C语言编译器编译执行,加上ORAC 
LE 的底层逻辑计算有c 编译器则更高速、更可靠。所以此步不可少。 
1、 Solaris安装后 
#cp /etc/skel/local.cshrc /.cshrc 
#cp /etc/skel/local.login /.login 
2、 #vi /etc/passwd 
第一行改成 root:0:1:Super-User:/:/bin/csh 
3、 #vi /.cshrc 
unmask 022 
set path=(/bin /usr/openwin/bin /oracle/bin /usr/sbin /opt/SUNWspro/bi 

/sbin /usr/ucb /etc /usr/ccs/bin .) 
alias cd 'cd \!*;set prompt=" ' pwd '#>" ' 
( 安装CC要修改系统时间,改到 LICENCES日期之前 ) 
4、 插入C COMPILER 安装光盘 
#volcheck 
#df -k 检查有无cdrom的设备 
5、 #cd /cdrom/cdrom0 
(说明:C 编译器的安装程序必须在openwin 即窗口状态下执行) 
#/cdrom/unamed_cdrom0>spro_install_tool 
6、 选 sparc compiler 3.0.1 
7、 选 install licenses software /opt 
8、 选 setup licenses 
9、 选 select product sparc compiler 3.0.1 
10、 选 demo licenses 
11、 输入有效期:DD-MM-YY 
密 码: 
12、 选 done with licenses,然后退出 exit install licenses 。 
屏幕有窗口提示licenses安装成功 
13、选 install,屏幕出现滚动安装窗口 
等待数分钟后,屏幕提示安装成功,exit install 
14、 在操作系统下运行 
#etc/opt/licenses/LIC_CONFIG_SCRIPT 
屏幕提示licenses 已正确设置。 
15、 #reboot 
正常登录后 
#env 看环境变量改变了没有 
16、 #vi test.c 编一 C语言测试程序 
#include /* test.c */ 
main() 

printf("Hello......\n"; 

17、 #cc test.c -o test 编译 
18、 #./test 执行 
运行结果: 
Hello....... 
19、 #eject cdrom 成功后退出光盘 
C COMPILER 安装成功! 

二、安装 ORACLE 前的准备工作 
准备工作主要是增加ORACLE 的用户及组,改变一些系统参数文件。 
1、 #vi /etc/passwd 
第一行改成 root:0:1:Super-User:/:/bin/csh 
(选用csh 内核语言) 
最后一行加 oracle::9722:643:super-account:/oracle:/bin/csh 
(增加oracle用户) 
2、 #vi /etc/group (增加oracle的组) 
最后一行后加 dba::643racle 

3、 (必要时改 shadow 文件的读写属性:chmod 755 shadow ) 

#vi /etc/shadow (增加oracle用户口令,这里缺省) 

最后一行后加 oracle:::::::: (共8个 

4、 在根 / 下 

#chown oracle oracle 

#chgrp dba oracle 

#passwd oracle 给oracle加口令,敲两次口令 

5、 #cp .cshrc /oracle 把根下的这两个文件拷贝到 /oracle 路径下 

#cp .login /oracle 

6、 #cd oracle 

#chown oracle .* 把拷贝过来的隐含文件变成oracle属组 

#chgrp dba .* 

7、 #vi /etc/services 

最后增加两行 orasrv 1525/tcp oracle 

listener 1521/tcp 

8、 #vi /etc/system 

在set后增加一段 set shmsys:shminfo_shmmax=8388608 

set shmsys:shminfo_shmmin=1 

set shmsys:shminfo_shmmni=100 

set shmsys:shminfo_shmseg=10 

set semsys:seminfo_semmns=200 

set semsys:seminfo_semmni=70 

9、 #su - oracle 

10、 %vi .cshrc 

增加一段 setenv ORACLE_HOME /oracle 

setenv ORACLE_DOC /oracle/odoc 

setenv ORACLE_SID oracle7 

setenv ORACLE_TERM sun5 

setenv ORA_NLS /oracle/occommon/nls/admin/data 

setenv NLS_LANG=AMERICAN.AMERICA.zhs16cgb231280 

alias cd 'cd \!*;set prompt=" 'pwd '%>" ' 

11、 %cd oracle 

%mkdir odoc 建odoc路径 

%chmod 755 odoc 

三、安装 ORACLE 

1 、插入ORACLE 安装光盘 

%volcheck 

%df -k 检查有无cdrom的设备 

2、 %cd /cdrom/oracle/orainst 

%./orainst 出现 ORACLE 黑框的安装窗口 

3、 选第一项 COMPLETE SOFTWARE / DATABASE FRESH INSTALL 

然后一路回车 选九个产品安装 (全部安装可能无足够硬盘空间) 

①. oracle7 advanced replication option 7.2.2.3.0 (可选) 

②. oracle7 distributed database option 7.2.2.3.0 (可选) 

③. oracle7 parallel query option 7.2.2.3.0 (可选) 

④. oracle server (RDBMS) 7.2.2.3.0 

⑤. PL/SQL 2.2.2.3.0 

⑥. SQL*NET V2.2.2.2.0.0 

⑦. PROC*C 2.1.2.0.0 (可选) 

⑧. SQL/PLUS 

⑨. TCP/IP protocal Adapter (V2) 2.2.2.2.0.0 

注意:create db object 应选择yes 

4、 再一路回车,根据提示输入 system 、 sys、 TNS listener 的password 

5、 LANGUAGE 时 选OTHERS ,用户输入ZHS16CGB231280 汉字国标字符集 

(说明:安装25%以前出错,可能是C COMPILER 的路径 /opt/SUNWspro/未在orac 
le下的.cshrc下定义。) 

6、安装成功100%后又回到开始的选项菜单。有时未满100% 后也回到开始的选项 
菜单, /oracle/orainst/install.log 安装日志文件最后提示OK 

7、按 F7 到菜单项,FILE 中选 EXIT 退出 

% /cdrom/cdrom0/orainst>exit 退出 oracle 用户 

8、运行 #/oracle/orainst/root.sh 

Are these setting correct (y/n):敲 y 

Enter the full pathname of the local bin directory (y/n): 敲/bin 

(此shell 程序在/var/opt/oracle路径下生成一个文件oratab ,并做系统检测) 


9、 #vi /var/opt/oracle/oratab 

最后一行改 oracle7:/oracle:Y 

10、#vi /var/opt/oracle/listener.ora 

改 host= (host_name) 

oraclehome= (/oracle) 

11、#vi /var/opt/oracle/tnsnames.ora 

一些连接字符串,分布式通讯时有用 

12、#reboot 重新启动机器,使参数生效



 风之幻想 回复于:2007-01-12 12:38:26

13、#su - oracle 

%env 看环境变量改变了没有 

14、%svrmgrl 唤醒SVRMGR状态 

SVRMGR>connect internal 连接打开数据库 

SVRMGR>shutdown abort 先关闭 instances, 数据库 

SVRMGR>startup 再打开数据库,当看到 

instances startup, database mount, 

database open的时候,oracle安装成功 

SVRMGR>exit 

15、 %lsnrctl start 启动listener 

如果出错检查环境变量是否设好,及lsnrctl文件的内容和执行属性。 

snoop抓包工具详细解说
snoop 抓包
solaris自带snoop抓包工具,抓所有数据流

# snoop
Using device /dev/pcn0 (promiscuous mode)
192.168.8.18 -> 192.168.255.255 NBT NS Query Request for WORKGROUP[1c], Success
192.168.253.35 -> solaris      TELNET C port=1246
     solaris -> 192.168.253.35 TELNET R port=1246 Using device /dev/pc
     solaris -> 192.168.253.35 TELNET R port=1246 Using device /dev/pc
192.168.4.150 -> (broadcast)  ARP C Who is 192.168.4.200, 192.168.4.200 ?
192.168.4.200 -> (broadcast)  ARP C Who is 192.168.4.150, 192.168.4.150 ?
#

抓源地址或目的为 202.101.98.55的数据流:

# snoop 202.101.98.55
Using device /dev/pcn0 (promiscuous mode)
192.168.253.35 -> dns.fz.fj.cn DNS C www.163.com. Internet Addr ?
dns.fz.fj.cn -> 192.168.253.35 DNS R www.163.com. Internet CNAME www.cache.split.netease.com.

#

说明:internet cname 后的为解析www.163.com的名字时,代表www.163.com回答的主机的域名。

抓 192.168.253.35和202.101.98.55之间的数据流(双向都抓)

# snoop 192.168.253.35 202.101.98.55
Using device /dev/pcn0 (promiscuous mode)
192.168.253.35 -> dns.fz.fj.cn DNS C www.google.com. Internet Addr ?
dns.fz.fj.cn -> 192.168.253.35 DNS R www.google.com. Internet CNAME www.l.google.com.
#

抓完存在当前目录下的cap文件中并查看

# snoop -o cap1 -P      -P表示处在非混杂模式抓数据,只抓广播、主播、目的为本机的数据
Using device /dev/pcn0 (non promiscuous)
15 ^C                           15的含义是:显示目前抓了多少个数据流
#

# snoop -i cap1
  1   0.00000 192.168.253.35 -> solaris      TELNET C port=1246
  2   0.18198 192.168.253.35 -> solaris      TELNET C port=1246
  3   0.37232 192.168.4.199 -> 192.168.255.255 NBT Datagram Service Type=17 Source=WB-200[20]
  4   0.00016            ? -> (multicast)  ETHER Type=EF08 (Unknown), size = 180bytes
  5   0.62546 192.168.253.35 -> solaris      TELNET C port=1246
  6   0.13822            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
  7   0.06283 192.168.253.35 -> solaris      TELNET C port=1246
  8   0.90301 192.168.253.35 -> solaris      TELNET C port=1246
  9   0.19781 192.168.253.35 -> solaris      TELNET C port=1246
10   0.81493            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
11   0.07018 192.168.253.35 -> solaris      TELNET C port=1246
12   0.19939 192.168.253.35 -> solaris      TELNET C port=1246
13   0.90151 192.168.253.35 -> solaris      TELNET C port=1246
14   0.18904 192.168.253.35 -> solaris      TELNET C port=1246
15   0.68422            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
#snoop -i cap1 -p 10,12            只看10-12条记录

#snoop -i cap1 -p10                  只看第10条记录

# snoop -i cap1 -v -p101            查看第10条数据流的包头的详细内容

#snoop -i cap1 -v -x 0 -p101   查看第10条数据流的全部的详细内容

抓主机192.168.253.35和202.101.98.55之间的tcp或者udp端口53的数据

# snoop 192.168.253.35 and 202.101.98.55 and \(tcp or udp\) and port 53

输入(的时候要加转义符号\


snoop的详细参数
Snoop 是Solaris 系统中自带的工具, 是一个用于显示网络通讯的程序, 它可捕获IP 包并将其显示或保存到指定文件. (限超级用户使用snoop)
Snoop 可将捕获的包以一行的形式加以总结或用多行加以详细的描述(有调用不同的参数–v -V来实现). 在总结方式下(-V ) , 将仅显示最高层的相关协议, 例如一个NFS 包将仅显示NFS 信息, 其低层的RPC, UDP, IP, Ethernet 帧信息将不会显示, 但是当加上相应的参数(-v ), 这些信息都能被显示出来.

-C

-D

-N

-P 在非混杂模式下抓包

-S 抓包的时候显示数据包的大小

-V 半详细的显示抓的数据的信息

-t [ r | a | d ] 显示时间戳,-ta显示当前系统时间,精确到毫秒

-v 最详细的显示数据的信息

-x offset [ , length] 以16进制或ACSII方式显示某数据的部分内容,比如 -x 0,10 只显示0-10字节

#snoop -i cap1 -v -x 0 -p101 查看被抓获的第101个数据流的全部内容


表达式:

根据地址:

#snoop x.x.x.x         IPV4的IP

#snoop 0XX:XX:XX:XX    ETHERNET的MAC地址

数据的方向:

from x.x.x.x 或者 src x.x.x.x

to x.x.x.x 或者 dst x.x.x.x

可用的数据类型的关键词:

ip, ip6, arp, rarp, pppoed, pppoes,pppoe,broadcast,multicast,apple,decnet

udp, tcp, icmp, icmp6, ah, esp

greater length
      True if the packet is longer than length.

less length
      True if the packet is shorter than length.

net net

# snoop from net 192.168.1.0 抓来自192.168.1.0/24的数据

# snoop from net 192.168.0.0 抓来自192.168.0.0/16的数据

port xx XX为TCP或者UDP的端口号或者 /etc/services里定义的名字

#snoop to udp and port 53    抓到UDP53的数据

有错误之处请多多指教


 estar 回复于:2007-01-12 12:58:19

收藏,谢谢


 要努力学习 回复于:2007-01-12 15:23:30

大哥```````我的眼睛`````!!!:em16:




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=885042
转载请注明作者名及原文出处



收藏本页到: