Oracle 11g 冷备和热备

经过手工管理数据库备份的方式一般是在对数据库进行文件方面的操做,这个过程须要管理员全面参与而且手工完成。与使用RMAN不一样的是手工管理再也不彻底依赖系统定义的参数进行配置。sql


手工冷备步骤数据库

在彻底关闭数据库的状况下,咱们能够经过拷贝数据库的数据文件,控制文件和重作日志文件来完整的备份数据库。安全

登陆数据库:bash

# sqlplus sys as sysdba


首先查看文件位置:oracle

SQL> select file_name from dba_data_files;
SQL> select name from v$controlfile;
SQL> select group#,member,status from v$logfile;

安全关闭数据库:app

SQL> shutdown immediate;

而后依次建立datafile,controlfile, redofile三个备份目录,将对应文件一次拷贝到这三个目录便可。ide

对数据库恢复也只须要将备份的数据拷贝到原来的位置,而后启动数据库便可。spa


手工热备步骤日志

在使用联机热备功能的时候须要将数据置于归档模式.进程

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     27
Next log sequence to archive   29
Current log sequence	       29
SQL>

显示处于开启状态。查看进程状态正常:

[root@temp-test ~]# ps -ef|grep arc
oracle    8724     1  0 Nov06 ?        00:00:02 ora_arc0_orcl
oracle    8726     1  0 Nov06 ?        00:00:04 ora_arc1_orcl
oracle    8728     1  0 Nov06 ?        00:00:02 ora_arc2_orcl
oracle    8730     1  0 Nov06 ?        00:00:02 ora_arc3_orcl

设置归档日志文件的冗余,保证数据安全:

查看归档日志相关参数:

SQL> show parameter log_archive_dest;

新建三个目录,分别存放三分相同的归档日志做为冗余备份:

[oracle@temp-test ~]$ mkdir -p /data/app/backup/arc{1..3} 
[oracle@temp-test ~]$ ll /data/app/backup/
total 0
drwxr-xr-x 2 oracle oinstall 6 Nov  7 13:44 arc1
drwxr-xr-x 2 oracle oinstall 6 Nov  7 13:44 arc2
drwxr-xr-x 2 oracle oinstall 6 Nov  7 13:44 arc3

设置3个归档目录:

SQL> alter system set log_archive_dest_1='location=/data/app/backup/arc1 mandatory';
System altered.
SQL> alter system set log_archive_dest_2='location=/data/app/backup/arc2 optional';
System altered.
SQL> alter system set log_archive_dest_3='location=/data/app/backup/arc3';
System altered.

查看设置信息:

SQL> show parameter log_archive;

mandatory表示强制日志归档的目录,要求日志数据必须归档成功后才能够切换,optional是可选的归档不成功也能够切换日志,若是optional目录损坏,不影响日志归档。

执行日志切换,归档文件会保存到指定的目录中:

SQL> alter system switch logfile;
System altered.

生成三份相同的归档文件:

[oracle@temp-test backup]$ tree /data/app/backup/
/data/app/backup/
├── arc1
│   └── 1_29_959021937.dbf
├── arc2
│   └── 1_29_959021937.dbf
└── arc3
    └── 1_29_959021937.dbf

设置最少必须归档成功的日志数量,必须成功两份:

SQL> alter system set log_archive_min_succeed_dest=2;
System altered.
SQL> show parameter log_archive_min_succeed_Dest;
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_min_succeed_dest     integer 2

因为总共只有三个冗余文件,若是设置的数量大于3会报错。

备份数据,查看表空间对应的数据文件:

SQL> col file_name for a47
SQL> col tablespace_name for a10
SQL> select file_id,file_name,tablespace_name from dba_data_files;
   FILE_ID FILE_NAME   TABLESPACE
---------- ----------------------------------------------- ----------
 4 /data/app/oracle/oradata/orcl/users01.dbf   USERS
 3 /data/app/oracle/oradata/orcl/undotbs01.dbf   UNDOTBS1
 2 /data/app/oracle/oradata/orcl/sysaux01.dbf   SYSAUX
 1 /data/app/oracle/oradata/orcl/system01.dbf   SYSTEM
 5 /data/app/oracle/oradata/orcl/example01.dbf   EXAMPLE

这里咱们备份USER表,ID为4,将表置于备份模式:

SQL> alter tablespace users begin backup;
Tablespace altered.

查看备份状态,ID为4的user表显示为active:

SQL> select * from v$backup;
     FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------
 1 NOT ACTIVE       0
 2 NOT ACTIVE       0
 3 NOT ACTIVE       0
 4 ACTIVE 1529624 07-NOV-17
 5 NOT ACTIVE       0

而后直接使用系统的cp命令,拷贝对应目录下的数据文件,到备份目录便可。而后结束备份模式:

SQL> alter tablespace users end backup;
Tablespace altered.
SQL> select * from v$backup;
     FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------
 1 NOT ACTIVE       0
 2 NOT ACTIVE       0
 3 NOT ACTIVE       0
 4 NOT ACTIVE 1529624 07-NOV-17
 5 NOT ACTIVE       0

将当前重作日志信息写入归档日志文件:

SQL> alter system archive log current;
System altered.
# 一段时间后,检查点恢复一致
SQL> select checkpoint_change#, file# from v$datafile;
CHECKPOINT_CHANGE#FILE#
------------------ ----------
   1530603    1
   1530603    2
   1530603    3
   1530603    4
   1530603    5
相关文章
相关标签/搜索