本次使用的oracle 版本为 12c
小弟也是刚开始使用oracle,有问题欢迎指出
1 卸载oracle 分为两个部分,一部分卸载,第二部分删除注册表和其他信息
1.1 如果之前安装过(或者安装失败,需要重新安装的),先卸载之前安装的版本
Step0:
进入服务
找到Oracle开头的服务
Step1.
找到安装目录下的deinstall.bat文件 运行
等待。。。。
输入中文 “”是“”
无休止的等待。。。。
卸载完后,这个cmd窗口自动关掉的,就这样卸载了Oracle 12C。
B)第二部分
1.2 删除注册表内容。
Cmd运行regedit命令,删除下面内容:
HKEY_LOCAL_MACHINE\SOFTWARE,找到oracle,删除
依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中,删除所有oracle开头的项
依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有oracle开头的项;
在HKEY_CLASSES_ROOT,删除以ora开头的项
可执行下面的reg(内容来自网上)
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
[-HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\StartMenu\Programs\Oracle - OraClient11g_home1]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\Oracle.VSSWriter.CD]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\OracleServices for MTS]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\Oracle.portal]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\OracleDBConsoleportal]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OracleDBConsoleorcl]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\Oracle.VSSWriter.CD]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\OracleServices for MTS]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\Oracle.portal]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\OracleDBConsoleportal]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\Oracle.cd]
[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\OracleDBConsoleorcl]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Oracle11]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Oracle11\Performance]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Oracle11\Performance\KEY_OraDb11g_home1]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleDBConsolemain]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleDBConsolemain\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleDBConsolemain\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleDBConsoleoracl]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleDBConsoleoracl\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleDBConsoleoracl\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleJobSchedulerMAIN]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleJobSchedulerMAIN\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleJobSchedulerORACL]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleJobSchedulerORACL\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleMTSRecoveryService]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleMTSRecoveryService\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleMTSRecoveryService\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1ClrAgent]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1ClrAgent\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1TNSListener]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1TNSListener\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1TNSListener\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleRemExecService]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleRemExecService\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleRemExecService\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceMAIN]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceMAIN\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceMAIN\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceORACL]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceORACL\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceORACL\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleVssWriterMAIN]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleVssWriterMAIN\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleVssWriterMAIN\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleVssWriterORACL]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleVssWriterORACL\Security]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleVssWriterORACL\Enum]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OracleServices for MTS]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Oracle.main]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Oracle.oracl]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Oracle.VSSWriter.MAIN]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Oracle.VSSWriter.ORACL]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OracleDBConsolemain]
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OracleDBConsoleoracl]
[-HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData]
[-HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData\CurVer]
[-HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData.1]
[-HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData.1\CLSID]
[-HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData]
[-HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData\CurVer]
[-HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData.1]
[-HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData.1\CLSID]
[-HKEY_CLASSES_ROOT\ORCLMMC.About]
[-HKEY_CLASSES_ROOT\ORCLMMC.About\CLSID]
[-HKEY_CLASSES_ROOT\ORCLMMC.About.1]
[-HKEY_CLASSES_ROOT\ORCLMMC.About.1\CLSID]
[-HKEY_CLASSES_ROOT\ORCLSSO.ComponentData]
[-HKEY_CLASSES_ROOT\ORCLSSO.ComponentData\CurVer]
[-HKEY_CLASSES_ROOT\ORCLSSO.ComponentData.1]
[-HKEY_CLASSES_ROOT\ORCLSSO.ComponentData.1\CLSID]
[-HKEY_CLASSES_ROOT\OracleConfig.OracleConfig]
[-HKEY_CLASSES_ROOT\OracleConfig.OracleConfig\CurVer]
[-HKEY_CLASSES_ROOT\OracleConfig.OracleConfig.1]
[-HKEY_CLASSES_ROOT\OracleConfig.OracleConfig.1\CLSID]
[-HKEY_CLASSES_ROOT\OracleDatabase.OracleDatabase]
[-HKEY_CLASSES_ROOT\OracleDatabase.OracleDatabase\CurVer]
[-HKEY_CLASSES_ROOT\OracleDatabase.OracleDatabase.1]
[-HKEY_CLASSES_ROOT\OracleDatabase.OracleDatabase.1\CLSID]
[-HKEY_CLASSES_ROOT\OracleHome.OracleHome]
[-HKEY_CLASSES_ROOT\OracleHome.OracleHome\CurVer]
[-HKEY_CLASSES_ROOT\OracleHome.OracleHome.1]
[-HKEY_CLASSES_ROOT\OracleHome.OracleHome.1\CLSID]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraServer]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraServer\CLSID]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraServer\CurVer]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraServer.5]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraServer.5\CLSID]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraSession]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraSession\CLSID]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraSession\CurVer]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraSession.5]
[-HKEY_CLASSES_ROOT\OracleInProcServer.XOraSession.5\CLSID]
[-HKEY_CLASSES_ROOT\OracleProcess.OracleProcess]
[-HKEY_CLASSES_ROOT\OracleProcess.OracleProcess\CurVer]
[-HKEY_CLASSES_ROOT\OracleProcess.OracleProcess.1]
[-HKEY_CLASSES_ROOT\OracleProcess.OracleProcess.1\CLSID]
[-HKEY_CLASSES_ROOT\ORADC.ORADCCtrl.1]
[-HKEY_CLASSES_ROOT\ORADC.ORADCCtrl.1\CLSID]
[-HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData]
[-HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData\CurVer]
[-HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData.1]
[-HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData.1\CLSID]
[-HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData]
[-HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData\CurVer]
[-HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData.1]
[-HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData.1\CLSID]
[-HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup]
[-HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup\CLSID]
[-HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup\CurVer]
[-HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup.1]
[-HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup.1\CLSID]
[-HKEY_CLASSES_ROOT\OraOLEDB.Oracle]
[-HKEY_CLASSES_ROOT\OraOLEDB.Oracle\CLSID]
[-HKEY_CLASSES_ROOT\OraOLEDB.Oracle\CurVer]
[-HKEY_CLASSES_ROOT\OraOLEDB.Oracle.1]
[-HKEY_CLASSES_ROOT\OraOLEDB.Oracle.1\CLSID]
[-HKEY_CLASSES_ROOT\OraPerfMon.OraPerfMon]
[-HKEY_CLASSES_ROOT\OraPerfMon.OraPerfMon\CurVer]
[-HKEY_CLASSES_ROOT\OraPerfMon.OraPerfMon.1]
[-HKEY_CLASSES_ROOT\OraPerfMon.OraPerfMon.1\CLSID]
[-HKEY_CLASSES_ROOT\ORCLMMC.About]
[-HKEY_CLASSES_ROOT\ORCLMMC.About\CLSID]
[-HKEY_CLASSES_ROOT\ORCLMMC.About.1]
[-HKEY_CLASSES_ROOT\ORCLMMC.About.1\CLSID]
[-HKEY_CLASSES_ROOT\ORCLSSO.ComponentData]
[-HKEY_CLASSES_ROOT\ORCLSSO.ComponentData\CurVer]
[-HKEY_CLASSES_ROOT\ORCLSSO.ComponentData.1]
[-HKEY_CLASSES_ROOT\ORCLSSO.ComponentData.1\CLSID]
[-HKEY_CLASSES_ROOT\EnumOraHomes.EnumOraHomes]
[-HKEY_CLASSES_ROOT\EnumOraHomes.EnumOraHomes\CurVer]
[-HKEY_CLASSES_ROOT\EnumOraHomes.EnumOraHomes.1]
[-HKEY_CLASSES_ROOT\EnumOraHomes.EnumOraHomes.1\CLSID]
新建一个.text 文件,将上面的内容拷贝到text文件之后,将text文件修改为.reg文件,然后双击运行即可
2. 删除环境变量。
删除环境变量CLASSPATH,PATH中含有Oracle字样的值。
3删除ORACLE相关的文件及目录:C:\Progrm Files\Oracle目录;删除ORACLE_BASE目录。
删除F:\app目录。无法删除的,重新启动机器之后再删除。
2 下载windows 版本的oracle
2.1 各版本的oracle下载地址
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
2.2 下载oracle 安装包,并解压,得到如下
3 开始安装
3.1 执行安装程序 step.exe
等待检测
开始安装
此处填写的电子邮件,其实没啥用,所以就不填了
选择 是 就好
选择第一个 创建个配置数据库
选择 桌面类
创建Oracle管理用户
这一步是其他版本Oracle没有的,为的是更安全的管理Oracle,防止登录的win用户误删Oracle文件。
这里选择第二个选项”创建新的windows用户”,输入用户名和口令,创建专门管理Oracle的win用户,然后单击”下一步”。
典型安装配置
Oracle基目录、软件位置、数据库文件位置,只需修改基目录,其他两个均保持默认。
数据库版本选择”企业版”,字符集选择默认的”UTF8”。
口令:要求密码包含:大写字母+小写字母+数字,设置的口令必须记住,或者找个本子记下来
勾选”创建为容器数据库”选项,单击”下一步”。
执行条件检查
又是无休止的等待。。。
出现问题 Failed to Create gis Oracle Home User
这个问题是由于密码复杂度不够导致的
打开域安全策略(secpol.msc)-安全设置-账户策略-密码策略-密码必须符合复杂性要求。定义这个策略设置为:已禁用。
最后cmd运行刷新组策略命令为:gpupdate /force
重新安装
解决。
继续无休止的等待。。。
此时如果报错为 我衍生进程已退出,返回了非零退出代码
多半为卸载的时候没有删除环境变量 path 下面的 oracle(对应的bin路劲有多个)
继续无休止的等待。。。
3.2 服务配置
Oracle安装完成后,系统服务中会注册相应的服务。
Ctrl+Shift+Esc打开任务管理器,打开服务选项,如下图所示:
其中有两个服务必须启动,否则无法正常使用Oracle:
OracleServiceORCL:数据库的主服务,此服务必须开启,否则无法使用Oracle。
OracleOraDB12Home1TNSListener:数据库的监听服务,若要连接服务器,此服务必须开启。
3.2.1 Net Manager配置
开始–>所有程序–>Oracle–>配置和移植工具–>Net Manager–>右键–>管理员身份运行。
先将原本的Listener删除,以创建新的Listener。
创建新的Listener,名称使用默认就好
添加监听位置:
协议:TCP/IP
主机:localhost 或者 127.0.0.1
端口号:1521
添加数据库服务
全局数据库名:为之前的orcl
Oracle主目录为Oracle产品安装目录
保存网络配置,关闭即可。
打开任务管理器--》服务--》Oracle…TNSListener--》重新启动
3.2..2 Net Configuration Assistant配置
大致流程和 Net Manager配置差不多
监听程序配置完成
配置net服务
连接数据库
开始--》sql developer
连接成功,到此,数据库安装完成
4 创建表空间,创建用户,创建表
4.1 创建表空间
使用命令创建
CREATE TABLESPACE JKGIS_CARINFO --表空间名
datafile 'G:\Oracle\app\gis\product\12.2.0\dbhome_1\oradata\carInfo.dbf' --物理文件 表空间数据文件存放路径
size 100m --大小初始值
autoextend ON --自动扩展
NEXT 50m maxsize unlimited; --每次扩展50m
查看表空间
SELECT t.tablespace_name,
ROUND(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t,
dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
删除表空间
DROP TABLESPACE JKGIS_CARINFO -- JKGIS_CARINFO为表空间名称
including contents
AND datafiles CASCADE CONSTRAINTS;
4.2 创建用户,并设置默认表空间
CREATE USER C##JKGIS --创建用户名 C##JKGIS 普通用户 需要在用户名前加 C##
IDENTIFIED BY "jkGIS123" ; --创建密码 jkGIS123
查看用户
SELECT * FROM dba_users; --查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
SELECT * FROM all_users; --查看你能管理的所有用户!
SELECT * FROM user_users; --查看当前用户信息 !
给新用户授权
GRANT
CREATE session TO C##JKGIS;
GRANT
CREATE TABLE TO C##JKGIS;
GRANT
CREATE VIEW TO C##JKGIS;
授予用户使用表空间的权限
ALTER USER C##JKGIS DEFAULT TABLESPACE JKGIS_CARINFO;
ALTER USER C##JKGIS quota unlimited ON JKGIS_CARINFO;
如果授予表空间给用户,提示表空间不存在(前提是已创建表空间,并创建成功),可以尝试重启oracle服务
创建用户,并授权表空间
CREATE USER C##JKGIS --创建用户名 testdev
IDENTIFIED BY "jkGIS123" --创建密码 test1234
DEFAULT TABLESPACE JKGIS_CARINFO --表空间 db_test
TEMPORARY TABLESPACE TEMP --临时表空间(默认的)
profile DEFAULT --默认权限(下面给分配)
quota unlimited ON JKGIS_CARINFO; --该用户在 db_test 表空间里的配额不限
授予用户connect、resource角色权限。一般创建应用程序开发用户可以授予这两个角色的权限。
GRANT CONNECT,RESOURCE TO C##JKGIS;
此时就可以使用Navicat 等工具连接了(不建议使用,速度不行)
注:navicat 版本要支持连接oracle ,比如我的是
连接界面选择单独打开的数据库
建议使用oracle自带的 sql developer 工具
5 oracle备份
备份之前,需要导入文件的数据库必须先创建好表空间和用户
使用sql plus 登入数据库
5.1 备份命令
$ exp user/password@GIS(服务名) file=E:\export.dmp
## file为导出文件的本地路劲(如果要导入某个文件夹下,需要先创建文件夹)
5.2 导入(恢复)命令
$ imp user/password@GIS(服务名) file=E:\export.dmp
## file为导入文件的本地路劲
5.3 导出命令(据说:导入可以指定任意表空间)
1.创建逻辑目录(推荐使用 sys as sysdba 用户登录)
$ create or replace directory MY_EXPORT_DIC as 'E:\oracle\exportdic';
2.授权导出用户使用逻辑目录
$ grant read,write on directory MY_EXPORT_DIC to user(要导出的用户)
3.使用expdp导出dmp文件
$ expdp user/password@GIS(服务名) schemas=user(要导出的用户) directory=MY_EXPORT_DIC dumpfile=export.20200214.dmp logfile=export.20200214.log version=11.2.0.1.0
## schemas:按用户导出
## directory:逻辑目录
## dumpfile:导出的dmp文件名称
## logfile:导出dmp日志文件名称
## version:指定需要导入的数据库版本
数据库版本查询方法
select * from v$version;
如果提示为连接到oracle 是权限不够
5.4 导入命令(据说:导入可以指定任意表空间)
1.导入命令
$ impdp user/password@GIS(服务名) directory=MY_EXPORT_DIC dumpfile=export.20200214.dmp logfile=export.20200214.log remap_schema=resource_user:target_user remap_tablespace=resource_space:target_space
## directory:逻辑目录
## dumpfile 为需要导入的dmp文件,需要放在新oracle的逻辑目录下
## remap_schema 源用户:目标用户 源用户为导出用户 目标用户为导入用户
## remap_tablespace 源表空间:目标表空间