AIX7.1下安装Oracle RAC 12c步骤

数据库12c rac安装

目录

数据库12c rac安装

目录

数据库及系统说明

1、修改系统的文件限制和hosts文件

2、使用工具上传数据库安装包到/tmp/oracle/目录

3、使用newkfvg新建lv(lv_oracle 20G )

4、创建文件系统

5、新建目录并mount

6、新建用户组:dba组,oinstall组,oracle用户

7、修改目录权限

8、修改oracle用户环境变量

9、修改系统参数

10、安装数据库软件

11、安装PSU补丁

12、创建监听

12、在主库varyonvg

13、在主库创建数据库实例mis

14、在主库配置数据库mis实例

15、主库和备库修改oratab

16、主库往备库传文件

16rman自动备份脚本

 

 

数据库及系统说明

主机名

IP地址

系统用户口令

数据库名

数据库用户口令

DC-HXDB01

192.168.100.10

root:Passw0rd

oracle:oracle

hx

sys:oracle

system:oracle

DC-HXDB02

192.168.100.11

root:Passw0rd

oracle:oracle

 

hx

sys:oracle

system:oracle

 

 

 

 

 

 

 

 

 

 

 

数据库数据文件存放目录

+DATA

数据库归档日志存放目录

+ARCH

数据库软件安装目录

/u01

数据库自动备份目录

 

数据库自动备份策略

 

 

数据库redolog切换策略

 

数据库统计信息收集策略

 

 

1、修改系统的文件限制和hosts文件

# vi /etc/security/limits //将下面的值,全部改为-1

default:

        fsize = -1

        core = -1

        cpu = -1

        data = -1

        rss = -1

        stack = -1

        nofiles = -1

修改完以上参数,需要重启系统生效

# vi /etc/hosts        //添加以下内容

# 2000:1:1:1:209:6bff:feee:2b7f         ipv6sample      # ipv6 name/address

127.0.0.1               loopback localhost      # loopback (lo0) name/address

#PUBLIC

10.1.0.11 DC-HXDB01

10.1.0.12 DC-HXDB02




#VIP

10.1.0.21 DC-HXDB01-VIP

10.1.0.22 DC-HXDB02-VIP




#PRIV

172.16.0.11 DC-HXDB01-PRIV

172.16.0.12 DC-HXDB02-PRIV




#SCANIP

10.1.0.16 DC-HXDB-SCAN01

10.1.0.17 DC-HXDB-SCAN02

10.1.0.18 DC-HXDB-SCAN03

 

2、使用工具上传数据库安装包到/software目录

同时上传unzip.rpm(来自于IBM官方网站,提供unzip解压命令)

mkdir /software

 

# rpm -ivh /software/bash.rpm //安装bash

#uncompress unzip.Z

chmod 775 unzip

mv unzip /usr/bin/unzip

解压数据库安装包

# unzip /software/aix-database-1.zip

# unzip /software/aix-database-2.zip

# unzip /software/aix-grid-1.zip

# unzip /software/aix-grid-2.zip

 

3、使用newkfvg新建lv(lv_oracle 20G )

# smitty lv

>> Add a Logical Volume

>> VOLUME GROUP name                                  [rootvg]

Logical volume NAME                                [lv_oracle]

* Number of LOGICAL PARTITIONS                       [100]  

Logical volume TYPE                                [jfs2]

回车确认,创建lv_oracle;

同样的方法创建lv_oradata

4、创建文件系统

# smitty fs

>> Add / Change / Show / Delete File Systems

>> Enhanced Journaled File Systems

>> Add an Enhanced Journaled File System on a Previously Defined Logical Volume

* LOGICAL VOLUME name                                 lv_oracle   

* MOUNT POINT                                        [/u01]

  Mount AUTOMATICALLY at system restart?              yes    

回车键确认创建文件系统/u01;

 

5、新建目录并mount

# mkdir /u01

# mount /u01

6、新建用户组:dba、oinstall、asmadmin、asmdba、asmoper组,oracle、gird用户

 

