我们在官方文档中发现,clone a remote PDB,只需要四步:
1.确保当前容器是目标 的CDB$ROOT
2.运行CREATE PLUGGABLE DATABASE命令
3.以只读模式打开新的PDB
4.备份PDB
(https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/cloning-a-pdb.html#GUID-5A9E81ED-D9BF-4551-A5FC-3154DC7223C8)
在题中的七个选项中,没有步骤1和4,步骤3是G选项。所以G必选。
同时我们也要知道在步骤二中发生了什么。
https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/cloning-a-pdb.html#GUID-5A9E81ED-D9BF-4551-A5FC-3154DC7223C8
上图向我们大致解释了一下,当我们clone一个远端的pdb的过程。我们可以很直观地发现无论的远端还是本地PDB$SEED并没有参与到整个过程中。所以我们排除了选项C。
关于选项ABDF,当我们选择在19c及其之后的版本通过DBCA来clone PDB的时候,我们只能使用database link,并且database link只能存在于本地。因此,排除DF选项。
(原文:When the source is a PDB is in a remote CDB, you must use a database link to clone the PDB into the local CDB.The database link must exist in the local CDB (not the remote CDB). )
现在的答案集中在ABEG。
E选项,我没有找到官方的说明,但是在一篇名为《Using General Database Overall Enhancement:
Automatic Execution of Fixups Scripts and root.sh
》介绍19c的新特性的blog中有一句“Checks the presence of database link. If the database link exists, DBCA drops it。”这一句似乎可以佐证选项E的正确性,但是,找遍全网,我也只在这篇文章里找到了依据。并且出于做题的角度考虑AB为对立选项,选三个的话,E似乎是对的。
A和B两个选项比较棘手。oracle官方原文为:“The database link connects from the local CDB to either to the root of the remote CDB or to the remote source PDB.”
这样看起来似乎A和B都是对的。但是,多读两遍,我就有这样一个问题,在选项A中,that is to be cloned是修饰remote system还是用来修饰PDB的呢?毕竟,无论如何CDB只有一个,PDB可是有很多个的。又虽然,它选的是定冠词the,但是听起来多少有那么一点不严谨。
这道题我倾向于选择答案BEG。