AIX7.1下安装Oracle RAC 12c步骤
数据库12c rac安装
目录
3、使用newkfvg新建lv(lv_oracle 20G )
6、新建用户组:dba组,oinstall组,oracle用户
数据库及系统说明
|
主机名 |
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
$
本文来自博客园,作者:Eddie小陈,转载请注明原文链接:https://www.cnblogs.com/orachen/p/15871606.html

浙公网安备 33010602011771号