EDIFÍCIO ORACLE EBS DATAGUARD

1. Informações ambientais

O software de banco de dados foi instalado

primário

Versão do banco de dados: 11.2.0.3
RAC: N
Nome da instância: pri

espera

Versão do banco de dados: 11.2.0.3
RAC: N
Nome da instância: std

db_name é geralmente consistente com a biblioteca principal

Modifique o arquivo hosts

No arquivo /etc/hosts dos dois nós, adicione o mapeamento dos nomes de host e IPs de ambas as partes, respectivamente.

2. Operação da biblioteca principal

ver registros on-line

SELECT thread#, group#, bytes / 1024 / 1024
  FROM v$log;

SELECT *
  FROM v$logfile;

Verifique se o arquivamento de log está ativado

SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /data/ebs/pri/db/apps_st/data/archive
Oldest online log sequence     5738
Current log sequence           5739
--如果没有开启则关闭数据启动到mount模式后来开启归档
SQL> alter database archivelog;
--打开数据库
SQL> alter database open;

Arquivamento obrigatório da configuração da biblioteca principal

alter database force logging;

Adicionar grupo de logs em espera

ALTER DATABASE add standby logfile GROUP 3 ('/data/ebs/pri/db/apps_st/data/log03a_std.dbf','/data/ebs/pri/db/apps_st/data/log03b_std.dbf') size 1000m;

ALTER DATABASE add standby logfile GROUP 4 ('/data/ebs/pri/db/apps_st/data/log04a_std.dbf','/data/ebs/pri/db/apps_st/data/log04b_std.dbf') size 1000m;

ALTER DATABASE add standby logfile GROUP 5 ('/data/ebs/pri/db/apps_st/data/log05a_std.dbf','/data/ebs/pri/db/apps_st/data/log05b_std.dbf') size 1000m;

Crie um arquivo de senha na biblioteca principal

#注意ORACLE_SID 大小写
orapwd file=orapwpri password=oracle force=y
scp orapwPRI [email protected]:/data/ebs/std/db/tech_st/11.2.0/dbs/orapwSTD

#保证 remote_login_passwordfile 参数 = EXCLUSIVE .
通过 sqlplus sys/oracle@pri as sysdba 来验证可以相互登录

Verifique se a biblioteca principal tem spfile ativado

SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /data/ebs/pri/db/tech_st/11.2.
                                                 0/dbs/spfilePRI.ora

Definir os principais parâmetros da biblioteca

alter system set log_archive_config='dg_config=(pri,std)' scope=spfile;#pri、std分别为主库备库的sid

SQL> alter system set log_archive_dest_1='LOCATION=/data/ebs/pri/db/apps_st/data/archive valid_for=(all_logfiles,all_roles) db_unique_name=pri' scope=spfile;

System altered.#这个参数在设置的时候,都要义所属节点的文件路径和db_unique_name一致

SQL> alter system set log_archive_dest_2='SERVICE=std ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=std' scope=spfile;#这个参数在设置的时候,都要义所属节点的文件路径和db_unique_name一致

System altered.

SQL> alter system set log_archive_dest_state_1=enable scope=spfile;

System altered.

SQL> alter system set log_archive_dest_state_2=enable scope=spfile;

System altered.

SQL> alter system set log_archive_max_processes=30 scope=both;

System altered.

SQL> alter system set standby_file_management=auto  scope=spfile;

System altered.

SQL> show parameter db_create_file_dest   

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string
#上面这个参数可以不用设置

SQL> alter system set db_file_name_convert='/data/ebs/std/db/apps_st/data','/data/ebs/pri/db/apps_st/data' scope=spfile; #(第二个参数才是本地路径)

System altered.

SQL> alter system set log_file_name_convert='/data/ebs/std/db/apps_st/data','/data/ebs/pri/db/apps_st/data' scope=spfile; #(第二个参数才是本地路径)

System altered.

SQL> create pfile from spfile;

File created.

Modifique tnsnames.ora e listener.ora

#在tnsnames.ora最后加入
IFILE=/data/ebs/pri/db/tech_st/11.2.0/network/admin/dg_std_ifile.ora
#然后在dg_std_ifile.ora这个文件填写对端库的tns

STD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xx.xx.xx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = std)
    )
  )

