Oracle MAA--Maximum Availability Architecture

简介:

系统环境:

操作系统:RedHat EL5

Oracle:       Oracle 10gR2

Cluster:      CRS 10.2.0.1


Maximum Availability Architecture  最高可用性架构


wKiom1NOWR_gl6IWAAONMffLKdc159.jpg

MAA 配置案例:通过DG实现RAC to RAC的Physical DG,实现数据的容灾。

1、系统环境

案例:

主机环境:

(Prmary DB:)

192.168.8.150  rac1

192.168.8.152  rac1-vip

10.10.10.1     rac1-priv

192.168.8.161  rac2

192.168.8.163  rac2-vip

10.10.10.2     rac2-priv

(Standby  DB:)

192.168.8.191  node1

192.168.8.193  node1-vip

10.10.10.191    node2-priv

192.168.8.192  node2

192.168.8.194  node2-vip

10.10.10.192    node2-priv

数据库环境:

Primary Database:

db_name = prod

db_unique_name = prod

instance_name = prod1 ,prod2

service_name = prod


Standby Database:

db_name = prod

db_unique_name = stddb

instance_name = stddb1 ,stddb2

service_name = stddb

2、主备库配置

主库初始化参数配置:

[oracle@rac2 ~]$ cat initprod2.ora

*.audit_file_dest='/u01/app/oracle/admin/prod/adump'

*.background_dump_dest='/u01/app/oracle/admin/prod/bdump'

*.cluster_database_instances=2

*.cluster_database=true

*.compatible='10.2.0.1.0'

*.control_files='+DG1/prod/controlfile/current.260.801040711','+RECOVERY/prod/controlfile/current.256.801040711','+dg2/prod/controlfile/control03.ctl'

*.core_dump_dest='/u01/app/oracle/admin/prod/cdump'

*.db_block_size=8192

*.db_create_file_dest='+DG1'

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='prod'

*.db_recovery_file_dest='+RECOVERY'

*.db_recovery_file_dest_size=2147483648

*.dispatchers='(PROTOCOL=TCP) (SERVICE=prodXDB)'

prod1.instance_number=1

prod2.instance_number=2

*.job_queue_processes=10

*.log_archive_format='arch_%t_%s_%r.log'

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_listener='LISTENERS_PROD'

*.remote_login_passwordfile='exclusive'

*.sga_target=285212672

prod2.thread=2

prod1.thread=1

*.undo_management='AUTO'

prod1.undo_tablespace='UNDOTBS1'

prod2.undo_tablespace='UNDOTBS2'

*.user_dump_dest='/u01/app/oracle/admin/prod/udump'

*.db_unique_name='prod'

LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod,stddb)'

LOG_ARCHIVE_DEST_1= 'LOCATION=+RECOVERY   VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=prod'

LOG_ARCHIVE_DEST_2= 'SERVICE=stddb LGWR ASYNC  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)   DB_UNIQUE_NAME=stddb'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_MAX_PROCESSES=3

FAL_SERVER=stddb

FAL_CLIENT=prod

DB_FILE_NAME_CONVERT='+DG1','+DG1'

LOG_FILE_NAME_CONVERT='+DG1/STDDB','+DG1/PROD','+RECOVERY/STDDB','+RECOVERY/PROD'

STANDBY_FILE_MANAGEMENT=AUTO

备库初始化参数配置:

[oracle@node1 dbs]$ cat initstddb1.ora

*.audit_file_dest='/u01/app/oracle/admin/stddb/adump'

*.background_dump_dest='/u01/app/oracle/admin/stddb/bdump'

*.cluster_database_instances=2

*.cluster_database=true

*.compatible='10.2.0.1.0'

*.control_files='+DG1/stddb/controlfile/std_control.ctl'

*.core_dump_dest='/u01/app/oracle/admin/stddb/cdump'

*.db_block_size=8192

*.db_create_file_dest='+DG1'

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='prod'

*.db_recovery_file_dest_size=2147483648

*.dispatchers='(PROTOCOL=TCP) (SERVICE=stddbXDB)'

stddb1.instance_number=1

stddb2.instance_number=2

*.job_queue_processes=10

*.log_archive_format='arch_%t_%s_%r.log'

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_listener='LISTENERS_PROD'

*.remote_login_passwordfile='exclusive'

*.sga_target=285212672

stddb2.thread=2

