千家信息网

Oracle配置管理

发表于:2024-09-26 作者:千家信息网编辑
千家信息网最后更新 2024年09月26日,博文结构配置和连接数据库控住文件的管理日志文件的管理归档日志的管理数据字典一.配置数据库在实际生产环境中, Oracle 一般都是通过远程方式进行管理及维护, Oracle 远程操作除了对客户端工具的
千家信息网最后更新 2024年09月26日Oracle配置管理

博文结构
配置和连接数据库
控住文件的管理
日志文件的管理
归档日志的管理
数据字典

一.配置数据库

在实际生产环境中, Oracle 一般都是通过远程方式进行管理及维护, Oracle 远程操作除了对客户端工具的使用外,它的通信原理也是需要掌握的。

  • Oracle客户端与服务器端

无论是使用SQL*Plus工具还是使用第三方工具连接远程数据库,都必须建立客户端与服务器端
之间的连接。Oracle 提供了Oracle Net Services 组件,用于方便地配置和管理网络连接。这些组件不
需要单独安装,在安装Oracle服务器或客户端软件时会自动安装。

开启监听[oracle@Oracle ~] $ lsnrctl start

1.Oracle Net协议
如图所示,Oracle 通过Oracle Net协议实现客户端与服务器端的连接及数据传递。Oracle Net
是同时驻留在Oracle服务器端和客户端上的一一个软件层,它封装了TCP/IP 协议,负责建立和维护客
户端应用程序到数据库服务器的连接。

2.客户端与服务器端的连接过程

在分析客户端与服务器端的连接机制之前,先要了解两个概念:一个是Oracle Net监听器,另一个是Oracle网络服务名。

案例:客户机远程连接oracle

[root@oracle ~]# systemctl stop firewalld[root@oracle ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33[root@oracle ~]# systemctl restart network[root@oracle ~]# xhost +access control disabled, clients can connect from any host[root@oracle ~]# su - oracle[oracle@oracle root]$ export DISPLAY=:0.0[oracle@oracle ~]$ lsnrctl start[oracle@oracle ~]$ sqlplus / as sysdbaSQL> select instance_name from v$instance;
[oracle@oracle admin]$ pwd/u01/app/oracle/product/12.2.0/dbhome_1/network/admin[oracle@oracle admin]$ vim tnsnames.ora   \\gaiyi改一下地址

客户端配置如下:

下载oracle客户端软件

默认一直下一步

点开编辑文件

配置如下

ORCL =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))    )    (CONNECT_DATA =      (SERVER = DEDICATED)    (SID=orcl)    )  )

保存

打开连接

二.管理控制文件

控制文件在Oracle 数据库中有非常重要的作用,若控制文件损坏、丢失,将导致数据库无法启动,所以合理地管理维护控制文件,对于DBA来说至关重要。

  • 控制文件在数据库启动中的作用

对于DBA来讲,Oracle数据库控制文件是非常重要的文件。它是在数据库创建时自动生成的二进制文件,其中记录了数据库的状态信息,主要包括以下内容:

数据库的名称, 一-个控制文件只能属于一个数据库。数据库的创建 时间。数据文件的名称、位置、联机、脱机状态信息。重做日志文件的名称、 位置及归档信息。所有表空间信息。当前日 志序列号。最近检查点信息。

控制文件在数据库启动的MOUNT阶段被读取。数据库启动与控制文件的关系如所示。

案例:备份恢复数据库

  • 获得控制文件信息
SQL> select name from v$controlfile;NAME--------------------------------------------------------------------------------/u01/app/oracle/oradata/orcl/control01.ctl/u01/app/oracle/oradata/orcl/control02.ctlSQL> 
  • 获取控制文件中包含的内容

SQL> select type,record_size,records_total,records_used from v$controlfile_record_section;

  • 创建多路复用控制文件
[oracle@rhel1 ~]$ su - root[root@oracle ~]# mkdir -p /backup1/control[root@oracle ~]# mkdir -p /backup2/control[root@oracle ~]# chown -R oracle /backup1[root@oracle ~]# chown -R oracle /backup2
  • 在数据库仍然打开时,修改spfile中的contro_files参数
SQL> alter system set  2  control_files=  3   '/u01/app/oracle/oradata/orcl/control01.ctl',  4  '/backup1/control/control02.ctl',  5  '/backup2/control/control03.ctl' scope=spfile;系统已更改。

关闭数据库

SQL> shutdown immediate;

使用操作系统命令将文件复制到新的位置

SQL> quit;[oracle@rhel1 ~]$cp /u01/app/oracle/oradata/orcl/control01.ctl   /backup1/control/control02.ctl[oracle@rhel1 ~]$ cp /u01/app/oracle/oradata/orcl/control01.ctl   /backup2/control/control03.ctl

重新启动数据库

[oracle@rhel1 ~]$ sqlplus sys/123456 as sysdba
SQL>startup

4.备份与恢复控制文件
直接用现有的完好的控制文件覆盖损坏或丢失的控制文件
模拟故障,停止数据库,删除控制文件

sql>shutdown  immediatesql>quit$rm  -f  /badkup1/control/control02.ctl

启动数据库

sql>startup 观察现象

恢复控制文件

sql>shutdown abort;sql>quit$ cp /u01/app/oracle/oradata/orcl/control01.ctl  /backup1/control/control02.ctl

再次启动数据库

sql>startup

0