解析DBCA的过程(linux)

解析DBCA的过程(linux) 

如建立一"DBTEST"资料库
1.建立相关文夹
mkdir -p /u01/app/oracle/11.2.0/db_1/dbs
mkdir -p /u01/app/oracle/admin/DBTEST/adump
mkdir -p /u01/app/oracle/admin/DBTEST/dpdump
mkdir -p /u01/app/oracle/admin/DBTEST/pfile
mkdir -p /u01/app/oracle/cfgtoollogs/dbca/DBTEST
mkdir -p /u01/app/oracle/flash_recovery_area
mkdir -p /u01/app/oracle/flash_recovery_area/DBTEST
mkdir -p /u01/app/oracle/oradata/DBTEST
建立密码文件
host /u01/app/oracle/11.2.0/db_1/bin/orapwd file=/u01/app/oracle/11.2.0/db_1/dbs/orapwdDBTEST force=y


2.建立一initDBTEST.ORA文件,内容只要一行。
db_name='DBTEST'
export ORACLE_SID=DBTEST
D79F8D5539364D06B2B9060EADEF7CEB

startup pfile='..../dbs/initDBTEST.ora' nomount;

04AD40681AF944BE900CF1592CFAD168

create spfile from pfile;

5B5D787D28E44B0CB2050BB585141F5C


3.还原 controlfile (用RMAN还原,其实我认为手动建立也可)。

77BD5FCB79F64531A7AA4FB0A24AE2E2

connect target /

B81B9B8B7674427CBC2453C130BE8F1B

4.还原其它文件。
  先修改PFILE中的DBNAME与RMAN的备份片相同。
catalog start with '..../Seed_Database.dfb';

855ACF77B7E84FEDAEB48FEA96185163

0B242B3A64674D4397A13E625DEE26EC


run {
set newname for datafile '/ade/b/1191423112/oracle/oradata/seeddata/system01.dbf' to '/u01/app/oracle/oradata/DBTEST/system01.dbf';
set newname for datafile '/ade/b/1191423112/oracle/oradata/seeddata/sysaux01.dbf' to '/u01/app/oracle/oradata/ DBTEST/sysaux01.dbf';
set newname for datafile '/ade/b/1191423112/oracle/oradata/seeddata/undotbs01.dbf' to '/u01/app/oracle/oradata/ DBTEST/undotbs01.dbf';
set newname for datafile '/ade/b/1191423112/oracle/oradata/seeddata/users01.dbf' to '/u01/app/oracle/oradata/ DBTEST/users01.dbf';
restore database;
recover database;
}

5.重新建立ControlFile,建立其它文件 temp,redo
再将PFILE的DBNAME改为DBTEST.

Create controlfile reuse set database "DBTEST"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
Datafile
'/u01/app/oracle/oradata/DBTEST/system01.dbf',
'/u01/app/oracle/oradata/DBTEST/sysaux01.dbf',
'/u01/app/oracle/oradata/DBTEST/undotbs01.dbf',
'/u01/app/oracle/oradata/DBTEST/users01.dbf'
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/DBTEST/redo01.log') SIZE 51200K,
GROUP 2 ('/u01/app/oracle/oradata/DBTEST/redo02.log') SIZE 51200K,
GROUP 3 ('/u01/app/oracle/oradata/DBTEST/redo03.log') SIZE 51200K RESETLOGS;

alter database add logfile 
('/u01/app/oracle/oradata/DBTEST/redo01.log','/u01/app/oracle/oradata/DBTEST/redo02.log','/u01/app/oracle/oradata/DBTEST/redo03.log') size 50m; 

alter database open resetlog;

-----end------

*************************************************************************************
下面是建立"DBD"资料库时系统生成的代码,供大家学习参考。

OLD_UMASK=`umask`
umask 0027
mkdir -p /u01/app/oracle/11.2.0/db_1/dbs
mkdir -p /u01/app/oracle/admin/dbd/adump
mkdir -p /u01/app/oracle/admin/dbd/dpdump
mkdir -p /u01/app/oracle/admin/dbd/pfile
mkdir -p /u01/app/oracle/cfgtoollogs/dbca/dbd
mkdir -p /u01/app/oracle/flash_recovery_area
mkdir -p /u01/app/oracle/flash_recovery_area/dbd
mkdir -p /u01/app/oracle/oradata/dbd
umask ${OLD_UMASK}
ORACLE_SID=dbd; export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH; export PATH
echo You should Add this entry in the /etc/oratab: dbd:/u01/app/oracle/11.2.0/db_1:Y
/u01/app/oracle/11.2.0/db_1/bin/sqlplus /nolog @/u01/app/oracle/admin/dbd/scripts/dbd.sql

/u01/app/oracle/admin/dbd/scripts/dbd.sql

