Oracle数据库数据恢复验证笔记
这些年做数据恢复单子,经常碰到Oracle案例,当我们把数据恢复出来以后,我们怎样才能让用户看到oracle数据库里的东西,而不是一个一个oracle数据文件,以下是我总结出来的,对oracle初学者以及从事数据恢复业务的工程师会很有用的,这是我当年花了很多精力总结出来的一些经验,零零散散,都是我一点一滴做出来的。
1、冷备份需要的是在数据库shutdown的情况下,拷贝controlfile,pfile,datafile,redo logfile。
2、按照同样的目录结构,在新的机器做好,拷贝相应的文件到相应的目录。
3、假设pfile文件在:D:\Oracle\admin\dsserver\pfile\init.ora,在新的机器上运行:
oradim -NEW -SRVC OracleServiceDSSERVER -STARTMODE manual -PFILE "D:\Oracle\admin\dsserver1\pfile\init.ora"
在服务里生成一个新的实例管理服务,启动方式为手工。
4、然后在D:\oracle\ora81\network\ADMIN\listener.ora添加
(SID_DESC =
(GLOBAL_DBNAME = dsserver)
(ORACLE_HOME = D:\oracle\ora81)
(SID_NAME = dsserver)
)
5、运行lsnrctl,stop,然后start,看看dsserver监听情况
6、运行:oradim -STARTUP -SID dsserver -STARTTYPE srvc,inst 启动数据库实例
7、用原来dsserver用户登陆:
在D:\oracle\ora81\network\ADMIN\tnsnames.ora文件中添加相应的选项,如下 :
DSSERVER_QINTL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = qintl)(PORT = 1521))
)
(CONNECT_DATA = (SID = dsserver)(SERVER = DEDICATED))
)
或者oracle dba studio连接
8、顺利的话,一切ok!
*****************************************************************************************************************
对于windows,服务启动后,并不代表数据库就启动了i
解决目录结构不一样的问题
如果路径发生变化,比如controlfile发生变化,需要修改pfile中controlfile的路径,如果数据文件路径发生变化,需要在mount后,rename datafile到新路径。
connect sys/qintl@dsserver_qintl as sysdba
connect /as sysdba
startup mount pfile=D:\oracle\admin\dsserver1\pfile\init.ora
startup mount pfile=/ora/ora9/admin/gpdx/pfile/init.ora.7122005111153
startup pfile=/ora/ora9/admin/gpdx/pfile/init.ora.7122005111153
startup mount pfile=/oracle/initLYGADB.ora.112007223616
startup nomount pfile=/oracle/initLYGADB.ora.112007223616
alter database datafile '/oradata/LYGADB/LSA_IMAGE.DBF' offline drop;
移动数据文件
alter database rename file 'e:\test.dbf' to 'd:\test.dbf';
alter database rename file 'D:\oracle\oradata\dsserver\DBSTAR_IND_L.ORA' to 'D:\oracle\oradata\dsserver\dbf\DBSTAR_IND_L.ORA';
SQL> alter database rename file '/opt/oracle/test.dbf' to '/opt/oracle/oradata/conner/test.dbf';
Database altered.
重做日志文件不能更改路径?
SQL> recover database until cancel;
SQL> alter database open resetlogs;//重建日志文件
recover database;
SQL> alter database open;
Database altered.
orapwd file=/home/oracle/oracle/product/10.2.0/db_1/dbs/orapw password=oracle entries=10
orapwd file=d:\oracle\ora81\DATABASE\PWDorcl.ORA password=oracle entries=10
SQL> select name from v$datafile;
移动成功
SQL> alter database drop logfile group 1;
SQL> alter database add logfile group 1 ('D:\oracle\oradata\dsserver1/log1.log',
'D:\oracle\oradata\dsserver1\log101.log')size 50m;
总结步骤:
1、sqlplus /nolog
2、SQL>connect as sysdba
3、SQL>startup mount pfile=D:\oracle\admin\dsserver\pfile\init.ora
4、SQL> select name from v$datafile; //查看原来数据文件位置
5、alter database rename file 'D:\oracle\oradata\dsserver\DBSTAR_IND_L.ORA' to 'D:\oracle\oradata\dsserver\dbf\DBSTAR_IND_L.ORA'; //挨个更新数据文件位置
6、SQL> alter database open; //打开数据库
7、SQL> select name from v$datafile; //查看更改后的数据
rem 创建用户DBSTAR
CREATE USER "DBSTAR" PROFILE "DEFAULT" IDENTIFIED BY "qintl"
DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT "CONNECT" TO "DBSTAR";
GRANT "RESOURCE" TO "DBSTAR";
ALTER USER "DBSTAR" DEFAULT ROLE ALL;
database 必须的文件:数据文件(data files),Control files,redo log files。
可选的文件:parameters file,passwordfile,archived log files。
没有重做日志文件的冷备份恢复
1) startup mount
2) alter database open resetlogs;
It will re-create redo logs based on information in control files.
本文由达思总工程师覃廷良撰写,转载请注明出处
本文出自 “覃廷良数据恢复技术博客” 博客
相关新闻>>
- 发表评论
-
- 最新评论 更多>>