数据库迁移

参与一个公路局数据中心项目的建设时,同事发来消息希望能创建一个测试环境,项目组想升级oracle的数据库版本。

作为一个菜菜的程序员,按照一惯的套路,expdp/impdp数据库,复制粘贴程序重新补一套,立马搞定。

结果自然是想当然了,发现数据库所在服务器oracle账号登录补上,使用root修改密码不好使。

没有深究,使用Navicat工具进行数据传输。传输过程中出现字段内容大于字段类型长度,主要是RAW类型引起的,第一个用户这种情况少,手动修改。第二个用户有1085个字段是上述情况,导致10W+的错误数据没有传输成功。使用存储过程批量修改字段。数据库同步完成后,重启服务失败,服务启动不起来。各种测试后,怀疑数据传输方式不靠谱,再看看原来的方法吧。

root用户切换oracle用户后,expdp not commond, sqlplus也不好使,有问题。上网查询后发现可以使用 source~/.bash_profile加载环境变量后使用。sqlplus超级管理员,突然报错了ORA-09817: Write to audit file failed no space left on device  这个是没有空间了啊,df -h 查询一下,果然100%了,腾出空间,果然都好使了。

impdp时又出现了问题,提示数据库版本不一致,可是我记得impdp支持高版本导入低版本的dmp文件。查找问题发现dmp文件没有上传到目录里面。导入后启动服务,服务依然启动不起来。看到报错ORA-12505,TNS:listener does not currently know of SID given in connect descriptor,好嘛,把service_name对应到sid上去了,按照以前的方法加了service_name后面加了1,重新启动还是不好用[懵逼]。。

问了同事,修改了下配置文件中的数据库连接,:service_name1改成了/service_name,解决。

总结:

1.oracle账号切换不过去或者修改密码不成功应该是没有空间了,expdp not command也应该是没有空间了。

2.通过工具传输后服务没启动,应该也是数据库连接没有配置正确的原因。

3.导入导出数据还是得注意directory的相关信息 查询目录 select directory_path from all_directories 

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容