dba 500

oinstall 501

asmadmin 504

asmdba 506

asmoper 507

oracle 500

grid 501

 

# smitty group

>> Add a Group

* Group NAME                                         [dba]

Group ID                                           [500]

//此处也可以手工指定group id,但是不能是已经存在的group id

回车确认创建dba组;

创建oracle用户

# smitty user

>> Add a User

* User NAME                                          [oracle]

  User ID                                     [] //此处也可以手工指定

  Primary GROUP                                      [oinstall]

  Group SET                                     [dba,asmdba]

HOME directory                                     [/home/oracle]

修改oracle用户密码

# passwd oracle

oracle用户密码:oracle

7、修改目录权限

#mkdir –p /u01/12.1.0/grid

#mkdir –p /u01/app/oracle/product/12.1.0/db_1

#mkdir /u01/app/oraInventory

#mkdir /u01/app/oracle/cfgtoollogs

# chown -R oracle:oinstall /u01/app/oracle

# chmod -R 775 /oracle /u01

# chown -R grid:oinstall /u01/12.1.0

# chmown –R grid:oinstall /u01/app/oraInventory

 

8、修改oracle用户环境变量

# su - oracle

$ vi .profile

#export ORACLE_SID=mis

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1

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




#su – grid

$vi .profile




export ORACLE_SID=+ASM1

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/12.1.0/grid




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

 

9、修改系统参数

# smitty

>> System Environments

>> Change / Show Characteristics of Operating System

>> Maximum number of PROCESSES allowed per user       [16384]  

//原来为128,改为16384

# lsattr -El sys0 -a maxuproc

/usr/sbin/no -a | fgrep ephemeral

# /usr/sbin/no -p -o tcp_ephemeral_low=9000 -o tcp_ephemeral_high=65500

# /usr/sbin/no -p -o udp_ephemeral_low=9000 -o udp_ephemeral_high=65500

 

 

检查系统文件集安装情况:

lslapp -l |grep -Ei ""

 

 

AIX 7.1 required packages:

bos.adt.base

bos.adt.lib

bos.adt.libm

bos.perf.libperfstat

bos.perf.perfstat

bos.perf.proctools

xlC.rte.11.1.0.2 or later

gpfs.base 3.3.0.11 or later (Only for RAC systems that will use GPFS cluster filesystems)

 

 

 

修改磁盘队列深度

chdev -l hdisk2 -a queue_depth=8 -a rw_timeout=60

 

修改磁盘属性策略

chdev -l hdisk2 -a reserve_policy=no_reserve

 

检查

lsattr -El hdisk2

 

检查网络参数

# lsattr -E -l sys0 -a pre520tune

pre520tune disable Pre-520 tuning compatibility mode True

 

更改网络参数

/usr/sbin/no -r -o ipqmaxlen=512 //重启生效

/usr/sbin/no -p -o rfc1323=1

/usr/sbin/no -p –o sb_max=4194304

/usr/sbin/no -p –o tcp_recvspace=65536

/usr/sbin/no -p –o tcp_sendspace=65536

/usr/sbin/no -p –o udp_recvspace=655360

/usr/sbin/no -p –o udp_sendspace=65536

 

 

更改IOCP可用状态

smit iocp //重启生效

 

安装ssh

mkdir /tmp/ssh

mv openssh /tmp/ssh

smit installp

 

 

更改磁盘权限、属性

chown grid:asmadmin /dev/rhdisk2

chown grid:asmadmin /dev/rhdisk3

chown grid:asmadmin /dev/rhdisk4

chown grid:asmadmin /dev/rhdisk5

chown grid:asmadmin /dev/rhdisk6

chown grid:asmadmin /dev/rhdisk7

chown grid:asmadmin /dev/rhdisk8

chown grid:asmadmin /dev/rhdisk9

chown grid:asmadmin /dev/rhdisk10







chmod 660 /dev/rhdisk2

chmod 660 /dev/rhdisk3

