请问使用Seed_Database.dfb和Seed_Database.ctl建库完成后为什么要resetlogs开库?
版本为11.2.0.4。操作系统红帽6.4。
附过程:
建立参数文件
建立参数文件,目录为$ORACLE_HOME/dbs:
db_name=seeddata //注意此处db_name必须写成seeddata,因为seed库的名字就叫seeddata。
sga_target=4096M
control_files=/u01/app/oracle/oradata/ora11g/control01.ctl
compatible=11.2.0.4 //兼容性必须要指定。
启动到nomount状态进行验证;
建立控制文件
建立控制文件,目录为:
cd $ORACLE_HOME/assistants/dbca/templates
ls $ORACLE_HOME/assistants/dbca/templates //该文件中包含ctl文件备份
种子数据库控制文件备份.jpg
cp $ORACLE_HOME/assistants/dbca/templates/ /u01/app/oracle/oradata/ora11g/control01.ctl
启动到mount状态进行验证:
种子数据库mount验证控制文件.jpg
处理日志文件路径
控制文件中日志文件路径为:
SQL> select member from v$logfile;
MEMBER
---------------------------------------------------------------------------------------------------
/ade/b/2232964209/oracle/oradata/seeddata/redo01.log
/ade/b/2232964209/oracle/oradata/seeddata/redo02.log
/ade/b/2232964209/oracle/oradata/seeddata/redo03.log
是一个不存在的路径,需要rename到/u01/app/oracle/oradata/ora11g/路径。
SQL> alter database rename file '/ade/b/2232964209/oracle/oradata/seeddata/redo01.log' to '/u01/app/oracle/oradata/ora11g/redo01.log';
Database altered.
SQL> alter database rename file '/ade/b/2232964209/oracle/oradata/seeddata/redo02.log' to '/u01/app/oracle/oradata/ora11g/redo02.log';
Database altered.
SQL> alter database rename file '/ade/b/2232964209/oracle/oradata/seeddata/redo03.log' to '/u01/app/oracle/oradata/ora11g/redo03.log';
Database altered.
注册数据文件备份集
注册备份集Seed_Database.dfb:
RMAN> catalog start with '/u01/app/oracle/product/11.2.4/db_1/assistants/dbca/templates/Seed_Database.dfb';
种子数据库注册数据文件备份集.jpg
查看备份集,可以看到一个相同的备份集有两个copy。一个是控制文件原有的,一个是catalog新注册进去。其中原有是其实不存在,可以通过crosscheck加delete去除。
RMAN> list backup;
List of Backup Sets
===================
BS Key Type LV Size
------- ---- -- ----------
1 Full 262.97M
List of Datafiles in backup set 1
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 925701 24-AUG-13 /ade/b/2232964209/oracle/oradata/seeddata/system01.dbf
2 Full 925701 24-AUG-13 /ade/b/2232964209/oracle/oradata/seeddata/sysaux01.dbf
3 Full 925701 24-AUG-13 /ade/b/2232964209/oracle/oradata/seeddata/undotbs01.dbf
4 Full 925701 24-AUG-13 /ade/b/2232964209/oracle/oradata/seeddata/users01.dbf
Backup Set Copy #1 of backup set 1
Device Type Elapsed Time Completion Time Compressed Tag
----------- ------------ --------------- ---------- ---
DISK 00:00:31 24-AUG-13 YES
List of Backup Pieces for backup set 1 Copy #1
BP Key Pc# Status Piece Name
------- --- ----------- ----------
1 1 AVAILABLE /ade/b/2232964209/oracle/oradata/Seed_Database.dfb
Backup Set Copy #2 of backup set 1
Device Type Elapsed Time Completion Time Compressed Tag
----------- ------------ --------------- ---------- ---
DISK 00:00:31 04-FEB-17 YES
List of Backup Pieces for backup set 1 Copy #2
BP Key Pc# Status Piece Name
------- --- ----------- ----------
2 1 AVAILABLE /u01/app/oracle/product/11.2.4/db_1/assistants/dbca/templates/Seed_Database.dfb
校验和删除expired backup
RMAN> crosscheck backup;
RMAN> delete expired backup;
修改数据文件路径
run{
set newname for datafile 1 to '/u01/app/oracle/oradata/ora11g/system01.dbf';
set newname for datafile 2 to '/u01/app/oracle/oradata/ora11g/sysaux01.dbf';
set newname for datafile 3 to '/u01/app/oracle/oradata/ora11g/undotbs01.dbf';
set newname for datafile 4 to '/u01/app/oracle/oradata/ora11g/users01.dbf';
restore database;
switch datafile all;
recover database;
}
set newname for datafile 1 to是指定restore的路径。类似data_file_name_convert\log_file_name_convert;
switch datafile all告诉控制文件restore的路径。
开库
alter database open resetlogs;
//主要是这个开库步骤为什么要resetlogs?
//主要是这个开库步骤为什么要resetlogs?
//主要是这个开库步骤为什么要resetlogs?
后面还有加临时文件的步骤和nid该名字等步骤,就省略了。