【Oracle】删除 Oracle 19c 的监听器和数据库实例同时保留数据库软件

发布于:2025-07-21 ⋅ 阅读:(11) ⋅ 点赞:(0)

要删除 Oracle 19c 的监听器和数据库实例,同时保留数据库软件,请按以下步骤操作:

1.停止监听器

lsnrctl stop

2.删除监听器配置
手动删除配置文件:

cd $ORACLE_HOME/network/admin
rm listener.ora sqlnet.ora tnsnames.ora  # 删除网络配置文件

或使用 netca 工具:

netca

选择 “Listener configuration” → “Delete” → 选择要删除的监听器。

3.停止数据库实例

sqlplus / as sysdba <<EOF
shutdown immediate;
exit;
EOF

4.删除数据库实例
使用 dbca(Database Configuration Assistant)删除数据库:

dbca -silent -deleteDatabase -sourceDB <your_database_name> -sysDBAUserName sys -sysDBAPassword <sys_password>

替换参数:

<your_database_name>:数据库实例名(如 ORCLCDB)
<sys_password>:sys 用户的密码

示例:

dbca -silent -deleteDatabase -sourceDB ORCLCDB -sysDBAUserName sys -sysDBAPassword MyPassword

注意:此操作会永久删除数据库文件(数据文件、控制文件、重做日志等)。

5.清理残留文件
删除数据库相关文件:

rm $ORACLE_HOME/dbs/init<sid>.ora     # 初始化参数文件
rm $ORACLE_HOME/dbs/spfile<sid>.ora   # 服务器参数文件
rm $ORACLE_HOME/dbs/orapw<sid>        # 密码文件

替换 为数据库实例名(如 rm $ORACLE_HOME/dbs/initORCLCDB.ora)。
删除数据文件目录(默认在 $ORACLE_BASE/oradata/<database_name>):

rm -rf $ORACLE_BASE/oradata/<your_database_name>

删除快速恢复区(FRA)(如果存在):

rm -rf $ORACLE_BASE/fast_recovery_area/<your_database_name>

6.可选清理
删除监听日志:

rm $ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml

移除 /etc/oratab 中的条目:

sed -i '/^<your_database_name>:/d' /etc/oratab

验证结果
检查监听状态(应提示无监听器):

lsnrctl status

检查数据库实例(应提示实例不存在):

ps -ef | grep pmon

关键说明

保留的软件:$ORACLE_HOME 目录(包含 Oracle 二进制文件)未被删除,可重用。
备份建议:删除前确保已备份重要数据。
依赖项:如果数据库被其他应用使用,更新相关配置(如连接字符串)。
执行后,Oracle 软件仍可用于创建新数据库或监听器,但原数据库实例和监听配置已被彻底移除。


网站公告

今日签到

点亮在社区的每一天
去签到