暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
pdb迁移记录.txt
494
3页
7次
2022-06-17
5墨值下载
1.在线方式迁移
通过 dblink 的方式远程克隆。帮我们做了很多工作,这个也是简单的迁移方式。该方式对于相同版本的 pdb
之间的迁移没问题。如果是跨版本的,比如从 12.1 19c 也可以使用。在 19c clone 完之后,需要运行
dbupgrade 脚本。
2.离线方式迁移
将原库离线或只读方式打开,将文件复制到目标库,然后再创建 PDB。如果使用了 ASM(默认使用了 OMF
个特性,OMF 这个特性贼棒),会变得比较复杂。
在线方式迁移
在新的容器数据库上执行以下操作
1.在目标库上创建到源库的 dblink
create database link clone_link connect to system identified by oracle using
'(description=(address=(protocol=tcp)(host=192.168.10.21)(port=1521))
(connect_data=(service_name=pdb1)))';
2.执行远程创建
create pluggable database pdb1 from pdb1@clone_link
下面是在通过 dblink 远程克隆时 alert 日志对应的输出
如果源端和目标端对应的 patch 不一致或者出现一些无效的组件等,PDB 会处以 restricted 模式。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE YES
常用的用来检查补丁或冲突的 SQL 语句
select patch_id, patch_uid, version, status, description from
dba_registry_sqlpatch;
select inst_id,name,open_mode,restricted from gv$pdbs order by 1,2;
select name,con_id,con_uid,open_mode,restricted,guid from v$pdbs order by 1,2;
select status, message, action from pdb_plug_in_violations where status !
='RESOLVED';
如果是补丁不一致,通过 datapatch 一般能解决大部分问题
[oracle@xd08dbadm01 OPatch]$ ./datapatch -verbose -pdbs PDB1
如果 datapatch 成功执行后,数据库还处于 restricted 模式,那么大部分情况下,是因为一些无效对象
导致的。在这个模式下,数据库时不正常的,千万不要切换和运行业务。
查询无效对象
select owner,object_name,object_type,status from dba_objects where
status='INVALID' and OWNER IN ('PUBLIC','SYS','SYSTEM','XDB','ORDSYS',
'ORDPLUGINS' ,'ORDDATA','MDSYS','CTXSYS');
查询组件状态
select substr(comp_name,1,30) comp_name, substr(comp_id,1,10)
comp_id,substr(version,1,12) version,status from dba_registry;
查询后会发现,一些组件可能也是无效的
通过 dba_errors 去下钻出现问题的根本原因
select text from dba_errors where name='DBMS_XDBUTIL_INT' and owner='XDB';
select text from dba_errors where name='DBMS_XDBT' and owner='XDB';
select text from dba_errors where name='DRILOAD' and owner='CTXSYS';
select text from dba_errors where name='DRVDOC' and owner='CTXSYS';
select text from dba_errors where name='SDO_OLS' and owner='MDSYS';
通过以上,可以发现这些无效对象是因为权限的问题,导致无法正常编译。
SQL> grant execute on dbms_sql to XDB,CTXSYS;
SQL> grant execute on CTX_DOC to XDB;
SQL> grant execute on UTL_HTTP to MDSYS;
授权后,可以通过这下面的命令进行编译
SQL> exec dbms_pdb.exec_as_oracle_script('alter package XDB.DBMS_XDBT compile
body');
SQL> exec dbms_pdb.exec_as_oracle_script('alter package CTXSYS.DRVDOC compile
body');
SQL> exec dbms_pdb.exec_as_oracle_script('alter package CTXSYS.DRILOAD compile
body');
SQL> exec dbms_pdb.exec_as_oracle_script('alter package XDB.DBMS_XDBUTIL_INT
compile body');
SQL> exec dbms_pdb.exec_as_oracle_script('alter package MDSYS.SDO_OLS compile
body');
也可以通过 catcon.pl 脚本进行批量编译
$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin
$ORACLE_HOME/rdbms/admin/catcon.pl -l /home/oracle/logs -b comp_invalid_objs --
--x"@$ORACLE_HOME/rdbms/admin/utlrp.sql"
重启数据库后,就正常了。打开 PDB 数据库
SQL> alter pluggable database pdb1 open instances=all;
启用并行,收集数据库和用户的统计信息
SQL> select dbms_stats.get_prefs('CONCURRENT') from dual;
如果输出是 FALSE,通过下面的命令启用
exec dbms_stats.set_global_prefs('CONCURRENT','TRUE');
收集统计信息
SQL> exec dbms_stats.gather_dictionary_stats;
SQL> exec dbms_stats.gather_schema_stats(ownname=>'ABC',degree=>6);
如果是 RAC 环境,可能会出现下面的问题。如果出现下面的问题,请确保所有的节点都处于打开状态,并能
访问 dblink 正常工作
ORA-65028: Unable to open plugin data file at path
ORA-17503: ksfdopn:2 Failed to open file
ORA-07202: sltln: invalid parameter to sltln.
离线方式迁移
对于使用文件系统的迁移来说,比较简单。可参考链接
https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/pdb/pdb_unp
lug_plug/pdb_unplug_plug.html
如果使用了 ASM,这种方式相对来说复杂一些,因为 ASM 默认使用了 OMF,从源端复制到目标端时不能使用
后面的文件编号信息,这些是系统自动生成的。想通过复制文件到目标端会比较不方便。我们可以通过
asmcmd cp 命令来传输数据文件
首先,以只读方式打开可插拔数据库
sqlplus / as sysdba
alter pluggable database pdb1 open read only;
其次,在线生成 pdb 的描述文件
如果用 unplug into,必须删除、重建 PDB 后,PDB 才能正常使用。建议用 dbms_pdb.describe 生成描
述文件,效果是一样的。
exec dbms_pdb.describe('/home/oracle/pdbxj01.xml','pdb1');
其次,生成传输到目标端的命令行
如果使用了 bigfile tablespace,下面可以通过。如果不是,需要调整
set lines 160
select 'asmcmd cp '||file_name||' --port 1525 sys/oracle@192.168.10.X.
of 3
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