目录
1.安装环境
Linux版本:
[oracle@yscsbfdb ~]$ uname -a
Linux yscsbfdb 4.1.12-61.1.28.el6uek.x86_64 #2 SMP Thu Feb 23 20:03:53 PST 2017 x86_64 x86_64 x86_64 GNU/Linux
[oracle@yscsbfdb ~]$ cat /proc/version
Linux version 4.1.12-61.1.28.el6uek.x86_64 (mockbuild@x86-ol6-builder-06) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) ) #2 SMP Thu Feb 23 20:03:53 PST 2017
[oracle@yscsbfdb ~]$ cat /etc/issue
Oracle Linux Server release 6.9
Kernel \r on an \m
[oracle@yscsbfdb ~]$ lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: OracleServer
Description: Oracle Linux Server release 6.9
Release: 6.9
Codename: n/a
Oracle版本:Oracle 11.2.0.4.0
2.系统要求
2.1 Linux安装Oracle系统要求
1.查看RAM和交换空间以及磁盘大小
[root@yscsbfdb ~]# free -h
total used free shared buffers cached Mem: 251G 32G 219G 17G 337M 29G -/+ buffers/cache: 2.2G 249G Swap: 16G 0B 16G |
[root@yscsbfdb ~]# df -h
Filesystem Size Used Avail Use% Mounted on /dev/mapper/hbsw-hbsw 34G 24G 8.6G 73% / tmpfs 126G 18G 109G 15% /dev/shm /dev/sda1 477M 84M 364M 19% /boot /dev/mapper/hbsw-tmp 16G 50M 15G 1% /tmp /dev/mapper/hbsw-u01 197G 8.2G 179G 5% /u01 /dev/mapper/hbsw-goldengate 477G 70M 452G 1% /goldengate |
2.检查所需软件包
(这一步骤也可以放到后面安装oracle中安装环境检查的步骤中去做,以便更准确的确定缺少的软件包)
检查如下rpm包并安装:
[root@yscsbfdb ~]#rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
输入下边的东西
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel
系统会显示哪些包安装了,哪些没有安装。如果有的包没有安装,必须安装。
#rpm -ivh package-name-major-version*
3.配置host和主机名
[root@yscsbfdb ~]#vi /etc/hosts
127.0.0.1 yscsbfdb ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.100 yscsbfdb |
[root@yscsbfdb ~]#vi /etc/sysconfig/network
NETWORKING=yes HOSTNAME=yscsbfdb |
2.2修改操作系统核心参数
1.创建相关用户和组
/usr/sbin/groupadd -g 501 oinstall /usr/sbin/groupadd -g 502 dba /usr/sbin/groupadd -g 504 asmadmin /usr/sbin/groupadd -g 506 asmdba /usr/sbin/groupadd -g 507 asmoper /usr/sbin/groupadd -g 508 oper /usr/sbin/useradd -g oinstall -G dba,asmdba,asmoper oracle /usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper grid |
2.创建数据库软件目录和数据文件存放目录
mkdir -p /oracle/app/oraInventory mkdir -p /u01/app/oracle mkdir /u01/app/oracle/cfgtoollogs chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/app/oracle mkdir -p /u01/app/oraInventory chown -R grid:oinstall /u01/app/oraInventory chmod -R 775 /u01/app/oraInventory mkdir -p /u01/11.2.0/grid chown -R grid:oinstall /u01/11.2.0/grid chmod -R 775 /u01/11.2.0 mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1 chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/dbhome_1 chmod -R 775 /u01/app/oracle/product/11.2.0/dbhome_1 |
3.配置oracle用户的环境变量
[oracle@yscsbfdb ~]$ pwd
/home/oracle
[oracle@yscsbfdb ~]$ vi .bash_profile
export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=yscsbfjx export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 umask 022 |
[oracle@localhost ~]$ source .bash_profile --使环境变量生效
3.配置grid用户的环境变量
[grid@yscsbfdb ~]$ pwd
/home/grid
[grid@yscsbfdb ~]$ vi .bash_profile
export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/11.2.0/grid export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export TMP=/tmp export TMPDIR=$TMP export ORACLE_SID=+ASM export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib umask 022 |
[grid@localhost ~]$ source .bash_profile --使环境变量生效
5.修改用户的SHELL的限制
修改/etc/security/limits.conf文件,Oracle 要求的用户进程数必须大于2047(默认是1047)
[root@yscsbfdb ~]# vi /etc/security/limits.conf
grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 |
6.修改/etc/pam.d/login 文件
[root@yscsbfdb ~]# vi /etc/pam.d/login
session required /lib/security/pam_limits.so |
7.修改linux内核
[root@yscsbfdb ~]# vi /etc/sysctl.conf (这里如果设置的不合适,在安装oracle的时候,最后检测会有脚本修复)
# Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736 # Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 |
要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p
8.编辑 /etc/profile
[root@yscsbfdb ~]# vi /etc/profile (Root用户操作。注意在 = 号两边有空格,如果没有可能出错)
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi |
3. 安装过程
3.1安装grid和asm
1.安装ASM包
[root@yscsbfdb grid]# rpm -qa | grep asm
这三个包得装上,安装过程不赘述。
oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64 libatasmart-0.17-4.el6_2.x86_64 objectweb-asm-3.2-2.1.el6.noarch oracleasmlib-2.0.4-1.el6.x86_64 kdeplasma-addons-libs-4.3.4-5.el6.x86_64 oracleasm-support-2.1.8-1.el6.x86_64 kdeplasma-addons-4.3.4-5.el6.x86_64 |
2.配置ASMLib驱动
在配置asm之前,必须运行配置脚本准备驱动程序。
[root@yscsbfdb grid]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting <ENTER> without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: grid Default group to own the driver interface []: asmadmin Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ] |
[root@yscsbfdb grid]# /etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ] |
3.配置ASM磁盘
在配置asm硬盘前,先使用fdisk /dev/sd?命令格式化硬盘(本次使用了sdc、sdd、sde、sdf)
[root@yscsbfdb dev]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xecfd8d30. 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-200512, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-200512, default 200512): 200512 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. |
创建asm硬盘
/usr/sbin/oracleasm createdisk DATA01 /dev/sdc1 /usr/sbin/oracleasm createdisk DATA02 /dev/sdd1 /usr/sbin/oracleasm createdisk DATA03 /dev/sde1 /usr/sbin/oracleasm createdisk RECAREA01 /dev/sdf1 |
检查ASM磁盘是否创建
[root@yscsbfdb dev]# ls -l /dev/oracleasm/disks/
total 0 brw-rw----. 1 grid asmadmin 8, 33 Oct 23 15:17 DATA01 brw-rw----. 1 grid asmadmin 8, 49 Oct 23 15:17 DATA02 brw-rw----. 1 grid asmadmin 8, 65 Oct 23 15:17 DATA03 brw-rw----. 1 grid asmadmin 8, 81 Oct 23 15:17 RECAREA01 |
修改磁盘权限
chown grid:asmadmin /dev/sdc1 chown grid:asmadmin /dev/sdd1 chown grid:asmadmin /dev/sde1 chown grid:asmadmin /dev/sdf1 |
使用命令扫描、列出
/usr/sbin/oracleasm scandisks /usr/sbin/oracleasm listdisks |
4.解压grid软件,安装grid
Grid安装需要使用图形界面,本次使用xmanager软件,设DISPLAY环境变量,使图形界面远程传输到本地。
[grid@yscsbfdb grid]$ export DISPLAY=192.168.1.99(本地ip):0.0
使用grid用户解压grid安装包,形成grid目录,进入grid目录,执行./runInstaller,进行安装
[grid@yscsbfdb grid]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 15114 MB Passed
Checking swap space: must be greater than 150 MB. Actual 16999 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-10-23_03-27-03PM. Please wait ...[grid@yscsbfdb grid]$
5.图形化安装grid
1>不更新
2>只安装asm,不安装grid
3>选择语言
4>此处没有带出asm能识别的磁盘,是因为目录不对,点击Change Discovery Path,输入/dev/oracleasm/disk/*即可找到已经分配的asm磁盘。
5>下边就没图了。从网上拿来的图
6>设置密码
7>用户组
8>检查环境是否通过
6.图形化配置ASM
[grid@yscsbfdb grid]$ asmca
点击Create,即可添加新的磁盘组,按照上边配置asm磁盘的方式,增加asm磁盘,这里就能够选到,建立新组。
3.2安装oracle软件
oracle安装需要使用图形界面,本次使用xmanager软件,设DISPLAY环境变量,使图形界面远程传输到本地。
[grid@yscsbfdb grid]$ export DISPLAY=192.168.1.99:0.0
使用oracle用户解压grid安装包,形成oracle目录,进入database目录,执行./runInstaller,进行安装
[oracle@yscsbfdb grid]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 15114 MB Passed
Checking swap space: must be greater than 150 MB. Actual 16999 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-10-23_04-05-23PM. Please wait ...[oracle@yscsbfdb database]$
1> 不勾选
2> 不更新
3> 只安装软件,一会儿使用dbca命令建实例
4> 单节点数据库
5> 选择语言
6> 选择企业版
7> 选择目录,这都是之前设置好的
8> 组
9> 系统在检查
这里的图是我已经装完后的,正常来说这里会显示没有通过的项。如果有rpm包没有,我们可以使用rpm -ivh xxx.rpm --nodeps -- force (其中加上--nodeps -- force 代表强制安装,是在直接使用rpm –ivh xxx.rpm安装不成功的情况下用的)如果此处有参数没有设置正确,oracle会给出修复脚本,使用root用户执行,会自动设置2.2.6中的/etc/sysctl.conf文件
安装完成后,系统会提示需要用root权限执行2个shell脚本。执行即可
2. 数据库建库
使用oracle用户,执行命令dbca,建实例。
不安装OEM
输入统一密码(也可以分别设置其密码)
数据库存放位置,这里使用ASM管理
这里可以设置redo和control
开启闪回和归档
不安装示例数据
内存分配,选择oracle自己管理
选择Character Sets选项卡,设置数据库字符集,AL32UTF8
点击next,会显示刚才对数据库选的配置项,点击OK,会弹出创建数据库的界面
经过漫长的等待,当看到此界面,说明oracle建库完成(别人的图)
最后这个可以改密码或者不改。
3. 一些命令
5.1启动ASM关启
1.检查CSS服务是否启动
[grid@ogg1 ~]$ crsctl check css
[grid@ogg1 ~]$ ps -ef|grep cssd
2.检查HAS服务是否启动
[grid@ogg1 ~]$ crsctl check has
[grid@ogg1 ~]$ ps -ef|grep d.bin
发现HAS服务启动了,而ora.cssd和ora.diskmon这2个服务是依赖于HAS维护的.
3.进一步查看各资源的状态
[grid@ogg1 ~]$ crs_stat -t
[grid@ogg1 ~]$ crsctl status resource -t
4.查ora.cssd和ora.diskmon的默认属性
[grid@ogg1 ~]$ crs_stat -p ora.cssd
。。。。。
AUTO_START=never
。。。。。
[grid@ogg1 ~]$ crs_stat -p ora.diskmon
。。。。。。
AUTO_START=never
。。。。。。
可以看到这两个资源的AUTO_START属性默认都设置为never,
也就是说他们不会随着HAS服务的启动而自动启动的,尽管默认情况下HAS服务是开机自动启动的.
5.手动启动
[grid@ogg1 ~]$ crsctl start resource ora.cssd
注:ora.cssd和ora.diskmon这两个服务是有依赖关系的,启动哪个都会把两个都起来.
6.其他操作
1)默认情况下HAS(High Availability Service)是自动启动的.
通过如下命令可以取消和启用自动启动
取消自启动:crsctl disable has
启用自启动:crsctl enable has
2)HAS手动启动和停止
crsctl start has
crsctl stop has
3)查看HAS的状态
crsctl check has
4)如果想让ora.css和ora.diskmon服务随着HAS的启动而自动启动,可以这两个服务的AUTO_START属性
crsctl modify resource "ora.cssd" -attr "AUTO_START=1"
or
crsctl modify resource "ora.diskmon" -attr "AUTO_START=1"
5)如果想取消ora.css和ora.diskmon的Auto start
crsctl modify resource "ora.cssd" -attr "AUTO_START=never"
crsctl modify resource "ora.diskmon" -attr "AUTO_START=never"
二 启动ASM实例
[grid@ogg1 ~]$ sqlplus / as sysasm
SQL> startup
SQL> col instance_name for a15
SQL> col status for a15
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
--------------- ---------------
+ASM STARTED
三 启动数据库
[oracle@ogg1 ~]$ sqlplus / as sysdba
SQL> startup
SQL> col instance_name for a15
SQL> col status for a15
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
--------------- ---------------
prod1 OPEN
关闭ASM
一 关闭应该先关闭数据库,在关闭ASM
如果顺序反了会报错
例如:
1 关闭ASM
[root@ogg1 ~]# su - grid
[grid@ogg1 ~]$ sqlplus / as sysasm
SQL> shutdown immediate
ORA-15097: cannot SHUTDOWN ASM instance with connected client (process 7322)
正确的顺序是:
一 关闭数据库
[oracle@ogg1 ~]$ sqlplus / as sysdba
SQL> shutdown immediate
二 关闭ASM
[root@ogg1 ~]# su - grid
[grid@ogg1 ~]$ sqlplus / as sysasm
SQL> shutdown immediate
ASM diskgroups dismounted
ASM instance shutdown