chmod 660 /dev/rhdisk4

chmod 660 /dev/rhdisk5

chmod 660 /dev/rhdisk6

chmod 660 /dev/rhdisk7

chmod 660 /dev/rhdisk8

chmod 660 /dev/rhdisk9

chmod 660 /dev/rhdisk10







chdev -l hdisk2 -a reserve_policy=no_reserve

chdev -l hdisk3 -a reserve_policy=no_reserve

chdev -l hdisk4 -a reserve_policy=no_reserve

chdev -l hdisk5 -a reserve_policy=no_reserve

chdev -l hdisk6 -a reserve_policy=no_reserve

chdev -l hdisk7 -a reserve_policy=no_reserve

chdev -l hdisk8 -a reserve_policy=no_reserve

chdev -l hdisk9 -a reserve_policy=no_reserve

chdev -l hdisk10 -a reserve_policy=no_reserve







chdev -l hdisk2 -a queue_depth=8 -a rw_timeout=60

chdev -l hdisk3 -a queue_depth=8 -a rw_timeout=60

chdev -l hdisk4 -a queue_depth=8 -a rw_timeout=60

chdev -l hdisk5 -a queue_depth=8 -a rw_timeout=60

chdev -l hdisk6 -a queue_depth=8 -a rw_timeout=60

chdev -l hdisk7 -a queue_depth=8 -a rw_timeout=60

chdev -l hdisk8 -a queue_depth=8 -a rw_timeout=60

chdev -l hdisk9 -a queue_depth=8 -a rw_timeout=60

chdev -l hdisk10 -a queue_depth=8 -a rw_timeout=60

 

检查磁盘属性

lsattr –El hdisk2

 

生成/dev/bpf 文件

#/usr/sbin/tcpdump

 

添加用户权限

#chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid

#lsuser –a capabilities grid




# chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle

#lsuser –a capabilities oracle

 

运行预检查脚本

./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup –verbose

 

重启服务器,生效参数

#shutdown -Fr

 

10、安装数据库软件

# cd /software/grid

# ./rootpre.sh

$ su - grid

$ export DISPLAY=192.168.100.188:0.0

$ cd /software/grid

$ ./runInstaller

提示操作系统没有打IZ7457 的补丁、IZ88711补丁、IZ89514补丁,此处因为系统是最新的,所以忽略即可。

 

开始安装数据库软件

根据提示,在root用户下执行脚本

# /oracle/oraInventory/orainstRoot.sh

Changing permissions of /oracle/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

 

Changing groupname of /oracle/oraInventory to oinstall.

The execution of the script is complete.

# /oracle/oracle/product/11.2.0/db_1/root.sh

Performing root user operation for Oracle 11g

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /oracle/oracle/product/11.2.0/db_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]: //此处输入回车

Creating /usr/local/bin directory...

   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.

单击close退出,完成数据库软件的安装

11、安装PSU补丁

上传11.2.0.5的PSU到/oradata/psu目录,并解压(用oracle用户解压)

$ unzip p6880880_112000_AIX64-5L.zip

$ unzip p19955028_112040_AIX64-5L.zip

升级opatch版本,从11.2.0.3.4升级到11.2.0.3.6

$ cd $ORACLE_HOME

$ mv OPatch OPatch.bak //将OPatch目录备份

$ mv /oradata/psu/OPatch ./ //将上传的补丁解压出来的OPatch替换到原来数据库的位置

安装补丁19769489(oracle用户下)

$ cd /oradata/psu/19955028/19769489

$ opatch version //验证opatch版本不低于11.2.0.3.6

OPatch Version: 11.2.0.3.6

OPatch succeeded.

$ opatch apply //安装

 

Do you want to proceed? [y|n] //输入y确认

Email address/User Name: //此处可以不提供

You have not provided an email address for notification of security issues.

Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  Y  //如果不提供邮件地址,此处输入Y继续

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.

(Oracle Home = '/oracle/oracle/product/11.2.0/db_1')

