环境:centos6.5 ORACLE 11.2.0.1 64G 内存
碰到一系列的问题。。。
由于公司数据库所在的服务器空间不够 需要扩容 但是要求说 要重构raid 做一个DG 所以决定先把数据库迁到另外的服务器上去
数据库system表空间过大 50+G 要求要缩小system rman备份不行 所以决定expdp的方式来完成 但是在导入导出的时候发现对象太多 停机时间有限7个小时 根本不能完成 但是空间已经不够 所以紧急情况下 缩小表空间就先放一边 先迁移数据 让业务正常
system表空间的表 一开始以为是审计的问题 后来看了一下 不是 mos 上查了 Oracle建议的方法就是recreate database 考虑是不是版本导致的问题 因为数据没有放在过system表空间下面
查看了 一下 真正核心数据量大概400个G
一百来万的表数量
200+W 的对象 用expdp的话 太慢 导出metadata都需要4个小时左右 导入更慢
所以有些计划 没办法
导致只能用最麻烦的方法 先搭DG 解决空间问题 业务切换到空间足够的服务器上 然后在解决system问题 目前好像只有导入导出 一个方法 最后就是11.2.0.1 升级到11.2.0.4
刚开始尝试duplicate 在线创建物理备库 后来报错 也懒得去查 直接rman备份 简单粗暴
1.搭DG 两边均为11.2.0.1 由于前期已经主库上面的参数文件已经有DG 的参数 所以不需要修改 只需要把主库上面的数据迁移过去 紧急情况下把备库的服务器做一个nfs挂到主库服务器上 rman备份整库 备份片放到备库服务器上 第二天 恢复数据
2.expdp的导入导出 如果太慢 会考虑 用exp导出metadata expdp导出数据 测试expdp导出数据3个小时