Oracle 19c使用dbca来搭建物理DG

Using DBCA to Create a Data Guard Standby

The Database Configuration Assistant (DBCA) can also be used as a simple command-line method to create an Oracle Data Guard physical standby database.

The DBCA command qualifier used to create the physical standby database is createDuplicateDB .

DBCA can only be used to create standby databases for non-multitenant primary databases. In addition, this capability creates only single instance standby databases,not Oracle Real Application Clusters (Oracle RAC) databases. If required, the standby can then be converted to an Oracle RAC standby database, either manually or using Oracle Enterprise Manager Cloud Control.

在 12cR2 ( 12.2.0.1 )之前创建物理备库的方法有:

1 、使用 RMAN 备份恢复方法;

2 、在 11g 时可以选择 duplicate 方式创建物理备库;通过这种方式直接在线从主库搭建物理备库。

到 12cR2 ( 12.2.0.1 )后, Oracle 又提供更简单的方式来创建物理备库,即使用 DBCA 方式直接建立物理备库。这个功能再次简化了创建备库的复杂度。

通过 DBCA 提供的参数 createDuplicateDB 可以很容易的搭建一个物理备库。其具体语法如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

-------------- 12cR2

-createDuplicateDB - Command to Duplicate a database.

        -gdbName <Global database name>

        -primaryDBConnectionString <EZCONNECT string to connect to primary database for example "host:port/servicename">

        -sid <Database system identifier>

        [-createAsStandby <Option to create a standby database>]

                [-dbUniqueName <db_unique_name for standby db>]

        [-customScripts <A comma separated list of SQL scripts which needs to be run post db creation.The scripts are run in order they are listed>]

        [-datafileDestination <Destination directory for all database files>]

        [-initParams <Comma separated list of name=value pairs>]

                [-initParamsEscapeChar <Specify escape character for comma when a specific initParam has multiple values.If the escape character is not specified backslash is the default escape character>]

 

 

 

----------- 18c

-createDuplicateDB - Command to Duplicate a database.

        -gdbName <Global database name>

        -primaryDBConnectionString <EZCONNECT string to connect to primary database for example "host:port/servicename">

        -sid <Database system identifier>

        [-initParams <Comma separated list of name=value pairs>]

                [-initParamsEscapeChar <Specify escape character for comma when a specific initParam has multiple values.If the escape character is not specified backslash is the default escape character>]

        [-policyManaged | -adminManaged]

        [-policyManaged <Policy managed databasedefault option is Admin managed database>]

                -serverPoolName <Specify the single server pool name in case of create server pool or comma separated list in case of existing server pools>

                [-pqPoolName <value>]

                [-createServerPool <Create a new server pool, which will be used by the database>]

                        [-pqPoolName <value>]

                        [-forceServerPoolCreation <To create server pool by force when adequate free servers are not available. This may affect the database which is already in running mode>]

                        [-pqCardinality <value>]

                        [-cardinality <Specify the cardinality of the new server pool that is to be created, default is the number of qualified nodes>]

        [-adminManaged <Admin managed database, this is default option>]

        [-datafileDestination <Destination directory for all database files>]

        [-nodelist <Node names separated by comma for the database>]

        [-databaseConfigType <SINGLE | RAC | RACONENODE>]

                [-RACOneNodeServiceName <Service name for the service to be created for RAC One Node database. This option is mandatory when the databaseConfigType is RACONENODE>]

        [-createAsStandby <Option to create a standby database>]

                [-dbUniqueName <db_unique_name for standby db>]

        [-customScripts <A comma separated list of SQL scripts which needs to be run post db creation.The scripts are run in order they are listed>]

 

 

 

 

----------- 19c

 

