本文主要介绍“如何在偏远的CDB迁移名为jypdb的PDB”。在日常操作中,我相信很多人对于如何迁移偏远的CDB一个叫jypdb的PDB有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解答“如何在偏远的CDB迁移名为jypdb的PDB”的疑惑!接下来,请和边肖一起学习!
假设满足以下条件:当前用户在迁移的PDB所在的CDB的根容器中拥有创建可插拔数据库系统权限。目标CDB与PDB相连。当前CDB的数据库链接名为jycdb_link。dblink的创建语句如下:
createpublickdatabaselinkjycdb _ linkconnecttoc # # yyl
使用“jy”由“yyl”标识;当前PDB CDB的公共用户c##yyl拥有系统操作管理权限和创建可插拔数据库系统权限。未指定path_prefix子句。未指定file_name_convert和create_file_dest子句。当启用OMF或设置pdb_file_name_convert参数时,基于OMF配置或参数的设置文件将被移动到新目录。没有为PDB指定存储限制。因此,没有指定存储子句。目标目录中没有同名的临时文件,将创建一个新的临时文件。因此,没有指定tempfile重用子句。连接会自动从源PDB迁移到迁移的PDB。因此,请指定可用性max子句。
执行以下语句将PDB(jypdb)从远程CDB迁移到当前的CDB :
1.在偏远的CDB创建公共用户c##yyl
SQLcreateuserc # # yylidentifiedby ' yyl ' container=all;
用户创建。
SQLgrantsysoper,connect,resource,createpluggabledatabase TOC # # yylcontainer=all;
授予成功。2检查远程CDB是否使用本地撤消和存档。
SQLCOLUMNproperty _ nameFORMATA30
SQLCOLUMNproperty _ value format 30
结构化查询语言
SQLSELECTproperty _ name,property_value
2FROMdatabase_properties
3 where PrOperty _ name=' LOCAL _ UNDO _ ENabled ';
属性名属性值
-
LOCAL_UNDO_ENABLEDTRUE
SQLSELECTlog _ modeFROMv $数据库;
日志模式
-
归档因为远程CDB使用本地撤消和归档,所以没有必要将远程数据库设置为只读模式。
3.创建一个dblink,指定本地CDB(jy)中的距离和CBD(jy)。连接字符串中必须有(SERVER=PROTECTED)目录,否则您将收到“ora-010313360权限不足”错误。
sqlcreatepublickdatabaselinkjycdb
2connecttoc##yyliden
tified by "yyl"
3 using '(DESCRIPTION =
4 (ADDRESS_LIST =
5 (ADDRESS = (PROTOCOL = TCP)(HOST =10.138.130.173)(PORT = 1521))
6 )
7 (CONNECT_DATA =
8 (SERVER = DEDICATED)
9 (SERVICE_NAME =jy)
10 )
11 )';
Database link created.
SQL> select * from dual@jycdb;
D
-
X
4.检查本地CDB是否使用了本地undo与归档
SQL> COLUMN property_name FORMAT A30 SQL> COLUMN property_value FORMAT A30 SQL> SQL> SELECT property_name, property_value 2 FROM database_properties 3 WHERE property_name = 'LOCAL_UNDO_ENABLED'; PROPERTY_NAME PROPERTY_VALUE ------------------------------ ------------------------------ LOCAL_UNDO_ENABLED TRUE SQL> SELECT log_mode FROM v$database; LOG_MODE ------------ ARCHIVELOG
5.在本地CDB执行下面的语句来克隆可刷新的PDB
SQL> create pluggable database jypdb from jypdb@jycdb relocate availability max; Pluggable database created. SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE -------------------------------------------------------------------------------------------------------------------------------- ---------- PDB$SEED READ ONLY JYPDB READ WRITE
以read write方式来打开PDB以完成迁移操作
SQL> alter pluggable database jypdb open; Pluggable database altered. SQL> alter session set container=jypdb; Session altered. SQL> set long 200 SQL> set linesize 200 SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE -------------------------------------------------------------------------------------------------------------------------------- ---------- JYPDB READ WRITE
删除公共dblink
SQL> drop public database link jycdb; Database link dropped.
检查远程PDB可以看到已经被删除了
到此,关于“远程CDB中怎么将名为jypdb的PDB进行迁移”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154588.html