#listener.ora
SID_LIST_PRI =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = pri_DGMGRL)#这一行是新增的,其中pri是db_unique_name
      (ORACLE_HOME= /data/ebs/pri/db/tech_st/11.2.0)
      (SID_NAME = PRI)
    )
  )

3. Configurações do banco de dados em espera

Definir parâmetros de banco de dados de espera

–Crie pfile por meio de spfile no segmento de banco de dados em espera e, em seguida, modifique os seguintes parâmetros


*.db_name='std' 
*.db_unique_name='std' DG主库和备库的db_name必须一致,db_unique_name不一致
*.log_archive_config='dg_config=(pri,std)' pri主数据库SID,std备份数据库SID

*.log_archive_dest_1='location=/u01/app/oracle/arch valid_for=(all_logfiles,all_roles) db_unique_name=pri' #当前节点路径
*.log_archive_dest_2='service=pri valid_for=(online_logfiles,primary_role) db_unique_name=pri' #对端主库的信息

*.log_archive_dest_state_1=enable

*.log_archive_dest_state_2=enable

*.log_archive_max_processes=4

*.fal_server='std' #对端主库的的SID

*.fal_client='pri' #当前节点的信息

*.db_file_name_convert='/u01/app/oracle/oradata/std','/u01/app/oracle/oradata/pri' #第一个目录是对对端主库路径,第二个是当前节点路径

*.log_file_name_convert='/u01/app/oracle/oradata/std','/u01/app/oracle/oradata/pri' #第一个目录是备份数据库数据文件路径(备份服务器上有此目录),第二个是主数据库数据文件路径

*.standby_file_management='auto'

Comece a nomount no banco de dados standby

SQL> startup nomount
ORACLE instance started.

Total System Global Area 1.0689E+10 bytes
Fixed Size                  2237776 bytes
Variable Size            4798286512 bytes
Database Buffers         5872025600 bytes
Redo Buffers               16924672 bytes
SQL> show parameter db_unique_name

NAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
db_unique_name                       string
std
SQL> create spfile from pfile;

File created.

SQL> shutdown immediate
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.

Total System Global Area 1.0689E+10 bytes
Fixed Size                  2237776 bytes
Variable Size            4798286512 bytes
Database Buffers         5872025600 bytes
Redo Buffers               16924672 bytes
SQL> exit

Modifique tnsnames.ora e listener.ora

#在tnsnames.ora最后加入
IFILE=/data/ebs/std/db/tech_st/11.2.0/network/admin/dg_pri_ifile.ora
#然后在dg_std_ifile.ora这个文件填写对端库的tns

PRI =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xx.xx.xx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pri)
    )
  )

#修改listener.ora
SID_LIST_PRI =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = std_DGMGRL)#只有这一行是新增的,其中pri是db_unique_name,这个是给db_broker用的
      (ORACLE_HOME= /data/ebs/pri/db/tech_st/11.2.0)
      (SID_NAME = PRI)
    )
  )


4. Verifique a configuração com tnsping

Use tnsping db_unique_name em ambos os nós para verificar a interoperabilidade

5. Transmissão na seção de backup

[orastd@ifeng-ebs-test-db archive]$ rman target sys/oracle@pri auxiliary sys/oracle@std

Recovery Manager: Release 11.2.0.3.0 - Production on Fri Aug 20 20:39:24 2021

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

connected to target database: PRI (DBID=269162849)
connected to auxiliary database: PRI (not mounted)

RMAN> duplicate target database for standby from active database nofilenamecheck;

#完成后,启动到startup状态
alter database open;

Em seguida, verifique se a configuração está correta neste ponto. O próximo passo é configurar o db_broker. Esta ferramenta é equivalente a uma ferramenta de gerenciamento. Você pode alternar entre mestre e backup digitando uma linha de comandos e configurando parâmetros. Não há necessidade de bater em cada nó novamente.

6. Verifique

--切换日志测试,如果一直说明是OK的
--主库
SQL> alter system switch logfile;
SQL>select SEQUENCE#, FIRST_TIME, NEXT_TIME, APPLIED, ARCHIVED from V$ARCHIVED_LOG;

--备库
SQL> select SEQUENCE#, FIRST_TIME, NEXT_TIME, APPLIED, ARCHIVED from V$ARCHIVED_LOG;