-createDuplicateDB - Command to Duplicate a database.

        -gdbName <Global database name>

        -primaryDBConnectionString <EZCONNECT string to connect to primary database for example "host:port/servicename">

        -sid <Database system identifier>

        [-useWalletForDBCredentials <true false> Specify true to load database credentials from wallet]

                -dbCredentialsWalletLocation <Path of the directory containing the wallet files>

                [-dbCredentialsWalletPassword <Password to open wallet with auto login disabled>]

        [-initParams <Comma separated list of name=value pairs>]

                [-initParamsEscapeChar <Specify escape character for comma when a specific initParam has multiple values.If the escape character is not specified backslash is the default escape character>]

        [-policyManaged | -adminManaged]

        [-policyManaged <Policy managed databasedefault option is Admin managed database>]

                -serverPoolName <Specify the single server pool name in case of create server pool or comma separated list in case of existing server pools>

                [-pqPoolName <value>]

                [-createServerPool <Create a new server pool, which will be used by the database>]

                        [-pqPoolName <value>]

                        [-forceServerPoolCreation <To create server pool by force when adequate free servers are not available. This may affect the database which is already in running mode>]

                        [-pqCardinality <value>]

                        [-cardinality <Specify the cardinality of the new server pool that is to be created, default is the number of qualified nodes>]

        [-adminManaged <Admin managed database, this is default option>]

        [-datafileDestination <Destination directory for all database files>]

        [-nodelist <Node names separated by comma for the database>]

        [-databaseConfigType <SINGLE | RAC | RACONENODE>]

                [-RACOneNodeServiceName <Service name for the service to be created for RAC One Node database. This option is mandatory when the databaseConfigType is RACONENODE>]

        [-createAsStandby <Option to create a standby database>]

                [-dbUniqueName <db_unique_name for standby db>]

        [-customScripts <A comma separated list of SQL scripts which needs to be run post db creation.The scripts are run in order they are listed>]

虽然通过 DBCA 能非常简单的创建一个物理备库,但是要使用这个功能,必须满足以下条件:

①  主库必须是单机环境,非 RAC 数据库;

②  主库必须是非 CDB 环境;

如果不满足以上条件, 那么 在使用 DBCA 创建备库的时候,会提示如下错误:

若 主库是 CDB 环境,错误如下:


1

2

[FATAL] [DBT-16057] Specified primary database is a container database (CDB).

CAUSE: Duplicate database operation is supported only for non container databases.

若 主库是 RAC 数据库,错误如下:


1

2

[FATAL] [DBT-16056] Specified primary database is not a Single Instance (SI) database.

CAUSE: Duplicate database operation is supported only for SI databases.

也就说通过 DBCA 搭建出来的备库也是一个单机非 CDB 的备库。

需要注意的是,在 12cR2 ( 12.2.0.1 )中,通过 DBCA 创建物理需要保证主库是单机非 CDB 的库,但是从 Oracle 18c ( 12.2.0.2 )开始,这些限制条件已经取消了,即主库是 CDB 或 rac 环境都可以通过 dbca 来创建物理备库。

以下命令为 18c 中创建 rac 类型的 dg :


1

2

3

4

5

6

7

8

9

10

11

dbca -silent -createDuplicateDB \

-gdbName lhrdb \

-sid lhrdbdg \

-sysPassword oracle \

-primaryDBConnectionString 192.168.20.10:1521/lhrdb \

-nodelist rac18c-n1,rac18c-n2 \

-adminManaged \

-databaseConfigType RAC \

-createAsStandby -dbUniqueName lhrdbdg \

-datafileDestination ‘+DATA‘ \

-initParams db_create_file_dest=+DATA, db_create_online_log_dest_1=+DATA,local_listener="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.20.10)(PORT=1521)))"

基于同一个主机搭建 单实例的物理 DG ( 19c ):


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

SELECT CDB FROM  V$DATABASE

alter database force logging;

alter database open;

alter database archivelog;

alter pluggable database all open;

alter pluggable database  all save state;

 

select thread#,group#,bytes/1024/1024 SIZE_MB, status,members from v$log;

select member from v$logfile;

alter database add standby logfile thread 1 group ‘/u01/app/oracle/oradata/LHR19C/standby_redo04.log‘   size 50M ;

alter database add standby logfile thread 1 group ‘/u01/app/oracle/oradata/LHR19C/standby_redo05.log‘   size 50M ;

alter database add standby logfile thread 1 group ‘/u01/app/oracle/oradata/LHR19C/standby_redo06.log‘   size 50M ;

alter database add standby logfile thread 1 group ‘/u01/app/oracle/oradata/LHR19C/standby_redo07.log‘   size 50M ;

 

--------配置tns

lhr19c =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.52)(PORT = 1522))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = lhr19c)

    )

  )

 

lhr19cdg =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.52)(PORT = 1522))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = lhr19cdg)

    )

  )

 

--------配置监听

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

    )

  )

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = lhr19c)

      (ORACLE_HOME = /u01/app/oracle/product/19.2.0/dbhome_1)

      (SID_NAME = lhr19c)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = lhr19cdg)

      (ORACLE_HOME = /u01/app/oracle/product/19.2.0/dbhome_1)

      (SID_NAME = lhr19cdg)

    )

  )

 

