远程CDB中怎么将名为jypdb的PDB进行迁移

61次阅读
没有评论

共计 2989 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要介绍“远程 CDB 中怎么将名为 jypdb 的 PDB 进行迁移”,在日常操作中,相信很多人在远程 CDB 中怎么将名为 jypdb 的 PDB 进行迁移问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”远程 CDB 中怎么将名为 jypdb 的 PDB 进行迁移”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

假设满足以下条件:
. 当前用户在被迁移 PDB 所在的 CDB 的 root 容器中有 create pluggable database 系统权限

. 目标 CDB 连接 PDB 当前 CDB 的 dblink 名为 jycdb_link。dblink 的创建语句如下:

create public database link jycdb_link connect to c##yyl
identified by  yyl  using  jy

PDB 的当前 CDB 中的公共用户 c##yyl 有 sysoper 管理权限与 create pluggable database 系统权限

. 不指定 path_prefix 子句

. 不指定 file_name_convert 与 create_file_dest 子句。当启用 OMF 或设置 pdb_file_name_convert 参数时,基于 OMF 的配置或参数的设置文件会被移动到新目录。

. 对 PDB 不指定存储限制。因此不指定 storage 子句

. 在目标目录中不存在相同名字的 temp 文件,那么新的 temp 文件会被创建。因此不指定 tempfile reuse 子句。

. 连接会被自动从源 PDB 迁移到迁移后的 PDB。因此指定 availability max 子句。

执行以下语句来将 PDB(jypdb)从远程 CDB 迁移到当前 CDB 中:
1. 在远程 CDB 中创建公共用户 c##yyl

SQL  create user c##yyl identified by  yyl  container=all;
User created.
SQL  grant sysoper,connect,resource,create pluggable database to c##yyl container=all;
Grant succeeded.

2. 检查远程 CDB 是否使用本地 undo 与归档

SQL  COLUMN property_name FORMAT A30
SQL  COLUMN property_value FORMAT A30
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

------------ ARCHIVELOG

因为远程 CDB 使用本地 undo 与归档,因此不需要将远程数据库设置为只读模式

3. 在本地 CDB(jy)中创建指定远和 CBD(jy)的 dblink。连接串中要包含 (SERVER=DEDICATED) 条目录,否则会收到 ORA-01031: insufficient privileges 错误

SQL  create public database link jycdb
 2 connect to c##yyl identified 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.

X

4. 检查本地 CDB 是否使用了本地 undo 与归档

SQL  COLUMN property_name FORMAT A30
SQL  COLUMN property_value FORMAT A30
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 进行迁移”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计2989字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)