阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 12C PDB迁移

420次阅读
没有评论

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

最近在整理测试环境的服务器资源,发现真是混乱,问题比较多。首先是服务器配置较低(很多都是 KVM 或者 openstack 虚机),资源使用率不高,有些数据的版本较低(10gR2), 没有开启归档,没有备库(有些都是异机备份的形式)。而且数据库比较散乱,整合起来难度较大,最大的难点就是数据库用户重复,大量重名的同义词等。之前尝试整合了一番,遇到了瓶颈,就暂停了整合的过程,现在来看 12c 还是一个不错的选择。当然我的选择似乎还是晚了些,下午在看很多人的博客的时候,发现不少人三四年前就在玩 12c 的很多特性,不与时俱进就太落后了。

首先我选择了一个测试数据库,数据库用户繁多,表空间非常多,有 50 多个,数据量不大(2G 以内),访问不频繁。

先在 12c 的环境中创建一个 PDB,为此专门指定了文件路径映射。

CREATE PLUGGABLE DATABASE tcymob0 ADMIN USER pdb_mgr IDENTIFIED BY Oracle file_name_convert=(‘/U01/app/oracle/oradata/newtest’,’/U01/app/oracle/oradata/newtest/tcymob0′);
 Pluggable database created.
看看 PDB 的情况。
SQL> show pdbs;
    CON_ID CON_NAME                      OPEN MODE  RESTRICTED
 ———- —————————— ———- ———-
          2 PDB$SEED                      READ ONLY  NO
          3 TCYMOB0                        MOUNTED
默认创建好是处于 mount 状态的,启动起来。
SQL> alter pluggable database tcymob0 open;
 Pluggable database altered.
切换到这个容器
SQL> alter session set container=tcymob0;
 Session altered.
查看数据文件的情况,可以看到只有 system,sysaux, 其他的都是共享的。
SQL> select file_name from dba_data_files;
 FILE_NAME
 ——————————————————————————–
 /U01/app/oracle/oradata/newtest/tcymob0/pdbseed/system01.dbf
 /U01/app/oracle/oradata/newtest/tcymob0/pdbseed/sysaux01.dbf
我们给 PDB 的管理用户赋予 DBA 权限吧。如果带着惯性,还是很容易出错。
 比如 $ sqlplus / as sysdba
 SQL> grant dba to pdb_mgr;
 grant dba to pdb_mgr
              *
 ERROR at line 1:
 ORA-01917: user or role ‘PDB_MGR’ does not exist
其实这个和容器设置有关。
 查看当前的容器,是 CDB 啊。
SQL> show con_name
 CON_NAME
 ——————————
 CDB$ROOT
切换过去,再次赋权限就没有问题了。
SQL> alter session set container=tcymob0;
 Session altered.
 SQL> grant dba to pdb_mgr;
 Grant succeeded.
 PDB 已经建好了,剩下的事情就是数据迁移了,目前因为数据量不大,所以我采用了逻辑导出导入的方式,当然官网的推荐方案非常多。总有一款适合。要旨还是适用的场景决定适用的方案。

DataPump 导入需要目录。我们也创建一个。
SQL> conn pdb_mgr/oracle@tcymob0
 SQL> create directory dp_dir as ‘/home/oracle/dp_dir’;
这里有个地方需要注意就是这个目录的容器归属是这个所在的 PDB.
 SQL> select * from all_directories where directory_name=’DP_DIR’;
 OWNER                          DIRECTORY_NAME                DIRECTORY_PATH                ORIGIN_CON_ID
 —————————— —————————— —————————— ————-
 SYS                            DP_DIR                        /home/oracle/dp_dir                        3   
为了进一步整合,表空间也可以简化一些,直接就用 users 好了。
SQL> create tablespace users datafile  size 2G;
 Tablespace created. 
剩下的事情就是 impdp 导入了。
 因为表空间非常多,但是数据量有不大,所以可以在主库生成一个 parfile 来。在源库中使用如下的语句导出动态 SQL, 简单修改即可。
SQL> select ‘remap_tablespace=’||tablespace_name||’:’||’USERS’from dba_tablespaces;
 impdp 的导入如下,也做了一些简单的优化,把那些默认数据库用户都排除,表空间 remap_tablespace 使用 parfile 的方式。
impdp pdb_mgr/oracle@tcymob0 directory=dp_dir dumpfile=tcymob0.dmp full=y logfile=impdp.log  EXCLUDE=SCHEMA:\”IN \(\’OUTLN\’, \’ANONYMOUS\’,\’OLAPSYS\’,\’SYSMAN\’,\’MDDATA\’,\’MGMT_VIEW\’,\’SYSTEM\’,\’SCOTT\’\)\” parfile=remap_ts.par

导入的时候抛出了一个错误。
ORA-39005: inconsistent arguments
 ORA-31600: invalid input value NULL for parameter VALUE in function DBMS_DATAPUMP.METADATA_REMAP
看起来好像是在 remap_tablespace 的地方有问题,经过一番排查,发现表空间映射的地方多了个空格。
 就类似下面的形式,USERS 前多了个空格:
remap_tablespace=ACCCYUC33_INDEX: USERS
除此之外,导入的过程还是很轻松的。耗时不到 9 分钟即可搞定。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/136211.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2999字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7798449
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
Python自学26 – Cookie和Session

Python自学26 – Cookie和Session

Python 自学 26 – Cookie 和 Session 在学习 Web 开发时,Cooki...
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...