快捷搜索:  

架设某大型网站服务器之全部过程(3)

注:

一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824,如上;如物理内存是 1G,则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912;以此类推。

建议永久地增加 shmmax 设置。

sem 4 个参数依次为SEMMSL(每个用户拥有信号量最大数);SEMMNS(系统信号量最大数);SEMOPM(每次semopm系统调用操作数); SEMMNI(系统辛苦量集数最大数).Shmmax 最大共享内存,官方文档建议是内存的1/2,Shmmni 最小共享内存 4096KB.Shmall 所有内存大小 。

b) 设置oracle对文件的要求:

编辑文件:#vi /etc/security/limits.conf 加入以下语句:

oracle  soft  nofile  65536

            oracle  hard  nofile 65536

            oracle  soft  nproc  16384

            oracle  hard  nproc  16384

            也可以写成:

            * soft  nofile  65536

            *  hard  nofile 65536

            * soft  nproc  16384

            * hard  nproc  16384

            c) gcc降级

            #mv /usr/bin/gcc /usr/bin/gcc34

            #ln –s /usr/bin/gcc32 /usr/bin/gcc

            #mv /usr/bin/g   /usr/bin/g  34

            #ln –s /usr/bin/g  32 /usr/bin/g  
5,安装oracle补丁

# cd /opt

            #ls compat*.rpm

            compat-libcwait-2.0-2.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm

            # rpm -Uvh compat*.rpm

            Preparing... ########################################### [100%]

            1:compat-libcwait-2.0-2.i386.rpm ##################################### [ 50%]

            2:compat-oracle-rhel4-1.0-5.i386.rpm#################################### [100%]
开始安装Oracle9i

1,解压下载的安装文件:

#zcat ship_9204_linux_disk1.cpio.gz | cpio –idmv&&zcat ship_9204_linux_disk2.cpio.gz | cpio –idmv&& zcat ship_9204_linux_disk3.cpio.gz | cpio –idmv

解包和解压过程中,自动创建了3个包含安装文件的目录:

Disk1

            Disk2

            Disk3

            .以oracle用户登录系统,进行Oracle的安装(注意请不要在root登录中切换到oracle,

是以oracle登录到系统(图形界面)): $ cd Disk1 $ ./runInstaller过一会儿就会出现Oracle的安装界面 - Welcome Screen: Click Next - Inventory Location: Click Next - Unix Group Name: Use "oinstall" and click Next When asked to run /tmp/orainstRoot.sh, run it before you click Continue - At the end of the installation, exit runInstaller. 2.一步一个脚印安装下去就行了! 3,安装完后打补丁: 切换到oracle:#su – oracle 首先安装 opatch. $cd /opt $unzip p2617419_210_GENERIC.zip Archive: p2617419_210_GENERIC.zip creating: OPatch/ creating: OPatch/docs/ inflating: Opatch/docs/FAQ ...... inflating: README.txt $export PATH=$PATH:/opt/OPatch:/sbin (修改PATH时要要包括解压缩出来的Opatch 和 sbin目录) $unzip p3238244_9204_LINUX.zip $export orACLE_BASE=/opt/ora9 $export orACLE_HOME=/opt/ora9/product/9.2.0.4 $ cd 3238244 $opatch apply 出现success的提示就全部安装成功. 补丁打完后,还要relinked一个.mk文件 $cd $ORACLE_HOME/network/lib $make -f ins_oemagent.mk install 之后就可以启动Agent服务了.
4, 最后执行 $dbca 建oracle数据库

注意:在SID处指定为oradb (与 orACLE_SID=oradb)中的值一致.

点击OK,然后退出即可,正常登陆并启动数据库的操作。

