我最近不得不将我的 Oracle 11g 数据库从 Windows 2012 R2 服务器移至 Windows 2022 服务器,并且我不断收到“Oracle 通信:无法连接到服务器或解析连接字符串”错误。如果我重新启动服务器,该错误会消失,但一段时间后又会再次出现。为了迁移数据库,我使用数据库的默认设置安装了 Oracle 软件,并更改了数据库以镜像我在旧数据库中设置的内容,然后我从旧数据库中导出数据并将其导入到新数据库中,没有问题。我获得了所有数据和 PL/SQL 代码(包、过程和函数),并且我的所有应用程序都可以正常访问它。最终我将从 11g 升级到 23AI,但为了迁移,我坚持使用 11g 以使事情更容易/更快。无论如何,我在登录数据库时收到此间歇性错误,我假设我错过了某个设置。如果我输入用户名/密码几次(最近一次是 3 次),我最终能够登录,但这个问题在通过我的应用程序处理数据时弹出并导致数据出现问题。有人知道发生了什么吗?我想我错过了某个设置,但不知道是什么。旧数据库在 Windows 2012 R2 上运行了 8 年,从未出现过此问题。
好吧,这原来是个小问题。当我安装数据库时,默认的最大连接数设置为 150,显然这在我的应用程序环境中是不够的。我将最大连接数设置为 300,从那以后再也没有出现过一次错误。对于那些不知道如何设置最大连接数的人,
alter system set processes = 300 scope = spfile;
请重新启动数据库以使其生效。