LISTENER_DG =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.52)(PORT = 1522))

  )

 

SID_LIST_LISTENER_DG =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = lhr19c)

      (ORACLE_HOME = /u01/app/oracle/product/19.2.0/dbhome_1)

      (SID_NAME = lhr19c)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = lhr19cdg)

      (ORACLE_HOME = /u01/app/oracle/product/19.2.0/dbhome_1)

      (SID_NAME = lhr19cdg)

    )

  )

 

lsnrctl start LISTENER_DG

 

 

dbca -silent -createDuplicateDB \

-gdbName lhr19c \

-sid lhr19cdg \

-sysPassword lhr \

-primaryDBConnectionString 192.168.59.52:1522/lhr19c \

-nodelist raclhr-18c-n1 \

-databaseConfigType SINGLE \

-createAsStandby -dbUniqueName lhr19cdg \

-datafileDestination ‘/u01/app/oracle/oradata/lhr19cdg/‘ \

-initParams db_create_file_dest=/u01/app/oracle/oradata/lhr19cdg/, db_create_online_log_dest_1=/u01/app/oracle/oradata/lhr19cdg/,local_listener="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.52)(PORT=1522)))"

 

 

 

 

--主库修改参数

alter system set LOG_ARCHIVE_DEST_1=‘LOCATION=USE_DB_RECOVERY_FILE_DEST  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=lhr19c‘;

alter system set LOG_ARCHIVE_DEST_2=‘service=lhr19cdg  VALID_FOR=(online_logfiles,primary_role) DB_UNIQUE_NAME=lhr19cdg‘;

alter system set log_archive_config=‘dg_config=(lhr19c,lhr19cdg)‘;

alter system set db_file_name_convert=‘/u01/app/oracle/oradata/LHR19CDG/‘,‘/u01/app/oracle/oradata/LHR19C/‘ scope=spfile;

alter system set log_file_name_convert=‘/u01/app/oracle/oradata/LHR19CDG/‘,‘/u01/app/oracle/oradata/LHR19C/‘ scope=spfile;

alter system set standby_file_management=auto scope=spfile;

alter system set fal_client=‘lhr19c‘

alter system set fal_server=‘lhr19cdg‘ sid=‘*‘;

alter system set local_listener=‘(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.52)(PORT=1522)))‘,‘(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.52)(PORT=1521)))‘;

shutdown immediate

startup

 

 

--备库修改参数

alter system set LOG_ARCHIVE_DEST_1=‘LOCATION=USE_DB_RECOVERY_FILE_DEST  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=lhr19cdg‘ scope=spfile;

alter system set log_archive_config=‘dg_config=(lhr19c,lhr19cdg)‘;

alter system set db_file_name_convert=‘/u01/app/oracle/oradata/LHR19C/‘,‘/u01/app/oracle/oradata/LHR19CDG/‘ scope=spfile;

alter system set log_file_name_convert=‘/u01/app/oracle/oradata/LHR19C/‘,‘/u01/app/oracle/oradata/LHR19CDG/‘ scope=spfile;

alter system set standby_file_management=auto scope=spfile;

alter system set fal_client=‘lhr19cdg‘

alter system set fal_server=‘lhr19c‘ sid=‘*‘;

alter system set local_listener=‘(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.52)(PORT=1522)))‘,‘(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.52)(PORT=1521)))‘;

 

shutdown immediate

startup

alter system register;

 

 

--备库查询实时应用

alter database recover managed standby database cancel;

alter database recover managed standby database using current logfile disconnect;

! ps -ef|grep ora_mrp

 

select INST_ID, dbid,name,DB_UNIQUE_NAME,current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status from gv$database;

 

COL NAME FOR A100

SET LINESIZE 9999  PAGESIZE 9999

COL NEXT_CHANGE# FOR 999999999999999

