欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

How to create a Oracle 11g RAC Database manually without DBC

程序员文章站 2024-04-02 21:41:16
...

From now on, Write everything in English. To create a Oracle 11g RAC database manually, there should be a ready RAC env, and you should following the steps below. 1.Create a Single instance Database in a Oracle 11g RAC ready Env. For more

From now on, Write everything in English.

To create a Oracle 11g RAC database manually, there should be a ready RAC env, and you should following the steps below.

1.Create a Single instance Database in a Oracle 11g RAC ready Env. For more info , Pls refer to my previous article How to create Oracle 11g R2 database manually in ASM?

Single instance Database in a 11g RAC:

instance_name=maomi

db_name=maomi

pfile= initmaomi.ora => spfile='+DATA/maomi/spfilemaomi.ora'

spfile='+DATA/maomi/spfilemaomi.ora'

2.Convert a Single instance Database to RAC Database in the following way.

2.1 create a pfile from existing spfile like the following:

vi initmaomi1.ora
*.__db_cache_size=125829120
*.__java_pool_size=4194304
*.__large_pool_size=4194304
*.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
*.__pga_aggregate_target=146800640
*.__db_cache_size=125829120
*.__java_pool_size=4194304
*.__large_pool_size=4194304
*.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
*.__pga_aggregate_target=146800640
*.__db_cache_size=125829120
*.__java_pool_size=4194304
*.__large_pool_size=4194304
*.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
*.__pga_aggregate_target=146800640
*.__sga_target=272629760
*.__shared_io_pool_size=0
*.__shared_pool_size=130023424
*.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/maomi/adump'
*.audit_trail='db'
*.compatible='11.2.0'
*.control_files='+DATA/maomi/controlfile/current.322.834531075','+FRA/maomi/controlfile/current.469.834531075'#Oracle managed file
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.DB_CREATE_ONLINE_LOG_DEST_1='+DATA'
*.DB_CREATE_ONLINE_LOG_DEST_2='+FRA'
*.db_domain=''
*.db_name='maomi'
*.db_recovery_file_dest='+FRA'
*.db_recovery_file_dest_size=2G
*.diagnostic_dest='/u01/app/oracle'
*.local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.21)(PORT=1521))))'
*.log_archive_dest_1='location=+FRA'
*.memory_target=400m
*.open_cursors=300
*.processes=150
*.remote_listener='rac-scan:1521'
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'

2.1 Create a new password files for each instances

[oracle@rac1 dbs]$ orapwd file=oramaomi1 password=oracle entries=5
[oracle@rac2 dbs]$ orapwd file=oramaomi2 password=oracle entries=5

2.2 Add an entry in the /etc/oratab of each node.

[oracle@rac2 dbs]$ more /etc/oratab
maomi:/u01/app/oracle/product/11.2.0.3/dbhome_1:N # line added by Agent
[oracle@rac1 dbs]$ more /etc/oratab
maomi:/u01/app/oracle/product/11.2.0.3/dbhome_1:N # line added by Agent

2.3 Add the following entry in the $ORACLE_HOME/network/admin/tnsnames.ora of each node.

MAOMI =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = maomi)
)
)

2.4 Add or modify the following parameters in the newly created pfile initmaomi1.ora.

*.cluster_database_instances=2
*.cluster_database=true
maomi1.instance_number=1
maomi2.instance_number=2
maomi1.thread=1
maomi2.thread=2
*.undo_management='AUTO'
maomi1.undo_tablespace='UNDOTBS1'
maomi2.undo_tablespace='UNDOTBS2'
maomi1.instance_name = maomi1
maomi2.instance_name = maomi2

2.5 Keep the existing instance maomi in open state, and then create an undo tablespace and another 2 redo group for the
second instance.

CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE SIZE 200M;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 3 SIZE 10M;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 4 SIZE 10M;

2.6 shutdown the instance maomi

and start the new instance maomi1,and enable redo thread for the instance maomi2.

export ORACLE_SID=maomi1

sqlplus / as sysdba
STARTUP;
ALTER DATABASE ENABLE PUBLIC THREAD 2;

2.7 create the pfile and spfile for the RAC database and startup the second instance.

create spfile='+DATA/maomi/spfilemaomi.ora' from pfile='initmaomi1.ora';

vi inittemp
spfile='+DATA/maomi/spfilemaomi.ora'

cp inittemp $ORACLE_HOME/dbs/initmaomi1.ora
scp $ORACLE_HOME/dbs/initmaomi1.ora rac2:$ORACLE_HOME/dbs/initmaomi2.ora

[oracle@rac2 dbs]$ export ORACLE_SID=maomi2
[oracle@rac2 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 20 12:14:45 2013

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 418484224 bytes
Fixed Size 1345352 bytes
Variable Size 285214904 bytes
Database Buffers 125829120 bytes
Redo Buffers 6094848 bytes
Database mounted.
Database opened.
SQL>

SQL> select instance_name,status from gv$instance;

INSTANCE_NAME STATUS
------------------------------------------------ ------------------------------------
maomi2 OPEN
maomi1 OPEN

modify the local_listener for the instance maomi2, so that the new instance can register in the listener.

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.22)(PORT=1521))))' scope=both;

2.8 Run RAC Database Data Dictionary Scripts

--update RAC component data dictionary
$ORACLE_HOME/rdbms/admin/catclust.sql

--rebuild invalid object
$ORACLE_HOME/rdbms/admin/utlrp.sql

2.9 shutdown both instances and register the database to OCR

[oracle@rac1 dbs]$ srvctl add database -d maomi -o '/u01/app/oracle/product/11.2.0.3/dbhome_1' -p '+DATA/maomi/spfilemaomi.ora' -s 'OPEN' -y 'AUTOMATIC'
[oracle@rac1 dbs]$ srvctl add instance -d maomi -i maomi1 -n rac1
[oracle@rac1 dbs]$ srvctl add instance -d maomi -i maomi2 -n rac2
[oracle@rac1 dbs]$ srvctl start database -d maomi


作者:xiangsir

QQ:444367417

MSN:xiangsir@hotmail.com