分类: Oracle
2010-08-29 20:40:54
日前,XX核心数据库存储鉴于稳定性考虑。需要更新一套新的存储设备。为此,需要进行数据库整体迁移。迁移的对象包括6个实例。分别为:XX XX XX
目前,数据库采用的架构是ORACLE10g RAC模式。使用ASM磁盘组存储共享数据文件、联机日志文件。
节点操作系统版本 |
|
数据库运行的版本 |
|
ORACLE RAC版本 |
|
XX实例数据量 |
|
XX实例数据量 |
|
XX实例数据量 |
|
XX实例数据量 |
|
XX实例数据量 |
|
XX实例数据量 |
|
计划目标数据库节点操作系统版本 |
|
计划目标数据库软件版本 |
|
计划目标数据库RAC软件版本 |
|
根据数据库使用版本、每个实例的数据量以及业务运行实际情况,采用Rman恢复方式逐步迁移每个实例。
版本 |
Oracle |
数据库软件目录(服务器端) |
/opt/oracle/product/ |
集群软件目录 |
/opt/oracle/product/ |
实例数据目录 |
+DATA |
归档日志目录 |
+DATA |
服务端口 |
1251:oracle监听服务 |
部署结构 |
RAC |
节点成员(主机) |
12核×1.8GHz
CPU,32GB DDR内存 |
创建实例 |
见下文 |
归档日志 |
启用 |
快速恢复区 |
不启用 |
系统语言环境字符集 |
Simplifed Chinese.ZHS16GBK |
数据库实例字符编码 |
AL32UTF8 |
实例存储方式 |
ASM(自动存储管理) |
集群心跳线方式 |
千兆接口交换机 |
其它要求 |
1.
启用归档日志 2.
数据库实例字符集选择:Unicode UTF-8 3.
修改数据连接池大小为:300(根据实际情况修改) 4.
修改数据库游标数大小为:1000(根据实际情况修改) 5.
修改SGA大小(根据实际情况修改,SGA总额小于系统内存大小的70%) 6.
其他数据库实例参数及配置根据实际情况修改。 |
版本 |
Oracle |
数据库软件目录(服务器端) |
/opt/oracle/product/ |
集群软件目录 |
/opt/oracle/product/ |
实例数据目录 |
+DATADG |
归档日志目录 |
+DATADG |
服务端口 |
1521:oracle监听服务 |
部署结构 |
RAC |
节点成员(主机) |
12核×1.8GHz
CPU,32GB DDR内存, |
创建实例 |
见下文 |
归档日志 |
启用 |
快速恢复区 |
不启用 |
系统语言环境字符集 |
Simplifed Chinese.ZHS16GBK |
数据库实例字符编码 |
AL32UTF8 |
实例存储方式 |
ASM(自动存储管理) |
集群心跳线方式 |
千兆接口交换机 |
其它要求 |
1.
启用归档日志 2.
数据库实例字符集选择:Unicode UTF-8 3.
修改数据连接池大小为:300(根据实际情况修改) 4.
修改数据库游标数大小为:1000(根据实际情况修改) 5.
修改SGA大小(根据实际情况修改,SGA总额小于系统内存大小的70%) 6.
其他数据库实例参数及配置根据实际情况修改。 |
1.创建需要使用的目录
分别在两个节点执行:
bash-3.00$
mkdir –p /opt/oracle/admin/ORACLE_SID/bdump
bash-3.00$
mkdir –p /opt/oracle/admin/ORACLE_SID/udump
bash-3.00$
mkdir –p /opt/oracle/admin/ORACLE_SID/adump
bash-3.00$
mkdir –p /opt/oracle/admin/ORACLE_SID/pfile
bash-3.00$
mkdir –p /opt/oracle/admin/ORACLE_SID/cdump
赋予相应的权限:
bash-3.00$
chown –R oracle:oinstall /opt/oracle/admin/ORACLE_SID/
在其中一个节点上,连接asm实例,创建共享存储需要的目录:
bash-3.00$
export ORACLE_SID=+ASM1
bash-3.00$
asmcmd
asmcmd>cd DATADG
asmcmd>mkdir ORACLE_SID
asmcmd>cd
ORACLE_SID
asmcmd>mkdir ONLINELOG/ ARCHIVELOG/ DATAFILE/
CONTROLFILE/ TEMPFILE/
2.创建密码文件
分别在两个节点执行
节点一:
bash-3.00$cd
$ORACLE_HOME/dbs
bash-3.00$orapwd
file=orapw{ORACLE_SID}1
password=oracle entries=5
节点二:
bash-3.00$cd
$ORACLE_HOME/dbs
bash-3.00$orapwd
file=orapw{ORACLE_SID}2
password=oracle entries=5
3.配置监听服务
在两个节点中,编辑$ORACLE_HOME/NETWORK/admin/tnsnames.ora,添加相应的节点监听服务。
LISTENERS_KYDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = M5KA2)(PORT
= 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = M5KB2)(PORT
= 1521))
)
xx =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = M5KB
2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =ORACLE_SID)
(INSTANCE_NAME = ORACLE_SID2)
)
)
XX =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = M5KA2)(PORT
= 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORACLE_SID)
(INSTANCE_NAME =ORACLE_SID1)
)
)
4.由源数据库copy一份初始化参数文件init{ORACLE_SID}.ora至目的数据库;
也可由备份的初始化参数恢复;
本文档提供的是由源库copy过来的初始化参数方案。
5.修改init{ORACLE_SID}.ora参数的一些设置
只需修改归档本地路径的指向
6.将初始化参数放置共享存储中,修改客户端初始化参数文件,内容指向到asm共享盘中的SPFILE。
在一个节点中操作:
bash-3.00$ sqlplus "/as sysdba"
SQL*Plus:
Release
Copyright
(c) 1982, 2007, Oracle. All Rights
Reserved.
Connected
to an idle instance.
SQL>create spfile ='+DATADG/ORACLE_SID/spfile{ORACLE_SID}.ora'
from pfile='/tmp/init{ORACLE_SID}.ora';
File
created.
修改节点初始化参数文件,内容指向到asm共享盘中的SPFILE:
节点1(ORACLE_SID1)
echo "SPFILE='+DATADG/ORACLE_SID/spfile {ORACLE_SID}.ora'"
> /opt/oracle/product/
节点2(ORACLE_SID2)
echo "SPFILE='+DATADG/ORACLE_SID/spfile {ORACLE_SID}.ora'"
> /opt/oracle/product/
一、 还原数据库
1、在一个节点中,进入Rman进行对数据库的恢复与还原(以下的步骤均在一个节点中操作即可)
bash-3.00$ export ORACLE_SID=***
bash-3.00$ rman target /
Recovery
Manager: Release
Copyright
(c) 1982, 2007, Oracle. All rights
reserved.
connected
to target database: ORACLE_SID (not
mounted)
2、设置DBID
设置与源数据库一致的DBID,否则数据库还原会报错并无法继续。源数据库的DBID可由源数据库的备份日志查到;
RMAN> set dbid=3343735848;
executing
command: SET DBID
3、恢复控制文件
RMAN> startup nomount;
Oracle
instance started
Total
System Global Area 1610612736 bytes
Fixed
Size 2040952 bytes
Variable
Size 385883016 bytes
Database
Buffers 1207959552 bytes
Redo
Buffers 14729216 bytes
RMAN>restore controlfile from '/tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_ctl_32lf3pu0_1_1.20100601';
Starting
restore at 2010/07/20/ 10:21:32
using
target database control file instead of recovery catalog
allocated
channel: ORA_DISK_1
channel
ORA_DISK_1: sid=519 instance=rsdb1 devtype=DISK
channel
ORA_DISK_1: restoring control file
channel
ORA_DISK_1: restore complete, elapsed time: 00:00:07
output
filename=+DATADG/rsdb/control01.ctl
output
filename=+DATADG/rsdb/control02.ctl
output
filename=+DATADG/rsdb/control03.ctl
Finished
restore at 2010/07/20/ 10:21:43
4、Mount 数据库
RMAN> alter database mount;
database
mounted
released
channel: ORA_DISK_1
5、把复制过来的备份文件集注册到备份资料库中
RMAN> catalog start with '/tmp/backup/Weekdays';
searching
for all files that match the pattern /tmp/backup/Weekdays
List of
Files Unknown to the Database
=====================================
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_arch_2ulf3pst_1_1.20100601
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_arch_2vlf3psu_1_1.20100601
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_arch_30lf3pst_1_1.20100601
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_arch_31lf
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_ctl_32lf3pu0_1_1.20100601
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_init_33lf3pu3_1_1.20100601
File
Name: /tmp/backup/Weekdays/Tue-Jun-1/rsdb_bk.log
File
Name: /tmp/backup/Weekdays/Tue-Jun-1/rsdb_dbf_2slf3pc2_1_1.20100601
File
Name: /tmp/backup/Weekdays/Tue-Jun-1/rsdb_dbf_2tlf3prt_1_1.20100601
Do you
really want to catalog the above files (enter YES or NO)? yes
cataloging
files...
cataloging
done
List of
Cataloged Files
=======================
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_arch_2ulf3pst_1_1.20100601
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_arch_2vlf3psu_1_1.20100601
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_arch_30lf3pst_1_1.20100601
File
Name: /tmp/backup/Weekdays/archive/Tue-Jun-1/rsdb_arch_31lf