当在Oracle数据库的dbca(Database Configuration Assistant)中创建数据库时,有时会出现"ORA-12547: TNS:lost contact"错误。这个错误表示dbca无法连接到Oracle数据库实例。下面是解决这个问题的完整攻略:
步骤1:确认Oracle监听器是否启动
首先确认Oracle监听器是否启动。输入以下命令检查Oracle监听器的状态:
lsnrctl status
如果Oracle监听器未启动,则需要启动Oracle监听器:
lsnrctl start
步骤2:确认tnsnames.ora文件是否正确
打开tnsnames.ora文件,确认其中是否包含正确的数据库实例别名和相关连接信息。如果tnsnames.ora文件中的连接信息不正确,则需要修改这个文件。例如:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
步骤3:测试连接
尝试使用sqlplus工具(或其他数据库客户端工具)连接到Oracle数据库实例来测试连接。例如:
sqlplus system/password@ORCL
如果连接成功,则可以尝试用dbca创建数据库。
步骤4:修改dbca配置文件
如果上述步骤都没有帮助,可以尝试修改dbca的配置文件。修改dbca的配置文件为:
$ORACLE_HOME/assistants/dbca/templates/dbca_template.config
在这个文件中,查找以下行:
GDBNAME=
并确保没有任何空格或其他特殊字符。例如,以下行是正确的:
GDBNAME=mynewdatabase
示例1: 修复tnsnames.ora文件中的连接信息错误
在tnsnames.ora文件中,有以下一条连接信息:
MYDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1221))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydb)
)
)
这里的"HOST"和"PORT"值是不正确的。正确的值应该是"192.168.1.100"和"1521"。修改后的连接信息是:
MYDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydb)
)
)
示例2: 修改dbca_template.config文件中的GDBNAME
在dbca_template.config文件中,有以下一行:
GDBNAME = my new database
这行代码最后一个单词"database"之前有一个空格,所以dbca无法正确识别数据库名称。正确的行代码如下:
GDBNAME=mynewdatabase
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle dbca时报:ORA-12547: TNS:lost contact错误的解决 - Python技术站