LINUX下ORACLE增量备份的步骤
2015-09-23 14:01
666 查看
LINUX下ORACLE增量备份的步骤 2011-04-07 11:39:47
分类: Linux
操作步骤:
1 查看操作系统版本
[oracle@localhost ~]$ cat /proc/version
Linux version 2.6.18-164.el5 (mockbuild@x86-003.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Tue Aug 18 15:51:48 EDT 2009
2 查看数据库版本
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
3 查看数据库的名字
SQL> show parameter db_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string NACEC
4 查看归档状态
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 42
Next log sequence to archive 44
Current log sequence 44
5 设置归档日志的格式
SQL>alter system set log_archive_format='ARC%s%t%r.log' scope=spfile;
6 设置归档日志的存放路径
SQL>alter system set db_recovery_file_dest_size=2G
SQL>alter system set db_recovery_file_dest=’/dat/DBSoftware/oracle/flash_recovery_area’;
SQL>alter system set log_archive_dest_1=’location=/home/FRA’
SQL>alter system set log_archive_dest_10=’LOCATION=USE_DB_RECOVERY_FILE_DEST’;
SQL>shutdown immediate
SQL>startup
SQL>alter system switch logfile;
7 启动控制文件的自动备份
RMAN> configure controlfile autobackup on;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
RMAN> show controlfile autobackup;
RMAN configuration parameters are:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
8 查看是否用spfile参数文件
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
VALUE的值为空,数据库是用pfile文件启动的,如果有值,则为spfile启动
创建spfile参数文件
SQL> create spfile from pfile;
File created.
会在$oracle_home/dbs/下生成spfileSID.ora
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 88082124 bytes
Database Buffers 171966464 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /dat/DBSoftware/oracle/product/10.2.0/db_1/dbs/spfilenacec.ora
9 使用rman的冗余策略,默认为7天
RMAN> configure retention policy to recovery window of 15 days;
10 启动块更改跟踪文件
SQL>alter database enable block change tracking using file '/home/rob10gr2_block_change.fil';
11 在/home/NACEC/BackupDatabase/下创建backuplevel0.rcv和backuplevel1.rcv脚本
backuplevel0.rcv内容:
# script.:bakuplevel0.rcv
# creater:liu shiming
# date:2010/6/28
# desc:backup level0 database datafile in archive with rman
# connect database
#!/bin/bash
export ORACLE_BASE=/home/DBSoftware/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=NACEC
export PATH=/home/DBSoftware/oracle/product/10.2.0/db_1/bin:$PATH
rman target/ << EOF_RMAN
run{
allocate channel c1 type disk;
backup incremental level 0 tag 'db0' format '/home/liusm/BackupDatabase/rmanbackup/db0_%d_%T_%s' database include current controlfile;
sql'alter system archive log current';
backup filesperset 3 format '/home/liusm/BackupDatabase/rmanbackup/arch0_%d_%T_%s' archivelog all delete input;
release channel c1;
}
# end
backuplevel1.rcv内容:
# script.:bakuplevel1.rcv
# creater:liu shiming
# date:2010/6/27
# desc:backup level1 database datafile in archive with rman
# connect database
#!/bin/bash
export ORACLE_BASE=/home/DBSoftware/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=NACEC
export PATH=/home/DBSoftware/oracle/product/10.2.0/db_1/bin:$PATH
rman target/ << EOF_RMAN
run{
allocate channel c1 type disk;
backup incremental level 1 tag 'db1' format '/home/liusm/BackupDatabase/rmanbackup/db1_%d_%T_%s' database include current controlfile;
sql'alter system archive log current';
backup filesperset 3 format '/home/liusm/BackupDatabase/rmanbackup/arch1_%d_%T_%s' archivelog all delete input;
release channel c1;
}
# end
给这两个脚本授予执行的权限:
[oracle@NACEC BackupDatabase]$ chmod +x *.rcv
(注意:要试运行脚本:./backuplevel1.rcv)
12 用crontab指定执行时间
[oracle@NACEC BackupDatabase]$ crontab -e
crontab: installing new crontab
[oracle@NACEC BackupDatabase]$ crontab -l
0 1 * * 0 /home/NACEC/BackupDatabase/backuplevel0.rcv
0 1 * * 3 /home/NACEC/BackupDatabase/backuplevel0.rcv
0 1 * * 1-2 /home/NACEC/BackupDatabase/backuplevel1.rcv
0 1 * * 4-6 /home/NACEC/BackupDatabase/backuplevel1.rcv
周日和周三凌晨1:00执行0级备份,周一、二、四、五、六凌晨1:00执行1级备份
内容:
0 1 * * 0 /home/NACEC/BackupDatabase/backuplevel0.rcv
0 1 * * 3 /home/NACEC/BackupDatabase/backuplevel0.rcv
0 1 * * 1-2 /home/NACEC/BackupDatabase/backuplevel1.rcv
0 1 * * 4-6 /home/NACEC/BackupDatabase/backuplevel1.rcv
13 建立基于数据库的自动备份,使用JOB完成
begin
dbms_scheduler.create_job(
job_name=>'nacec_job0',
job_type=>'executable',
job_action=>'/dat/DBData/oradata/scripts/backuplevel0.sh',
repeat_interval=>'freq=weekly;byday=WED,SUN;byhour=01;byminute=00');
end;
/
exec dbms_scheduler.enable('nacec_job0');
begin
dbms_scheduler.create_job(
job_name=>'job1_nacec',
job_type=>'executable',
job_action=>'/dat/DBData/oradata/scripts/backuplevel1.sh',
repeat_interval=>'freq=weekly;byday=MON,TUE,THU,FRI,SAT;byhour=01;byminute=00');
end;
/
exec dbms_scheduler.enable('job1_nacec');
分类: Linux
操作步骤:
1 查看操作系统版本
[oracle@localhost ~]$ cat /proc/version
Linux version 2.6.18-164.el5 (mockbuild@x86-003.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Tue Aug 18 15:51:48 EDT 2009
2 查看数据库版本
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
3 查看数据库的名字
SQL> show parameter db_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string NACEC
4 查看归档状态
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 42
Next log sequence to archive 44
Current log sequence 44
5 设置归档日志的格式
SQL>alter system set log_archive_format='ARC%s%t%r.log' scope=spfile;
6 设置归档日志的存放路径
SQL>alter system set db_recovery_file_dest_size=2G
SQL>alter system set db_recovery_file_dest=’/dat/DBSoftware/oracle/flash_recovery_area’;
SQL>alter system set log_archive_dest_1=’location=/home/FRA’
SQL>alter system set log_archive_dest_10=’LOCATION=USE_DB_RECOVERY_FILE_DEST’;
SQL>shutdown immediate
SQL>startup
SQL>alter system switch logfile;
7 启动控制文件的自动备份
RMAN> configure controlfile autobackup on;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
RMAN> show controlfile autobackup;
RMAN configuration parameters are:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
8 查看是否用spfile参数文件
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
VALUE的值为空,数据库是用pfile文件启动的,如果有值,则为spfile启动
创建spfile参数文件
SQL> create spfile from pfile;
File created.
会在$oracle_home/dbs/下生成spfileSID.ora
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 88082124 bytes
Database Buffers 171966464 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /dat/DBSoftware/oracle/product/10.2.0/db_1/dbs/spfilenacec.ora
9 使用rman的冗余策略,默认为7天
RMAN> configure retention policy to recovery window of 15 days;
10 启动块更改跟踪文件
SQL>alter database enable block change tracking using file '/home/rob10gr2_block_change.fil';
11 在/home/NACEC/BackupDatabase/下创建backuplevel0.rcv和backuplevel1.rcv脚本
backuplevel0.rcv内容:
# script.:bakuplevel0.rcv
# creater:liu shiming
# date:2010/6/28
# desc:backup level0 database datafile in archive with rman
# connect database
#!/bin/bash
export ORACLE_BASE=/home/DBSoftware/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=NACEC
export PATH=/home/DBSoftware/oracle/product/10.2.0/db_1/bin:$PATH
rman target/ << EOF_RMAN
run{
allocate channel c1 type disk;
backup incremental level 0 tag 'db0' format '/home/liusm/BackupDatabase/rmanbackup/db0_%d_%T_%s' database include current controlfile;
sql'alter system archive log current';
backup filesperset 3 format '/home/liusm/BackupDatabase/rmanbackup/arch0_%d_%T_%s' archivelog all delete input;
release channel c1;
}
# end
backuplevel1.rcv内容:
# script.:bakuplevel1.rcv
# creater:liu shiming
# date:2010/6/27
# desc:backup level1 database datafile in archive with rman
# connect database
#!/bin/bash
export ORACLE_BASE=/home/DBSoftware/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=NACEC
export PATH=/home/DBSoftware/oracle/product/10.2.0/db_1/bin:$PATH
rman target/ << EOF_RMAN
run{
allocate channel c1 type disk;
backup incremental level 1 tag 'db1' format '/home/liusm/BackupDatabase/rmanbackup/db1_%d_%T_%s' database include current controlfile;
sql'alter system archive log current';
backup filesperset 3 format '/home/liusm/BackupDatabase/rmanbackup/arch1_%d_%T_%s' archivelog all delete input;
release channel c1;
}
# end
给这两个脚本授予执行的权限:
[oracle@NACEC BackupDatabase]$ chmod +x *.rcv
(注意:要试运行脚本:./backuplevel1.rcv)
12 用crontab指定执行时间
[oracle@NACEC BackupDatabase]$ crontab -e
crontab: installing new crontab
[oracle@NACEC BackupDatabase]$ crontab -l
0 1 * * 0 /home/NACEC/BackupDatabase/backuplevel0.rcv
0 1 * * 3 /home/NACEC/BackupDatabase/backuplevel0.rcv
0 1 * * 1-2 /home/NACEC/BackupDatabase/backuplevel1.rcv
0 1 * * 4-6 /home/NACEC/BackupDatabase/backuplevel1.rcv
周日和周三凌晨1:00执行0级备份,周一、二、四、五、六凌晨1:00执行1级备份
内容:
0 1 * * 0 /home/NACEC/BackupDatabase/backuplevel0.rcv
0 1 * * 3 /home/NACEC/BackupDatabase/backuplevel0.rcv
0 1 * * 1-2 /home/NACEC/BackupDatabase/backuplevel1.rcv
0 1 * * 4-6 /home/NACEC/BackupDatabase/backuplevel1.rcv
13 建立基于数据库的自动备份,使用JOB完成
begin
dbms_scheduler.create_job(
job_name=>'nacec_job0',
job_type=>'executable',
job_action=>'/dat/DBData/oradata/scripts/backuplevel0.sh',
repeat_interval=>'freq=weekly;byday=WED,SUN;byhour=01;byminute=00');
end;
/
exec dbms_scheduler.enable('nacec_job0');
begin
dbms_scheduler.create_job(
job_name=>'job1_nacec',
job_type=>'executable',
job_action=>'/dat/DBData/oradata/scripts/backuplevel1.sh',
repeat_interval=>'freq=weekly;byday=MON,TUE,THU,FRI,SAT;byhour=01;byminute=00');
end;
/
exec dbms_scheduler.enable('job1_nacec');
相关文章推荐
- 如何检查oracle的归档空间是否满了
- oracle性能优化二——操作系统优化
- Oracle数据加载之外部表的介绍
- oracle数据库段的概念
- oracle性能优化一——简介
- oracle 外部表
- oracle实例进程结构
- ORACLE 的OVER PARTITION BY
- JDBC(用Eclipse操作数据库Oracle)的基础操作集合
- Oracle 索引出现坏块处理
- Oracle数据库表空间删除与重建
- 查询oracle表的信息(表,字段,约束,索引)
- 从数据库内部表中查询得到ORACLE_BASE变量值
- Oracle10g数据库用户创建及数据导入导出操作
- oracle创建表索引
- ORACLE 根据上表不同的字段值的统计
- Oracle常用查询语句
- 数据表或记录被锁住,解锁方法,请大家指教!
- Oracle Report Viewer 以及如何查看Oracle 报表
- Oracle11G的EXP命令导出出错