$ lsnrctl start

            $ sqlplus /nolog

            SQL*Plus: Release 9.2.0.4.0 - Production on Sat Mar 12 22:58:53 2005

            Copyright (c) 1982, 2002, oracle Corporation. All rights reserved.

            SQL>connect / as sysdba

            Connected.

            SQL> shutdown immediate 关闭数据库

            Database closed.

            Database dismounted.

            orACLE instance shut down.

            SQL>startup; 启动数据库

            orACLE instance started.

            Total System Global Area 236000356 bytes

            Fixed Size 451684 bytes

            Variable Size 201326592 bytes

            Database Buffers 33554432 bytes

            Redo Buffers 667648 bytes

            Database mounted.

            Database opened.

            5, oracle服务启动

            以root身份进入,编写以下脚本:

            vi /etc/init.d/oracle

            ////////////内容//////////////////

            #!/bin/bash

            #start and stop the oracle instance

            # chkconfig –level 5 --add ora9i

            #chkconfig: 345 91 19

            # description: starts the oracle listener and instance

            export orACLE_HOME="/opt/ora9/product/9.2.0.4"

            export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

            export orACLE_OWNER="oracle"

            export orACLE_SID=oradb

            if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]

            then

            echo "oracle startup:cannot start"

            exit 1

            fi

            case "$1" in

            start)

            #startup the listener and instance

            echo -n "oracle startup: "

            su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"

            su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart

            touch /var/lock/subsys/oracle

            echo "finished"

            ;;

            stop)

            # stop listener, apache and database

            echo -n "oracle shutdown:"

            su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"

            su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut

            rm -f /var/lock/subsys/oracle

            echo "finished"

            ;;

            reload|restart)

            $0 stop

            $0 start

            ;;

            *)

            echo "Usage: ora9i [start|stop|reload|restart]"

            exit 1

            esac

            exit 0

////////////内容//////////////////


给予执行权限,以root身份运行/etc/rc.d/init.d/oracle start |stop 来管理oracle的启动和停止了。如果要将这个脚本加入到系统中使其可开机运行(不过官方是不建议开机自动运行的,我本人也不建议这样做,你确实需要可以这么做),那么要运行以下命令: chkconfig --level 35 --add oracle 或者以root用户执行如下命令:

#chmod a x /etc/rc.d/init.d /oracle

            #cd /etc/rc.d/rc5.d

            #ln -s /etc/rc.d/init.d/oracle S99ora9i

            #cd /etc/rc.d/rc0.d

            #ln -s /etc/rc.d/init.d/oracle K99ora9i

            也可如下自启动oracle9i!

            在/etc/rc.d/rc.local中加入如下:

            su - oracle -c "/opt/ora9/oracle/product/9.2.0.4/bin/lsnrctl start"

            su - oracle -c "/opt/ora9/oracle/product/9.2.0.4/bin/dbstart start"

            注意:如果启动不理想,请编写shell scripts:

            方法:以我个人习惯为例;;;;;;;;;;

            #mkdir /usr/local/syscmf

            #vi /usr/local/syscmf/oracle.sh

            ////////////////////////文件内容开始///////////////////

            #!/bin/sh

            #modify by mingfu 060404

            #oracle run scripts

            #run user for oracle

            lsnrctl start

            expect /usr/local/syscmf/oracle.exp

            ////////////////////////文件内容结束///////////////////

            #vi /usr/local/syscmf/oracle.exp

            ////////////////////////文件内容开始///////////////////

            #!/usr/local/bin/expect

            #modify by mingfu 060404

            #oracle run scripts

            set timeout 120

            spawn sqlplus \/nolog

            expect "SQL\>"

            send "conn \/ as sysdba\r"

            expect "SQL\>"

            send "startup\r"

            expect "SQL\>"

            send "exit\r"

            exit

            ////////////////////////文件内容结束///////////////////

            #chown oracle /usr/local/syscmf/*

            #chgrp oracle /usr/local/syscmf./*

            #chmod 755 /usr/local/syscmf/*

            在/etc/rc.local中新增如下内容:

            su – oracle /usr/local/syscmf/oracle.sh

            删除原来的:

            su - oracle -c "/opt/ora9/oracle/product/9.2.0.4/bin/lsnrctl start"

            su - oracle -c "/opt/ora9/oracle/product/9.2.0.4/bin/dbstart start"

            6, 关于数据库删除重新安装的问题:

            把ORACLE安装目录删除及/etc/ora*.*删除就行了

            #rm –f /etc/ora*.*

            7,关于在LINUX中运行管理软件$oemapp

            #su – oracle

            $oemapp console
8, 中文显示不正常解决办法

Oracle 目前缺省安装的字符集是WE8MSWIN1252,不是中文字符集,并且不能通过直接运行 alter database character set ZHS16GBK ; 来修改,因为ZHS16GBK不是缺省字符集的超集。过去流传很广的直接修改sys用户下的PROPS$表的方法,也会给字符集的变更留下很多潜在的问题.linux下进行如下的操作来修改字符集:

