Oracle---备份(backup)

##################################################################################冷备份(offline backup) : shutdown 一停二拷三启动mkdir -p /home/oracle/coldbk/select 'cp -v '||name||' /home/oracle/coldb
摘要由CSDN通过智能技术生成
##################################################################################
冷备份(offline backup) : shutdown 一停二拷三启动
mkdir -p /home/oracle/coldbk/

select 'cp -v '||name||' /home/oracle/coldbk/' from
(select value name from v$parameter where name='spfile'
union all
select name from v$controlfile
union all
select name from v$datafile
union all
select member from v$logfile);

vi /home/oracle/coldbk/bk.sh
----------------------------------------------------
export ORACLE_SID=orcl
sqlplus /nolog @/home/oracle/coldbk/shut.txt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
cp -v /u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/control01.ctl /home/oracle/coldbk/
cp -v /u01/app/oracle/fast_recovery_area/orcl/control02.ctl /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/system01.dbf /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/sysaux01.dbf /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/undotbs01.dbf /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/users01.dbf /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/example01.dbf /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/redo03.log /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/redo02.log /home/oracle/coldbk/
cp -v /u01/app/oracle/oradata/orcl/redo01.log /home/oracle/coldbk/
sqlplus /nolog @/home/oracle/coldbk/start.txt
----------------------------------------------------
chmod +x /home/oracle/coldbk/bk.sh

vi /home/oracle/coldbk/shut.txt
-------------------------------
conn / as sysdba
shutdown immediate
exit
-------------------------------

vi /home/oracle/coldbk/start.txt
-------------------------------
conn / as sysdba
startup
exit
-------------------------------

测试备份脚本可行性
/home/oracle/coldbk/bk.sh

crontab -e
30 23 * * * /home/oracle/coldbk/bk.sh
##################################################################################
冷备份的异地还原:
scp /home/oracle/coldbk/* oracle@oracle2:/home/oracle/db01/
ssh oracle@oracle2
cd /home/oracle/db01/
cp orapwdb01 spfiledb01.ora $ORACLE_HOME/dbs
strings spfiledb01.ora
mkdir -p /u01/app/oracle/admin/orcl/adump
mkdir -p /u01/app/oracle/fast_recovery_area
export ORACLE_SID=db01
sqlplus / as sysdba
startup nomount
alter system set control_files=
'/home/oracle/db01/control01.ctl',
'/home/oracle/db01/control02.ctl'
scope=spfile;
startup force mount
修改数据文件、临时文件、联机日志文件的指针
select * from
(select name from v$datafile
union all
select name from v$tempfile
union all
select member from v$logfile);

set lines 300
set pages 300
select 'alter database rename file '||chr(39)||name||chr(39)||' to '||chr(39)||'/home/oracle/db01/'||substr(name,instr(name,'/',-1)+1)||chr(39)||';'
from
(select name from v$datafile
union all
select name from v$tempfile
union all
select member from v$logfile);

alter database open;
##################################################################################
vi /home/oracle/coldbk/bk.sh
-----------------------------------------------------
export ORACLE_SID=db01
sqlplus /nolog @/home/oracle/coldbk/closed_backup.sql
-----------------------------------------------------
chmod +x /home/oracle/coldbk/bk.sh

vi /home/oracle/coldbk/closed_backup.sql
---------------------------------------------------------------------
conn / as sysdba
set feedback off heading off verify off trimspool on timing off
set pagesize 0 linesize 300

define dir = '/home/oracle/coldbk/'
define bks = '/home/oracle/coldbk/offline_backup.sql'
define cpy = 'cp -v'

prompt *** Spooling script &bks ***

spool &bks replace
select '!&cpy '||value ||' &dir' from v$parameter where name='spfile';
select '!&cpy '||name  ||' &dir' from v$controlfile;
select '!&cpy '||name  ||' &dir' from v$datafile;
select '!&cpy '||member||' &dir' from v$logfile;
spool off

shutdown immediate
@&bks
startup
exit
---------------------------------------------------------------------
##################################################################################
热备份(online backup):必须运行在归档模式下
mkdir -p /home/oracle/hotbk

archive log list
shut immediate
startup mount
alter database archivelog;
alter database open;

热备份用户表空间:users
select owner,table_name from dba_tables where tablespace_name='USERS';

select count(*) from scott.ob1;

  COUNT(*)
----------
    173970

select file_id,file_name from dba_data_files where tablespace_name='USERS';

   FILE_ID
----------
FILE_NAME
----------------------------------------
     4
/u01/app/oracle/oradata/orcl/users01.dbf

进入备份状态:
alter tablespace users begin backup;

SYS> select * from v$backup;

     FILE# STATUS                   CHANGE# TIME
---------- ------------------------------------ ---------- ------------
     1 NOT ACTIVE                     0
     2 NOT ACTIVE                     0
     3 NOT ACTIVE                     0
     4 ACTIVE                   1511288 30-MAR-17
     5 NOT ACTIVE                     0

cp -v /u01/app/oracle/oradata/orcl/users01.dbf /home/oracle/hotbk/

结束备份状态:
alter tablespace users end backup;

insert into ob1 select * from ob1 where rownum<20001;
commit;

SCOTT> select count(*) from ob1;

  COUNT(*)
----------
    220000

模拟users01.dbf文件丢失:
rm -f /u01/app/oracle/oradata/orcl/users01.dbf

alter tablespace users offline;
还原数据文件:将备份的容器拷贝回控制文件指针指向的位置
cp -v /home/oracle/hotbk/users01.dbf /u01/app/oracle/oradata/orcl/users01.dbf
恢复数据文件:使用日志对备份的文件进行交易的重现
recover datafile 4;
-->auto

alter tablespace users online;

SCOTT> select count(*) from ob1;

  COUNT(*)
-----
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值