我在服务器里SHUTDOWN数据库后,将冷备份需要拷的文件(sid下面的.ctl文件、.dbf和.log,也即整个文件夹下面的文件)都拷到DB我的机子下面相应的文件夹下面(我的机子装了Oracle),然后启动我的数据库,用DBA的用户可以启动,但用普通的用户不能启动,也不能进去,请问是怎么回事?谢谢!!!

解决方案 »

  1.   

    用户不能启动?
    数据库还没有启动何来的普通用户,SQLPLUS /NOLOG
    SQL》CONNECT /AS SYSDBA
    sql>startup
    sql>conn user/passwd
    sql>select * from tab;
      

  2.   

    如果是8i版本:
    svrmgrl
    >connect internal/oracle
    >startup
      

  3.   

    普通用户本来就不可以启动数据库,除非你授予sysdba权限。普通用户如何不能进入系统?给出错误信息。
      

  4.   

    哪就赋DBA与sysdba角色与权限吧
      

  5.   

    OS备份 操作系统备份有两类,冷备份(Cold backup)与热备份(Hot backup),操作系统备份与以上的逻辑备份有本质的区别。逻辑备份提取数据库的数据内容,而不备份物理数据块。而操作系统备份则是拷贝整个的数据文件。 i、冷备份 在文件级备份开始前数据库必须彻底关闭。关闭操作必须用带有normal、immediate、transaction选项的shutdown来执行。 数据库使用的每个文件都被备份下来,这些文件包括:    ☆所有数据文件    ☆所有控制文件    ☆所有联机REDO LOG 文件    ☆INIT.ORA文件(可选)    作冷备份一般步骤是:       a.正常关闭要备份的实例(instance);       b.备份整个数据库到一个目录 c.启动数据库 如            SVRMGRL>connect internal            SVRMGRL >shutdown immediate            SVRMGRL >! cp <file> <backup directory>            或            SVRMGRL >!tar cvf /dev/rmt/0 /u01/oradata/prod            SVRMGRL >startup   注意:如果利用脚本对数据库进行冷备份,必须对关闭数据库的命令进行逻辑检查,如果发生关闭数据库的命令不能正常执行而导致数据库没有正常关闭,那么,所有的冷备份将回是无效的。 ii、热备份 热备份是当数据库打开并对用户有效是的OS级的数据备份。热备份只能用于ARCHIVELOG方式的数据库。在数据文件备份之前,对应的表空间必须通过使用ALTER TABLESPACE …… BEGIN BACKUP以备份方式放置。然后组成表空间的数据文件可以使用类似冷备份的操作系统命令进行拷贝。在数据文件用操作系统命令拷贝后,应使用ALTER TABLESPACE …… END BACKUP命令使表空间脱离热备份方式。 热备份没有必要备份联机日志,但必须是归档状态,在实例恢复的时候,可能需要用到归档日志。当前联机日志一定要保护好或是处于镜相状态,当前联机日志的损坏,对于数据库的损坏是巨大的,只能以数据的丢失来进行数据库的恢复工作。 对于临时表空间,存放的是临时信息,在热备份是也可以考虑不用备份,如果临时文件发生故障,可以删除该数据文件与表空间,重建一个临时表空间。 热备份的优点是显而易见的 ---- a.可在表空间或数据文件级备份,备份时间短。 ---- b.备份时数据库仍可使用。 ---- c.可达到秒级恢复(恢复到某一时间点上)。 ---- d.可对几乎所有数据库实体作恢复。 ---- e.恢复是快速的,在大多数情况下在数据库仍工作时恢复。 操作系统作热备份的一般步骤为: ①连接数据库 SVRMGRL>connect internal; ②将需要备份的表空间(如User)设置为备份方式 SVRMGRL>Alter tablespace User begin backup; ③拷贝数据文件 SVRMGRL>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora Or $cp cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora ④在数据文件拷贝完成后,将表空间拖体备份方式 SVRMGRL>Alter tablespace User end backup; ⑤对所有需要备份的表空间重复2,3,4 ⑥使用如下的命令备份控制文件ALTER DATABSE …… BACKUP CONTROLFILE 如备份成二进制文件 alter database backup controlfile to ‘new fielname’; 备份成文本文件 alter database backup controlfile to trace; 因为热备份的时候,用户还在操作数据库,所以,最好是每个表空间处于备份状态的时间最短,这样就要求一个表空间一个表空间的备份,不要一起使表空间处于备份状态而同时拷贝数据文件。   注意:如果在热备份的时候如果数据库中断(如断电),那么在重新启动数据库的时候,数据库将提示有数据文件需要恢复,你需要把正在断电时候的处于备份状态的数据文件通过ALTER TABLESPACE …… END BACKUP结束备份方式。具体哪个数据文件或表空间处于备份状态,可以通过v$backup与v$datafile来获得。