Database 'xxx' cannot be upgraded because it is read-only or has read-only file Make the database or files writeable, and rerun recovery.

 在分离数据库DatabaseName(暂且用DatabaseName代替该数据库名)后,我将其数据文件以及日志文件移动到新增的磁盘上。然后附加该数据库,结果报如下错误:

Database
'DatabaseName' cannot be upgraded because it is read-only or has
read-only files. Make the database or files writeable, and rerun
recovery.

Could not open new database 'DatabaseName'. CREATE DATABASE is aborted. (Microsoft SQL Server,错误: 3415)

    通过VNC连接到该数据库服务器,我检查了该数据库文件以及日志文件是否为只读,但是事实是这些文件都具有读写权限。经过一番细致检查后,才发现了问题的根本原因:

   

我首先在我机器上用SSMS工具通过域账号A连接到数据库服务器分离了该数据库,这个域账号拥有这个数据库的sysadmin角色,但是并不是该服务器上
的系统管理员,然后我通过VNC使用另外一个域账号B移动了数据库的文件,然后又在我机器使用SSMS去附加该数据库,因为使用的是域账号A,并没有操作
服务器上文件的权限。结果报如上错误。

    于是我在该服务器上使用B账号登陆数据库,附加该数据库,成功解决。后面我测试了一下,在该服务器上添加域账号A,赋予其操作数据库文件的权限,结果就不会出现上述错误。

时间: 2024-09-20 06:11:40

Database 'xxx' cannot be upgraded because it is read-only or has read-only file Make the database or files writeable, and rerun recovery.的相关文章

IO is frozen on database xxx, No user action is required

最近遇到一起关于"I/O is frozen on database xxx. No user action is required. However, if I/O is not resumed promptly, you could cancel the backup."的案例. 出现问题的时候,我去执行一个非常简单的SQL语句,执行时间非常长,检查没有阻塞.正常情况下,应该是几秒就OK.后面检查错误日志,发现有大量这类消息.而这个点,我们没有备份数据库的作业.后面搜索,了解了一下

SQL Sever 博客文章目录(2016-07-06更新)

SQL Server方面的博客文章也陆陆续续的写了不少了,顺便也将这些知识点整理.归纳一下下.方便自己和他人查看.   MS SQL 数据类型   三大数据库对比研究系列--数据类型   MS SQL 表和视图   数据库表的基本信息,你知道吗? 数据查询表,列名对比 MS SQL 建表SQL的脚本 查看数据库.表.索引的物理存储情况 慎用SELECT INTO复制表   MS SQL 索引约束 [翻译] 聚集索引表 VS 堆表 SQL SERVER 中is null 和 is not null

如何正确的删除表空间数据文件

如何正确的删除表空间数据文件 应该使用如下的命令删除: ALTER TABLESPACE TEST DROP DATAFILE 3;   参考mos文章: Unable to Drop a Datafile From the Tablespace Using Alter Tablespace Command (文档 ID 1050261.1) 违反下列任何一个条件,该datafile均不能被drop: 1)必须为空,否则会报:ORA-03262: the file is non-empty.值得

【MOS】在不同版本和平台之间进行还原或复制 (文档 ID 1526162.1)--跨版本恢复

[MOS]关于在不同版本和平台之间进行还原或复制的常见问题 (文档 ID 1526162.1)--跨版本恢复 Questions and Answers    1) 我能用更高版本的 Oracle 还原或复制旧版本的数据库吗?    2) 我能在两个不同的补丁程序集之间进行还原或复制吗?    3) 我能在同一操作系统的不同版本之间进行还原或复制吗?    4) Oracle 的位(bit)级别(32 位或 64 位)不匹配时,可以进行还原或复制吗?    5) 可以将更高版本的备份还原到较早版

Linux_Oracle命令大全

 一,启动   1.#su - oracle              切换到oracle用户且切换到它的环境   2.$lsnrctl status           查看监听及数据库状态   3.$lsnrctl start            启动监听   4.$sqlplus / as sysdba       以DBA身份进入sqlplus   5.SQL>startup                启动db   二,停止   1.#su - oracle          

基于 RMAN 的同机数据库克隆

Oracle数据库克隆,也叫着Oracle数据库复制,可以通过基于用户管理的方式来完成,也可以基于RMAN方式来实现.而且Oracle建议使用RMAN方式来实现,因为它简单易用,隐藏其复杂的逻辑,仅仅是执行一条duplicate命令就可以喝茶了.当然,前期的准备工作也是不可少滴,如创建相应的dump目录,准备参数文件,配置监听等等.本文描述了Oracle 11g下如何使用RMAN实现同机克隆数据库.   1.RMAN克隆的几种类型    a.利用RMAN备份克隆并访问目标数据库(也就是原数据库)

rman 还原归档日志(restore archivelog)

     听说过还原(restore)数据库,表空间及数据库文件,使用归档日志恢复(recover)数据库,表空间,数据库文件.咦,还有还原归档日志这一说法呢?没错,可能我们忽略了还原归档日志这一个过程,原因是还原归档日志通常情况下是oracle在recover时自动完成的.大多数情况下我们是先还原数据库,恢复数据库,打开数据库.实际上在恢复数据库之前有一个动作,那就是还原归档日志,也就是将日志文件还原到缺省的归档位置,如果我们在备份归档日志时使用了delete [all] input子句的话.

RMAN 配置归档日志删除策略

        Oracle 11g中对于归档日志的删除,除了遵循RMAN保留策略外,也可以通过RMAN来配置归档日志的删除策略,也就是归档日志何时可以被删除.归档日志删除策略适用于所有归档位置(使用快速闪回区FRA/不使用FRA).本文主要描述归档日志删除策略并给出了具体的演示.  1.关于归档日志删除策略      也就是哪些归档日志符合删除策略能够被删除,如前所述,归档位置适用于所有归档位置(使用快速闪回区FRA/不使用FRA)      当启用该策略后,如归档日志存在于FRA中,则Ora

基于RMAN从活动数据库异机克隆(rman duplicate from active DB)

      Oracle 11g RMAN能够实现基于活动数据库进行异机克隆,从而省去需要先备份再ftp到辅助服务器的过程.这一切可以全部交给Oracle来搞定.在克隆期间,Oracle会读取Target DB的所有数据结构,无须人为的干预(不同的磁盘系统,文件路径与文件名要指定转换方式).尽管如此,对于生产环境数据库在整个克隆期间性能会下降,其次在Target Server与Auxiliary Server中会产生较大的网络流量.如果这些可以接受的话,从活动数据库进行异机克隆是一个不错的选择.