oracle initialization or shutdown in progress解决方法

今天在准备新项目开发环境,在进行Oracle数据迁移时出现数据导入失败,所以就不断地创建新的表空间、创建用户。后来感觉创建这么多东西太占用磁盘空间,心想删除一下吧,将dbf和dmp文件也统统删除了(虽然提示不能删除,但是我关闭服务后强制删除了),后来发现服务可以启动,但是连接时会提示:oracleinitialization or shutdown inprogress,后来经过查询发现,原来这些dbf和dmp文件是不能任意手动删除的,最终导致数据库实例无法启动。
解决方案:
    方案一:如果没有将文件彻底删除,那么在回收站中还原这些文件即可(想删除某用户的表空间和物理文件强参考下面的方法);
    方案二:如果文件已经从回收站中删除,那么进行下面的操作即可
            1.先在windows下运行cmd,进入DOS环境
            2.以DBA用户登录,具体命令是:
                sqlplus /NOLOG
                SQL>connect sys/change_on_install as sysdba
                提示:已成功
            3.SQL>shutdown immediate 停止服务
                SQL>startup 启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号
                SQL>shutdown immediate 再次停止服务
                SQL> alter database datafile 'G:\SP001.DBF' offline drop;
                数据库已更改。
                SQL>alter database open;
                数据库已更改。
                SQL>startup 启动服务,此次正常。


相关知识点扩展:

一、正常情况下删除某一个用户及相关数据的方法:

    1.删除用户及相关联的对象:drop user  username  cascade;
    2.有的时候我么还想删除用户对应的表空间,甚至有时候我们还想删除对应的物理文件。
        1)如果只删除表空间(不包含物理文件),这里有两种方法:
            第一种方法:drop tablespace tablespace_name (表空间为空);
            第二种方法:drop tablespace tablespace_name including contents(表空间不为空);

        2)如果我们想删除表空间的同时删除对应的物理文件,我在这里总结了三种方法:
            第一种方法:drop tablespace tablespace_name including datafiles;(表空间为空)
            第二种方法:drop tablespace tablespace_name including contents and datafiles;(表空间不为空)
            第三种方法:如果我们在删除表空间的时候没想着删除物理文件,后来又想删除了,这时候执行下面的语句:
            alter database datafile 'D:/software/oracle/JIANXIN_XINTUO.DBF' offline drop,然后再手动删除物理文件即可

二、进行新项目准备数据时的正确步骤:

    首先确认要导入的数据是否为指定用户名下的数据,如果是,则需要创建该用户名,再使用该用户导入数据,否则可以自定义用户名。
    1.创建表空间:
        create tablespace tablespace_name   --创建的表空间名称
        datafile 'D:\software\oracle\CCBTRUST.dbf'   --指定表空间的物理文件路径
        size 2000m  --设置表空间文件容量的大小
        autoextend on  --指定表空间的容量大小可以自动扩展
        next 100m maxsize 10000m  --表空间容量每次扩展100m,最大扩展到10000m
        extent management local; --表空间性能优化(这个详细信息可以参考地址一)
    2.创建用户
        create user username  identified by password  --创建用户名和密码()
        default tablespace tablespace_name     --给用户指定表空间
        temporary tablespace TEMP;      --指定临时表空间
    3.给用户赋权限
        grant connect,resource,dba to username ;--给用户赋权限(想进一步学习oracle权限问题可以参考地址二)


参考地址一:

https://zhidao.baidu.com/question/344057905.html
参考地址二:
http://blog.csdn.net/qq_27937043/article/details/72576334


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值