Oracle体系结构项目实验

2021-04-14  本文已影响0人  苏水的北

实验:

一、控制文件的多路复用:添加多份控制文件,对控制文件进行冗余。

备注: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

三、误修改参数文件:误修改参数文件,导致Oracle实例启动异常。

上一篇下一篇

猜你喜欢

热点阅读