
# 全量或增量阶段失败报错，关键词"Got minus one from a read call"
#### 场景描述
Oracle为源全量或增量同步期间DRS任务报错，同步日志界面提示：service LOGMANAGER failed, cause by: Unable to connect to DBMS: url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=\*.\*.\*.\*)(PORT=1521))(CONNECT_DATA=\*)) user=\*, Caused by: IO Error: Got minus one from a read call.
#### 可能原因
- 源数据库服务器拒绝了DRS任务IP的访问。
- 源数据库连接信息发生改变。
- 源数据库连接数已经达到上限。
 
#### 解决方案
1. 修改位于$ORACLE_HOME/network/admin目录的sqlnet.ora文件，允许DRS任务IP访问。 
   - 如果使用白名单，则TCP.INVITED_NODES配置项中需要包含DRS的任务IP。
   
   - 如果使用黑名单，则TCP.EXCLUDED_NODES中不能包含DRS的任务IP。
   
   
   
   
2. 查看源数据库信息（例如IP，端口，或者service name/sid）是否发生修改，如果源库信息发生改变，可选择以下操作： 
   - 恢复修改的源数据库信息，DRS任务会自动重试继续同步任务。
   
   - 重新创建任务进行同步。
   
   
   
   
3. 执行以下命令查看源数据库连接数，连接数已经达到上限。 
   - 查看当前连接数：
     ```
     select count(*) from v$process;
     ```
     
   
   - 查看最大连接数：
     ```
     select value from v$parameter where name ='processes';
     ```
     
   
   
   如果源数据库连接已达到上限，执行以下命令修改数据库允许的最大连接数：
   ```
   alter system set processes = 300 scope = spfile;
   ```
   然后重启数据库生效。
   
   
 
