ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

[译] Data Guard:Oracle Database 21c 中的 PREPARE DATABASE FOR DATA GUARD 命令

2022-02-08 10:34:00  阅读:194  来源: 互联网

标签:set PREPARE database parameter Database DB FILE DATA alter


原文地址:https://oracle-base.com/articles/21c/data-guard-prepare-database-for-data-guard-21c
原文作者:Tim Hall

在 Oracle 数据库 21c 中配置 Data Guard 时,使用 PREPARE DATABASE FOR DATA GUARD 命令可以简化主数据库的设置。

目录

介绍

在配置 Data Guard 之前,主数据库的准备需要执行许多步骤。对于一个简单的单实例主数据库,可能需要以下步骤:

设置 DB_RECOVERY_FILE_DEST_SIZE 和 DB_RECOVERY_FILE_DEST 初始化参数:

alter system set db_recovery_file_dest_size=400g;
alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';

启用归档日志模式并强制记录:

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

alter database force logging;

添加一些备用日志:

alter database add standby logfile thread 1 group 10 size 50m;
alter database add standby logfile thread 1 group 11 size 50m;
alter database add standby logfile thread 1 group 12 size 50m;
alter database add standby logfile thread 1 group 13 size 50m;

启用闪回数据库:

alter database flashback on;

设置 STANDBY_FILE_MANAGEMENT 初始化参数并启用代理:

alter system set standby_file_management=auto;
alter system set dg_broker_start=true;

在 Oracle 21c 中,可以使用 PREPARE DATABASE FOR DATA GUARD 命令执行以上这些步骤。

PREPARE DATABASE FOR DATA GUARD

我们通过 dgmgrl 与数据库建立连接,并且执行 HELP PREPARE 命令来查看语法:

$ dgmgrl /
DGMGRL for Linux: Release 21.0.0.0.0 - Production on Sun Feb 6 13:11:59 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle and/or its affiliates.  All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected to "cdb1"
Connected as SYSDG.
DGMGRL> help prepare

Prepare a primary database for a Data Guard environment.

Syntax:

  PREPARE DATABASE FOR DATA GUARD
    [WITH [DB_UNIQUE_NAME IS ]
          [DB_RECOVERY_FILE_DEST IS ]
          [DB_RECOVERY_FILE_DEST_SIZE IS ]
          [BROKER_CONFIG_FILE_1 IS ]
          [BROKER_CONFIG_FILE_2 IS ]];


DGMGRL>

这是我在 Vagrant 21c Data Guard 构建期间使用的命令示例:

dgmgrl / <<EOF
prepare database for data guard
  with db_unique_name is ${NODE1_DB_UNIQUE_NAME}
  db_recovery_file_dest is "${ORACLE_BASE}/fast_recovery_area"
  db_recovery_file_dest_size is 20g;
exit;
EOF

代入环境变量如下:

dgmgrl / <<EOF
prepare database for data guard
	with db_unique_name is cdb1
	db_recovery_file_dest is '/u01/app/oracle/fast_recovery_area'
	db_recovery_file_dest_size is 20G;
exit;
EOF

下面是命令执行创建的输出示例:

DGMGRL for Linux: Release 21.0.0.0.0 - Production on Sun Feb 6 14:03:10 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle and/or its affiliates.  All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected to "cdb1"
Connected as SYSDG.
DGMGRL> > > > Preparing database "cdb1" for Data Guard.
Initialization parameter DB_FILES set to 1024.
Initialization parameter LOG_BUFFER set to 268435456.
Primary database must be restarted after setting static initialization parameters.
Primary database must be restarted to enable archivelog mode.
Shutting down database "cdb1".
Database closed.
Database dismounted.
ORACLE instance shut down.
Starting database "cdb1" to mounted mode.
ORACLE instance started.
Database mounted.
Initialization parameter DB_FLASHBACK_RETENTION_TARGET set to 120.
Initialization parameter DB_LOST_WRITE_PROTECT set to 'TYPICAL'.
RMAN configuration archivelog deletion policy set to SHIPPED TO ALL STANDBY.
Initialization parameter DB_RECOVERY_FILE_DEST_SIZE set to '20g'.
Initialization parameter DB_RECOVERY_FILE_DEST set to '/u01/app/oracle/fast_recovery_area'.
LOG_ARCHIVE_DEST_n initialization parameter already set for local archival.
Initialization parameter LOG_ARCHIVE_DEST_2 set to 'location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles)'.
Initialization parameter LOG_ARCHIVE_DEST_STATE_2 set to 'Enable'.
Adding standby log group size 52428800 and assigning it to thread 1.
Adding standby log group size 52428800 and assigning it to thread 1.
Adding standby log group size 52428800 and assigning it to thread 1.
Initialization parameter STANDBY_FILE_MANAGEMENT set to 'AUTO'.
Initialization parameter DG_BROKER_START set to TRUE.
Database set to FORCE LOGGING.
Database set to ARCHIVELOG.
Database set to FLASHBACK ON.
Database opened.
DGMGRL>

通过以上输出结果,我们可以看到执行了常见的设置任务,并且设置了一些额外的初始化参数:

DB_FILES=1024
LOG_BUFFER=256M
DB_BLOCK_CHECKSUM=TYPICAL          # Unchanged if FULL
DB_LOST_WRITE_PROTECT=TYPICAL      # Unchanged if FULL
DB_FLASHBACK_RETENTION_TARGET=120  # Unchanged if non-default
PARALLEL_THREADS_PER_CPU=1
DG_BROKER_START=TRUE

当然了,还有一些其他的事项需要注意:

  • 如果单个实例的 SPFILE 不存在,则会创建一个。
  • 它将 RMAN 归档日志删除策略设置为 SHIPPED TO ALL STANDBY
  • 它不仅会添加丢失的备用日志,而且如果某些配置错误,它会删除并重新配置它们。

参考官方文档:PREPARE DATABASE FOR DATA GUARD

译者备注:整体看起来并不实用,并且需要配合使用 DGMGRL 来使用,期待后续优化,当然以上这些命令也完全可以自行写脚本来实现。

标签:set,PREPARE,database,parameter,Database,DB,FILE,DATA,alter
来源: https://blog.csdn.net/m0_50546016/article/details/122819219

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有