写在前面的话
如果在Windows上多次安装Oracle,则势必造成系统的混乱,导致重装Oracle的失败。如果想要重装Oracle,必须干净地卸载掉以前的Oracle。本节引导你一步一步卸载Oracle。本节只演示单机版Oracle(非RAC,Windows平台上)的卸载。RAC的完整卸载将在后续的章节中进行详尽的介绍。
在卸载Oracle以前,建议对整个数据库进行备份。在对数据库做重大修改以前,都应该对数据库进行备份——我们应该养成这样的好习惯。
■ 用deinstall卸载数据库。
■ 用DBCA删除数据库。
■ 停止Oracle所有的服务(Oracle Services)。
■ 用Oracle Universal Installer删除Oracle的组件。
■ 手工删除注册表中与Oracle相关的内容。
■ 删除与Oracle相关的环境变量。
■ 删除与Oracle相关的目录及文件。
■ 删除启动菜单中的Oracle。
【小贴士(Tip)】 卸载Oracle时,一定要按照下面的步骤顺序执行。
(1)用deinstall卸载数据库
Oracle 11.2.0.1引入了最新的卸载工具deinstall,deinstall能够卸载单机版Oracle RAC(Oracle Clusterware、Oracle ASM)。在Oracle完好的情况下,deinstall能够成功地卸载Oracle;如果Oracle支离破碎,deinstall的强大功能可能就失效了。但是,无论Oracle完好与否,我们都应该首先运行deinstall。
找到deinstall的路径。
deinstall位于Oracle主目录(ORACLE_HOME)下,因此我们可以在注册表中搜索关键字“ORACLE_HOME”,找到具体的路径。本例中,Oracle主目录是:K:\app\Administrator\product\11.2.0\dbhome_1。
运行deinstall。
在命令行输入如下命令:
按照deinstall的提示,一步步卸载Oracle。如果deinstall不能干净卸载Oracle,或者没有deinstall,或者要卸载11g以前的版本,则请按照下面的步骤,手工卸载Oracle。
(2)用DBCA删除数据库
启动DBCA(Database Configuration Assistant),如图2-113所示。
图2-113 DBC A欢迎界面
选择“删除数据库”,单击“下一步”按钮,如图2-114所示。
图2-114 选择删除数据库操作
选择要删除的数据库,如图2-115所示,输入具有SYSDBA系统权限的用户名及密码。
单击“完成”按钮,出现如图2-116所示的确认对话框,单击“是”按钮,确定要删除数据库。
正在删除数据库,如图2-117所示。
图2-115 选择要删除的数据库
图2-116 确认要删除数据库
数据库删除完成后,弹出如图2-118所示的数据库删除完毕对话框。
图2-117 正在删除数据库
图2-118 数据库删除完毕
单击“否”按钮,不执行其他操作,数据库删除完成。
如果数据库删除成功,则Oracle的服务OracleService<SID>也一同被删除。
【小贴士(Tip)】 在许多情况下,当我们要删除数据库的时候,数据库可能已经遭到破坏。使用DBCA,并不一定能够成功删除数据库。但是,不论数据库处于何种状态,还是推荐用DBCA首先执行一遍删除数据库的操作。即使用DBCA删除数据库不成功,也不影响我们成功卸载数据库,我们也应该继续下面的操作。
(3)停止Oracle所有的服务(Oracle Services)
单击“开始”→“设置”→“控制面板”→“管理工具”→“服务”,停止Oracle的所有服务,Oracle的服务名通常都是以“Oracle”或“Ora”开头的。或者在命令行输入命令services.msc,直接进入“服务”管理窗口。
(4)用Oracle Universal Installer删除Oracle的组件
启动OUI(Oracle Universal Installer),单击“开始”→“程序”→“Oracle主目录(ORACLE HOME)”→“
Oracle Installation Products
”→“
Universal Installer
”,出现如图2-119所示的OUI欢迎界面。
单击“卸载产品(D)”按钮,出现如图2-120所示的对话框。
图2-119 OUI欢迎界面
图2-120 选择要卸载的产品
选择要卸载的产品。本机中存在Oracle两个版本(Oracle 9i与Oracle 10g),选择Oracle 10g。
单击“删除”按钮,弹出如图2-121所示的“确认”对话框,确认是否要删除选中的产品。
单击“是”按钮,开始卸载这些产品,如图2-122所示,正在卸载Oracle。
图2-121 确认要卸载的产品
图2-122 正在卸载Oracle
【小贴士(Tip)】 在大多数情况下,卸载会失败,不要太在意,这不会影响我们成功卸载整个数据库。
卸载完成以后,单击“关闭”→“取消”按钮。
如果卸载失败,则还要继续下面的步骤。
(5)手工删除注册表中与Oracle相关的内容
以管理员的身份登录系统(因为只有有足够权限的用户才能修改注册表)。
单击桌面左下角的“开始”→“运行”,输入下面的命令打开注册表。
搜索注册表,找到inst_loc的值,inst_loc的值通常是C:\Program Files\Oracle\Inventory,并记下inst_loc的值。
在注册表中不断搜索以Ora、Oracle、Orcl、EnumOra开头的值,并把它们从注册表中删除。
(6)删除与Oracle相关的环境变量
单击“控制面板(Control Panel)”→“系统(
System
)”,打开“系统属性”对话框,如图2-123所示。
选择“高级(
Advanced
)”→“环境变量(
Environment Variables
)”,打开“环境变量”对话框,如图2-124所示。
图2-123 “系统属性”对话框
图2-124 “环境变量”对话框
修改或者删除和Oracle相关的环境变量。
■ 修改环境变量PATH,删除其中和Oracle相关的路径。
■ 删除环境变量CLASSPATH。
■ 删除环境变量ORACLE_HOME、ORACLE_SID、TNS_ADMIN、JSERV、WV_GATEWAY_CFG。
(7)重新启动操作系统(OS)
如果想在同一台机器上重装Oracle,则这一步尤为重要!
(8)删除与Oracle相关的目录及文件
删除注册表中的键inst_loc指向的目录。在“注册表删除”的那一步已经得到inst_loc的值。默认值是C:\Program Files\Oracle\Inventory。
删除目录C:\Program Files\Oracle。
删除环境变量ORACLE_BASE所指向的目录。
删除数据文件、控制文件与联机日志文件。
总之,删除一切和Oracle相关的目录及文件。
(9)删除启动菜单中的Oracle
从启动菜单( Start menu)中删除和Oracle相关的菜单及快捷方式。
写在前面的话
如果在Solaris上多次安装Oracle,会造成系统的混乱,导致重装Oracle的失败。如果想要重装Oracle,必须干净地卸载掉Oracle。Oracle在各种UNIX平台的卸载大同小异。只是每个版本有自己的一些新特性。为了成功地卸载Oracle,我们必须按照下面的步骤顺序执行。
【小贴士(Tip)】 如果要卸载的是Oracle 10g,则请继续阅读下面的内容;如果要卸载的是UNIX上的Oracle 11g,则请参考第34章的“删除节点”一节。
在卸载Oracle以前,建议对数据进行备份。在对数据库做重大修改以前,都应该对数据库进行备份。这是一个DBA应该养成的习惯。
我们这里以Oracle 10g和Solaris 9为例。
■ 标识系统中所有的实例(Instance)。
■ 删除Oracle数据库。
■ 删除ASM实例(ASM Instance),这是Oracle 10g的新特性。
■ 删除CSS服务(Cluster Synchronization Services)。
■ 删除Oracle软件。
■ 删除与Oracle相关的目录和文件。
(1)标识系统中所有的实例(Instance)
如果是Solaris,则执行下面的命令:
如果是其他UNIX操作系统,则执行下面的命令:
从输出可以看出,系统中有两个实例:一个ASM实例(Automatic Storage Manager instance),一个数据库实例nbo(nbo是本书中的例子)。这里也同时标识出Oracle的主目录。/Oracle/app/Oracle/product/10.1.0/Db_1是Oracle的主目录。
(2)删除Oracle数据库
用X-Window软件Xmanager 2.0工具登录到服务器。登录成功以后的界面如图2-125所示。
【小贴士(Tip)】 关于远程桌面工具的配置,这部分内容已经超出本书的范畴,请大家参考相关资料。
图2-125 登录Solaris后的欢迎界面
在图2-125所示的界面中,单击鼠标右键,选择“Tools”→“Terminal”,打开如图2-126所示的终端窗口。
图2-126 终端窗口
以用户oracle的身份登录。
设置环境变量DISPLAY。
【特别注意】 DISPLAY应该设置成X-Window客户端的IP地址,这里的IP地址并不是服务器的地址。
用oraenv命令或者coraenv命令设置要被删除的数据库实例(INSTANCE)。
显示shell:
■ 如果是Bourne、Bash、Korn shell,则执行下列命令:
■ 如果是C shell,则执行下列命令:
如:
设置要删除的数据库实例,nbo是我们要删除的数据库实例。
启动DBCA,如图2-127所示。
图2-127 DBC A欢迎界面
单击“Next”按钮,出现如图2-128所示的对话框。
图2-128 选择删除数据库操作
选择“Delete a Database”,单击“Next”按钮,出现如图2-129所示的对话框。
选择要删除的数据库,单击“Finish”按钮,出现如图2-130所示的对话框,确认是否要删除数据库。
图2-129 选择数据库
图2-130 确认删除数据库
单击“Yes”按钮,确认要删除数据库,如图2-131所示,正在删除数据库。
删除数据库的时候,可能数据库已经被破坏,在卸载的过程中,就会弹出如图2-132、图2-133所示的错误提示。
图2-131 正在删除数据库
图2-132 确认是否删除服务
对于这样的错误,单击“OK”按钮继续卸载即可。
【小贴士(Tip)】 即使在数据库卸载过程中出现错误,也不影响我们完整地卸载数据库,我们应该继续执行下面的卸载步骤。
数据库删除完成,提示我们是否要执行其他操作,如图2-134所示。
图2-133 数据库没有装载提示
图2-134 数据库删除完成
单击“No”按钮,数据库删除完成。
(3)删除ASM实例(ASM Instance)
大家要注意区分数据库实例(Database Instance)和ASM实例(ASM Instance),它们不是一个概念。
以用户oracle的身份登录。
用Oraenv命令或者coraenv命令设置要被删除的数据库实例(instance)。
显示shell:
■ 如果是Bourne、Bash、Korn shell,则执行下列命令:
■ 如果是C shell,则执行下列命令:
在提示下,输入ASM的SID。
登录到ASM实例(ASM Instance)。
查询哪些数据库实例在使用这个ASM实例。
删除磁盘组(disk groups)。
■ 查询有哪些磁盘组:
■ 删除磁盘组:
dg_k是磁盘组的名称。
关闭ASM实例。
从/etc/oratab(Solaris:/var/opt/Oracle/oratab)删除和ASM相关的信息。
(4)删除CSS服务(Cluster Synchronization Services)
以用户root的身份登录。
设置环境变量ORACLE_SID。
如果是C shell,则执行下列命令:
进入命令所在目录。
执行localconfig,删除CSS。
(5)删除Oracle软件
用X-Window软件Xmanager 2.0工具登录到服务器。登录成功以后的界面如图2-135所示。
图2-135 登录Solaris后的欢迎界面
【小贴士(Tip)】 关于远程桌面工具的配置,这部分内容已经超出本书的范畴,请大家参考相关资料。
在图2-135所示的界面中,单击鼠标右键,选择“Tools”→“Terminal”,打开如图2-136所示的终端窗口。
图2-136 终端窗口
以用户oracle的身份登录。
设置环境变量DISPLAY。
注意: DISPLAY应该设置成X-Window客户端的IP地址,这里的IP地址并不是服务器的地址。
设置环境变量ORACLE_SID。
如果是C shell,则执行下列命令:
中止所有的Oracle进程。
停止Database Control。
ORACLE_HOME是环境变量,表示Oracle主目录。
停止监听器。
ORACLE_HOME是环境变量,表示Oracle主目录。
停止iSQL*Plus。
ORACLE_HOME是环境变量,表示Oracle主目录。
停止Ultra Search。
ORACLE_HOME是环境变量,表示Oracle主目录。
启动OUI,出现如图2-137所示的UOI欢迎界面。
ORACLE_HOME是环境变量,表示Oracle主目录。
单击“Deinstall Products…”按钮,出现如图2-138所示的界面。
图2-137 OUI欢迎界面
图2-138 选择要卸载的产品
选中要删除的Oracle主目录,单击“Remove”按钮,出现如图2-139所示的界面。
单击“Yes”按钮,确认要删除选中的Oracle产品。如图2-140所示,正在卸载Oracle。
图2-139 确认是否卸载产品
图2-140 正在卸载Oracle
卸载完成后,出现如图2-141所示的界面。
图2-141 卸载完成
单击“Close”按钮和“Cancel”按钮退出OUI。
【小贴士(Tip)】 通过OUI卸载Oracle的组件并不一定顺利完成。如果卸载失败,则不要停止,要继续执行下面的卸载步骤。
(6)删除与Oracle相关的目录和文件
以用户root的身份删除文件oratab。
Solaris:
其他UNIX操作系统:
删除数据文件(data file)、控制文件(control file)与联机日志文件(online redo file)。
删除环境变量ORACLE_HOME所指向的路径及其下面所有的文件。
删除环境变量ORACLE_BASE所指向的路径及其下面所有的文件。
(7)重新启动操作系统