1.1. 先决条件检查
1)主机物理内存
命令:grep MemTotal /proc/meminfo
[root@enmotech]# grep MemTotal /proc/meminfo
MemTotal: 1923512 kB
2)查看主机是多少位
命令:uname -m
[root@enmotech]# uname -m
x86_64
3)查看交换分区大小
命令:grep SwapTotal /proc/meminfo
[root@enmotech]# grep SwapTotal /proc/meminfo
SwapTotal: 2097144 kB
物理内存在1-2G 交换分区设置为其1.5倍
物理内存在2-16G 交换分区设置与其相等
物理内存大于16G 设置为16G
4)查看内存使用情况
命令:free
total used free shared buffers cached
Mem: 1923512 458040 1465472 0 22684 172076
-/+ buffers/cache: 263280 1660232
Swap: 2097144 0 2097144
-buffers/cache 的内存数: 263280 (等于第1行的 used - buffers - cached)
+buffers/cache 的内存数: 1660232 (等于第1行的 free + buffers + cached)
-buffers/cache反映的是被程序实实在在吃掉的内存
+buffers/cache反映的是可以挪用的内存总数
5)查看临时空间大小
df -k /tmp
[root@yq ~]# df -k /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_yq-lv_root 18069936 2923972 14228052 18% /
/tmp不能小于1G
6)建立oracle用户以及其用户属组
groupadd -g 400 oinstall
groupadd -g 401 dba
groupadd -g 402 oper
useradd -u 400 -g oinstall -G dba oracle -d /home/oracle
chown -R oracle:oinstall /home/oracle
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/oralnventory
(oraInventory存放Oracle软件安装的目录信息,Oralce的安装升级都需要用到这个目录)
mkdir -p /u01/app/oracle/cfgtoollogs
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle/oralnventory
chmod -R 775 /u01/app/oracle
mkdir -p /u01/tmp
chown root:root /u01/tmp
chmod 777 /u01/tmp
注:(1)-R 意思是把/home/oracle目录包括该目录下的子目录的owner都改变为oracle。
(把/u01目录下的所有文件和目录的拥有者改为oracle)
(2)-p 创建级联目录
(3)777,rwx-rwx-rwx(421-4
21-421)代表所有用户拥有读写执行的权限。
775 rwxrw-r-x 421424-1
7)修改内核参数vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2147483648
kernel.shmmax =8589934592
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
修改完成后 sysctl -p 使其生效
注:
fs.aio-max-nr = 1048576
指的是 同时可以拥有的的异步IO请求数目。 值出现在 /etc/nf 文件中,推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个。
fs.file-max = 6815744
该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
kernel.shmall = 2*1024*1024*1024/4
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)
kernel.shmmax = 物理内存(2G)*1024*1024*1024 eg:2*1024*1024*1024
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
官方建议值:
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32位系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。
kernel.shmmni = 4096
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
kernel.sem = 250 32000 100 128
以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
net.ipv4.ip_local_port_range = 9000 65500
表示应用程序可使用的IPv4端口范围。
re.rmem_default = 262144
表示套接字接收缓冲区大小的缺省值。
re.rmem_max = 4194304
表示套接字接收缓冲区大小的最大值。
re.wmem_default = 262144
表示套接字发送缓冲区大小的缺省值。
re.wmem_max = 1048586
表示套接字发送缓冲区大小的最大值。
8)修改vi /etc/security/limits.conf
oracle soft nproc 16348
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 1024000
oracle hard stack 1024000
注:soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比hard 限制高。
9)修改vi /etc/pam.d/login
session required /lib/security/pam_limits.so
(pam.d指的是验证登陆配置,login是登陆配置文件。)
10)oracle用户vi .bash_profile
export ORACLE_SID=
export NLS_LANG=AMERICAN_AMERICA. AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
[root@enmotech ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x2a328cbd.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Using default value 2610
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@enmotech ~]#
[root@enmotech ~]#
[root@enmotech ~]#
[root@enmotech ~]#
[root@enmotech ~]#
[root@enmotech ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5241198 blocks
262059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@enmotech ~]#
[root@enmotech ~]#
[root@enmotech ~]# vi /etc/fstab
# /etc/fstab
# Created by anaconda on Tue Feb 14 03:15:20 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_enmotech-lv_root / ext4 defaults 1 1
UUID=f0ddb98a-7c08-4735-a186-c68645578b33 /boot ext4 defaults 1 2
/dev/mapper/vg_enmotech-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /oracle ext3 defaults 0 2
~
~
"/etc/fstab" 16L, 861C written
[root@enmotech ~]#
[root@enmotech ~]# mount /oracle
[root@enmotech ~]#
[root@enmotech ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_enmotech-lv_root 27G 5.7G 20G 23% /
tmpfs 940M 72K 940M 1% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
/dev/sdb1 20G 173M 19G 1% /oracle
[root@enmotech ~]#
解压上传的安装包
Unzip -q p13390677_112040_Linux-x86-64_1of7.zip
解压后会生成一个DATABASE的文件目录,到DATABASE下
[oracle@enmotech database]$ ls
install readme.html response rpm runInstaller sshsetup stage welcome.html
[oracle@enmotech database]$
运行runInstaller
[oracle@enmotech database]$ ./runInstaller
图形界面就省略了
[root@enmotech oracle]#
[root@enmotech oracle]# /oracle/app/oracle/oralnventory/orainstRoot.sh
Changing permissions of /oracle/app/oracle/oralnventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /oracle/app/oracle/oralnventory to oinstall.
The execution of the script is complete.
[root@enmotech oracle]# /oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /oracle/app/oracle/product/11.2.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
[root@enmotech oracle]#
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31467250/viewspace-2140526/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31467250/viewspace-2140526/