前言
Oracle Network Configuration Assistant (netca) 是 Oracle 提供的图形化网络配置工具,用于简化 Oracle 数据库网络组件的配置和管理。
核心功能
1、配置监听器 (LISTENER)创建、修改或删除数据库监听器(默认端口 1521)定义监听协议(如 TCP/IP)和主机地址管理监听器的启停状态
2、配置本地网络服务名 (TNSNAMES)创建 tnsnames.ora 文件中的连接描述符,用于客户端到数据库的连接支持多数据库实例的连接别名配置(如 ORCL)
3、配置目录命名(LDAP 集成)集成 Oracle Internet Directory (OID) 等 LDAP 服务,实现集中化网络管理等
4、配置命名方法优先级设置客户端解析连接名的顺序(如 TNSNAMES、LDAP、EZCONNECT)
错误详情
[main] [ 2025-06-30 10:34:26.618 CST ] [NetCALogger.initTrace:203] Oracle Net Configuration Assistant: 25063010AM3426
[main] [ 2025-06-30 10:34:26.619 CST ] [NetCALogger.initTrace:204] Oracle Home: /data/db/11.2.0.4
[main] [ 2025-06-30 10:34:26.619 CST ] [NetCALogger.initTrace:205] Oracle Base: /data/db
[main] [ 2025-06-30 10:34:26.619 CST ] [NetCALogger.initTrace:206] Oracle Home Name: OraDb11g_home1
[main] [ 2025-06-30 10:34:26.652 CST ] [InventoryUtil.getOUIInvSession:347] setting OUI READ level to ACCESSLEVEL_READ_LOCKLESS
[main] [ 2025-06-30 10:34:26.652 CST ] [HAUtils.<init>:241] oui location /data/oraInventory/ContentsXML
[main] [ 2025-06-30 10:34:26.670 CST ] [Version.isPre:583] version to be checked 11.2.0.4.0 major version to check against10
[main] [ 2025-06-30 10:34:26.670 CST ] [Version.isPre:594] isPre.java: Returning FALSE
[main] [ 2025-06-30 10:34:26.674 CST ] [OCR.loadLibrary:312] Inside constructor of OCR
[main] [ 2025-06-30 10:34:26.706 CST ] [OCR.loadLibrary:320] Going to load the ocr library
[main] [ 2025-06-30 10:34:26.706 CST ] [Library.load:188] library.load
[main] [ 2025-06-30 10:34:26.707 CST ] [sPlatform.isHybrid:66] osName=Linux osArch=amd64 JVM=64 rc=false
[main] [ 2025-06-30 10:34:26.708 CST ] [sPlatform.isHybrid:66] osName=Linux osArch=amd64 JVM=64 rc=false
[main] [ 2025-06-30 10:34:26.708 CST ] [Library.load:264] Loading library /data/db/11.2.0.4/lib/libsrvmocr11.so
[main] [ 2025-06-30 10:34:26.739 CST ] [OCR.loadLibrary:322] loaded ocr libraries
[main] [ 2025-06-30 10:34:26.739 CST ] [OCR.isCluster:952] Calling OCRNative for isCluster()
[main] [ 2025-06-30 10:34:26.742 CST ] [OCR.isCluster:956] OCR Result status = true
[main] [ 2025-06-30 10:34:26.742 CST ] [OCR.isCluster:968] Bolean result = false
[main] [ 2025-06-30 10:34:26.744 CST ] [CmdlineArgs.<init>:114] Initializing variables array...
[main] [ 2025-06-30 10:34:26.744 CST ] [CmdlineArgs.<init>:120] Initializing NetProperties...
[main] [ 2025-06-30 10:34:26.746 CST ] [CmdlineArgs.initArgs:137] Initializing command line arguments...
[main] [ 2025-06-30 10:34:26.746 CST ] [CmdlineArgs.setOraArgs:242] Setting Oracle arguments...
[main] [ 2025-06-30 10:34:26.746 CST ] [CmdlineArgs.setOraArgs:246] Passed Oracle Home = NO_VALUE
[main] [ 2025-06-30 10:34:26.747 CST ] [CmdlineArgs.setOraArgs:249] Read Oracle Home = /data/db/11.2.0.4
[main] [ 2025-06-30 10:34:26.747 CST ] [CmdlineArgs.setOraArgs:252] Read Oracle Home ID =
[main] [ 2025-06-30 10:34:26.747 CST ] [CmdlineArgs.setOraArgs:255] Read Oracle Home Name = null
[main] [ 2025-06-30 10:34:26.747 CST ] [CmdlineArgs.setOraArgs:263] Setting Oracle Home = /data/db/11.2.0.4
[main] [ 2025-06-30 10:34:26.748 CST ] [InitialSetup.configureOPS:4539] Cluster mode is OFF
[main] [ 2025-06-30 10:34:26.748 CST ] [InitialSetup.<init>:4058] TNS_ADMIN is: null
[main] [ 2025-06-30 10:34:26.753 CST ] [OPSUtil.getHomeVersion:446] Inside getHomeVersion...
[main] [ 2025-06-30 10:34:26.753 CST ] [OPSUtil.getHomeVersion:447] oracleHome = /data/db/11.2.0.4
[main] [ 2025-06-30 10:34:26.754 CST ] [OPSUtil.getHomeVersion:451] oracle.sysman.assistants.util.OracleHome Object = /data/db/11.2.0.4
[main] [ 2025-06-30 10:34:26.757 CST ] [OracleHome.getVersion:892] OracleHome.getVersion called. Current Version: null
[main] [ 2025-06-30 10:34:26.758 CST ] [InventoryUtil.getOUIInvSession:347] setting OUI READ level to ACCESSLEVEL_READ_LOCKLESS
[main] [ 2025-06-30 10:34:26.765 CST ] [OracleHome.getVersion:911] Homeinfo /data/db/11.2.0.4,1
[main] [ 2025-06-30 10:34:27.471 CST ] [OracleHome.getVersion:939] OracleHome.server.getVersion Version: 11.2.0.4.0
[main] [ 2025-06-30 10:34:27.471 CST ] [OracleHome.getVersion:960] Current Version From Inventory: 11.2.0.4.0
[main] [ 2025-06-30 10:34:27.471 CST ] [OPSUtil.getHomeVersion:452] returning oracleHome Version = 11.2.0.4.0
[main] [ 2025-06-30 10:34:27.471 CST ] [OracleHome.getVersion:892] OracleHome.getVersion called. Current Version: 11.2.0.4.0
[main] [ 2025-06-30 10:34:27.472 CST ] [OracleHome.getVersion:960] Current Version From Inventory: 11.2.0.4.0
[main] [ 2025-06-30 10:34:27.472 CST ] [InitialSetup.<init>:4071] Admin location is: /data/db/11.2.0.4/network/admin
[main] [ 2025-06-30 10:34:27.595 CST ] [OsUtilsBase.getBaseFromOrabase:651] oraBaseUtility /data/db/11.2.0.4/bin/orabase
[main] [ 2025-06-30 10:34:27.596 CST ] [OsUtilsBase.getBaseFromOrabase:660] cmds: /data/db/11.2.0.4/bin/orabase
[main] [ 2025-06-30 10:34:27.596 CST ] [OsUtilsBase.getBaseFromOrabase:664] envs: ORACLE_HOME=/data/db/11.2.0.4
[main] [ 2025-06-30 10:34:27.671 CST ] [OsUtilsBase.getBaseFromOrabase:669] baseLocation from orabase
/data/db
[main] [ 2025-06-30 10:34:27.671 CST ] [OsUtilsBase.getBaseFromOrabase:694] orabaseLocation= /data/db
[main] [ 2025-06-30 10:34:27.671 CST ] [ConfigureProfile.setProfileParam:136] Setting ADR_BASE: /data/db
java.lang.NullPointerExceptionat oracle.ewt.lwAWT.BufferedApplet.<init>(Unknown Source)at oracle.net.ca.NetCA.<init>(NetCA.java:443)at oracle.net.ca.NetCA.main(NetCA.java:429)
解决方案
因为netca在执行过程中需要找到环境变量TNS_ADMIN的路径才能创建文件,一旦没有配置该变量,则会报错。
$ ~/.bash_profile
export TNS_NAME=/data/db/11.2.0.4/network/admin
$ source ~/.bash_profile# 重新执行即可
$ export DISPLAY=[]:0.0
$ netca