SELECT THREAD#, NAMESEQUENCE#, ARCHIVED, APPLIED, A.NEXT_CHANGE#

  FROM V$ARCHIVED_LOG A

 WHERE A.SEQUENCE# >= (SELECT MAX(B.SEQUENCE#) - 3

                         FROM V$ARCHIVED_LOG B

                        WHERE B.THREAD# = A.THREAD#

                          AND B.RESETLOGS_CHANGE# = A.RESETLOGS_CHANGE#

                          AND B.RESETLOGS_CHANGE# =

                              (SELECT D.RESETLOGS_CHANGE# FROM V$DATABASE D)

                          AND B.APPLIED = ‘YES‘

  GROUP BY B.THREAD#)

 ORDER BY A.THREAD#, A.SEQUENCE#;

原文地址:https://www.cnblogs.com/lhrbest/p/10509785.html

时间: 2024-10-10 16:31:54

Oracle 19c使用dbca来搭建物理DG的相关文章

Oracle 11g R2之Dataguard搭建物理standby

数据库版本:11.2.0.4 服务器版本:RedHat6.4 主库Primary:安装数据库软件及实例 备库Standby: 仅安装数据库软件 一.搭设前主备库环境: 主库Primary: [[email protected] dbs]$ cat /home/oracle/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User spe

【DATAGUARD】物理dg的switchover切换(五)

一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 物理dg的switchover切换演练过程 ② 物理dg管理和维护的一些sql 注意:本篇BLOG中代码部分需要特别关注的地方我都用***背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thread 2的最大归档日志号为43是需要特别关注的地方. List of Archived Logs

【DATAGUARD】物理dg的failover切换(六)

[DATAGUARD]物理dg的failover切换(六) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 物理dg的failover切换演练过程 ② 物理dg管理和维护的一些sql ③ 利用duplicate搭建物理dg ④ 注意:本篇BLOG中代码部分需要特别关注的地方我都用***背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thr

RAC对RAC的物理DG的搭建

操作系统版本:IBM aix 6.2 数据库版本:11.2.0.4 软件运行架构: 主库为一个两节点的rac,备库也是一个两节点的rac,但备库只用于接收归档日志,不创建数据文件,不用于数据同步,用于接收来之主库的归档,以供ogg的日志挖取,并且准备在备库上架设一套ogg ha环境:其中镜像用于存放归档的文件系统为ocfs文件系统:并且用于安装ogg软件: 简要操作步骤: 一.dg环境的搭建: 1.  强制归档:alter database force logging; 2.  创建备份的控制文

oracle物理dg安装:主库创建

以下记录了dbca创建主库的过程,基本每一步都有图片. oracle用户执行dbca,如果是root用户登录图形图面,则su切换用户前需要先执行一下xhost +x,否则oracle不能启动图形界面程序,下一步 ? 选择Create Database,下一步 选择General Purpose or Transaction Processing,下一步 dbname=orcl,sid=dg1,下一步 Configure Enterprise Manger不选择,点Automatic Mainte

在Windows 2008 R2上搭建RAC+DG

前期规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1G 操作系统:Windows 2008 R2 Enterprise ******* RAC部分 ******* 一.准备工作 1.修改提升权限提示方式为"不提示,直接提升"(默认为"非Windows二进制文件的同意提示") cmd> secpol.msc->本地策略-&g

Oracle RAC + Data Guard 环境搭建

国庆之前就准备做这个实验了. 后来时间不够,就没搞了. 6天的长假一放,都散漫的不成样子了.懒散了很多. 今天7号. 上班也没啥精神,但是该做的实验还得继续. Oracle 高可用性的三个主要体现是: RAC, Data Guard 和 Stream.  所以熟练掌握这些技术就是评价DBA的标准一个. RAC + Data Guard 主要用在灾备或者报表服务器上. 比如用RAC+ 逻辑standby 做报表,从而减轻RAC 系统的压力. 关于Data Guard 的一些原理知识可以参考: Or

oracle 11g rac dbca建库时提示创建监听

Oracle 11g rac dbca建库时提示创建监听 在安装oracle 11g rac时,使用dbca建库的过程中提示需要创建监听: Default Listener "LISTENER" is not configured in Grid Infrantructure home.Use NetCA to configure Default Listener and return DBCA 解决步骤如下 因为oracle 11g rac在安装过程中会自动创建监听,无需手动创建,首

【DATAGUARD】物理dg配置客户端无缝切换--Fast-Start Failover的配置

[DATAGUARD]物理dg配置客户端无缝切换--Fast-Start Failover的配置 一.2.2  实验环境介绍 项目 主库 dg库 db 类型 单实例 单实例 db version 11.2.0.3 11.2.0.3 db 存储 FS type FS type ORACLE_SID oradg11g oradgphy db_name oradg11g oradg11g 主机IP地址: 192.168.59.130 192.168.59.130 OS版本及kernel版本 RHEL6