Sete. Configure o corretor dg

Alterar parâmetros

#两个节点都要执行
alter system set dg_broker_start=true;
#下面任选一个节点执行
create configuration dg as primary database is pri connect identifier is pri;
add database std as connect identifier is std;

interruptor de teste

DGMGRL> show configuration

Configuration - dg

  Protection Mode: MaxPerformance
  Databases:
    pri  - Primary database
    std - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS
#下面这个命令时备库当主节点使用
DGMGRL> switchover to std
Performing switchover NOW, please wait...
New primary database "std" is opening...
Operation requires shutdown of instance "PRI" on database "pri"
Shutting down instance "PRI"...
ORACLE instance shut down.
Operation requires startup of instance "PRI" on database "pri"
Starting instance "PRI"...
ORACLE instance started.
Database mounted.
Database opened.
Switchover succeeded, new primary is "std"
DGMGRL> show configuration

Configuration - dg

  Protection Mode: MaxPerformance
  Databases:
    std - Primary database
    pri  - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

DGMGRL> 

Ocorreu um erro ao voltar:

DGMGRL> switchover to pri
Performing switchover NOW, please wait...
New primary database "pri" is opening...
Operation requires shutdown of instance "STD" on database "std"
Shutting down instance "STD"...
ORACLE instance shut down.
Operation requires startup of instance "STD" on database "std"
Starting instance "STD"...
Unable to connect to database
ORA-12545: Connect failed because target host or object does not exist

Failed.
Warning: You are no longer connected to ORACLE.

Please complete the following steps to finish switchover:
        start up instance "STD" of database "std"

Visualize os logs de alerta correspondentes aos dois nós

Não viu o problema.
Observe as informações de configuração do banco de dados. Acontece que StaticConnectIdentifier é o nome do host configurado. Verifique o arquivo /etc/hosts da biblioteca principal e verifique se o nome do host não está configurado nele. Após adicioná-lo, alterne-o novamente .

DGMGRL> show database verbose std

Database - std

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds
  Apply Lag:       0 seconds
  Real Time Query: ON
  Instance(s):
    STD

  Properties:
    DGConnectIdentifier             = 'std'
    ObserverConnectIdentifier       = ''
    LogXptMode                      = 'ASYNC'
    DelayMins                       = '0'
    Binding                         = 'OPTIONAL'
    MaxFailure                      = '0'
    MaxConnections                  = '1'
    ReopenSecs                      = '300'
    NetTimeout                      = '30'
    RedoCompression                 = 'DISABLE'
    LogShipping                     = 'ON'
    PreferredApplyInstance          = ''
    ApplyInstanceTimeout            = '0'
    ApplyParallel                   = 'AUTO'
    StandbyFileManagement           = 'AUTO'
    ArchiveLagTarget                = '0'
    LogArchiveMaxProcesses          = '30'
    LogArchiveMinSucceedDest        = '1'
    DbFileNameConvert               = '/data/ebs/pri/db/apps_st/data, /data/ebs/std/db/apps_st/data'
    LogFileNameConvert              = '/data/ebs/pri/db/apps_st/data, /data/ebs/std/db/apps_st/data'
    FastStartFailoverTarget         = ''
    InconsistentProperties          = '(monitor)'
    InconsistentLogXptProps         = '(monitor)'
    SendQEntries                    = '(monitor)'
    LogXptStatus                    = '(monitor)'
    RecvQEntries                    = '(monitor)'
    SidName                         = 'STD'
    StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ifeng-ebs-test-db)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=std_DGMGRL)(INSTANCE_NAME=STD)(SERVER=DEDICATED)))'
    StandbyArchiveLocation          = '/data/ebs/std/db/apps_st/data/archive'
    AlternateLocation               = ''
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = '%t_%s_%r.dbf'
    TopWaitEvents                   = '(monitor)'

Database Status:
SUCCESS

DGMGRL> 

documentos de referência

https://www.modb.pro/doc/39007?xzs=
https://www.modb.pro/doc/38709?xzs=
https://www.modb.pro/doc/514
https://www .cnblogs.com/yhfssp/p/7815078.html

Acho que você gosta

Origin blog.csdn.net/x6_9x/article/details/119892131
Recomendado
Clasificación