共计 1451 个字符,预计需要花费 4 分钟才能阅读完成。
从开始使用 12c PDB 整合环境以来,发现确实不错,原来 11g 中整合的难题在这里得到了解决。
目前存在多套的测试环境,之前整合了一批,基本是采用整合 schema 的方式,但是后来发现这种方式局限性太大,最后就是如下图所示的结构,一半的系统整合完了,还有一半是保留了原来的样子。
所以整合需要解决的问题就很明显了,大体总结了下,有下面几个主要问题。
1. 大量的用户在多个数据库环境重复
2. 重复的表和数据不易管理
3. 大量的表空间信息混乱, 多则 300 多个表空间
4. 数据库版本低,为 10gR2
5. 遗留环境目前没有灾备,只有每天的全备导出
6. 服务器配置较差,存在宕机风险和数据丢失风险
所以基于以上的问题总结,决定迁移至 Oracle 12c 提高资源使用率,方便统一管理,服务器最后都会整合到一台服务器上,留有一台作为灾备即可。
对于迁移后的连接问题,其实在 12c 中还是碰到了不少小问题,简单总结下来。
1.JDBC URL 配置变化
如果使用 JDBC 的连接配置,假设数据库为 testdb
jdbc:oracle:thin:@10.127.xxx: 1525:testdb
修改为:
jdbc:oracle:thin:@10.127.xxx:1525/testdb
2.tnsnames.ora 配置
如果使用 tnsnames.ora 的配置,原有的配置在新版本中 SID 识别会有问题,需要修改为 SERVICE_NAE
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.127.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SID = testdb)
(SERVER = DEDICATED)
)
)
修改为:
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.127.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = testdb)
(SERVER = DEDICATED)
)
)
3. 对于低版本的兼容性
如果 JDK 的版本和驱动版本太低,会抛出如下的错误
java.sql.SQLException: ORA-28040: No matching authentication protocol
这种方式的直接解决就是升级 JDK 或者客户端的版本
官方文档 ORA-28040 Using JDBC Connection to 12c Database (Doc ID 2111118.1)明确提到在 12c 中已经不支持 9i 的客户端了。
而对于 JDBC 的驱动而言,其实想想也蛮有意思,以前的 jdbc 驱动清一色都是 classes12.jar 其实和 Java 1.2 是有关系的,后面有了 ojdbc14.jar,这个和 JDK1.4 是有关系对的,然后就是 ojdbc5.jar,那个时候 Java 已经改了名称为 Java 5 而不是 1.5,然后就是 ojdbc6.jar, 当然就是 Java 6, 还有现在的 ojdbc7.jar,和 Java 7 有关。满满的套路。
更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/136637.htm