sqlplus /nolog

            sql>conn / as sysdba

            sql>shutdown immediate

            sql>startup mount

            sql>alter system enable restricted session ;

            sql>alter system set JOB_QUEUE_PROCESSES=0;

            sql>alter system set AQ_TM_PROCESSES=0;

            sql>alter database open ;

            sql>alter database character set internal_use ZHS16GBK ;

            sql>shutdown immediate

            sql>startup
这样字符集的修改就完成了(如果你在安装时选择了中文字符集,这里就不用修改了)LAJO服务环境配置完毕.

5.配置LAMP

系统自带安装http php mysql软件包,进行配置如下:

            Apache配置

            修改/etc/httpd/conf/httpd.conf内容如下:

            Listen 82

            ServerName 127.0.0.1:82

            DocumentRoot "/var/www/html"

            <Directory "/var/www/html">

            注意:系统已经有两个httpd服务进程.

            用户分别是:xxxx apache

            请确保

            /usr/local/apache2/bin/apachectl start

            /etc/init.d/httpd start

            此两个服务自启动.

            Mysql设置

            Mysql>create ftpdb;

            Mysql>grant all privileges on ftpdb.* to ftpuser@localhost identified by “xxxx”;

            Mysql>grant all privileges on *.* to root@’%’ identified by “xxxx”;

            Mysql>flush privileges;

            Mysql>exit

            请确保

            /etc/init.d/mysqld start

            此服务自启动.

            LAMP服务环境配置完毕.
7.配置FTP

配合工程实施与建立ftp帐号相关联,方便维护与管理,我这里选择了Proftpd与数据库结合的方式来实现的.

创建Ftpdb结构:

            Mysql>use ftpdb;

            Mysql> Create TABLE `ftpgroup` (

            `groupname` varchar(16) NOT NULL default '',

            `gid` smallint(6) NOT NULL default '5500',

            `members` varchar(16) NOT NULL default '',

            KEY `groupname` (`groupname`)

            ) ;

            Mysql> Create TABLE `ftpquotalimits` (

            `name` varchar(30) default NULL,

            `quota_type` enum('user','group','class','all') NOT NULL default 'user',

            `per_session` enum('false','true') NOT NULL default 'false',

            `limit_type` enum('soft','hard') NOT NULL default 'soft',

            `bytes_in_avail` float NOT NULL default '0',

            `bytes_out_avail` float NOT NULL default '0',

            `bytes_xfer_avail` float NOT NULL default '0',

            `files_in_avail` int(10) unsigned NOT NULL default '0',

            `files_out_avail` int(10) unsigned NOT NULL default '0',

            `files_xfer_avail` int(10) unsigned NOT NULL default '0'

            ) ;

            Mysql> Create TABLE `ftpquotatallies` (

            `name` varchar(30) NOT NULL default '',

            `quota_type` enum('user','group','class','all') NOT NULL default 'user',

            `bytes_in_used` float NOT NULL default '0',

            `bytes_out_used` float NOT NULL default '0',

            `bytes_xfer_used` float NOT NULL default '0',

            `files_in_used` int(10) unsigned NOT NULL default '0',

            `files_out_used` int(10) unsigned NOT NULL default '0',

            `files_xfer_used` int(10) unsigned NOT NULL default '0'

            ) ;

            Mysql> Create TABLE `ftpuser` (

            `id` int(10) unsigned NOT NULL auto_increment,

            `userid` varchar(32) NOT NULL default '',

            `passwd` varchar(32) NOT NULL default '',

            `uid` smallint(6) NOT NULL default '5500',

            `gid` smallint(6) NOT NULL default '5500',

            `homedir` varchar(255) NOT NULL default '',

            `shell` varchar(16) NOT NULL default '/sbin/nologin',

            `count` int(11) NOT NULL default '0',

            `accessed` datetime NOT NULL default '0000-00-00 00:00:00',

            `modified` datetime NOT NULL default '0000-00-00 00:00:00',

            PRIMARY KEY (`id`)

            ) ;

            Mysql> Insert INTO `ftpgroup` 
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论

  • ^