grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
/etc/sysctl.conf中编辑
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
/sbin/sysctl –p
在/etc/rc.local中加入(数值以具体情况而定,以下是默认值)
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
# /usr/sbin/useradd -m -g oinstall -G dba oracle
/etc/hosts
127.0.0.1 localhost.localdomain localhost
# public address
10.45.170.17 dbrac1
10.45.170.18 dbrac2
# private address
172.168.0.17 dbrac1-eth0
172.168.0.18 dbrac2-eth0
# virtual address
10.45.170.117 dbrac1-vip
10.45.170.118 dbrac2-vip
/etc/init.d/oracleasm
# /etc/init.d/oracleasm enable
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb3
# /etc/init.d/oracleasm scandisks
编辑.bashrc设置
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
ORA_CRS_HOME=/u01/crs/oracle/product/10.2.0/crs_1
用oracle帐号编辑 /home/oracle/.bashrc
1.CRS安装路径的创建及授权
如下所示:
# mkdir -p /u01/crs/oracle/product/10.2.0/crs_1
# chown -R oracle:oinstall /u01/crs/oracle
# chmod -R 775 /u01/crs/oracle
oracle@raclinux1 bin]$ pwd
/u01/app/oracle/product/10.2.0/crs/bin
[oracle@raclinux1 bin]$ ./crs_stat
环境变量生效
$ source .bash_profile
net time –I TARGETIP
$ cd $ORACLE_BASE/product/10.2.0/crs_1/bin
$ olsnodes
# /etc/init.d/init.crs disable
CVU
nodes
# /usr/sbin/groupadd -g 501 oinstall
# /usr/sbin/groupadd -g 500 dba
# id oracle
# /usr/sbin/usermod -g oinstall -G dba oracle
# /usr/sbin/useradd -u 501 -g oinstall -G dba oracle
# passwd oracle
# id nobody
# /usr/sbin/useradd nobody
DB clone, ebs patch
#on P1EDBDB1
o $ vi .profile
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/product/10.2.0/db_1
export ORA_CRS_HOME=/oracle/product/10.2.0/crs
export ORACLE_SID=p1edbdb1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
export PATH=$PATH:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export DISPLAY=10.1.2.13:0.0
export DBCA_RAW_CONFIG=/oracle/product/10.2.0/oradata/p1edbdb/p1edbdb_raw.conf
export TMPDIR=/tmp
#on P1EDBDB2
o $ vi .profile
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/product/10.2.0/db_1
export ORA_CRS_HOME=/oracle/product/10.2.0/crs
export ORACLE_SID=p1edbdb2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
export PATH=$PATH:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export DISPLAY=10.1.2.14:0.0
export DBCA_RAW_CONFIG=/oracle/product/10.2.0/oradata/p1edbdb/p1edbdb_raw.conf
export TMPDIR=/tmp
# /usr/contrib/bin/machinfo | grep -i Memory
# uname –a
# uname -a
# /usr/sbin/swapinfo –a
# bdf /tmp
# bdf –k
# bdf /oracle
# /bin/getconf KERNEL_BITS
/etc/hosts:
Node Interface Name Type IP Address Registered In
p1edbdb1 p1edbdb1 Public 10.1.2.13 DNS (if available, else the hosts file)
p1edbdb1 p1edbdb1-vip Virtual 10.1.2.213 DNS (if available, else the hosts file)
p1edbdb1 p1edbdb1-priv Private 192.168.10.13 Hosts file
p1edbdb2 p1edbdb2 Public 10.1.2.14 DNS (if available, else the hosts file)
p1edbdb2 p1edbdb2-vip Virtual 10.1.2.214 DNS (if available, else the hosts file)
p1edbdb2 p1edbdb2-priv Private 192.168.10.14 Hosts file
$ ssh p1edbdb1 date
$ ssh p1edbdb2 date
Or
$ remsh p1edbdb1 date
$ remsh p1edbdb2 date
1. Vi /etc/hosts file using root user on all nodes:
10.1.2.13 p1edbdb1
10.1.2.213 p1edbdb1-vip
192.168.10.13 p1edbdb1-priv
10.1.2.14 p1edbdb2
10.1.2.214 p1edbdb2-vip
192.168.10.14 p1edbdb2-priv
127.0.0.1 localhost loopback
#127.0.0.1 localhost localhost.domain
1. Vi .rhosts file using root user on all nodes:
p1edbdb1 root
p1edbdb1-vip root
p1edbdb1-priv root
p1edbdb2 root
p1edbdb2-vip root
p1edbdb2-priv root
2. Vi .rhosts file using oracle user on all nodes((cd /home/oracle)):
p1edbdb1 oracle
p1edbdb1-vip oracle
p1edbdb1-priv oracle
p1edbdb2 oracle
p1edbdb2-vip oracle
p1edbdb2-priv oracle
#su – root (su - oracle)
remsh P1EDBDB1 date
remsh P1EDBDB1-VIP date
remsh P1EDBDB1-PRIV date
remsh P1EDBDB2 date
remsh P1EDBDB2-VIP date
remsh P1EDBDB2-PRIV date
CVU
su - oracle
/tmp/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n p1edbdb1,p1edbdb2 –verbose
su - oracle
/tmp/clusterware/cluvfy/runcluvfy.sh comp nodecon -n p1edbdb1, p1edbdb2 -verbose
# /usr/sbin/swlist -l level | more
eg. :
# /usr/sbin/swlist -l product | grep Serviceguard
#p1edbdb1, p1edbdb2
X11MotifDevKit.MOTIF21-PRG
kctune maxfiles=4096
kctune maxfiles_lim=4096
kctune maxdsiz=1073741824
kctune maxdsiz_64bit=4294967296
kctune maxssiz=268435456
kctune maxssiz_64bit=1073741824
kctune maxswapchunks=16384 #the parameter has not in HP-UX11.31
kctune maxuprc=3687
kctune msgmap=4098 #the parameter has not in HP-UX11.31
kctune msgmni=4096
kctune msgseg=32767 ##the parameter has not in HP-UX11.31 (kctune | grep msgseg)
kctune msgtql=4096
kctune ncallout=7200 ###the parameter has not in HP-UX11.31
kctune ncsize=35840
kctune nfile=63488 ###the parameter has not in HP-UX11.31
kctune nflocks=4096
kctune ninode=34816
kctune nkthread=7184
kctune nproc=4096
kctune semmap=4098 ###the parameter has not in HP-UX11.31
kctune semmni=4096
kctune semmns=8192
kctune semmnu=4092
kctune semvmx=32768
kctune shmmni=512
kctune shmseg=120
kctune vps_ceiling=64
kctune ksi_alloc_max=32768
kctune max_thread_proc=1024
kctune shmmax=17179869184 #16G:17179869184#(RAM/2)
kctune max_async_ports=1054
kctune aio_max_ops=2048
su - oracle
/tmp/clusterware/cluvfy/runcluvfy.sh stage -post hwos -n p1edbdb1,p1edbdb2 -verbose
su - oracle
/tmp/clusterware/cluvfy/runcluvfy.sh comp sys -n p1edbdb1,p1edbdb2 -p crs -osdba crs -orainv oinstall
? Oracle Base Directory
? Oracle Inventory Directory
? Oracle Clusterware Home Directory
? Oracle Home Directory
ORACLE_BASE=/oracle
P1EDBDB1 and P1EDBDB2:
/oracle/oraInventory
ORA_CRS_HOME=/oracle/product/10.2.0/crs
ORACLE_HOME=/oracle/product/10.2.0/db_1
# more /var/opt/oracle/oraInst.loc
inventory_loc=/oracle/oraInventory
inst_group=oinstall
# more /etc/oratab
*:/oracle/product/10.2.0/db_1:N
# mkdir /oracle
# chown -R oracle:oinstall /oracle
# chmod -R 775 /oracle
ORACLE_BASE=/oracle/product/10.2.0/
# mkdir -p /oracle/product/10.2.0/db_1
# chown -R oracle:oinstall /oracle/product/10.2.0/db_1
# chmod -R 775 /oracle/product/10.2.0/db_1
Installing Oracle Clusterware with OUI
$ORA_CRS_HOME:/oracle/product/10.2.0/crs
#configure the public IP,private IP,VIP IP information:
#click the next button, configure the OCR Location:
#configure the voting disk location
#click the next button, chose the oracle installation components
Select * from dba_registry;
select * from v$option where parameter like 'Partitioning'
6.2 Configure TNSNAMES
TNS Configuration and Check
###############################################
## node1: p1edbdb1
###############################################
# listener.ora.p1edbdb1 Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora.p1edbdb1
# Generated by Oracle configuration tools.
LISTENER_P1EDBDB1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb1-vip)(PORT = 1521)(IP = FIRST
))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.2.13)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER_P1EDBDB1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
##
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
P1EDBDB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1edbdb)
(INSTANCE_NAME = p1edbdb2)
)
)
P1EDBDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1edbdb)
(INSTANCE_NAME = p1edbdb1)
)
)
P1EDBDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1edbdb)
(FAILOVER_MODE= (TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 10)
(DELAY = 5)
)
)
)
LISTENERS_P1EDBDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb2-vip)(PORT = 1521))
)
###############################################
## node2: p1edbdb2
###############################################
# listener.ora.p1edbdb2 Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora.p1edbdb2
# Generated by Oracle configuration tools.
LISTENER_P1EDBDB2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb2-vip)(PORT = 1521)(IP = FIRST
))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.2.14)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER_P1EDBDB1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
####
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
P1EDBDB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1edbdb)
(INSTANCE_NAME = p1edbdb2)
)
)
P1EDBDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1edbdb)
(INSTANCE_NAME = p1edbdb1)
)
)
P1EDBDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1edbdb)
(FAILOVER_MODE= (TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 10)
(DELAY = 5)
)
)
)
LISTENERS_P1EDBDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1edbdb2-vip)(PORT = 1521))
)
7 Verifying Oracle Real Application Clusters Databases
#1 check the rac db version
sqlplus sys/sys@p1edbdb as sysdba
sqlplus sys/sys@p1edbdb1 as sysdba
sqlplus sys/sys@p1edbdb2 as sysdba
select * from v$version;
#2 check the oracle install components
Select * from dba_registry;
select * from v$option where parameter like 'Partitioning';
#3 Check the cluster software version
# /oracle/product/10.2.0/crs/bin
# $ORA_CRS_HOME/bin
crsctl query crs softwareversion
#4 Check the status of cluster
crs_stat -t
#5 Check the Status of the RAC DB
srvctl config database -d p1edbdb
srvctl status database -d p1edbdb
#6 check and test the instance failover
#start any instance
srvctl start instance -d p1edbdb -i p1edbdb1 (p1edbdb2)
sqlplus sys/oracle@p1edbdb as sysdba
show parameter instance_name
#stop any instance
srvctl stop instance -d p1edbdb -i p1edbdb1(p1edbdb2)
#check the status
crs_stat -t
#7 start and stop rac database
#start the rac db
srvctl start database -d p1edbdb
#stop the rac db
srvctl stop database -d p1edbdb
#check the status
crs_stat -t
#8 start and stop listener
#start any listener
$ srvctl start listener -n p1edbdb1 (p1edbdb2)
#stop any listener
$ srvctl stop listener -n p1edbdb1 (p1edbdb2)
#check the status
crs_stat -t
FDC:
6.2 Configure TNSNAMES
TNS Configuration and Check
###############################################
## node1: p1fdcdb1
###############################################
# listener.ora.p1fdcdb1 Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora.p1fdcdb1
# Generated by Oracle configuration tools.
LISTENER_P1FDCDB1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb1-vip)(PORT = 1521)(IP = FIRST
))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.2.15)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER_P1FDCDB1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
##
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
P1FDCDB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1fdcdb)
(INSTANCE_NAME = p1fdcdb2)
)
)
P1FDCDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1fdcdb)
(INSTANCE_NAME = p1fdcdb1)
)
)
P1FDCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1fdcdb)
(FAILOVER_MODE= (TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 10)
(DELAY = 5)
)
)
)
LISTENERS_P1FDCDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb2-vip)(PORT = 1521))
)
###############################################
## node2: p1fdcdb2
###############################################
# listener.ora.p1fdcdb2 Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora.p1fdcdb2
# Generated by Oracle configuration tools.
LISTENER_P1FDCDB2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb2-vip)(PORT = 1521)(IP = FIRST
))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.2.16)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER_P1FDCDB1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
####
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
P1FDCDB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1fdcdb)
(INSTANCE_NAME = p1fdcdb2)
)
)
P1FDCDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1fdcdb)
(INSTANCE_NAME = p1fdcdb1)
)
)
P1FDCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1fdcdb)
(FAILOVER_MODE= (TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 10)
(DELAY = 5)
)
)
)
LISTENERS_P1FDCDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1fdcdb2-vip)(PORT = 1521))
)
7 Verifying Oracle Real Application Clusters Databases
#1 check the rac db version
sqlplus sys/sys@p1fdcdb as sysdba
sqlplus sys/sys@p1fdcdb1 as sysdba
sqlplus sys/sys@p1fdcdb2 as sysdba
select * from v$version;
#2 check the oracle install components
Select * from dba_registry;
select * from v$option where parameter like 'Partitioning';
#3 Check the cluster software version
# /oracle/product/10.2.0/crs/bin
# $ORA_CRS_HOME/bin
crsctl query crs softwareversion
#4 Check the status of cluster
crs_stat -t
#5 Check the Status of the RAC DB
srvctl config database -d p1fdcdb
srvctl status database -d p1fdcdb
#6 check and test the instance failover
#start any instance
srvctl start instance -d p1fdcdb -i p1fdcdb1 (p1fdcdb2)
sqlplus sys/oracle@p1fdcdb as sysdba
show parameter instance_name
#stop any instance
srvctl stop instance -d p1fdcdb -i p1fdcdb1(p1fdcdb2)
#check the status
crs_stat -t
#7 start and stop rac database
#start the rac db
srvctl start database -d p1fdcdb
#stop the rac db
srvctl stop database -d p1fdcdb
#check the status
crs_stat -t
#8 start and stop listener
#start any listener
$ srvctl start listener -n p1fdcdb1 (p1fdcdb2)
#stop any listener
$ srvctl stop listener -n p1fdcdb1 (p1fdcdb2)
#check the status
crs_stat -t
MES:
6.2 Configure TNSNAMES
TNS Configuration and Check
###############################################
## node1: p1mesdb1
###############################################
# listener.ora.p1mesdb1 Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora.p1mesdb1
# Generated by Oracle configuration tools.
LISTENER_P1MESDB1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb1-vip)(PORT = 1521)(IP = FIRST
))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.2.11)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER_P1MESDB1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
##
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
P1MESDB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1mesdb)
(INSTANCE_NAME = p1mesdb2)
)
)
P1MESDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1mesdb)
(INSTANCE_NAME = p1mesdb1)
)
)
P1MESDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1mesdb)
(FAILOVER_MODE= (TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 10)
(DELAY = 5)
)
)
)
LISTENERS_P1MESDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb2-vip)(PORT = 1521))
)
###############################################
## node2: p1mesdb2
###############################################
# listener.ora.p1mesdb2 Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora.p1mesdb2
# Generated by Oracle configuration tools.
LISTENER_P1MESDB2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb2-vip)(PORT = 1521)(IP = FIRST
))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.2.12)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER_P1MESDB1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
####
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
P1MESDB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1mesdb)
(INSTANCE_NAME = p1mesdb2)
)
)
P1MESDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1mesdb)
(INSTANCE_NAME = p1mesdb1)
)
)
P1MESDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = p1mesdb)
(FAILOVER_MODE= (TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 10)
(DELAY = 5)
)
)
)
LISTENERS_P1MESDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = p1mesdb2-vip)(PORT = 1521))
)
7 Verifying Oracle Real Application Clusters Databases
#1 check the rac db version
sqlplus sys/sys@p1mesdb as sysdba
sqlplus sys/sys@p1mesdb1 as sysdba
sqlplus sys/sys@p1mesdb2 as sysdba
select * from v$version;
#2 check the oracle install components
Select * from dba_registry;
select * from v$option where parameter like 'Partitioning';
#3 Check the cluster software version
# /oracle/product/10.2.0/crs/bin
# $ORA_CRS_HOME/bin
crsctl query crs softwareversion
#4 Check the status of cluster
crs_stat -t
#5 Check the Status of the RAC DB
srvctl config database -d p1mesdb
srvctl status database -d p1mesdb
#6 check and test the instance failover
#start any instance
srvctl start instance -d p1mesdb -i p1mesdb1 (p1mesdb2)
sqlplus sys/oracle@p1mesdb as sysdba
show parameter instance_name
#stop any instance
srvctl stop instance -d p1mesdb -i p1mesdb1(p1mesdb2)
#check the status
crs_stat -t
#7 start and stop rac database
#start the rac db
srvctl start database -d p1mesdb
#stop the rac db
srvctl stop database -d p1mesdb
#check the status
crs_stat -t
#8 start and stop listener
#start any listener
$ srvctl start listener -n p1mesdb1 (p1mesdb2)
#stop any listener
$ srvctl stop listener -n p1mesdb1 (p1mesdb2)
#check the status
crs_stat -t
Oracle RAC维护
所有实例和服务的状态
$ srvctl status database -d orcl
单个实例的状态
$ srvctl status instance -d orcl -i orcl2
在数据库全局命名服务的状态
$ srvctl status service -d orcl -s orcltest
显示 ASM 实例的配置
$ srvctl config asm -n linux1
select name from v$datafile
union
select member from v$logfile
union
select name from v$controlfile
union
select name from v$tempfile;
NAME
启动/停止RAC集群
确保是以oracleUNIX 用户登录的。我们将从rac1节点运行所有命令:
# su – oracle
$ hostname
Rac1
停止 Oracle RAC10g环境
第一步是停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟 IP、GSD、TNS **器和 ONS)。
$ export ORACLE_SID=orcl1
$ emctl stop dbconsole
$ srvctl stop instance -d orcl -i orcl1
$ srvctl stop asm -n rac1
$ srvctl stop nodeapps –n rac1
启动 Oracle RAC 10g 环境
第一步是启动节点应用程序(虚拟 IP、GSD、TNS **器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。
$ export ORACLE_SID=orcl1
$ srvctl start nodeapps -n rac1
$ srvctl start asm -n rac1
$ srvctl start instance -d orcl -i orcl1
$ emctl start dbconsole
工具集:
节点层: olsnodes -n -p -i
网络层: oifcfg (iflist,getif,setif,delif)
集群层: crstl,ocrcheck,ocrdump,ocrconfig
应用层: srvctl,onsctl,crs_stat
集群层:
crsctl check crs (css,crs,evm 状态)
crsctl check cssd (crsd,evmd) #可以检查每个状态
crs栈是否自动启动
/oracle/product/oem/crs/bin/crsctl disable crs
/oracle/product/oem/crs/bin/crsctl enable cres
crsctl start/stop crs
Votedisk 磁盘位置
crsctl query css votedisk
ocrdump 打印OCR内容
ocrdump -stdout -keyname SYSTEM.css -xml|more
OCR 备份:
默认位置 $CRS_HOME/crs/cdata/
日志文件 ocrdump_.log
ocrcheck 检查OCR内容的一致性
$ORACLE_HOME/log//client 产生ocrcheck_pid.log
$ocrcheck
检查OCR内容的一致性
ocrconfig
用于维护OCR磁盘
查看自动备份
$ocrconfig -showbackup
导出OCR
$crsctl stop crs
$ocrconfig -export ocrexp.exp
$ocrconfig -import /oracle/ocr.exp
检查工具
/backup/install_medir/clusterware/cluvfy/runcluvfy.sh comp ocr -n all
应用层
crs_stat (-v,-p)
onsctl
ons配置内容
$CRS_HOME/opmn/conf/ons.config
localport=6101
remoteport=6200
loglevel=3
useocr=on
srvctl 最常用的命令
显示在OCP中注册的所有数据库
$srvctl config database
查看某个数据库配置,显示数据库中的节点名,实例名,以及$ORACLE_HOME
srvctl config database -d wxxrtest
srvctl config database -d wxxrtest -a #显示详细信息
查看node application 的配置
srvctl config nodeapps -n dbs
关闭RAC
srvctl stop database -d oradb
srvctl stop asm -n rac2
srvctl stop asm -n rac1
srvctl stop nodeapps -n rac2
srvctl stop nodeapps -n rac1
3查看LISTENER
srvctl config listener -n dbs
srvctl config listener -n dbp
4查看ASM,显示ASM实例名和$ORACLE_HOME
srvctl config asm -n dbp
5查看service
srvctl config service -d wxxrtest -s zxml
6 add添加对象
srvctl add database -d abc -o $ORACLE_HOME
添加实例
srvctl add instance -d abc -n dbs -i abc2
缺省情况下数据库,实例,服务,ASM都是随着CRS的启动而自动启动
srvctl enable database -d abc
srvctl config database -d abc -a
(ENABLE FLAG:DB ENABLED)表示自动启动成功
关闭自动启动特新4
srvctl disable database -d abc
(ENABLE FLAN:DB DISABLED, INST DISABLED ON abc2 abc1)
关闭某个实例自动启动
srvctl disable instance -d abc -i abc1
-d 后面是database_name,-i 是instance_name,-n 是node_name;
启动和停止
1:启动数据库,缺省启动到OPEN状态
dbs$srvctl start database -d wxxrtest
2:制定启动状态
启动实例1,2到mount,nomunt
srvctl start database -d wxxrtest -i wxxrtest1 -o mount
srvctl start database -d wxxrtest -i wxxrtes21 -o nomount
确认实例1状态
export ORACLE_SID=WXXRZXM1
sqlplus '/as sysdba'
select status from v$instance;
以 IMMEDIATE方式关闭实例1
$srvctl stop instance -d wxxrzxm -i wxxrzxm1 -o immediate
srvctl stop instance -d wxxrzxm -i wxxrzxm1 -o abort
停止所有节点
crsctl stop crs
HA high availiablity
Failover 故障转移
Change :
alter system set sga_target=28G scope=spfile sid='*';
Change :
sql>alter system set pga_aggregate_target=4G scope=both;
sql>show parameter pga_aggregate_target;
-- should see the altered number on both instances
Change:
sql>alter system set sga_max_size=28G scope=spfile sid='*';
sql>alter system set sga_max_size=28G scope=spfile ;
sql>alter system set sga_target=28G scope=spfile;
3. shutdown database PROD (two instances should be shut down)
$>srvctl stop database -d PROD
$>. /$ORA_CRS_HOME/bin/crs_stat -- to check for the database status
4. bring up database PROD (two instance should be brought up)
$>srvctl START database -d PROD
$>. /$ORA_CRS_HOME/bin/crs_stat -- to check for the database status
login into both instances as sysdba to check
$ORA_CRS_HOMEloghostnamealert.Log
/dev/dvdrom/crs/Disk1/cluvfy/runcluvfy.sh comp sys -n node1,node2 -p crs -osdba crs -orainv oinstall
Identifying Required Software Directories
? Oracle Base Directory
? Oracle Inventory Directory
? Oracle Clusterware Home Directory
? Oracle Home Directory
Oracle Base Directory
/mount_point/app/oracle_sw_owner
/mount_point:/oracle or /opt/oracle.
/u01/app/oracle
/u01/app/orauser
/opt/oracle/app/oracle
Oracle Inventory Directory
:oracle_base/oraInventory
Oracle Clusterware Home Directory
:/u01/crs/oracle/product/10.2.0/crs
# mkdir -p /mount_point/crs/oracle_sw_owner/product/10/app
# chmod -R 775 /mount_point/crs/oracle_sw_owner
:/u01/crs/oracle/product/10/app
# more /etc/oratab
*:/u03/app/oracle/product/10.2.0/db_1:N
*:/opt/orauser/infra_904:N
*:/oracle/9.2.0:N
# bdf oracle_base_path
# su - oracle
$ ps -ef | grep tnslsnr
... oracle_home1/bin/tnslsnr LISTENER -inherit
$ORACLE_HOME/bin/lsnrctl status listenername
$ $ORACLE_HOME/bin/lsnrctl stop listenername
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22934571/viewspace-1048536/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22934571/viewspace-1048536/