【Oracle】数据库热备

1. 创建脚本 

注:脚本第三行中的DB_NAME,需要改为自己的数据库名(show parameter name;); 
oracle用户下新建目录:/home/oracle/DB_NAME/hot_bak(DB_NAME为自己的数据库名字) 
[oracle@localhost ~]$ vi hot.sql

set feedback off pagesize 0 heading off verify off linesize 100 trimspool on echo off time off timing off
define DB_NAME=lgr
define BKDIR='/home/oracle/&DB_NAME/hot_bak'
define BKSQL='/home/oracle/&DB_NAME/hot_cmd.sql'
define SPO='&BKDIR/hot_bak.lst'
prompt ***spooling to &bakscp
set serveroutput on
spool &BKSQL
prompt spool &SPO
prompt alter system switch logfile;;
declare
   cursor cur_tablespace is
      select tablespace_name from dba_tablespaces where status <>'READ ONLY' and contents  not like '%TEMP%';
   cursor  cur_datafile (tn varchar2) is
      select file_name from dba_data_files where tablespace_name=tn;
begin
   for ct in cur_tablespace loop
      dbms_output.put_line('alter tablespace '||ct.tablespace_name ||' begin backup; ');
   for cd in cur_datafile(ct.tablespace_name) loop
      dbms_output.put_line('host cp '||cd.file_name||' &BKDIR');
   end loop;
      dbms_output.put_line('alter tablespace '||ct.tablespace_name||' end backup;');
   end loop;
end;
/
prompt archive log list;;
prompt spool off;;
spool off;
@&BKSQL

2. 运行脚本

SYS@LGR> @/home/oracle/hot.sql
Enter value for bakscp: hot
***spooling to hot
spool /home/oracle/lgr/hot_bak/hot_bak.lst
alter system switch logfile;
alter tablespace SYSTEM begin backup;
host cp /u01/app/oracle/oradata/lgr/system01.dbf /home/oracle/lgr/hot_bak
alter tablespace SYSTEM end backup;
alter tablespace SYSAUX begin backup;
host cp /u01/app/oracle/oradata/lgr/sysaux01.dbf /home/oracle/lgr/hot_bak
alter tablespace SYSAUX end backup;
alter tablespace USERS begin backup;
host cp /u01/app/oracle/oradata/lgr/users01.dbf /home/oracle/lgr/hot_bak
alter tablespace USERS end backup;

alter tablespace TS_IDX begin backup;
host cp /u01/app/oracle/oradata/lgr/ts_idx02.dbf /home/oracle/lgr/hot_bak
host cp /u01/app/oracle/oradata/lgr/ts1 /home/oracle/lgr/hot_bak
alter tablespace TS_IDX end backup;
alter tablespace TS_USERS begin backup;
host cp /u01/app/oracle/oradata/lgr/ts2 /home/oracle/lgr/hot_bak
alter tablespace TS_USERS end backup;
alter tablespace UNDOTBS2 begin backup;
host cp /u01/app/oracle/oradata/lgr/undotbs02.dbf /home/oracle/lgr/hot_bak
alter tablespace UNDOTBS2 end backup;
archive log list;
spool off;

Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oracle/oradata/lgr/
Oldest online log sequence     33
Next log sequence to archive   34
Current log sequence           34

3. 查看备份

[oracle@localhost lgr]$ cd /home/oracle/lgr/hot_bak/
[oracle@localhost hot_bak]$ ll
total 1721068
-rw-r--r-- 1 oracle oinstall        252 Dec 12 23:45 hot_bak.lst
-rw-r----- 1 oracle oinstall  340795392 Dec 12 23:44 sysaux01.dbf
-rw-r----- 1 oracle oinstall 1073750016 Dec 12 23:44 system01.dbf
-rw-r----- 1 oracle oinstall   41951232 Dec 12 23:44 ts1
-rw-r----- 1 oracle oinstall  104865792 Dec 12 23:45 ts2
-rw-r----- 1 oracle oinstall   41951232 Dec 12 23:44 ts_idx02.dbf
-rw-r----- 1 oracle oinstall  104865792 Dec 12 23:45 undotbs02.dbf
-rw-r----- 1 oracle oinstall   52436992 Dec 12 23:44 users01.dbf
原文地址:https://www.cnblogs.com/NextAction/p/7366705.html