如何进行 11.2.0.4 DG for linux 部署

59次阅读
没有评论

共计 11843 个字符,预计需要花费 30 分钟才能阅读完成。

如何进行 11.2.0.4  DG for linux 部署,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1、oracle 数据库 DB 的工作示意图

2、oracle dg 的三大工作模式及对数据库的需求依赖

3、本次实验的环境

4、oracle DG 部署前的工作
    在 centdgpri 机器上部署 Oracle 11.2.0.4 数据库软件并部署实例,在 centdgstd 机器上只安装 Oracle 数据库软件,要求 centdgpri 和 centdgstd 机器上的 oracle 环境即数据库相关的软件部署路径最好保持一致。

5、oracle DG 的部署
主库调整,开启归档
archive log list;
shutdown immediate;
startup mount;
alter system set log_archive_dest_1= location=/opt/oracle/arch
alter database archivelog;
archive log list;
alter database open;
alter system archive log current

主库调整,开启闪回

select force_logging, FLASHBACK_ON from v$database; 
alter database force logging;
alter system set  DB_RECOVERY_FILE_DEST_SIZE=10g;
alter system set db_recovery_file_dest= /opt/oracle/flash_recovery_area
alter database FLASHBACK ON;
select force_logging, FLASHBACK_ON from v$database;

主库调整,添加 standby logfile 日志
set linesize 1000
col member for a50
select * from v$logfile order by 1;
select GROUP#  ,BYTES/1024/1024 size_M,STATUS,ARCHIVED from v$log;
alter database add standby logfile group 6 (/opt/oracle/oradata/redo06.log) size 50m; 
alter database add standby logfile group 7 (/opt/oracle/oradata/redo07.log) size 50m; 
alter database add standby logfile group 8 (/opt/oracle/oradata/redo08.log) size 50m; 
alter database add standby logfile group 9 (/opt/oracle/oradata/redo09.log) size 50m; 
alter database add standby logfile group 10 (/opt/oracle/oradata/redo10.log) size 50m; 

主库调整,修改数据库启动 pfile 文件

orcl.__db_cache_size=327155712

orcl.__java_pool_size=4194304

orcl.__large_pool_size=8388608

orcl.__oracle_base= /opt/oracle #ORACLE_BASE
 set from environment

orcl.__pga_aggregate_target=314572800

orcl.__sga_target=469762048

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=117440512

orcl.__streams_pool_size=0

*.audit_file_dest= /opt/oracle/admin/orcl/adump

*.audit_trail= db

*.compatible= 11.2.0.4.0

*.control_files= /opt/oracle/oradata/orcl/control01.ctl , /opt/oracle/oradata/orcl/control02.ctl

*.db_block_size=8192

*.db_domain=

*.db_name= orcl

*.diagnostic_dest= /opt/oracle

*.dispatchers= (PROTOCOL=TCP)
 (SERVICE=orclXDB)

*.log_archive_dest_1= location=/opt/arch

*.memory_target=783286272

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile= EXCLUSIVE

*.undo_tablespace= UNDOTBS1

DB_UNIQUE_NAME= orcl

log_archive_config= DG_CONFIG=(orcl,orcls)

log_archive_dest_1= LOCATION=/opt/oracle/arch
 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl

LOG_ARCHIVE_DEST_2= SERVICE=dbstandby
 LGWR ASYNC VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcls

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

FAL_SERVER=dbstandby

FAL_CLIENT=dbprimary

STANDBY_FILE_MANAGEMENT=AUTO

*.log_file_name_convert= /opt/oracle/oradata , /opt/oracle/oradata

*.db_file_name_convert= /opt/oracle/oradata , /opt/oracle/oradata

主库调整,重新生成 spfile

startup pfile= $ORACLE_HOME/dbs/initorcl.ora

create spfile from memory;

shutdown immediate;

startup;

show parameter spfile;

主库调整,修改监听配置文件 listener.ora

LISTENER =

 (DESCRIPTION_LIST=

 (DESCRIPTION
 =

 (ADDRESS=(PROTOCOL=tcp)(HOST=centdgpri)(PORT=1521))

 (ADDRESS=(PROTOCOL=ipc)(KEY=
 EXTPROC1521)))

 ) 

SID_LIST_LISTENER =

 (SID_LIST=

 (SID_DESC=

 (GLOBAL_DBNAME=orcl)

 (SID_NAME=orcl) 

 (ORACLE_HOME=/opt/oracle/product/11.2.0.4/db)

 )

 (SID_DESC =

 (GLOBAL_DBNAME = orcl_DGMGRL)

 (ORACLE_HOME = /opt/oracle/product/11.2.0.4/db)

 (SID_NAME= orcl)

 )

 )

