实验:
一、控制文件的多路复用:添加多份控制文件,对控制文件进行冗余。
备注:11g的fs建库下控制文件默认两个,asm建库下控制文件默认一个。
第一步:修改参数:
1、查看控制文件情况:
SQL> show parameter control;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string +DATADG/asmdb/controlfile/current.256.1069255659 #control files指定控制文件位置
control_management_pack_access string DIAGNOSTIC+TUNING
2、对参数文件修改,在文件系统中添加一个控制文件:
SQL> alter system set control_files='+DATADG/asmdb/controlfile/current.256.1069255659','/tmp/control02.ctl' scope=spfile;
System altered.
第二步:增加控制文件数量:
1、fsdb数据库:
cp /oradata/fsdb/control01.ctl /tmp/control02.ctl
2、asmdb数据库:
[grid@oracle ~]$ export ORACLE_SID=+ASM
[grid@oracle ~]$ asmcmd
ASMCMD> cd datadg
ASMCMD> cd asmdb
ASMCMD> cd controlfile
ASMCMD> ls
Current.256.1069255659
ASMCMD> cp Current.256.1069255659 /tmp/control02.ctl
copying +datadg/asmdb/controlfile/Current.256.1069255659 -> /tmp/control02.ctl
[oracle@oracle tmp]$ ll
total 965812
-rw-r----- 1 grid oinstall 9748480 Apr 9 17:14 control02.ctl
第三步:产生检查点:
执行多次,产生检查点,因为检查点会写入控制文件。
SQL> alter system checkpoint;
System altered.
SQL> /
System altered.
第四步重启数据库:因为第一步修改了spfile,必须重启数据库才能生效。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started. #说明数据库处于nomount阶段,参数文件可用。
Total System Global Area 830930944 bytes
Fixed Size 2232920 bytes
Variable Size 494931368 bytes
Database Buffers 331350016 bytes
Redo Buffers 2416640 bytes
ORA-00214: control file
'+DATADG/asmdb/controlfile/current.256.106925ent.256.1069255659' version 259
inconsistent with file '/tmp/control02.ctl' version 246 #此错误是因为当前控制文件不一致,数据库无法使用控制文件,进而无法mount。
#总结:我们在数据库运行期间copy的控制文件是有问题的,因为数据库在运行期间cp文件不能保证数据一致性。所以,以后对数据库进行备份不能进行简单的cp操作,后期需要学习备份工作,在备份数据的同时保证数据的一致性。
第五步:数据库关闭后,再进行cp操作,就能保证数据的一致性。
1、再重新复制一次控制文件:
ASMCMD> pwd
+datadg/asmdb/controlfile
ASMCMD> ls
Current.256.1069255659
ASMCMD> cp Current.256.1069255659 /tmp/control02.ctl
copying +datadg/asmdb/controlfile/Current.256.1069255659 -> /tmp/control02.ctl
2、对control02.ctl文件进行授权:
[root@oracle tmp]# chown oracle.oinstall control02.ctl
[root@oracle tmp]# ll
total 965812
-rw-r----- 1 oracle oinstall 9748480 Apr 9 17:44 control02.ctl
3、开启数据库并验证控制文件:
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string +DATADG/asmdb/controlfile/curr
ent.256.106925ent.256.10692556
59, /tmp/control02.ctl
总结:正常流程如下:
1、alter system set control_files='1','2' scope=spfile;
2、shutdown immediate;
3、cp control01 control02;
4、startup。
二、手动开归档:
定点备份:保证数据块安全;
归档日志文件:部分redo log安全;
redo log file:部分redo log安全。
1、查看当前归档状态:
SQL> archive log list;
Database log mode No Archive Mode #归档未开启
Automatic archival Disabled
Archive destination /u01/app/oracle/product/11.2/db_1/dbs/arch
Oldest online log sequence 13
Current log sequence 15
2、归档未开启:设置归档文件存放路径。
SQL> show parameter dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 0
diagnostic_dest string /u01/app/oracle
log_archive_dest string
log_archive_dest_1 string #归档文件存放路径,没设置即为null。
#备注:归档存放路径可以是本地,也可以基于网络存放到其他主机。
3、修改归档文件路径:
修改归档文件目录并且创建对应目录:
SQL> alter system set log_archive_dest_1='location=/home/oracle/arch';
System altered.
SQL> ! mkdir /home/oracle/arch
SQL> ! ls /home/oracle
arch
查看归档日志文件格式:
SQL> show parameter format;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_format string %t_%s_%r.dbf #用于定义生成的归档文件名的格式。
nls_date_format string
nls_time_format string
nls_time_tz_format string
nls_timestamp_format string
nls_timestamp_tz_format string
permit_92_wrap_format boolean TRUE
star_transformation_enabled string FALSE
4、开启归档:开启归档需要在mount阶段完成。
SQL> shutdown immediate #数据库一致性关闭
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 830930944 bytes
Fixed Size 2232920 bytes
Variable Size 494931368 bytes
Database Buffers 331350016 bytes
Redo Buffers 2416640 bytes
Database mounted.
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter database archivelog; #开启归档
Database altered.
SQL> alter database open;
Database altered.
5、切换日志:切换日志,使redo log写入归档日志。
1、检查归档日志路径下为空:
[oracle@oracle ~]$ cd arch/
[oracle@oracle arch]$ ll
total 0
2、切换重做日志文件:
SQL> alter system switch logfile;
System altered.
3、再查看归档日志:
[oracle@oracle arch]$ ls
1_15_1069255651.dbf
4、查看当前归档状态:
SQL> archive log list;
Database log mode Archive Mode #归档已开启
Automatic archival Enabled
Archive destination /home/oracle/arch #归档地址
Oldest online log sequence 14
Next log sequence to archive 16
Current log sequence 16
SQL> show parameter desc;
SQL> show parameter dest;
SQL> show parameter dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string location=/home/oracle/arch #归档存放在本地位置
log_archive_dest_10 string
网友评论