恢复案例(恢复生产库的过程简单记录一下,能给更多爱好oracle软件的人能带来一点点帮助)
我的朋友现在又一套oracle rac 数据库服务器操作系统坏了,让我帮他在现有两台新的服务器上让把oracle
rac环境拉起来。
之前服务器配置信息如下:
主机名: rac1 rac2
实例: racdb1 racdb2
数据库名称: racdb
磁盘组名称: racdb
os:solaris 5.10_x64
db版本: oracle 10.2.0.4.0
恢复步骤如下:
第一步骤:
1 在现有新的服务器上安装操作系统。
2 对操作系统进行配置。
3 对存储连接到新的服务器上,把ocr和votdisk都给格式。
4 安装集群软件。
5 安装数据库软件。
6 升级集群软件和数据库软件。
6.1 升级集群软件
rac1 rac2
1 先停止crs服务
# /u01/app/crs_1/bin/crsctl stop crs
2 升级完成执行相关的脚本
# /u01/app/crs_1/bin/crsctl stop crs
# /u01/app/crs_1/install/root102.sh
6.2 如下是升级数据库软件
/u01/app/oracle/product/10.2.0/db_1/root.sh
7 建立数据库监听
netca
第二步骤:
1 建立asm实例参数
dbca
2 挂载磁盘组
rac1
$ ORACLE_SID=+ASM1
$ export ORACLE_SID
1 让dbca创建的参数需要修改一个地方
su - oracle
cd /u01/app/oracle/admin/+ASM/pfile
$ vi init.ora
# Cluster Database
cluster_database=true
# Diagnostics and Statistics
background_dump_dest=/u01/app/oracle/admin/+ASM/bdump
core_dump_dest=/u01/app/oracle/admin/+ASM/cdump
user_dump_dest=/u01/app/oracle/admin/+ASM/udump
# Miscellaneous
instance_type=asm
# Pools
large_pool_size=12M
# Security and Auditing
remote_login_passwordfile=exclusive
asm_diskgroups='RACDB'
???-----》这个地方要手工填写
+ASM2.instance_number=2
+ASM1.instance_number=1
2 挂载磁盘组
$ ORACLE_SID=+ASM1
$ export ORACLE_SID
sqlplus / as sysdba
SQL> select status from v$instance;
STATUS
------------------------
STARTED
SQL> alter diskgroup racdb mount;
Diskgroup altered.
SQL> select name,state from v$asm_diskgroup;
NAME STATE
RACDB DISMOUNTED
SQL> alter diskgroup racdb mount;
Diskgroup altered.
SQL> select name,state from v$asm_diskgroup;
NAME STATE
RACDB MOUNTED
SQL> select status from
v$instance;
STATUS
------------------------
STARTED
col PATH for a25
select GROUP_NUMBER ,PATH,TOTAL_MB from v$asm_disk;
GROUP_NUMBER PATH TOTAL_MB
0 /dev/rdsk/c2t2d0s1
203
1 /dev/rdsk/c2t2d0s4
5122
1 /dev/rdsk/c2t2d0s3
5122
rac2
su - oracle
$ ORACLE_SID=+ASM2
$ export ORACLE_SID
cd /u01/app/oracle/admin/+ASM/pfile
vi init.ora
# Cluster Database
cluster_database=true
# Diagnostics and Statistics
background_dump_dest=/u01/app/oracle/admin/+ASM/bdump
core_dump_dest=/u01/app/oracle/admin/+ASM/cdump
user_dump_dest=/u01/app/oracle/admin/+ASM/udump
# Miscellaneous
instance_type=asm
# Pools
large_pool_size=12M
# Security and Auditing
remote_login_passwordfile=exclusive
asm_diskgroups='RACDB'
+ASM2.instance_number=2
+ASM1.instance_number=1
(注意:磁盘权限问题)
SQL> select name,state from v$asm_diskgroup;
NAME STATE
RACDB DISMOUNTED
SQL> alter diskgroup racdb mount;
Diskgroup altered.
SQL> select name,state from v$asm_diskgroup;
NAME STATE
RACDB MOUNTED
SQL> select status from
v$instance;
STATUS
------------------------
STARTED
col PATH for a25
select GROUP_NUMBER ,PATH,TOTAL_MB from v$asm_disk;
3 改数据库参数文件
rac1
su - oracle
cd
/u01/app/oracle/product/10.2.0/db_1/dbs/initracdb1.ora
spfile='+racdb/racdb/spfileracdb.ora'
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Sun Jul 27
22:04:50 2014
Copyright (c) 1982, 2007, Oracle. All Rights
Reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-00119: invalid specification for system parameter
REMOTE_LISTENER
ORA-00132: syntax error or unresolved network name
'LISTENERS_RACDB'
解决问题如下:
第一种方法:
create pfile='/export/home/oracle/1.ora' from
spfile='+racdb/racdb/spfileracdb.ora';
vi /export/home/oracle/1.ora
去掉:REMOTE_LISTENER
SQL> create spfile='+racdb/racdb/spfileracdb.ora' from
pfile='/export/home/oracle/1.ora';
File created.
第二种方法:
rac1 rac2
在tnsname.ora添加一句话
LISTENERS_RACDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT
= 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT
= 1521))
)
建立相关目录:
$ mkdir -p /u01/app/oracle/admin/racdb/adump
$ mkdir -p /u01/app/oracle/admin/racdb/bdump
$ mkdir -p /u01/app/oracle/admin/racdb/cdump
$ mkdir -p /u01/app/oracle/admin/racdb/udump
rac2
su - oracle
vi
/u01/app/oracle/product/10.2.0/db_1/dbs/initracdb2.ora
spfile='+racdb/racdb/spfileracdb.ora'
建立相关目录:
su - oracle
mkdir -p /u01/app/oracle/admin/racdb/adump
mkdir -p /u01/app/oracle/admin/racdb/bdump
mkdir -p /u01/app/oracle/admin/racdb/cdump
mkdir -p /u01/app/oracle/admin/racdb/udump
4 建立密码文件
su - oracle
cd /u01/app/oracle/product/10.2.0/db_1/dbs
rac1
orapwd file=orapwracdb1 password=oracle
rac2
orapwd file=orapwracdb2 password=oracle
5 注册数据库的资源到OCR
srvctl add database -d racdb -o $ORACLE_HOME
6 注册实例的资源到OCR
srvctl add instance -d racdb -i racdb1 -n rac1
srvctl add instance -d racdb -i racdb2 -n rac2
第三步骤:
1 对恢复的rac环境全面测试
$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
ora.racdb.db application ONLINE ONLINE rac2
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2
本次恢复案例小结:
对oracle asm实例以及asm磁盘组有更多了解,对oracle 10g rac架构进一步更深入了解。