ADR_BASE_LISTENER = /opt/oracle 

主库调整,修改 TNS 服务配置文件 tnsnames.ora

DBPRIMARY=

 (DESCRIPTION=

 (ADDRESS_LIST=

 (ADDRESS=(PROTOCOL
 =TCP)(HOST=centdgpri)(PORT=1521))

 )

 (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED))

 )

ORCL=

 (DESCRIPTION=

 (ADDRESS_LIST=

 (ADDRESS=(PROTOCOL
 =TCP)(HOST=centdgpri)(PORT=1521))

 )

 (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED))

 )

DBSTANDBY=

 (DESCRIPTION=

 (ADDRESS_LIST=

 (ADDRESS=(PROTOCOL
 =TCP)(HOST=centdgstd)(PORT=1521))

 )

 (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED))

 )

备库调整,编辑数据库启动 pfile

*.audit_file_dest= /opt/oracle/diag/rdbms/orcl/orcl/adump

*.compatible= 11.2.0.4.0

*.control_files= /opt/oracle/oradata/control01.ctl , /opt/oracle/oradata/control02.ctl

*.core_dump_dest= /opt/oracle/diag/rdbms/orcl/orcl/cdump

*.db_block_size=8192

*.db_create_file_dest= /opt/oracle/oradata

*.db_file_multiblock_read_count=16

*.db_name= orcl

*.db_recovery_file_dest= /opt/oracle/flash_recovery_area

*.db_recovery_file_dest_size=10G

*.diagnostic_dest= /opt/oracle/diag/rdbms/orcl/orcl/trace

*.dispatchers= (PROTOCOL=TCP)
 (SERVICE=orcl)

*.job_queue_processes=10

*.log_archive_dest_1= LOCATION=/opt/oracle/arch

*.log_buffer=7356416
 # log buffer update

*.open_cursors=300

*.optimizer_dynamic_sampling=2

*.optimizer_mode= ALL_ROWS

*.pga_aggregate_target=186M

*.plsql_warnings= DISABLE:ALL
 # PL/SQL warnings at init.ora

*.processes=150

*.query_rewrite_enabled= TRUE

*.remote_login_passwordfile= EXCLUSIVE

*.result_cache_max_size=2880K

*.sga_target=560M

*.skip_unusable_indexes=TRUE

*.undo_management= AUTO

*.undo_tablespace= UNDOTBS1

DB_UNIQUE_NAME= orcls

log_archive_config= DG_CONFIG=(orcls,orcl)

log_archive_dest_1= LOCATION=/opt/oracle/arch
 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcls

LOG_ARCHIVE_DEST_2= SERVICE=dbprimary LGWR
 ASYNC VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

FAL_SERVER=dbprimary

FAL_CLIENT=dbstandby

STANDBY_FILE_MANAGEMENT=AUTO

*.log_file_name_convert= /opt/oracle/oradata , /opt/oracle/oradata

*.db_file_name_convert= /opt/oracle/oradata , /opt/oracle/oradata

备库调整,编辑监听配置文件 listener.ora

LISTENER =

 (DESCRIPTION_LIST=

 (DESCRIPTION
 =

 (ADDRESS=(PROTOCOL=tcp)(HOST=centdgstd)(PORT=1521))

 (ADDRESS=(PROTOCOL=ipc)(KEY=
 EXTPROC1521)))

 ) 

SID_LIST_LISTENER =

 (SID_LIST=

 (SID_DESC=

 (GLOBAL_DBNAME=orcl)

 (SID_NAME=orcl) 

 (ORACLE_HOME=/opt/oracle/product/11.2.0.4/db)

 )

 (SID_DESC =

 (GLOBAL_DBNAME = orcls_DGMGRL)

 (ORACLE_HOME = /opt/oracle/product/11.2.0.4/db)

 (SID_NAME= orcl)

 )

 )

ADR_BASE_LISTENER = /opt/oracle 

备库调整,修改备库 TNS 服务配置文件 tnsnames.ora

DBPRIMARY=

 (DESCRIPTION=

 (ADDRESS_LIST=

 (ADDRESS=(PROTOCOL
 =TCP)(HOST=centdgpri)(PORT=1521))

 )

 (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED))

 )

ORCLS=

 (DESCRIPTION=

 (ADDRESS_LIST=

 (ADDRESS=(PROTOCOL
 =TCP)(HOST=centdgstd)(PORT=1521))

 )

 (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED))

 )

