ORACLE 10G 安装数据库 代码分析[@more@]
set echo off;
set serveroutput on;
select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual;
variable devicename varchar2(255);
declare
omfname varchar2(512) := NULL;
done boolean;
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, 'D:oracleproduct10.2.0oradataOra10gSYSTEM01.DBF', 0, 'SYSTEM');
dbms_backup_restore.restoreDataFileTo(2, 'D:oracleproduct10.2.0oradataOra10gUNDOTBS01.DBF', 0, 'UNDOTBS1');
dbms_backup_restore.restoreDataFileTo(3, 'D:oracleproduct10.2.0oradataOra10gSYSAUX01.DBF', 0, 'SYSAUX');
dbms_backup_restore.restoreDataFileTo(4, 'D:oracleproduct10.2.0oradataOra10gUSERS01.DBF', 0, 'USERS');
dbms_output.put_line(' Restoring ... ');
dbms_backup_restore.restoreBackupPiece('D:oracleproduct10.2.0db_1assistantsdbcatemplatesSeed_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;
Allocating device....
Specifying datafiles...
Specifing datafiles...
Restoring ...
Restore done.
PL/SQL过程已成功完成。
Create controlfile reuse set database Ora10g
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
Datafile
'D:oracleproduct10.2.0oradataOra10gSYSTEM01.DBF',
'D:oracleproduct10.2.0oradataOra10gUNDOTBS01.DBF',
'D:oracleproduct10.2.0oradataOra10gSYSAUX01.DBF',
'D:oracleproduct10.2.0oradataOra10gUSERS01.DBF'
LOGFILE GROUP 1 ('D:oracleproduct10.2.0/oradata/Ora10g/redo01.log') SIZE 51200K,
GROUP 2 ('D:oracleproduct10.2.0/oradata/Ora10g/redo02.log') SIZE 51200K,
GROUP 3 ('D:oracleproduct10.2.0/oradata/Ora10g/redo03.log') SIZE 51200K RESETLOGS;
控制文件已创建。
exec dbms_backup_restore.zerodbid(0);
PL/SQL过程已成功完成。
shutdown immediate;
已经卸载数据库。
ORACLE 例程已经关闭。
startup mount;
alter system enable restricted session;
alter database Ora10g open resetlogs; --必须resetlogs因为刚才进行了rman数据恢复
alter database rename global_name to Ora10g;
ALTER TABLESPACE TEMP ADD TEMPFILE 'D:oracleproduct10.2.0oradataOra10gTEMP01.DBF' SIZE 20480K REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;
select tablespace_name from dba_tablespaces where tablespace_name='USERS';
alter database character set INTERNAL_CONVERT ZHS16GBK;
alter database national character set INTERNAL_CONVERT AL16UTF16;
alter system disable restricted session;