Is the local system ready for patching? [y|n] //检查上面Oracle Home,如果正确输入y继续,然后会自动开始安装

Composite patch 19769489 successfully applied.

 

12、创建监听

$ netca

单击Finish,完成监听的创建

 

 

12、在主库varyonvg

在主库节点做以下操作,备库无需操作。

# varyonvg  jzsw_datavg

# mount  /oradata

13、在主库创建数据库实例mis

在主库节点创建数据库实例,备库无需做此步。

$ dbca

数据数据库sys用户和system用户的密码分别与用户名相同,即sys的用户密码为sys,system的密码为system。

 

    此处第二个地方打上勾,选中,并且单击后面的按钮,填写路径:/oradata/archivelog

此处,给SGA为12G,即12288,PGA为2G,即2048M。

 

14、在主库配置数据库mis实例

以下操作在主库操作,备库无需操作。

$ lsnrctl status //查看数据库监听是否正常

LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production on 14-APR-                                                      2015 14:10:14

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xinkaifa)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for IBM/AIX RISC System/6000: Version 11.2.0.4                                                      .0 - Production

Start Date                14-APR-2015 13:06:27

Uptime                    0 days 1 hr. 3 min. 47 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      ON

Listener Parameter File   /oracle/oracle/product/11.2.0/db_1/network/admin/liste                                                      ner.ora

Listener Log File         /oracle/oracle/diag/tnslsnr/xinkaifa/listener/alert/lo                                                      g.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xinkaifa)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Services Summary...

Service "mis" has 1 instance(s).

  Instance "mis", status READY, has 1 handler(s) for this service...

Service "misXDB" has 1 instance(s).

  Instance "mis", status READY, has 1 handler(s) for this service...

The command completed successfully

修改数据库参数

$ sqlplus / as sysdba

SQL> show parameter sga

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 7392M

sga_target                           big integer 7392M

 

SQL> show parameter pga

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

pga_aggregate_target                 big integer 800M

 

SQL> alter system set processes=1000 scope=spfile;

 

System altered.

 

SQL> alter system set session_cached_cursors=500 scope=spfile;

 

System altered.

SQL> select GROUP#,BYTES/1024/1024 "BYTES (MB)",BLOCKSIZE,MEMBERS,STATUS from v$log;

 

    GROUP# BYTES (MB)  BLOCKSIZE    MEMBERS STATUS

---------- ---------- ---------- ---------- ----------------

         1       2048        512          1 CURRENT

         2       2048        512          1 UNUSED

         3       2048        512          1 UNUSED

         4       2048        512          1 UNUSED

         5       2048        512          1 UNUSED

 

SQL> select ACTION_TIME,VERSION,COMMENTS from registry$history;

 

ACTION_TIME                                                                 VERSION                        COMMENTS

--------------------------------------------------------------------------- ------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

01-OCT-13 10.55.45.938537 PM                                                11.2.0.4                       Patchset 11.2.0.2.0

14-APR-15 02.09.12.396052 PM                                                11.2.0.4                       PSU 11.2.0.4.5

 

设置open_cursors参数

alter system set open_cursors=1000;

 

禁用数据库审计

alter system set audit_trail=none scope=spfile;

 

设置用户密码过期及密码错误无限制

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

 

查看数据库目前temp表空间是否是自动扩展

SQL> select file_name,autoextensible,increment_by from dba_temp_files;

 

FILE_NAME                    AUT  INCREMENT_BY

---------------------------- --- --------- ------

/oradata/mis/tempfile.dbf    YES             0

 

关闭temp文件的自动扩展

SQL> alter database tempfile '/oradata/mis/tempfile.dbf' autoextend off;

 

Database altered.

 

数据库收集统计信息

select client_name,status from dba_autotask_client;

 

BEGIN

DBMS_AUTO_TASK_ADMIN.DISABLE(

client_name => 'auto optimizer stats collection',

operation => NULL,

window_name => NULL);

END;

/

 

关闭空间自动管理:

exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto space advisor',

