<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>蓝色数据 &#187; CentOS</title>
	<atom:link href="http://bluedata.org/tag/centos/feed/" rel="self" type="application/rss+xml" />
	<link>http://bluedata.org</link>
	<description>奋斗是幸福的……</description>
	<lastBuildDate>Mon, 14 Sep 2009 01:53:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CentOS4.6 安装配置 GFS</title>
		<link>http://bluedata.org/2008/08/28/centos4-gfs/</link>
		<comments>http://bluedata.org/2008/08/28/centos4-gfs/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 07:28:18 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[gfs]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/?p=81</guid>
		<description><![CDATA[在 /etc/hosts 文件添加：
192.168.0.171   centos4-1
192.168.0.172   centos4-2
添加 yum 源
cd /etc/yum.repos.d/
wget http://mirror.centos.org/centos/4/csgfs/CentOS-csgfs.repo
更新系统
yum -y update
安装 Red Hat Cluster Suite with DLM 所需要的包：
yum install ccs cman-kernel-smp dlm dlm-kernel-smp fence iddev magma magma-plugins gulm perl-Net-Telnet
安装 Red Hat GFS 所需要的包：
yum install GFS GFS-kernel-smp lvm2-cluster
配置 cluster
vi /etc/cluster/cluster.conf


























配置 fence
cd /sbin
mv fence_manual fence_manual~
vi /sbin/fence_manual
#!/bin/sh
exit 0
在集群开始前插入模块
vi /etc/sysconfig/cluster
modprobe lock_dlm
modprobe gfs
启动 cluster
service ccsd start
service [...]]]></description>
			<content:encoded><![CDATA[<p>在 /etc/hosts 文件添加：<br />
192.168.0.171   centos4-1<br />
192.168.0.172   centos4-2</p>
<p>添加 yum 源<br />
cd /etc/yum.repos.d/<br />
wget http://mirror.centos.org/centos/4/csgfs/CentOS-csgfs.repo</p>
<p>更新系统<br />
yum -y update</p>
<p>安装 Red Hat Cluster Suite with DLM 所需要的包：<br />
yum install ccs cman-kernel-smp dlm dlm-kernel-smp fence iddev magma magma-plugins gulm perl-Net-Telnet</p>
<p>安装 Red Hat GFS 所需要的包：<br />
yum install GFS GFS-kernel-smp lvm2-cluster</p>
<p>配置 cluster<br />
vi /etc/cluster/cluster.conf<br />
<coolcode linenum="off"><br />
<?xml version="1.0"?><br />
<cluster name="alpha_cluster" config_version="1"></p>
<p><cman two_node="1" expected_votes="1"><br />
</cman></p>
<p><clusternodes><br />
<clusternode name="centos4-1" votes="1"><br />
<fence><br />
<method name="single"><br />
<device name="human" ipaddr="192.168.0.171"/><br />
</method><br />
</fence><br />
</clusternode></p>
<p><clusternode name="centos4-2" votes="1"><br />
<fence><br />
<method name="single"><br />
<device name="human" ipaddr="192.168.0.172"/><br />
</method><br />
</fence><br />
</clusternode><br />
</clusternodes></p>
<p><fencedevices><br />
<fencedevice name="human" agent="fence_manual"/><br />
</fencedevices></p>
<p></cluster><br />
</coolcode></p>
<p>配置 fence<br />
cd /sbin<br />
mv fence_manual fence_manual~<br />
vi /sbin/fence_manual<br />
#!/bin/sh<br />
exit 0</p>
<p>在集群开始前插入模块<br />
vi /etc/sysconfig/cluster<br />
modprobe lock_dlm<br />
modprobe gfs</p>
<p>启动 cluster<br />
service ccsd start<br />
service cman start<br />
service fenced start</p>
<p>检查一下是否正常<br />
ccs_tool lsnode<br />
<coolcode linenum="off"><br />
Cluster name: alpha_cluster, config_version: 1</p>
<p>Nodename                        Votes Nodeid Iface Fencetype<br />
centos4-1                          1               human<br />
centos4-2                          1               human<br />
</coolcode></p>
<p>ccs_tool lsfence<br />
<coolcode linenum="off"><br />
Name             Agent<br />
human            fence_manual<br />
</coolcode></p>
<p>cman_tool services<br />
<coolcode linenum="off"><br />
Service          Name                              GID LID State     Code<br />
Fence Domain:    "default"                           3   2 run       -<br />
[2 1]<br />
</coolcode></p>
<p>配置 clvm<br />
vi /etc/lvm/lvm.conf<br />
locking_type = 3</p>
<p>service clvmd start</p>
<p>设置开机自启动<br />
ntsysv<br />
选中 clvmd<br />
可以把不用的 lock_gulmd 和 scsi_reserve 去掉。</p>
<p>只在一个节点上执行如下操作：<br />
pvcreate /dev/sda<br />
vgcreate vg /dev/sda<br />
lvcreate -l 18431 -n lv1 vg<br />
gfs_mkfs -j 2 -p lock_dlm -t alpha_cluster:gfs /dev/vg/lv1</p>
<p>挂载后即可使用<br />
mount -t gfs /dev/vg/lv1 /mnt<br />
可以写入 /etc/rc.local 开机自动挂载。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/08/28/centos4-gfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 安装过程中使用 softraid 和 LVM</title>
		<link>http://bluedata.org/2008/06/24/centos-install-with-softraid-lvm/</link>
		<comments>http://bluedata.org/2008/06/24/centos-install-with-softraid-lvm/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 06:30:14 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[mdadm]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/centos-install-with-softraid-lvm/</guid>
		<description><![CDATA[磁盘分区设置开始时 Alt+F2 切换到 shell 进行如下操作：
fdisk /dev/sda
分两个主分区， sda1 100M ，剩下的全给 sda2 ，并且把分区类型都设为 fd
/dev/sdb 也做同样操作。 
创建 RAID1
mdadm -C /dev/md0 -l1 -n2 -c128 /dev/sd[a,b]1
mdadm -C /dev/md1 -l1 -n2 -c128 /dev/sd[a,b]2
创建 VG
lvm pvcreate /dev/md1
lvm vgcreate vg0 /dev/md1
然后 Alt+F1 切换回安装界面继续使用 Disk Druid 进行分区操作：
编辑 /dev/md0 ，格式化为 ext3 ，挂载点设为 /boot
在 vg0 上添加逻辑卷挂载根 swap 及其它目录。
安装完成进入系统后执行如下操作：
grub
> device (hd0) /dev/sda
> root (hd0,0)
> setup (hd0)
> device [...]]]></description>
			<content:encoded><![CDATA[<p>磁盘分区设置开始时 Alt+F2 切换到 shell 进行如下操作：<br />
fdisk /dev/sda<br />
分两个主分区， sda1 100M ，剩下的全给 sda2 ，并且把分区类型都设为 fd<br />
/dev/sdb 也做同样操作。 </p>
<p>创建 RAID1<br />
mdadm -C /dev/md0 -l1 -n2 -c128 /dev/sd[a,b]1<br />
mdadm -C /dev/md1 -l1 -n2 -c128 /dev/sd[a,b]2</p>
<p>创建 VG<br />
lvm pvcreate /dev/md1<br />
lvm vgcreate vg0 /dev/md1</p>
<p>然后 Alt+F1 切换回安装界面继续使用 Disk Druid 进行分区操作：<br />
编辑 /dev/md0 ，格式化为 ext3 ，挂载点设为 /boot<br />
在 vg0 上添加逻辑卷挂载根 swap 及其它目录。</p>
<p>安装完成进入系统后执行如下操作：<br />
grub<br />
> device (hd0) /dev/sda<br />
> root (hd0,0)<br />
> setup (hd0)<br />
> device (hd1) /dev/sdb<br />
> root (hd1,0)<br />
> setup (hd1)</p>
<p>如果不能引导，重新用光盘引导系统， linux rescue 进入修复模式执行以上操作。</p>
<p>更换从盘 sdb ：<br />
进入系统后执行 fdisk /dev/sdb ，创建和安装系统时一样的分区结构。</p>
<p>然后重新加入 RAID<br />
mdadm /dev/md0 --add /dev/sdb1<br />
mdadm /dev/md1 --add /dev/sdb2</p>
<p>再把 grub 写入 MBR<br />
grub<br />
> device (hd1) /dev/sdb<br />
> root (hd1,0)<br />
> setup (hd1)</p>
<p>更换主盘 sda 需要互换 sda 和 sdb 的数据线接口再进行上述操作。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/06/24/centos-install-with-softraid-lvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS(RHEL) 开机自动加载内核模块</title>
		<link>http://bluedata.org/2008/06/14/centos_rhel-auto-load-modules/</link>
		<comments>http://bluedata.org/2008/06/14/centos_rhel-auto-load-modules/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 02:16:31 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Redhat]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/centos_rhel-auto-load-modules/</guid>
		<description><![CDATA[CentOS4(RHEL4) 的 /etc/rc.sysinit 文件中有这样一段：

# Load modules (for backward compatibility with VARs)
if [ -f /etc/rc.modules ]; then
        /etc/rc.modules
fi

所以，可以创建 /etc/rc.modules 文件来加载模块。如：
vi /etc/rc.modules

#!/bin/sh
#
# This script will be load other user-defined modules.
modprobe softdog

chmod +x /etc/rc.modules
而在 CentOS5(RHEL5) 的 /etc/rc.sysinit 文件的上述一段之前还有一段：

# Load other user-defined modules
for file in /etc/sysconfig/modules/*.modules ; do
  [ -x $file [...]]]></description>
			<content:encoded><![CDATA[<p>CentOS4(RHEL4) 的 /etc/rc.sysinit 文件中有这样一段：<br />
<coolcode lang="cpp" linenum="off"><br />
# Load modules (for backward compatibility with VARs)<br />
if [ -f /etc/rc.modules ]; then<br />
        /etc/rc.modules<br />
fi<br />
</coolcode></p>
<p>所以，可以创建 /etc/rc.modules 文件来加载模块。如：<br />
vi /etc/rc.modules<br />
<coolcode lang="cpp" linenum="off"><br />
#!/bin/sh<br />
#<br />
# This script will be load other user-defined modules.</p>
<p>modprobe softdog<br />
</coolcode></p>
<p>chmod +x /etc/rc.modules</p>
<p>而在 CentOS5(RHEL5) 的 /etc/rc.sysinit 文件的上述一段之前还有一段：<br />
<coolcode lang="cpp" linenum="off"><br />
# Load other user-defined modules<br />
for file in /etc/sysconfig/modules/*.modules ; do<br />
  [ -x $file ] &#038;& $file<br />
done<br />
</coolcode></p>
<p>可以参照 /etc/sysconfig/modules 目录下的 udev-stw.modules 创建一个以 .modules 结尾的可执行文件来加载模块。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/06/14/centos_rhel-auto-load-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 5.1 安装 Oracle 10gR2</title>
		<link>http://bluedata.org/2008/04/26/centos5-install-oracle10gr2/</link>
		<comments>http://bluedata.org/2008/04/26/centos5-install-oracle10gr2/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 01:23:00 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[操作系统]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/centos5-install-oracle10gr2/</guid>
		<description><![CDATA[Oracle 10gR2 安装的硬件需求
所需最小内存为 512MB，而所需最小交换空间为 1GB。
对于内存小于或等于 2GB 的系统，交换空间应为 RAM 数量的两倍；对于内存大于 2GB 的系统，交换空间应为 RAM 数量的一到两倍。
Oracle 10gR2 软件还需要 2.5GB 的可用磁盘空间，而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。
据此，根据宿主机器的情况，在 VMware 上创建了虚拟主机。内存 1GB，一块 20GB 的 IDE 硬盘。
CentOS 5.1 的安装
文本模式安装（linux text），安装完成默认启动的是文本界面（init 3）。
选择 简体中文，但文本安装模式不支持 utf8，所以安装过程还是英文模式，但安装完成后的系统是中文的。
分区如下（安装完成后 df -h 的输出）：

Filesystem            Size  Used Avail Use% Mounted [...]]]></description>
			<content:encoded><![CDATA[<p>Oracle 10gR2 安装的硬件需求<br />
所需最小内存为 512MB，而所需最小交换空间为 1GB。<br />
对于内存小于或等于 2GB 的系统，交换空间应为 RAM 数量的两倍；对于内存大于 2GB 的系统，交换空间应为 RAM 数量的一到两倍。<br />
Oracle 10gR2 软件还需要 2.5GB 的可用磁盘空间，而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。</p>
<p>据此，根据宿主机器的情况，在 VMware 上创建了虚拟主机。内存 1GB，一块 20GB 的 IDE 硬盘。</p>
<p>CentOS 5.1 的安装<br />
文本模式安装（linux text），安装完成默认启动的是文本界面（init 3）。<br />
选择 简体中文，但文本安装模式不支持 utf8，所以安装过程还是英文模式，但安装完成后的系统是中文的。</p>
<p>分区如下（安装完成后 df -h 的输出）：<br />
<coolcode linenum="off"><br />
Filesystem            Size  Used Avail Use% Mounted on<br />
/dev/hda1             965M  223M  693M  25% /<br />
/dev/hda3             965M   21M  895M   3% /tmp<br />
/dev/hda6             1.9G   70M  1.8G   4% /var<br />
/dev/hda5             3.8G  1.5G  2.2G  40% /usr<br />
</coolcode></p>
<p>/dev/hda2 为 2GB 的 swap 分区，留了 10GB 空间安装 Oracle 10gR2，还没有分区。</p>
<p>时区去掉 使用 UTC。</p>
<p>默认要安装的包全去掉，选上自定义包，然后只选了 Gnome 桌面环境和 X Window System，其它的都去掉。<br />
Oracle 10gR2 的安装需要桌面环境。</p>
<p>第一次启动时的 Steup Agent:<br />
防火墙设置里关闭了防火墙，禁用了 SELinux。<br />
系统服务只留下了 crond network sshd syslog vncserver xfs<br />
vncserver 是为了远程通过图形界面安装 Oracle 10gR2。为了使用中文需要开启 xfs 字体服务。</p>
<p>安装 Oracle 10gR2 前的系统配置<br />
配置 Linux 内核参数<br />
设置共享内存<br />
设置 SHMMAX<br />
SHMMAX 参数定义共享内存段的最大大小（以字节为单位）。Oracle SGA 由共享内存组成，且错误设置 SHMMAX 可能会限制 SGA 的大小。<br />
在设置 SHMMAX 时，切记 SGA 的大小应该适合于一个共享内存段。SHMMAX 设置不足可能会导致以下问题：<br />
ORA-27123:unable to attach to shared memory segment</p>
<p>可以通过执行以下命令确定 SHMMAX 的值：<br />
cat /proc/sys/kernel/shmmax<br />
4294967295</p>
<p>SHMMAX 的默认值为 4GB。这个值对于配置 Oracle SGA 足够了。RHEL3 或 RHEL4 的默认值为 33554432(32MB)，在早期的安装手册中就把这个值调整为了 2147483648(2GB)。</p>
<p>设置 SHMMNI<br />
这个内核参数用于设置系统范围内共享内存段的最大数量。<br />
可以通过执行以下命令确定 SHMMNI 的值：<br />
cat /proc/sys/kernel/shmmni<br />
4096</p>
<p>SHMMNI 的默认设置足以满足 Oracle 10gR2 安装的需要。</p>
<p>设置 SHMALL<br />
SHMALL 共享内存内核参数。该参数控制系统一次可以使用的共享内存总量（以页为单位）。简言之，该参数的值始终应至少为：ceil(SHMMAX/PAGE_SIZE)<br />
可以使用以下命令进行查询：<br />
cat /proc/sys/kernel/shmall<br />
268435456</p>
<p>SHMALL 的默认设置足以满足 Oracle 10gR2 安装的需要。</p>
<p>设置信号<br />
使用以下命令查看所有信号限制：<br />
cat /proc/sys/kernel/sem<br />
250     32000   32      128</p>
<p>依次为：<br />
SEMMSL: 用于控制每个信号集合的最大信号数。<br />
        Oracle 建议将 SEMMSL 设置为 init.ora 文件（适用于 Linux 系统上所有数据库）中的最大 PROCESS 实例参数设置再加上 10。此外，Oracle 建议将 SEMMSL 设置为不小于 100。<br />
SEMMNI: 用于控制整个 Linux 系统中信号集的最大数量。Oracle 建议将 SEMMNI 设置为不小于 100。<br />
SEMMNS: 用于控制整个 Linux 系统中的信号（而非信号集）的最大数量。<br />
        Oracle 建议将 SEMMNS 设置为系统上每个数据库的 PROCESSES 实例参数设置之和，加上最大的 PROCESSES 的两倍，最后为系统上的每个 Oracle 数据库加上 10。<br />
SEMOPM: 用于控制每个 semop 系统调用可以执行的信号操作数。Oracle 建议将 SEMOPM 设置为不小于 100。</p>
<p>默认设置满足 Oracle 10gR2 安装的需要。</p>
<p>设置文件句柄<br />
文件句柄的设置表示 Linux 系统上可以打开的文件数。使用以下命令来确定整个系统中文件句柄的最大数量：<br />
cat /proc/sys/fs/file-max<br />
102408</p>
<p>Oracle 建议将整个系统的文件句柄值至少设置为 65536。默认设置足以满足 Oracle 10gR2 安装的需要。</p>
<p>一些早期版本的 CentOS(RHEL) 这些参数的默认值较小，所以需要调整的大一些。而在 CentOS5 中，这些参数的默认值就已经满足 Oracle 安装的需求了，也就不需要再做调整了。</p>
<p>软件需求<br />
需要安装以下程序包：<br />
make-3.81-1.1<br />
glibc-2.5-18<br />
glibc-devel-2.5-18<br />
glibc-headers-2.5-18<br />
gcc-4.1.2-14.el5<br />
compat-db-4.2.52-5.1<br />
compat-gcc-34-3.4.6-4<br />
compat-gcc-34-c++-3.4.6-4<br />
compat-libstdc++-33-3.2.3-61</p>
<p>openmotif-2.3.0-0.3.el5<br />
setarch-2.0-1.1</p>
<p>查看系统上安装了这些程序包的哪些版本，以 root 用户身份运行以下命令：<br />
rpm -q make glibc glibc-devel glibc-headers gcc compat-db compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 openmotif setarch<br />
缺什么就装什么。例如这里用 yum 安装了这些没有安装的包：<br />
yum install gcc compat-db compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 openmotif<br />
yum 会自动解决依赖问题。为方便安装，可以把 yum 设置为通过 DVD 光盘安装。（http://blog.bluedata.org/centos-yum-use-dvd-iso/）</p>
<p>创建安装 Oracle 10gR2 软件的分区及数据库的分区。<br />
fdisk /dev/hda<br />
把剩余的 10gR2B 空间平分为两个分区（/dev/hda7 /dev/hda8）并创建文件系统<br />
mkfs -t ext3 -L /u01 /dev/hda7<br />
mkfs -t ext3 -L /u02 /dev/hda8</p>
<p>创建挂载点<br />
mkdir /u01 /u02</p>
<p>在 /etc/fstab 文件中添加<br />
LABEL=/u01              /u01                    ext3    defaults        1 2<br />
LABEL=/u02              /u02                    ext3    defaults        1 2</p>
<p>挂载<br />
mount -a</p>
<p>创建目录及用户<br />
mkdir -p /u01/app<br />
groupadd -g 115 dba<br />
useradd -u 175 -g 115 -d /u01/app/oracle -s /bin/bash -c "Oracle Software Owner" -p oracle oracle<br />
chown -R oracle:dba /u01 /u02<br />
passwd oracle</p>
<p>配置 VNCServer 远程登录<br />
切换到 oracle 用户<br />
su - oracle<br />
vncserver<br />
设置密码并修改 .vnc/xstartup 文件，配置 VNC 使用中文的 Gnome 桌面环境。<br />
<coolcode lang="cpp" linenum="off"><br />
#!/bin/sh</p>
<p># Uncomment the following two lines for normal desktop:<br />
# unset SESSION_MANAGER<br />
# exec /etc/X11/xinit/xinitrc</p>
<p>export LANG="zh_CN.GBK"</p>
<p>[ -x /etc/vnc/xstartup ] &#038;& exec /etc/vnc/xstartup<br />
[ -r $HOME/.Xresources ] &#038;& xrdb $HOME/.Xresources<br />
xsetroot -solid grey<br />
vncconfig -iconic &#038;<br />
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &#038;<br />
#twm &#038;<br />
gnome-session<br />
</coolcode></p>
<p>exit 回到 root 下，修改 /etc/sysconfig/vncservers 文件<br />
VNCSERVERS="1:root 2:oracle"<br />
VNCSERVERARGS[1]="-geometry 800x600"<br />
VNCSERVERARGS[2]="-geometry 800x600"</p>
<p>重启一下 VNCServer<br />
/etc/init.d/vncserver restart</p>
<p>之后，可以通过 VNC 客户端远程连接了。</p>
<p>设置 oracle 用户的环境变量<br />
su - oracle<br />
vi .bash_profile<br />
export LANG=en_US.UTF-8<br />
export ORACLE_BASE=/u01/app/oracle<br />
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1<br />
export ORACLE_SID=orcl<br />
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin<br />
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib</p>
<p>bash 使用英文环境是为了避免中文安装界面及运行 Oracle 应用程序的乱码问题。<br />
需要再配置一下 gnome-terminal，VNC 以 oracle 用户登录，打开 应用程序 -> 附件 -> 终端，做如下设置：<br />
编辑 -> 当前配置文件 -> 标题和命令，勾选上 以登录 Shell 方式运行命令。<br />
这样，中文界面下的 gnome-terminal 的环境就是英文的了。</p>
<p>exit</p>
<p>准备安装文件<br />
unzip -d /u01/app/oracle/orainstall /usr/local/src/10201_database_linux32.zip<br />
chown -R oracle:dba /u01/app/oracle/orainstall</p>
<p>安装 Oracle 10gR2<br />
vnc 用 oracle 用户登录后开始正式安装<br />
因为 Oracle 10gR2 不支持 CentOS 操作系统，需要跳过操作系统验证，使用以下命令安装：<br />
/u01/app/oracle/orainstall/database/runInstaller -ignoreSysPrereqs</p>
<p>1.  欢迎页面。直接点击 Next<br />
2.  选择安装类型。企业版，产品语言中添加 简体中文。<br />
3.  安装路径。使用默认值，Next<br />
4.  安装环境的检查。查看一下是否有问题，有问题就解决问题。对于操作系统版本不被支持的警告可以忽略。<br />
5.  不创建数据库，选择 只安装数据库软件。<br />
6.  摘要。点击 Install 开始安装。<br />
7.  需要以 root 用户执行脚本，执行完后点击 OK<br />
8.  结束安装。</p>
<p>创建数据库<br />
打开 终端，运行 dbca<br />
1.  欢迎页面。直接点击 Next<br />
2.  选择创建数据库。<br />
3.  选择默认的模板，点击 Next<br />
4.  设置数据库名和 SID<br />
5.  使用 Enterprise Manager<br />
6.  创建用户密码。<br />
7.  存储选项。使用文件系统。<br />
8.  数据库文件路径。Use Common Location for All Database Files: /u02/oradata<br />
9.  闪回目录。/u02/flash_recover_area 。开启归档日志。<br />
10. Sample Schemas 选上可以创建示例。<br />
11. 初始化参数。Character Sets 改为 ZHS16GBK ，语言选择 简体中文，日期格式选择 中国。<br />
12. Database Storage 。可根据需要配置。<br />
13. 创建数据库和创建脚本。<br />
14. 配置详情。结束。</p>
<p>安装后的任务<br />
启动/停止数据库<br />
以 root 用户编辑 /etc/oratab，该文件指定了使用 dbstart/dbshut 工具时哪些数据库实例会被 启动/关闭。文件格式为：<br />
$ORACLE_SID:$ORACLE_HOME:<N|Y><br />
如果最后一列为 Y，那么在 $ORACLE_HOME 目录下的 SID 为 $ORACLE_SID 的实例会由 dbstart 工具启动。<br />
编辑完成后保存。然后以 oracle 用户运行 dbstart 命令，数据库启动。停止数据库以 oracle 用户运行 dbshut 命令。</p>
<p>无法启动 Listener 的问题<br />
提示：Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr<br />
vi $ORACLE_HOME/bin/dbstart<br />
把 ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle 替换为 ORACLE_HOME_LISTNER=$ORACLE_HOME</p>
<p>启动/停止 Oracle Listener<br />
启动 Listener 以 oracle 用户运行命令 lsnrctl start<br />
停止 Listener 以 oracle 用户运行命令 lsnrctl stop</p>
<p>为便于管理，创建一个启动脚本<br />
vi /etc/init.d/oracle<br />
<coolcode lang="cpp" linenum="off"><br />
#!/bin/bash<br />
# chkconfig: 0356 95 1<br />
# description: init script to start/stop Oracle Database 10gR2, TNS listener, isQL*Plus, EMS</p>
<p># match these values to your environment:<br />
export ORACLE_BASE=/u01/app/oracle<br />
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1<br />
export ORACLE_SID=orcl<br />
export PATH=$PATH:$ORACLE_HOME/bin<br />
export ORACLE_USER=oracle<br />
# see how we are called:<br />
case $1 in<br />
start)<br />
su - "$ORACLE_USER" -c "$ORACLE_HOME/bin/dbstart"<br />
su - "$ORACLE_USER" -c "$ORACLE_HOME/bin/isqlplusctl start"<br />
su - "$ORACLE_USER" -c "$ORACLE_HOME/bin/emctl start dbconsole"<br />
;;<br />
stop)<br />
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"<br />
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"<br />
su - "$ORACLE_USER" -c "$ORACLE_HOME/bin/isqlplusctl stop"<br />
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"<br />
;;<br />
*)<br />
echo "Usage: $0 {start|stop}"<br />
;;<br />
esac<br />
</coolcode></p>
<p>chmod +x /etc/init.d/oracle<br />
chkconfig --add oracle</p>
<p>登录地址<br />
isQL*Plus URL:<br />
http://oracle:5560/isqlplus<br />
isQL*Plus DBA URL:<br />
http://oracle:5560/isqlplus/dba<br />
Enterprise Manager 10gR2 Database Control URL:<br />
http://oracle:1158/em</p>
<p>解决 OEM 乱码问题<br />
分别进入以下三个目录：<br />
$ORACLE_HOME/jdk/jre/lib<br />
$ORACLE_HOME/jre/1.4.2/lib<br />
$ORACLE_HOME/javavm/lib/ojvmfonts</p>
<p>替换字体配置文件<br />
mv font.properties font.properties.bak<br />
cp -a font.properties.zh_CN.Redhat font.properties</p>
<p>如果之前已经运行过 OEM，需要进入 OEM 的缓存图片目录清除缓存图片<br />
cd $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zht<br />
rm -f *.gif *.imx</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/04/26/centos5-install-oracle10gr2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS5.1 mdadm 及 LVM 的试验</title>
		<link>http://bluedata.org/2008/04/03/centos-mdadm-lvm/</link>
		<comments>http://bluedata.org/2008/04/03/centos-mdadm-lvm/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 10:32:56 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[存储备份]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[mdadm]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/centos-mdadm-lvm/</guid>
		<description><![CDATA[有这样一个需求：为内部网络的 PC 提供共享存储、备份，没有太强的读写压力，资金投入也有限，但需要够安全，而且为逐渐增长的数据量考虑，需要扩容方便。
于是，打算通过 mdadm 和 LVM 来实现。用这样的硬件：内部空间够大，电源够强劲，扇热要好，支持多个 SATA 接口的塔式机。
为了不浪费空间，用一块小硬盘装系统，比如一块 20G 的 IDE 硬盘。3块别的老 PC 上拆下来 80G SATA 硬盘。
在 VMware 上模拟了一下。因为需要模拟 SATA 硬盘，建立虚拟机时用了 SCSI 硬盘。要选择 RedHat Enterprise 版才能支持 SCSI 硬盘。
使用 VMware-gsx-server-3.2.1 发现在较大的（试验了 160G/250G）虚拟硬盘上的 RAID5 recovery 到尾声时会死机，重启后又要从头再来，但依然会死机，周而复始。换成 VMware-server-1.0.3 后就没有问题了。
在 hda 安装了 CentOS 5.1 ，最小化安装。安装过程没有对 sda, sdb, sdc 进行分区。
用 mdadm 创建 RAID
# mdadm -C /dev/md0 -l5 -n3 -c128 [...]]]></description>
			<content:encoded><![CDATA[<p>有这样一个需求：为内部网络的 PC 提供共享存储、备份，没有太强的读写压力，资金投入也有限，但需要够安全，而且为逐渐增长的数据量考虑，需要扩容方便。<br />
于是，打算通过 mdadm 和 LVM 来实现。用这样的硬件：内部空间够大，电源够强劲，扇热要好，支持多个 SATA 接口的塔式机。<br />
为了不浪费空间，用一块小硬盘装系统，比如一块 20G 的 IDE 硬盘。3块别的老 PC 上拆下来 80G SATA 硬盘。</p>
<p>在 VMware 上模拟了一下。因为需要模拟 SATA 硬盘，建立虚拟机时用了 SCSI 硬盘。要选择 RedHat Enterprise 版才能支持 SCSI 硬盘。<br />
使用 VMware-gsx-server-3.2.1 发现在较大的（试验了 160G/250G）虚拟硬盘上的 RAID5 recovery 到尾声时会死机，重启后又要从头再来，但依然会死机，周而复始。换成 VMware-server-1.0.3 后就没有问题了。<br />
在 hda 安装了 CentOS 5.1 ，最小化安装。安装过程没有对 sda, sdb, sdc 进行分区。</p>
<p>用 mdadm 创建 RAID<br />
# mdadm -C /dev/md0 -l5 -n3 -c128 /dev/sd[a,b,c]<br />
参数所代表的意思可以用 man mdadm 查看。<br />
基本命令<br />
# mdadm -A /dev/md0  #启动阵列<br />
# mdadm -S /dev/md0  #停止阵列（停止前必须先 umount）<br />
# mdadm -D /dev/md0  #显示阵列详细信息</p>
<p># watch "cat /proc/mdstat"<br />
可以看到 RAID 的 recovery 过程。<br />
此时 RAID 已经可以使用了。</p>
<p>LVM 初始化<br />
# vgscan<br />
创建 PV<br />
# pvcreate /dev/md0<br />
创建 VG<br />
# vgcreate vga /dev/md0<br />
创建 LV<br />
# lvcreate -l 40959 -n lv1 vga<br />
在 LV 上建立文件系统<br />
# mkfs -t ext3 -L /data /dev/vga/lv1<br />
挂载<br />
# mkdir /data<br />
# mount -t ext3 -o defaults /dev/vga/lv1 /data<br />
测试<br />
# cd /data<br />
# dd if=/dev/zero of=test bs=1024k count=1k<br />
# dd if=test of=/dev/null</p>
<p>recovery 结束后，生成 /etc/mdadm.conf 文件，在系统重启后自动启用 RAID<br />
# mdadm -Ds > /etc/mdadm.conf<br />
编辑 /etc/mdadm.conf 文件，在顶部加入如下一行：<br />
DEVICE /dev/sd*</p>
<p>在 /etc/fstab 尾部加入一行<br />
LABEL=/data             /data                   ext3    defaults        0 0<br />
重启后自动挂载。</p>
<p>接着，模拟这样一种状况：为了扩容，要给 RAID 加入一块硬盘。<br />
关机，给 VM 添加一块 80G 的 SCSI 硬盘后启动。<br />
给 RAID 添加硬盘<br />
# mdadm /dev/md0 -a /dev/sdd<br />
此时，新添加的硬盘会被作为 spare<br />
把 RAID 设备设置为4个，使用新硬盘<br />
# mdadm -G /dev/md0 -n4<br />
扩充 PV<br />
# pvresize /dev/md0<br />
扩充 LV<br />
# lvextend -l +20480 /dev/vga/lv1<br />
扩大文件系统大小<br />
# resize2fs /dev/vga/lv1<br />
此命令可在 mount 时操作。并且同时 dd 模拟写入和读取文件，除了速度变慢，没有发现异常。</p>
<p>再来模拟这样一种情况：空间又被用完了，需要更大的存储空间，再找来3块 160G 的硬盘扩容。为了安全，还是把这三块硬盘组成 RAID5 。<br />
关机，给 VM 添加三块 160G 的 SCSI 硬盘后启动。<br />
CentOS5(RHEL5) 使用了 udev 来管理系统设备文件名，/dev 目录下只有 md0，需要手动建立 RAID 设备。<br />
# mknod /dev/md1 b 9 1<br />
# chown root:disk /dev/md1<br />
# chmod 640 /dev/md1<br />
为了在重启后能自动创建 md1 ，还需如下设置<br />
# mkdir /etc/udev/devices<br />
# cp -a /dev/md1 /etc/udev/devices/</p>
<p>建立 RAID<br />
# mdadm -C /dev/md1 -l5 -n3 -c128 /dev/sd[e,f,g]</p>
<p>创建 PV<br />
# pvcreate /dev/md1<br />
扩充 VG<br />
# vgextend vga /dev/md1<br />
扩充 LV<br />
# lvextend -l +81919 /dev/vga/lv1<br />
扩充分区大小：<br />
# resize2fs /dev/vga/lv1<br />
此间，继续使用 dd 模拟读写，没有问题。<br />
把第二个 RAID 的配置也写入配置文件<br />
# mdadm -Ds | grep md1 >> /etc/mdadm.conf</p>
<p>模拟设备损坏的情况<br />
将 /dev/sdb 标记为已损坏的设备<br />
# mdadm /dev/md0 -f /dev/sdb<br />
移除损坏的设备<br />
# mdadm /dev/md0 -r /dev/sdb<br />
此时可用 dd 模拟读写。<br />
更换设备并重新添加到 RAID 中<br />
# mdadm /dev/md0 -a /dev/sdb<br />
会重新 recovery ，同样，可以 dd 模拟下读写。</p>
<p>如果发现缺失某个设备后 RAID 不能启动，可以使用剩余设备启动 RAID<br />
# mdadm -A --run /dev/md1 /dev/sde /dev/sdf</p>
<p>此后又再给 md1 添加了一块硬盘 sdh 进行相应测试，还是正常的。</p>
<p>特殊情况，去掉一个 PV<br />
# umount /data<br />
# resize2fs -f /dev/vga/lv1 240G<br />
# lvreduce -l -81919 /dev/vga/lv1<br />
# vgreduce vga /dev/md1<br />
不建议在生产系统上减小 LV<br />
这本来是想用来试验大 PV 替换小 PV 的，但为了安全，还是把老 LV 的数据复制到新的 LV 后再做打算。</p>
<p>有了更大的硬盘（250G*4, VMware 只能创建小于 256G 的虚拟硬盘）用来扩容，为了留出机箱空间并降低电力消耗，需要把老硬盘上的数据转移到新硬盘。<br />
先用新硬盘组成的 RAID5<br />
# mknod /dev/md2 b 9 2<br />
# chown root:disk /dev/md2<br />
# chmod 640 /dev/md2<br />
# cp -a /dev/md2 /etc/udev/devices/<br />
# mdadm -C /dev/md2 -l5 -n4 -c128 /dev/sd[i,j,k,l]<br />
# mdadm -Ds | grep md2 >> /etc/mdadm.conf</p>
<p>依然使用 LVM<br />
# pvcreate /dev/md2<br />
# vgcreate vg0 /dev/md2<br />
# lvcreate -l 191999 -n lv1 vg0<br />
# mkfs -t ext3 /dev/vg0/lv1</p>
<p>把 /dev/vg0/lv1 挂载上后便可以复制数据了，cp, rsync 都行。</p>
<p>当有大量小文件时，用 dd 复制，并把块设置的大些，速度会非常快。<br />
为保证数据同步，先卸载<br />
# umount /data<br />
然后复制<br />
# dd if=/dev/vga/lv1 of=/dev/vg0/lv1 bs=16MB<br />
用 dd 复制还可以跳过 mkfs 的过程。<br />
在 VMware 中，就算没有使用预分配空间的磁盘模式，也会进行完全复制填满磁盘空间。可以在复制开始一会儿后就结束 dd 进程，节约空间和时间。</p>
<p>挂载，检查一下数据完整性<br />
# mount -t ext3 -o defaults /dev/vg0/lv1 /mnt</p>
<p>用 dd 复制会把新的 LV 容量变成和老的一样大，需要调整容量<br />
# resize2fs /dev/vg0/lv1</p>
<p>没有问题的话，就修改 LV 卷标，以便系统重启后能挂载新的 LV<br />
# e2label /dev/vga/lv1 /backup<br />
# e2label /dev/vg0/lv1 /data</p>
<p>如果要把老的 LV 转移到另外的机器上，需要备份 LVM 卷组信息以及 mdadm 的配置<br />
先查看一下 /etc/lvm/backup/vga 是否存在，没有的话就创建备份<br />
# vgcfgbackup<br />
把 /etc/lvm/backup/vga 和 /etc/mdadm.conf 备份到远程主机上。<br />
这还可以用于恢复存储服务器操作系统崩溃而导致的 LVM 不可用。比如 hda 损坏了。</p>
<p>重装系统时，千万不要对 sd* 进行操作—重建分区表，这会导致 LVM 信息的丢失。<br />
在真实设备上操作时，为了安全，可以先安装完系统再给硬盘通电。</p>
<p>先恢复 RAID<br />
把 mdadm.conf 恢复到新系统的 /etc 目录下，启动 RAID<br />
# mdadm -A /dev/md0<br />
# mdadm -A /dev/md1<br />
再恢复 LVM<br />
# vgcfgrestore -f vga vga<br />
第一个 vga 是备份的文件名，第二个是要还原的 Volume Group Name 。如果 vga 这个卷组名被占用了，需要重命名。<br />
# vgscan<br />
# pvscan<br />
然后启动 VG<br />
# vgchange -a y vga<br />
再扫描 LV<br />
# lvscan<br />
恢复完成，可以挂载并使用了。</p>
<p>至此，VMware 试验完成，可在真实硬件设备上试验了。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/04/03/centos-mdadm-lvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS5(RHEL5) 下 YUM 使用 DVD 光盘或 ISO 文件</title>
		<link>http://bluedata.org/2008/03/07/centos-yum-use-dvd-iso/</link>
		<comments>http://bluedata.org/2008/03/07/centos-yum-use-dvd-iso/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 07:39:10 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/centos-yum-use-dvd-iso/</guid>
		<description><![CDATA[先把光盘或 ISO 文件挂载到文件系统：
# mkdir /media/CentOS
挂载光盘
# mount /dev/cdrom /media/CentOS
或挂载 ISO 文件
mount -o loop /home/iso/CentOS-5.1-i386-bin-DVD.iso /media/CentOS
然后修改 /etc/yum.repos.d/Centos-Media.repo 文件的内容如下：
[c5-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
gpgcheck=0
再把 Centos-Basic.repo 改名：
# cd /etc/yum.repos.d
# mv Centos-Basic.repo Centos-Basic.repo.bak
yum 安装软件时就是使用光盘或者 ISO 文件了。
]]></description>
			<content:encoded><![CDATA[<p>先把光盘或 ISO 文件挂载到文件系统：<br />
# mkdir /media/CentOS<br />
挂载光盘<br />
# mount /dev/cdrom /media/CentOS<br />
或挂载 ISO 文件<br />
mount -o loop /home/iso/CentOS-5.1-i386-bin-DVD.iso /media/CentOS</p>
<p>然后修改 /etc/yum.repos.d/Centos-Media.repo 文件的内容如下：<br />
[c5-media]<br />
name=CentOS-$releasever - Media<br />
baseurl=file:///media/CentOS/<br />
gpgcheck=0</p>
<p>再把 Centos-Basic.repo 改名：<br />
# cd /etc/yum.repos.d<br />
# mv Centos-Basic.repo Centos-Basic.repo.bak</p>
<p>yum 安装软件时就是使用光盘或者 ISO 文件了。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2008/03/07/centos-yum-use-dvd-iso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>扩展 CentOS 的 YUM 源（DAG）</title>
		<link>http://bluedata.org/2007/07/17/centos-yum-dag/</link>
		<comments>http://bluedata.org/2007/07/17/centos-yum-dag/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 03:02:52 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[dag]]></category>
		<category><![CDATA[Redhat]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/yum-dag/</guid>
		<description><![CDATA[这里是安装方式：
http://dag.wieers.com/rpm/FAQ.php#B
虽然是针对 Red Hat Enterprise Linux 的，但是 CentOS 一样可用。
看看有些什么包：
http://dag.wieers.com/rpm/packages.php
呵...
]]></description>
			<content:encoded><![CDATA[<p>这里是安装方式：<br />
<a target="_blank" href="http://dag.wieers.com/rpm/FAQ.php#B">http://dag.wieers.com/rpm/FAQ.php#B</a><br />
虽然是针对 Red Hat Enterprise Linux 的，但是 CentOS 一样可用。<br />
看看有些什么包：<br />
<a target="_blank" href="http://dag.wieers.com/rpm/packages.php">http://dag.wieers.com/rpm/packages.php</a><br />
呵...</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2007/07/17/centos-yum-dag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 升级到 2.6 内核 CPU 温度过高的问题</title>
		<link>http://bluedata.org/2006/07/14/cpu-temperature-above-threshold/</link>
		<comments>http://bluedata.org/2006/07/14/cpu-temperature-above-threshold/#comments</comments>
		<pubDate>Fri, 14 Jul 2006 06:16:05 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[操作系统]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[temperature]]></category>

		<guid isPermaLink="false">http://blog.bluedata.org/cpu-temperature-above-threshold/</guid>
		<description><![CDATA[CentOS 升级到 2.6 的内核后，总是出现：
CPU0: Temperature above threshold
CPU0: Running in modulated clock mode
 
确认没有超频，检查了 CPU 风扇，散热没有问题，CPU 的温度较之使用 2.4 内核的时候也没有升高。
可是，只要编译东西就会说 CPU 温度过高，CPU 占用率稍微高一些也会频繁出现上面的两行警告，让人好生心烦。
 
查询资料后得知是 2.6 内核的相应阀值过低造成了这种状况。
 
vi /etc/syslog.conf
注释掉 *.emerg 这一行
/etc/init.d/syslog restart
 
就不会出现 CPU 温度过高的警告了。
]]></description>
			<content:encoded><![CDATA[<p>CentOS 升级到 2.6 的内核后，总是出现：<br />
CPU0: Temperature above threshold<br />
CPU0: Running in modulated clock mode<br />
 <br />
确认没有超频，检查了 CPU 风扇，散热没有问题，CPU 的温度较之使用 2.4 内核的时候也没有升高。<br />
可是，只要编译东西就会说 CPU 温度过高，CPU 占用率稍微高一些也会频繁出现上面的两行警告，让人好生心烦。<br />
 <br />
查询资料后得知是 2.6 内核的相应阀值过低造成了这种状况。<br />
 <br />
vi /etc/syslog.conf<br />
注释掉 *.emerg 这一行<br />
/etc/init.d/syslog restart<br />
 <br />
就不会出现 CPU 温度过高的警告了。</p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2006/07/14/cpu-temperature-above-threshold/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
