RAC 配置和命令

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

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22934571/viewspace-1048536/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22934571/viewspace-1048536/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值