DBSTANDBY=

 (DESCRIPTION=

 (ADDRESS_LIST=

 (ADDRESS=(PROTOCOL =TCP)(HOST=centdgstd)(PORT=1521))

 )

 (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED))

 )

6、主库克隆岛备库

主库创建 sys 密码文件并传送到备库 dbs 目录

orapwd
file=$ORACLE_HOME/dbs/PWDorcl.ora password=WaterH2o entries=40 force=y

备库创建和主库一致的审计目录
主库:

  cd
$ORACLE_BASE

  tar
-cvf diag.tar diag/

  scp
diag.tar centdgstd:/opt/oracle

备库:

  mv
diag $ORACLE_BASE/

  cd
$ORACLE_BASE

  tar
-xvf diag.tar

mkdir -p
$ORACLE_BASE/flash_recovery_area

       mkdir
-p $ORACLE_BASE/oradata

克隆主库前的 TNS 服务测试,一定要在主备库均进行测试
tnsping dbprimary
tnsping dbstandby
sqlplus sys/WaterH2o@dbprimary as sysdba
sqlplus sys/WaterH2o@dbstndby as sysdba

主库克隆到备机
rman target sys/WaterH2o@dbprimary
auxiliary sys/WaterH2o@dbstandby

duplicate
target database for standby from active database nofilenamecheck;

7、开启备库的日志同步进程
alter database recover managed standby database
disconnect from session;

8、查看主备库的角色
select db_unique_name,database_role,switchover_status,open_mode from v$database;

 
9、验证物理 DG 的数据同步

select switchover_status from v$database; – 查看有没有 gap 的归档日志

主库:

select STATUS,
GAP_STATUS from V$ARCHIVE_DEST_STATUS where DEST_ID = 2;

主库:

SQL select STATUS, GAP_STATUS from
V$ARCHIVE_DEST_STATUS where DEST_ID = 2;

STATUS   
GAP_STATUS

———
————————

VALID   
RESOLVABLE GAP

备库:

SQL
select STATUS, GAP_STATUS from V$ARCHIVE_DEST_STATUS where DEST_ID = 2;

STATUS   
GAP_STATUS

———
————————

VALID    NO
GAP
  查看主备库角色及状态

select
open_mode,database_role,db_unique_name from v$database;-

主库:

SQL select open_mode,database_role,db_unique_name
from v$database;

OPEN_MODE    DATABASE_ROLE  DB_UNIQUE_NAME

——————– —————-
——————————

READ WRITE    PRIMARY    orcl

SQL

备库:

SQL select
open_mode,database_role,db_unique_name from v$database;

OPEN_MODE    DATABASE_ROLE  DB_UNIQUE_NAME

——————– —————-
——————————

READ ONLY WITH APPLY PHYSICAL STANDBY orcl

SQL

  查看主备库的序列号

