博文结构
配置和连接数据库
控住文件的管理
日志文件的管理
归档日志的管理
数据字典
一.配置数据库
在实际生产环境中, 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 sysdba
SQL> 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.ctl
SQL>
获取控制文件中包含的内容
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 immediate
sql>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