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部分截止,后期的工作职能通过定制脚本等方式来实现了。与其如此,还不如用我自己之前写脚本,最起码能够达到基本的可控和规范。

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

   

  


目录
相关文章
|
21天前
|
存储 NoSQL Oracle
Oracle 12c的内存列存储:数据的“闪电侠”
【4月更文挑战第19天】Oracle 12c的内存列存储以超高速度革新数据处理,结合列存储与内存技术,实现快速查询与压缩。它支持向量化查询和并行处理,提升效率,但需合理配置以平衡系统资源。作为数据管理员,应善用此功能,适应业务需求和技术发展。
|
21天前
|
存储 Oracle 关系型数据库
Oracle 12c的多重索引:数据的“多维导航仪”
【4月更文挑战第19天】Oracle 12c的多重索引提升数据查询效率,如同多维导航仪。在同一表上创建针对不同列的多个索引,加速检索过程。虽然过多索引会增加存储和维护成本,但合理选择和使用索引策略,结合位图、函数索引等高级特性,能优化查询,应对复杂场景。数据管理员应善用这些工具,根据需求进行索引管理,支持企业数据分析。
|
21天前
|
存储 Oracle 数据管理
Oracle 12c的自动数据优化(ADO)与热图:数据管理的“瘦身”与“透视”艺术
【4月更文挑战第19天】Oracle 12c的ADO和热图技术革新数据管理。ADO智能清理无用数据,优化存储,提升查询速度,实现数据&quot;瘦身&quot;;热图则以直观的视觉表示展示数据分布和状态,助力识别性能瓶颈,犹如数据的&quot;透视&quot;工具。这两项技术结合,强化数据管理,为企业业务发展保驾护航。
|
21天前
|
Oracle 安全 数据管理
Oracle 12c多租户架构:数据管理的“摩天大楼”
【4月更文挑战第19天】Oracle 12c的多租户架构允许多个独立数据库环境在同一实例中共享资源,提高效率,降低成本。该架构保证了数据隔离和安全性,同时提供灵活性和可扩展性,简化管理任务。通过理解其原理和管理方法,我们可以充分利用这一架构,为企业数据管理和业务发展提供强大支持。
|
SQL 移动开发 Oracle
Oracle数据库笔记整理
Oracle数据库 函数 大小写转换 SELECT ename, LOWER(ename) FROM emp; SELECT ename, UPPER(ename) FROM emp; 截取 SELECT ename, SUBSTR(ename,1,2) FROM emp; 四舍五入 SELECT ROUND(3.
2374 0
|
10天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
28 0
|
1天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
10 0
|
16天前
|
存储 Oracle 网络协议
Oracle 11gR2学习之二(创建数据库及OEM管理篇)
Oracle 11gR2学习之二(创建数据库及OEM管理篇)
|
20天前
|
Oracle 网络协议 关系型数据库
异地使用PLSQL远程连接访问Oracle数据库【内网穿透】
异地使用PLSQL远程连接访问Oracle数据库【内网穿透】
|
21天前
|
SQL Oracle 安全
Oracle数据库中的事务和锁
【4月更文挑战第19天】Oracle数据库的事务和锁是确保数据完整性和并发控制的核心机制。事务遵循ACID原则,保证操作的原子性、一致性、隔离性和持久性。通过COMMIT或ROLLBACK来管理事务更改。锁包括共享锁(读)、排他锁(写)、行级锁和表级锁,用于控制并发访问。自动锁机制在DML操作时生效,防止数据冲突。事务和锁共同维护数据库的稳定和安全。