一:环境信息
1)主库(单实例)
主机平台:AIX6.1
数据库版本:11.2.0.3(psu5)
2)备库(部署了crs)
主机平台:AIX6.1
数据库版本:11.2.0.3(psu5)
二:方案背景
由于业务量增加,数据库需要由单实例,改成两节点rac。为了减少停机时间,采用DG方式迁移。
三迁移方案:
1.检查数据库是否支持Data Guard(只有企业版才支持DG)
SQL> select * from v$option where parameter = 'Managed Standby';
PARAMETER VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
Managed Standby TRUE
2.修改主库为归档模式及force logging状态
1)
SQL> alter database force logging;
Database altered.
2)
SQL> archive log list;
如果未开归档,开启归档模式
alter system setlog_archive_dest_2='location=/archlog/egap';
alter system setlog_archive_format='egap_%t_%s_%r.arch'scope=spfile; --静态参数,重启后生效
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
archive log list;
3.创建备库pfile文件
在主库上创建pfile,修改,并添加DG备库所有参数,然后传至备库
SQL> create pfile='/data01/pfileegap'from spfile;
1)备库需要添加的参数
DB_UNIQUE_NAME;LOG_ARCHIVE_DEST_1;FAL_SERVER;FAL_CLIENT; STANDBY_FILE_MANAGEMENT=AUTO;DB_FILE_NAME_CONVERT;LOG_FILE_NAME_CONVERT
2)根据pfile中涉及到路径需要提前在备库主机上建好(如果主备库路径不一致要修改)
如主库*.audit_file_dest='/apps/Oracle/admin/egap/adump'
我们在备库需要建 mkdir -p /apps/oracle/admin/egap/adump
cd /apps/oracle/admin
chown -R oracle:oinstall egap
chmod -R 775 egap
改变前参数文件
*.__db_cache_size=27648851968
*.__java_pool_size=67108864
*.__large_pool_size=67108864
*.__oracle_base='/apps/oracle'#ORACLE_BASE setfrom environment
*.__pga_aggregate_target=10334765056
*.__sga_target=30937186304
*.__shared_io_pool_size=0
*.__shared_pool_size=2952790016
*.__streams_pool_size=0
*.audit_file_dest='/apps/oracle/admin/egap/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/data01/egap/control01.ctl','/data01/egap/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='egap'
*.diagnostic_dest='/apps/oracle'
*.log_archive_dest_1='location=/archlog/egap'
*.log_archive_format='egap_%t_%s_%r.arch'
*.open_cursors=300
*.pga_aggregate_target=10307502080
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=30922506240
*.undo_tablespace='UNDOTBS1'
改变后参数文件
*.__db_cache_size=27648851968
*.__java_pool_size=67108864
*.__large_pool_size=67108864
*.__oracle_base='/apps/oracle'#ORACLE_BASE setfrom environment
*.__pga_aggregate_target=10334765056
*.__sga_target=30937186304
*.__shared_io_pool_size=0
*.__shared_pool_size=2952790016
*.__streams_pool_size=0
*.audit_file_dest='/apps/oracle/admin/egapdb/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/data01/egapdb/control01.ctl','/data01/egapdb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='egap'
*.diagnostic_dest='/apps/oracle'
*.log_archive_dest_1='location=/archlog/egapdb1'
*.log_archive_dest_2='SERVICE=primary LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=egap'
*.log_archive_format='egapdb_%t_%s_%r.arch'
*.open_cursors=300
*.pga_aggregate_target=10307502080
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=30922506240
*.undo_tablespace='UNDOTBS1'
*.DB_UNIQUE_NAME=egapdb
*.FAL_SERVER=primary
*.FAL_CLIENT=standby1
*.STANDBY_FILE_MANAGEMENT=AUTO
*.DB_FILE_NAME_CONVERT='/data01/egap','/data01/egapdb'
*.LOG_FILE_NAME_CONVERT='/data01/egap','/data01/egapdb'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(egap,egapdb)'
###注意db_file_name_convert和log_file_name_convert参数指定的路径要存在
4)根据修改后的pfile创建备库spfile
export ORACLE_SID=egapdb1
sqlplus / assysdba
create spfile from pfile;
--使用新生成的spfile检查是否能够成功启动实例
4.生成备库的密码文件
scp主库密码文件到备库,并改名
如果主库没有密码文件,需要新建
orapwd file=/oracle/app/oracle/product/v11.2.0.3/db_1/dbs/orapwegap password=oracle entries=5ignorecase=y
--主库密码文件传到备库以后要重启备库
5.配置主备库监听及net服务
1)listener
--主库
一般建库后都会配置监听我们无需再配置
--备库(因为安装了cluster,所以用的是cluster的监听)
lsnrctl status 查看监听文件位置,并在监听文件中加入如下类容
LISTENER_SCAN3=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN3)))) # line added by Agent
LISTENER_SCAN2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2)))) # line added by Agent
#LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3=ON # line added by Agent
--注意集群安装完毕以后,上面部分内容在监听中已经存在
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /apps/oracle/product/11.2.0.3/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(ORACLE_HOME = /apps/oracle/product/11.2.0.3/db_1)
(SID_NAME = egapdb1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.96.1)(PORT = 1521)(IP = FIRST))
)
)
2)tns
主备库tnsnames.ora文件中加入如下部分
primary =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.96.16)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = egap)
)
)
standby1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.96.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = egapdb1)
)
)
standby2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.96.2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = egapdb2)
)
)
--DG搭建后要主备切换并添加实例
6. 测试网络连接
1)查看监听状态是否正常
lsnrctl status
2) 测试连接串是否能正常连接到指定数据库
tnsping egap
tnsping egapdb1
tnsping egapdb2
sqlplus sys/oracle@egap assysdba
sqlplus sys/oracle@egapdb1 assysdba
sqlplus sys/oracle@egapdb2 assysdba
7. 复制备库
有两种1:rman在线复制 2:rman备份异机恢复
方法1:rman在线复制(不需要备份主库)
此种方式仅适用于ORACLE 11G,可以自动备份datafile,control等文件到备库,在复制过程主库仍可正常运行,但复制过程时间较长,会占用一定的网络资源。
1)将备库启动到nomount状态
export ORACLE_SID=egapdb1
sqlplus / as sysdba
startup nomount;
2)在备库上执行如下命令
rman target sys/oracle@primary auxiliary sys/oracle@standby1 nocatalog
duplicate target database forstandby from active database nofilenamecheck;
--如果主备库文件路径不变,要加nofilenamecheck。登陆时加nocatalog否则会报如下错误:
PLS-00201: identifier 'DBMS_RCVCAT.GETDBID'must be declared
- 大小: 21.6 KB
分享到:
相关推荐
单实例转RAC-数据库迁移
ORACLE数据库迁移方案,单机迁移到rac
单实例数据库迁移到RAC环境.pdf
二、数据库迁移 2.1迁移前期调研 1、迁移任务的目标 本次项目数据迁移的目的是:将现有综合业务系统的四个子系统数据,从低版本到高 版本、跨操作系统的方式进行迁移升级,升级后的目的数据库环境在继承现有数据库 ...
Oracle Data Guard RAC TO RAC迁移方案(基于rman备份)V1.1.pdf
9i 单实例 转rac9i 单实例 转rac9i 单实例 转rac9i 单实例 转rac
单实例迁移到Oracle RAC最佳实践,非常的详细,很不错
RAC数据库恢复到单实例数据库的基本步骤如下: a.准备单实例服务器,pfile文件,启动到nomount b.备份rac数据库 c.将备份文件拷贝到单实例服务器 d.在单实例服务器上还原、恢复 e.resetlogs打开...
Oracle单机通过rman迁移到RAC集群
oracle 11gr2在linux下的安装配置,包括1.集群规划;2.RAC主库安装实施;3.RAC共享存储安装配置;4.安装GRID集群;5.ASM磁盘安装;6.安装数据库软件;7.安装数据库实例;8.备库安装配置。
本文详细介绍如何讲oracle rac的数据库数据进行迁移备份,配有图文,适合做做实验在再去实践
Oracle11g单实例迁移到RAC架构方案v1.1 如何利用 RMAN 可传输表空间迁移数据库到不同字节序的平台 (Doc ID 1983639.1) 如何利用 RMAN 可传输表空间迁移数据库到不同字节序的平台 (Doc ID 1983639.1) 跨 OS 平台迁移 ...
Oracle 11.2.0.3 单实例 迁移到 11gR2 RAC 案例-- 使用RMAN 异机恢复 注:文档打开密码见压缩包注释
ORACLE RAC 数据库负载均衡方案.doc
oracle 高可用 dataguard 单机到RAC复制,...同时讲述了,如何完成通过单机到RAC的dataguard 的迁移和切换。是通过dataguard进行数据迁移的好参考。适用于单位是单机,想把数据无缝无损迁移到RAC的场景。照做就能成功。
Oracle RAC 数据库架构分析与实战攻略
单实例数据库转换为 Oracle RAC 10g的实际操作步骤详解。
深信服超融合Oracle 11g R2 LVM文件系统单实例数据库部署方案-Linux.pdf
Redhat AS4 Oracle10g+ASM单实例转RAC
Oracle11g RAC数据库维护