set verify off
ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
host /u01/app/oracle/11.2.0/db_1/bin/orapwd file=/u01/app/oracle/11.2.0/db_1/dbs/orapwdbd force=y
@/u01/app/oracle/admin/dbd/scripts/CloneRmanRestore.sql
@/u01/app/oracle/admin/dbd/scripts/cloneDBCreation.sql
@/u01/app/oracle/admin/dbd/scripts/postScripts.sql
@/u01/app/oracle/admin/dbd/scripts/lockAccount.sql
@/u01/app/oracle/admin/dbd/scripts/postDBCreation.sql

/u01/app/oracle/admin/dbd/scripts/CloneRmanRestore.sql
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/dbd/scripts/CloneRmanRestore.log append
startup nomount pfile="/u01/app/oracle/admin/dbd/scripts/init.ora";
@/u01/app/oracle/admin/dbd/scripts/rmanRestoreDatafiles.sql;
spool off

[oracle@redhat1 admin]$ vi /u01/app/oracle/admin/dbd/scripts/rmanRestoreDatafiles.sql
  begin
    dbms_output.put_line(' ');
    dbms_output.put_line(' Allocating device.... ');
    dbms_output.put_line(' Specifying datafiles... ');
       :devicename := dbms_backup_restore.deviceAllocate;
    dbms_output.put_line(' Specifing datafiles... ');
    dbms_backup_restore.restoreSetDataFile;
      dbms_backup_restore.restoreDataFileTo(1, '/u01/app/oracle/oradata/dbd/system01.dbf', 0, 'SYSTEM');
      dbms_backup_restore.restoreDataFileTo(2, '/u01/app/oracle/oradata/dbd/sysaux01.dbf', 0, 'SYSAUX');
      dbms_backup_restore.restoreDataFileTo(3, '/u01/app/oracle/oradata/dbd/undotbs01.dbf', 0, 'UNDOTBS1');
      dbms_backup_restore.restoreDataFileTo(4, '/u01/app/oracle/oradata/dbd/users01.dbf', 0, 'USERS');
    dbms_output.put_line(' Restoring ... ');
    dbms_backup_restore.restoreBackupPiece('/u01/app/oracle/11.2.0/db_1/assistants/dbca/templates/Seed_Database.dfb', done);
    if done then
        dbms_output.put_line(' Restore done.');
    else
        dbms_output.put_line(' ORA-XXXX: Restore failed ');
    end if;
    dbms_backup_restore.deviceDeallocate;
  end;
/
select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual;



 vi /u01/app/oracle/admin/dbd/scripts/cloneDBCreation.sql
startup nomount pfile="/u01/app/oracle/admin/dbd/scripts/initdbdTemp.ora";
Create controlfile reuse set database "dbd"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
Datafile
'/u01/app/oracle/oradata/dbd/system01.dbf',
'/u01/app/oracle/oradata/dbd/sysaux01.dbf',
'/u01/app/oracle/oradata/dbd/undotbs01.dbf',
'/u01/app/oracle/oradata/dbd/users01.dbf'
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/dbd/redo01.log') SIZE 51200K,
GROUP 2 ('/u01/app/oracle/oradata/dbd/redo02.log') SIZE 51200K,
GROUP 3 ('/u01/app/oracle/oradata/dbd/redo03.log') SIZE 51200K RESETLOGS;

alter system enable restricted session;
alter database "dbd" open resetlogs;
exec dbms_service.delete_service('seeddata');
exec dbms_service.delete_service('seeddataXDB');
alter database rename global_name to "dbd";
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/dbd/temp01.dbf' SIZE 20480K REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;
select tablespace_name from dba_tablespaces where tablespace_name='USERS';


vi initdbdTemp.ora
diagnostic_dest=/u01/app/oracle
memory_target=848297984

###########################################
# Processes and Sessions
###########################################
processes=150

###########################################
# Security and Auditing
###########################################
audit_file_dest=/u01/app/oracle/admin/dbd/adump
audit_trail=db
remote_login_passwordfile=EXCLUSIVE

###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=dbdXDB)"

###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_tablespace=UNDOTBS1

_no_recovery_through_resetlogs=true


vi /u01/app/oracle/admin/dbd/scripts/init.ora
###########################################
# Processes and Sessions
###########################################
processes=150

###########################################
# Security and Auditing
###########################################
audit_file_dest=/u01/app/oracle/admin/dbd/adump
audit_trail=db
remote_login_passwordfile=EXCLUSIVE

###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=dbdXDB)"

###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_tablespace=UNDOTBS1



[oracle@redhat1 ~]$ vi /u01/app/oracle/admin/dbd/scripts/initdbdTemp.ora
###########################################
# Miscellaneous
###########################################
compatible=11.2.0.0.0
diagnostic_dest=/u01/app/oracle
memory_target=848297984

###########################################
# Processes and Sessions
###########################################
processes=150

###########################################
# Security and Auditing
###########################################
audit_file_dest=/u01/app/oracle/admin/dbd/adump
audit_trail=db
remote_login_passwordfile=EXCLUSIVE

###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=dbdXDB)"

###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_tablespace=UNDOTBS1

_no_recovery_through_resetlogs=true

                                



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/203348/viewspace-759749/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/203348/viewspace-759749/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值