##########re-link###############
export ORACLE_HOME=/opt/oracle/product/112/11203
echo $ORACLE_HOME
$ cd ${ORACLE_HOME}/oui/bin
./runInstaller -silent -clone -invPtrLoc /var/opt/oracle/oraInst.loc ORACLE_HOME=“/opt/oracle/product/112/11203” ORACLE_HOME_NAME=“oracle_db1” ORACLE_BASE=“/opt/oracle”
#############
SELECT d.owner, count(1)
FROM dba_objects d
where status = ‘INVALID’
GROUP BY d.owner;
create pfile from spfile;
####RMAN####
connect target
run
{
sql ‘alter system checkpoint’;
sql ‘alter system archive log current’;
allocate channel c1 device type disk format ‘/oracle/backup/%d_c1_full_s%s_%T_p%p’;
allocate channel c2 device type disk format ‘/oracle/backup/%d_c2_full_s%s_%T_p%p’;
allocate channel c3 device type disk format ‘/oracle/backup/%d_c3_full_s%s_%T_p%p’;
backup full
(database);
backup
format ‘/oracle/backup/%d_CTL_s%s_%T_p%p’
(current controlfile);
sql ‘alter system archive log current’;
backup archivelog
from time ‘SYSDATE-1’ until time ‘SYSDATE’;
crosscheck archivelog all;
delete expired archivelog all;
DELETE ARCHIVELOG ALL COMPLETED BEFORE ‘SYSDATE-3’;
crosscheck backup;
delete expired backup;
DELETE OBSOLETE;
}
#######RMAN2###
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database filesperset 4 format ‘/home/oracle/oracle_bk/orcl/full_%n_%T_%t_%s_%p.bak’;
sql ‘alter system archive log current’;
backup archivelog all format ‘/home/oracle/oracle_bk/orcl/arch_%d_%T_%s_%p.bak’ delete input;
backup current controlfile format ‘/home/oracle/oracle_bk/orcl/ctl_%d_%T_%s_%p.bak’;
release channel c1;
release channel c2;
}
###############
cp $ORACLE_HOME/dbs/initorcl.ora
cp $ORACLE_HOME/dbs/orapworcl
vi initorcl.ora
startup nomount;
RMAN> restore controlfile to ‘/u01/app/oracle/oradata/orcltest/control01.ctl’ from ‘/tmp/orcl/ctl_ORCL_20xx0x0x_66_1.bak’;
cp /u01/app/oracle/oradata/orcltest/control01.ctl /u01/app/oracle/oradata/orcltest/control02.ctl
alter database mount;
RMAN> catalog start with ‘/tmp/orcl/’;
RMAN> restore archivelog;
RMAN> restore archivelog sequence between xx and xx;
select ‘set newname for datafile ’ || a.FILE# || ’ to "’ || a.NAME || ‘";’
from vKaTeX parse error: Expected 'EOF', got '#' at position 66: …ile ' || a.FILE#̲ || ' to "' || …tempfile a
union all
SELECT ‘SQL "ALTER DATABASE RENAME FILE ‘’’‘’ || a.MEMBER || ‘’‘’’ to ‘’‘’’ ||a.MEMBER || ‘’‘’’ ";’
FROM v$logfile a;
RMAN> RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
set newname for datafile 1 to “/u01/app/oracle/oradata/orcltest/system01.dbf”;
set newname for datafile 2 to “/u01/app/oracle/oradata/orcltest/sysaux01.dbf”;
set newname for datafile 3 to “/u01/app/oracle/oradata/orcltest/undotbs01.dbf”;
set newname for datafile 4 to “/u01/app/oracle/oradata/orcltest/users01.dbf”;
set newname for datafile 5 to “/u01/app/oracle/oradata/orcltest/example01.dbf”;
set newname for datafile 6 to “/u01/app/oracle/oradata/orcltest/goldengate01.dbf”;
set newname for tempfile 1 to “/u01/app/oracle/oradata/orcltest/temp01.dbf”;
SQL "ALTER DATABASE RENAME FILE ‘’/u01/app/oracle/oradata/orcl/redo03.log’’ to ‘’/u01/app/oracle/oradata/orcltest/redo03.log’’ ";
SQL "ALTER DATABASE RENAME FILE ‘’/u01/app/oracle/oradata/orcl/redo02.log’’ to ‘’/u01/app/oracle/oradata/orcltest/redo02.log’’ ";
SQL "ALTER DATABASE RENAME FILE ‘’/u01/app/oracle/oradata/orcl/redo01.log’’ to ‘’/u01/app/oracle/oradata/orcltest/redo01.log’’ ";
SET UNTIL sequence 14 thread 1;
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;
}
SQL> select open_mode from v$database;
SELECT d.owner, count(1)
FROM dba_objects d
where status = ‘INVALID’
GROUP BY d.owner;
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
SQL> alter database open resetlogs;
########upgrade######
startup upgrade;
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql;
###########
RMAN> list backup;
不完全恢复:
RMAN> run{
set until sequence 4 thread 1;
restore database;
recover database;
alter database open resetlogs;
}
#########rman duplicate #########
connect target
run
{
set command id to ‘RMAN’;
allocate channel c1 device type disk format ‘/tmp/20xx0x0x/%d_c1_INCR_0_s%s_p%p’;
allocate channel c2 device type disk format ‘/tmp/20xx0x0x/%d_c2_INCR_0_s%s_p%p’;
backup
incremental level = 0
tag incr_lvl_0_20xx0x0x
filesperset=1
(database);
sql ‘alter system archive log current’;
backup
format ‘/tmp/20xx0x0x/%d_CTL_s%s_p%p’
(current controlfile);
sql ‘alter system archive log current’;
backup archivelog
from time ‘SYSDATE-1’ until time ‘SYSDATE’;
}
rman target sys/xxxxxx@orcl3 auxiliary /
rman
connect target sys/xxxxxxx@orcl5
connect auxiliary /
run{
allocate channel c1 device type disk format ‘/tmp/20xx0x0x/%d_c1_INCR_0_s%s_p%p’;
allocate channel c2 device type disk format ‘/tmp/20xx0x0x/%d_c2_INCR_0_s%s_p%p’;
allocate auxiliary channel t1 type disk;
allocate auxiliary channel t2 type disk;
set until sequence 148;
duplicate target database to orcl2;
}
exit;
#########RAC redlog#####
alter database add logfile thread 2 group 5 (‘+ENV4_xxxxx4_FLASH/xxxxx4/redo/redo_5a.log’,‘+ENV4_xxxxx4_FLASH/xxxxx4/redo/redo_5b.log’) size 512m;
alter database add logfile thread 2 group 6 (‘+ENV4_xxxxx4_FLASH/xxxxx4/redo/redo_6a.log’,‘+ENV4_xxxxx4_FLASH/xxxxx4/redo/redo_6b.log’) size 512m;