xiaoziteng 2017-05-23
如下Linux环境下对Oracle单节点数据库采用文件系统情况的配置归档模式过程。首先查看数据库归档模式和磁盘使用情况,确定归档文件放到什么位置:
[oracle@gisdbserver ~]$ sqlplus / as sysdba
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /dbback/archivelog
Oldest online log sequence 92
Current log sequence 97
根据如下磁盘使用情况,在相应的目录下建立相关归档和备份目录:
[root@gisdbserver ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_gisdbserver-lv_root 99G 3.8G 90G 4% /
tmpfs 16G 76K 16G 1% /dev/shm
/dev/sda2 485M 39M 421M 9% /boot
/dev/sda1 200M 260K 200M 1% /boot/efi
/dev/mapper/vg_gisdbserver-LogVol03 481G 198M 457G 1% /dbback
/dev/mapper/vg_gisdbserver-LogVol04 407G 9.3G 377G 3% /home
/dev/mapper/vg_gisdbserver-LogVol02 99G 4.5G 89G 5% /opt
/dev/sdb 441G 72G 347G 18% /oradata
创建相关归档日志存放目录:
[root@gisdbserver ~]# cd /dbback/
[root@gisdbserver dbback]# mkdir archivelog
[root@gisdbserver dbback]# chown -R oracle:oinstall archivelog/
[root@gisdbserver dbback]# mkdir rman
[root@gisdbserver dbback]# chown oracle:oinstall rman/
[root@gisdbserver rman]# mkdir fullback
[root@gisdbserver rman]# mkdir archiveback
[root@gisdbserver rman]# chown oracle:oinstall archiveback/
[root@gisdbserver rman]# chown oracle:oinstall fullback/
登录数据库指定归档存放目录:
[oracle@gisdbserver ~]$ sqlplus / as sysdba
SQL> alter system set log_archive_dest_1='location=/dbback/archivelog';
System altered.
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string location=/dbback/archivelog
要将非归档数据库模式改为归档模式,需要在mount状态下执行alter database archivelog命令才行,如下:
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /dbback/archivelog
Oldest online log sequence 92
Current log sequence 97
SQL> alter database archivelog;
alter database archivelog
*
ERROR at line 1:
ORA-01126: database must be mounted in this instance and not open in any
instance
因此需要在合适的时间关闭数据库,重新启动到mount状态下才能改变为归档模式。
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
要开启rman备份,需要对配置rman相关的一些参数,具体如下:
oracle@gisdbserver ~]$ rman target /
RMAN> backup DATABASE include CURRENT controlfile format '/dbback/rman/fullback/data_%d_%T_%s_%p' plus archivelog format '+/dbback/rman/archiveback/arch_%d_%T_%s';
以上语句也可以通过linux的crontab 和 bash脚本方式进行自动化运行。
run{
DELETE NOPROMPT expired archivelog ALL;
allocate channel d1 TYPE disk maxpiecesize=30G;
allocate channel d2 TYPE disk maxpiecesize=30G;
backup DATABASE include CURRENT controlfile format '/dbback/rman/fullback/data_%d_%T_%s_%p' plus archivelog format '+/dbback/rman/archiveback/arch_%d_%T_%s';
release channel d1;
release channel d2;
crosscheck backup;
DELETE noprompt obsolete REDUNDANCY 1;
}