暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Seed种子数据库还原Oracle数据库操作

Linux日常小实验 2018-06-13
688


实验环境:安装了Oracle11GR2软件的 Centos.4

实验目的:可利用seed种子文件还原Oracle数据库实例

实验步骤:


$ cd$ORACLE_HOME/dbs

$ cat init.ora | grep -v "^#" | grep -v "^$">initSEEDDATA.ora

$vi initSEEDDATA.ora

$cat initSEEDDATA.ora

db_name='SEEDDATA'

SGA_target=1G

db_block_size=8192

control_files  = /data/oracle/app/oracle/oradata/hpprdyx/control01.ctl

compatible ='11.2.0'

$ mkdir -p /data/oracle/app/oracle/oradata/hpprdyx/

$ export ORACLE_SID=SEEDDATA

$sqlplus / as sysdba

SQL> create spfile from pfile;

SQL> startup nomount

SQL>!

$find /oracle -name Seed*.ctl

/data/database/stage/Components/oracle.rdbms.install.seeddb/11.2.0.1.0/1/DataFiles/Expanded/filegroup1/Seed_Database.ctl
/data/oracle/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/templates/Seed_Database.ctl

$cp /data/oracle/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/templates/Seed_Database.ctl

 to /data/oracle/app/oracle/oradata/hpprdyx/control01.ctl

$exit

SQL> alter database mount;


SQL> select member from v$logfile;

MEMBER

--------------------------------------------------------------------------------

/ade/b/2125410156/oracle/oradata/seeddata/redo01.log
/ade/b/2125410156/oracle/oradata/seeddata/redo02.log
/ade/b/2125410156/oracle/oradata/seeddata/redo03.log

 

SQL> alter database rename file/ade/b/2125410156/oracle/oradata/seeddata/redo01.log' to'/data/oracle/app/oracle/oradata/hpprdyx/redo01.log';     

 

SQL> alter database rename file'/ade/b/2125410156/oracle/oradata/seeddata/redo02.log' to '/data/oracle/app/oracle/oradata/hpprdyx/redo02.log';

 

SQL> alter database rename file'/ade/b/2125410156/oracle/oradata/seeddata/redo03.log' to'/data/oracle/app/oracle/oradata/hpprdyx/redo03.log';

SQL> select member from v$logfile;


$ rman target /

RMAN> catalog start with '/data/oracle/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/templates/Seed_Database.dfb';

RMAN> report schema;

RMAN> run   {
   set newname for datafile 1 to '/data/oracle/app/oracle/oradata/hpprdyx/system01.dbf';
   set newname for datafile 2 to '/data/oracle/app/oracle/oradata/hpprdyx/sysaux01.dbf';
   set newname for datafile 3 to '/data/oracle/app/oracle/oradata/hpprdyx/undotbs01.dbf';
   set newname for datafile 4 to '/data/oracle/app/oracle/oradata/hpprdyx/user01.dbf';
   restore database;
   switch datafile all;
   recover database;
    }

RMAN> exit

$sqlplus / as sysdba

SQL> alter database open resetlogs;

SQL> alter tablespace temp add tempfile '/data/oracle/app/oracle/oradata/hpprdyx/temp01.dbf' size 100M;
SQL> select name from v$tempfile;

NAME

--------------------------------------------------------------------------------

/ade/b/2125410156/oracle/oradata/seeddata/temp01.dbf
/data/oracle/app/oracle/oradata/hpprdyx/temp01.dbf

 

SQL> alter tablespace temp drop tempfile '/ade/b/2125410156/oracle/oradata/seeddata/temp01.dbf';


SQL> show parameter inst

SQL> shutdown immediate

SQL> startup mount

SQL> exit

$nid target=sys/ora_sys dbname=hpprdyx

$cd $ORACLE_HOME/dbs

$cp initSEEDDATA.ora inithpprdyx.ora

$cat inithpprdyx.ora

db_name='hpprdyx'
memory_target=400M
db_block_size=8192
control_files = /data/oracle/app/oracle/oradata/hpprdyx/control01.ctl
compatible ='11.2.0'

export ORACLE_SID=hpprdyx

$sqlplus / as sysdba

SQL>create spfile from pfile;

SQL>startup

SQL>show parameter inst


参考资料:

DBCA seed文件原理可以参考杨建荣老师的

深入理解Oracle中的DBCA


如果您喜欢我的文章,请长按标识符关注我的公众号,学习Linux的路上,期待与您同行。


文章转载自Linux日常小实验,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论