operation => NULL,window_name => NULL);

 

关闭sql自动优化:

exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'sql tuning advisor',

operation => NULL,window_name => NULL);

 

设置redolog切换时间为1个小时强制切一次(3600秒):

SQL> alter system set archive_lag_target=3600;

System altered.

 

15、主库和备库修改oratab

$ vi /etc/oratab

mis:/oracle/oracle/product/11.2.0/db_1:Y  //此处,主库将N改成Y,备库添加此行

16、主库往备库传文件

主库以root用户操作:

# cd $ORACLE_HOME/dbs

# scp ./* $ORACLE_HOME/dbs    //此处有一个init.ora已经存在,可以覆盖,也可以不覆盖,无任何影响

备库做一下操作:

# cd $ORACLE_HOME/dbs

# chown oracle:oinstall ./*

# mkdir /oracle/oracle/admin/mis/adump    //备库创建adump目录

# chown -R oracle:oinstall /oracle/oracle/admin

16、rman自动备份脚本

su - oracle

$ crontab -l    //在oracle用户下设置crontab定期自动执行脚本

00 03 07 * * /oracle/scripts/gather_stats.sh > /oracle/scripts/gather_stats.log

00 02 * * 01 /oracle/scripts/rmanfull.sh

00 08 * * * /oracle/scripts/rmanarch.sh

00 16 * * * /oracle/scripts/rmanarch.sh

00 00 * * * /oracle/scripts/rmanarch.sh

 

脚本内容分别如下:

$ cat /oracle/scripts/gather_stats.sh        //收集数据库统计信息

#!/bin/sh

#gather database statistic

. ~/.profile

sqlplus / as sysdba <<eof

begin

DBMS_STATS.GATHER_DATABASE_STATS ();

end;

/

eof

$

 

$ cat /oracle/scripts/rmanfull.sh        //数据库全备

#!/bin/sh

. ~/.profile

DATE=`date +%Y-%m-%d-%H-%M-%S`

rman target / log=/oracle/scripts/rmanfull_log.txt <<eof

run

{

allocate channel c1 type disk;

sql 'alter system archive log current';

crosscheck archivelog all;

delete noprompt expired backup;

backup as backupset database format '/orabak/rman_fullbak/rmanfull_%d_%T_%s_%p.bak' include current controlfile;

sql 'alter system archive log current';

sql 'alter system archive log current';

sql 'alter system archive log current';

backup format '/orabak/rman_fullbak/rmanarch_full%T%U' archivelog all;

crosscheck archivelog all;

delete noprompt archivelog until time='sysdate-3';

backup spfile format '/orabak/rman_fullbak/spfile_%d_%T_%s_%p.bak';

backup current controlfile format '/orabak/rman_fullbak/control_%d_%T_%s_%p.bak';

crosscheck archivelog all;

crosscheck backup;

delete noprompt expired backup;

delete noprompt obsolete;

report need backup;

release channel c1;

}

eof

find /orabak/rman_archbak/ -mtime +14 | xargs rm -f

$

 

$ cat /oracle/scripts/rmanarch.sh        //数据库归档备份

#!/bin/sh

. ~/.profile

DATE=`date +%Y-%m-%d-%H-%M-%S`

rman target / log=/oracle/scripts/rmanarch_log.txt <<eof

run

{

allocate channel c1 type disk;

backup as backupset format '/orabak/rman_archbak/arch_%d_%T_%s_%p.bak' archivelog all;

backup spfile format '/orabak/rman_archbak/spfile_%d_%T_%s_%p.bak';

backup current controlfile format '/orabak/rman_archbak/control_%d_%T_%s_%p.bak';

crosscheck archivelog all;

delete noprompt archivelog until time='sysdate-3';

crosscheck archivelog all;

crosscheck backup;

delete noprompt expired backup;

report need backup;

release channel c1;

}

eof

$

 

posted @ 2022-02-08 15:59  Eddie小陈  阅读(1083)  评论(0)    收藏  举报