select max(sequence#) from
v$archived_log;

archive log list;

主库:

SQL select
max(sequence#) from v$archived_log; 

MAX(SEQUENCE#)

————–

   
25

SQL archive
log list

Database log mode  
Archive Mode

Automatic
archival   Enabled

Archive
destination   /opt/arch

Oldest online log
sequence  24

Next log sequence
to archive  26

Current log
sequence    26

SQL

备库:

SQL select
max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

————–

   
25

SQL archive
log list

Database log mode  
Archive Mode

Automatic
archival   Enabled

Archive
destination   /opt/arch

Oldest online log
sequence  17

Next log sequence
to archive  0

Current log
sequence    25

SQL

10、DG Broker 手工管理配置
DG 部署前的主库确认开启闪回
select
flashback_on from v$database;

  主备库开启 dg_broker_start

show parameter
dg_broker_start

alter system set
dg_broker_start=true;

show parameter
dg_broker_start

  主库登录 dgmrl 客户端
dgmgrl
sys/WaterH2o@dbprimary

  创建 dgb 控制文件(注意一定要进行 tnsping TNS 服务名测试)
create
configuration my_dgb as primary database is orcl connect identifier is dgb_p;

DGMGRL create
 configuration my_dgb as primary database is orcl connect identifier is
 dbprimary;

Configuration
  my_dgb created with primary database orcl

添加备库

DGMGRL add
 database orcls as connect identifier is dbstandby maintained as physical;

Database
  orcls added

 
启用配置文件

DGMGRL  enable configuration;

Enabled.

DGMGRL

  验证配置启动状态

DGMGRL show configuration

Configuration – my_dgb

  Protection
 Mode: MaxPerformance

  Databases:

  orcl  – Primary database

  orcls –
 Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:

SUCCESS

DGMGRL

 
开启主备库 StandbyFileManagement 并同步到 DGB

SQL alter system
set STANDBY_FILE_MANAGEMENT=AUTO scope=both;

DGMGRL edit
database orcl set property StandbyFileManagement= AUTO

DGMGRL edit database orcls set property StandbyFileManagement= AUTO

DGMGRL EDIT
DATABASE orcl SET PROPERTY LogXptMode= async

DGMGRL EDIT
DATABASE orcls SET PROPERTY LogXptMode= async

取消物理 DG 的两个参数

alter system
set fal_server= scope=both sid= *

alter system
set fal_client= scope=both sid= *      

11、物理 DG 通过 Broker 手工切换主备库的角色
主备库切换前的角色检查
主库:

SQL select
 database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE   SWITCHOVER_STATUS  OPEN_MODE

—————-
 ——————– ——————–

PRIMARY    TO STANDBY  READ WRITE

备库:

SQL select
 database_role,switchover_status,open_mode from v$database;

DATABASE_ROLE   SWITCHOVER_STATUS  OPEN_MODE

—————-
 ——————– ——————–

PHYSICAL STANDBY
 NOT ALLOWED    MOUNTED

DGMGRIL 控制台切换主备库

DGMGRL show
 configuration

Configuration –
 my_dgb

  Protection Mode: MaxPerformance

  Databases:

  orcl  – Primary database

  orcls – Physical standby database

Fast-Start
 Failover: DISABLED

Configuration
 Status:

SUCCESS

DGMGRL
 switchover to orcls

Performing
 switchover NOW, please wait…

Operation
 requires a connection to instance orcl on database
  orcls

Connecting to
 instance orcl …

Connected.

New primary
 database orcls is opening…

Operation
 requires startup of instance orcl on database orcl

Starting instance
  orcl …

ORACLE instance
 started.

Database mounted.

Database opened.

Switchover succeeded,
 new primary is orcls

DGMGRL

DGMGRL show
 configuration

Configuration –
 my_dgb

  Protection Mode: MaxPerformance

  Databases:

  orcls – Primary database

  orcl  – Physical standby database

Fast-Start
 Failover: DISABLED

Configuration
 Status:

SUCCESS

DGMGRL

DGMGRIL 控制台手工切换主备库的结果检查

新主库:

SQL  select
 db_unique_name,database_role,switchover_status,open_mode from v$database;

DB_UNIQUE_NAME    DATABASE_ROLE  SWITCHOVER_STATUS  OPEN_MODE

——————————
 —————- ——————– ——————–

orcls    PRIMARY  TO STANDBY    READ WRITE

新备库:

SQL select
 db_unique_name,database_role,switchover_status,open_mode from v$database;

DB_UNIQUE_NAME    DATABASE_ROLE  SWITCHOVER_STATUS  OPEN_MODE

——————————
 —————- ——————– ——————–

orcl    PHYSICAL STANDBY NOT ALLOWED    MOUNTED

12、启动 DG FFS 即启动 Failvoer Fast Start
启用 FFS 必须满足的条件
  主备库日志同步模式是自动同步

LogXptMode= async

EDIT DATABASE orcl SET PROPERTY LogXptMode= async

EDIT DATABASE orcls SET PROPERTY
LogXptMode= async

  主备库均开启闪回,目的是启动快速自动恢复数据库

select name,db_unique_name,flashback_on
from v$database;

  处理 standby 的备库打开闪回

alter database open read only;

alter database flashback on;

12.    启用 DG 的 FFS

  启用主备库的 FFS

edit database orcl set property
FastStartFailoverTarget=orcls; 

edit database orcls set property  FastStartFailoverTarget=orcl;

enable fast_start failover

启用结果

13、DG Broker FFS 功能测试
  主库 shutdown abort 故障模拟
  登录主库发起 shutdown abort

  备库告警日志提示备库成功接管主库

observer 提示角色自动切换

  确认角色自动切换结果

  主库恢复后启动

如何进行 11.2.0.4 DG for linux 部署

observer 日志提示主备角色分配
如何进行 11.2.0.4 DG for linux 部署

原主库恢复后的主备库角色查看

如何进行 11.2.0.4 DG for linux 部署

原主库端查看
如何进行 11.2.0.4 DG for linux 部署

原备库端查看

如何进行 11.2.0.4 DG for linux 部署

看完上述内容,你们掌握如何进行 11.2.0.4  DG for linux 部署的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计11843字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)