stddb1.thread=1

*.undo_management='AUTO'

stddb1.undo_tablespace='UNDOTBS1'

stddb2.undo_tablespace='UNDOTBS2'

*.user_dump_dest='/u01/app/oracle/admin/stddb/udump'

*.db_unique_name='stddb'

LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod,stddb)'

LOG_ARCHIVE_DEST_1= 'LOCATION=+RECOVERY   VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=stddb'

LOG_ARCHIVE_DEST_2= 'SERVICE=prod LGWR ASYNC  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)   DB_UNIQUE_NAME=prod'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_MAX_PROCESSES=3

FAL_SERVER=prod

FAL_CLIENT=stddb

DB_FILE_NAME_CONVERT='+DG1','+DG1'

LOG_FILE_NAME_CONVERT='+DG1/PROD','+DG1/STDDB','+RECOVERY/PROD','+RECOVERY/STDDB'

STANDBY_FILE_MANAGEMENT=AUTO

主备库网络配置:

[oracle@node1 dbs]$

------主库端tnsnames.ora 添加以下信息

STDDB =

 (DESCRIPTION =

   (ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1521))

   (ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1521))

   (LOAD_BALANCE = yes)

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = racdb)

   )

 )


-------备库端tnsnames.ora 添加以下信息


PROD =

 (DESCRIPTION =

   (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

   (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))

   (LOAD_BALANCE = yes)

   (CONNECT_DATA =

     (SERVER = DEDICATED)

     (SERVICE_NAME = prod)

   )

 )

3、建立Physical DG后,注册数据库和Instance 到GI

(具体构建Physical DG的过程,见相关文档)


------注册数据库 、实例 (以 oracle 身份)

[root@node1 ~]# su - oracle

[oracle@node1 ~]$ srvctl add database -h

Usage: srvctl add database -d <name> -o <oracle_home> [-m <domain_name>] [-p <spfile>] [-A <name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}] [-s <start_options>] [-n <db_name>] [-y {AUTOMATIC | MANUAL}]

   -d <name>           Unique name for the database

   -o <oracle_home>    ORACLE_HOME for cluster database

   -m <domain>         Domain for cluster database

   -p <spfile>         Server parameter file for cluster database

   -A <addr_str>       Database cluster alias

   -n <db_name>        Database name (DB_NAME), if different from the unique name given by the -d option

   -r <role>           Role of the database (primary, physical_standby, logical_standby)

   -s <start_options>  Startup options for the database

   -y <dbpolicy>       Management policy for the database (automatic, manual)

   -h                  Print usage

注册数据库:

[oracle@node1 ~]$ srvctl add database -d stddb -o /u01/app/oracle/product/10.2.0/db_1 -n prod

[oracle@node1 ~]$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....SM1.asm application    ONLINE    ONLINE    node1      

ora....E1.lsnr application    ONLINE    ONLINE    node1      

ora.node1.gsd  application    ONLINE    ONLINE    node1      

ora.node1.ons  application    ONLINE    ONLINE    node1      

ora.node1.vip  application    ONLINE    ONLINE    node1      

ora....SM2.asm application    ONLINE    ONLINE    node2      

ora....E2.lsnr application    ONLINE    ONLINE    node2      

ora.node2.gsd  application    ONLINE    ONLINE    node2      

ora.node2.ons  application    ONLINE    ONLINE    node2      

ora.node2.vip  application    ONLINE    ONLINE    node2      

ora.stddb.db   application    OFFLINE   OFFLINE  

注册实例:

[oracle@node1 ~]$ srvctl add instance -h

Usage: srvctl add instance -d <name> -i <inst_name> -n <node_name>

   -d <name>           Unique name for the database

   -i <inst>           Instance name

   -n <node>           Node name

   -h                  Print usage

[oracle@node1 ~]$ srvctl add instance -d stddb -i stddb1 -n node1

[oracle@node1 ~]$ srvctl add instance -d stddb -i stddb2 -n node2

[oracle@node1 ~]$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....SM1.asm application    ONLINE    ONLINE    node1      

ora....E1.lsnr application    ONLINE    ONLINE    node1      

ora.node1.gsd  application    ONLINE    ONLINE    node1      

ora.node1.ons  application    ONLINE    ONLINE    node1      

ora.node1.vip  application    ONLINE    ONLINE    node1      

ora....SM2.asm application    ONLINE    ONLINE    node2      

