Oracle 12c中DBCA搭建备库体验(r11笔记第92天)

简介:    Oracle 12c中DBCA有一个特性看起来蛮有意思,就是直接通过DBCA来搭建Data Guard,当然这么说也有点噱头,我们来实际看看。   Oracle提供的官方命令结构如下:       dbca -createDuplicateDB...

   Oracle 12c中DBCA有一个特性看起来蛮有意思,就是直接通过DBCA来搭建Data Guard,当然这么说也有点噱头,我们来实际看看。

  Oracle提供的官方命令结构如下:       dbca -createDuplicateDB
        -gdbName global_database_name
        -primaryDBConnectionString easy_connect_string_to_primary
        -sid database_system_identifier
        [-createAsStandby
            [-dbUniqueName db_unique_name_for_standby]]
        [-customScripts scripts_list]    至少我开始听到的时候是很兴奋的,真正看到这个帮助命令的时候还是很欣喜的,感觉一种要革命化的冲动,恨不得现在就在生产中马上投入使用,实际上我看简单了。

    部署两套数据库软件,有了静默安装,有了克隆,这些都是分分钟的事情。    使用dbca的help得到的命令解释比官方文档更加细致,还提供了参数示例,这个很难得。$ dbca –silent -createDuplicateDB -help
        -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>]

然后我简单修改了下就开始了DBCA,没想到提示了下面的信息。

$ dbca –silent -createDuplicateDB -primaryDBConnectionString  newtest.oracle.com:1521/test12c -gdbName test12c -sid test12c -initParams instance_name=test12c –createAsStandby
DISPLAY not set.
Set DISPLAY environment variable, then re-run.   这个刚开始感觉还挺纳闷,最后发现我这个服务器上安装了多套环境,11g,12c并存,我竟然使用了11g的ORACLE_HOME,所以这个是个开篇的简单问题,我们简单跳过.

    简单调整后继续尝试,发现这次的错误让我大跌眼镜。

$ dbca -silent -createDuplicateDB -primaryDBConnectionString  newtest.oracle.com:1521/test12c -gdbName test12c -sid test12c -initParams instance_name=test12c -createAsStandby -dbUniqueName stest12c
Enter SYS user password:
[FATAL] [DBT-16057] Specified primary database is a container database (CDB).
   CAUSE: Duplicate database operation is supported only for non container databases.
    竟然抛出了一个致命错误,而主要原因就是DBCA不支持容器复制,在非容器数据库环境下才可以。

    带着疑问,再次打开文档,发现这个命令开篇就解释的很清楚了,明确表示了只支持非容器数据库。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.    12c的亮点之一就是容器,而这个场景中我们只能使用非容器模式,然后搭建备库,这个让我的积极性消失了大半。

    究其原因,其实和12cR2里面的PDB层面的特殊定制有关。有一个相关的参数ENABLED_PDBS_ON_STANDBY,在PDB的场景下,可做多重定制,实际上对线上应用来说,和我的预期还有一些差别。

   

   那么我们牵强一下,是否能够轻松完成非容器数据库的Duplicate呢。这个地方实际上也让我不大满意。

我重新dbca初始化了1套环境,指定为非容器模式。

dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname test12cs -sid test12cs  -characterSet UTF8  -createAsContainerDatabase false -sysPassword oracle -systemPassword oracle然后继续使用上面的命令来尝试创建DG,产生了下面的日志。

Listener config step
33% complete
Auxiliary instance creation
66% complete
RMAN duplicate
DBCA Operation failed.最后还是失败了,这个地方牵扯到一些网络的配置原因。

   当然翻看日志可以很快定位出一些方向,但是实际上的操作让我感觉到,网络的配置不是我期望的那么规范,而最重要的是,最后完成的不是DG的搭建,就如同这个命令选项所说,只是Duplilcate,Data Guard的配置没有,主备库都不用自动启用DG Broker,对于搭建Data Guard的一个最佳实践其实DG Broker就是一个很不错的选择,而在这里似乎没有找到我期望中的亮点。

    所以我感觉这个特性目前对于我而言,没有想象中那么好。而我手工尝试搭建了下,实际上几分钟也能达到同样那个命令的效果,因为只在duplicate部分截止,后期的工作职能通过定制脚本等方式来实现了。与其如此,还不如用我自己之前写脚本,最起码能够达到基本的可控和规范。

    这个特性本身是一个不错的想法,但是在这个特定的版本环境下,竟然有点华而不实,而退开一步来看,其实有些配置还达不到目前我们要求的一个配置要求,所以了解学习一下还是必要的,但是不隆重推荐给大家使用。

   

  


目录
相关文章
|
5月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之和Oracle数据同步必须是使用主库吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算 Flink版产品使用合集之和Oracle数据同步必须是使用主库吗
|
5月前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
20天前
|
Oracle 关系型数据库 MySQL
shell获取多个oracle库mysql库所有的表
请注意,此脚本假设你有足够的权限访问所有提到的数据库。在实际部署前,请确保对脚本中的数据库凭据、主机名和端口进行适当的修改和验证。此外,处理数据库操作时,务必谨慎操作,避免因错误的脚本执行造成数据损坏或服务中断。
36 0
|
3月前
|
Oracle 关系型数据库 Linux
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
122 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
|
3月前
|
存储 Oracle 关系型数据库
Oracle 12c支持哪些数据类型?
【7月更文挑战第20天】Oracle 12c支持哪些数据类型?
72 2
|
3月前
|
SQL Oracle 关系型数据库
Oracle 12c有哪些新特性?
【7月更文挑战第20天】Oracle 12c有哪些新特性?
51 2
|
4月前
|
Oracle 关系型数据库 数据库
oracle基本操作笔记分享
oracle基本操作笔记分享
37 0
|
5月前
|
Oracle Java 关系型数据库
实时计算 Flink版产品使用合集之支持 Oracle 整库同步吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3天前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
97 64
|
2天前
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
5 1

推荐镜像

更多