ora....E2.lsnr application    ONLINE    ONLINE    node2      

ora.node2.gsd  application    ONLINE    ONLINE    node2      

ora.node2.ons  application    ONLINE    ONLINE    node2      

ora.node2.vip  application    ONLINE    ONLINE    node2      

ora.stddb.db   application    OFFLINE   OFFLINE              

ora....b1.inst application    OFFLINE   OFFLINE              

ora....b2.inst application    OFFLINE   OFFLINE

注册ASM:(如果是11g环境,不需要这一步)

[oracle@node1 ~]$ crs_stat |grep asm

NAME=ora.node1.ASM1.asm

NAME=ora.node2.ASM2.asm

[oracle@node1 ~]$ srvctl modify instance -d stddb -i stddb1 -s +ASM1

[oracle@node1 ~]$ srvctl modify instance -d stddb -i stddb2 -s +ASM2

[oracle@node1 ~]$ srvctl enable asm -n node1 -i +ASM1

[oracle@node1 ~]$ srvctl enable asm -n node2 -i +ASM2

[oracle@node1 ~]$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....SM1.asm application    ONLINE    ONLINE    node1      

ora....E1.lsnr application    ONLINE    ONLINE    node1      

ora.node1.gsd  application    ONLINE    ONLINE    node1      

ora.node1.ons  application    ONLINE    ONLINE    node1      

ora.node1.vip  application    ONLINE    ONLINE    node1      

ora....SM2.asm application    ONLINE    ONLINE    node2      

ora....E2.lsnr application    ONLINE    ONLINE    node2      

ora.node2.gsd  application    ONLINE    ONLINE    node2      

ora.node2.ons  application    ONLINE    ONLINE    node2      

ora.node2.vip  application    ONLINE    ONLINE    node2      

ora.stddb.db   application    OFFLINE   OFFLINE              

ora....b1.inst application    OFFLINE   OFFLINE              

ora....b2.inst application    OFFLINE   OFFLINE              

[oracle@node1 ~]$

更改备库DB在CRS中的启动方式

----把备库的启动方式改为手工

在10g ,standby的DB只能在mount下做recover,而11g可以在open下做recover,所以对于11g的环境不需要修改!

[oracle@node1 ~]$ srvctl modify database -d stddb -y manual

@至此,Oracle MAA 架构基本完成!











本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1396674,如需转载请自行联系原作者
目录
相关文章
|
JSON Java Serverless
nacos常见问题之cpu和内存占用高如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
2635 0
|
3月前
|
移动开发 前端开发 JavaScript
鸿蒙NEXT时代你所不知道的全平台跨端框架:CMP、Kuikly、Lynx、uni-app x等
本篇基于当前各大活跃的跨端框架的现状,对比当前它们的情况和未来的可能,帮助你在选择框架时更好理解它们的特点和差异。
307 0
|
3月前
|
Java Maven 开发工具
SpringBoot使用汇总
本节介绍 Spring Boot 工程的构建方法,包括使用 IDEA 快速创建项目、通过官方平台生成项目、配置 Maven 以及设置编码格式等内容。涵盖 Group 和 Artifact 的填写规范、依赖添加、IDE 配置与推荐设置,助力快速搭建开发环境。
122 3
|
Shell Linux Perl
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
420 0
|
机器学习/深度学习 数据采集 PyTorch
构建高效 PyTorch 模型:内存管理和优化技巧
【8月更文第27天】PyTorch 是一个强大的深度学习框架,被广泛用于构建复杂的神经网络模型。然而,在处理大规模数据集或使用高性能 GPU 进行训练时,有效的内存管理对于提升模型训练效率至关重要。本文将探讨如何在 PyTorch 中有效地管理内存,并提供一些优化技巧及代码示例。
1280 1
|
编解码 芯片 内存技术
数字基带传输系统 1
数字基带传输系统
575 0
|
Shell Linux 开发工具
linux ulimit 调优
概要:linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够。这就需要修改ulimit和file-max。
4855 0
|
5G 索引
带你读《5G 无线增强设计与国际标准》第二章接入增强2.1 2步随机接入(三)
《5G 无线增强设计与国际标准》第二章接入增强2.1 2步随机接入(三)
带你读《5G 无线增强设计与国际标准》第二章接入增强2.1 2步随机接入(三)
|
监控 网络协议 网络架构