一、连接Oracle
1、Oracle建立连接的过程
无论是通过sqlplus命令连接还是第三方工具远程连接到Oracle,都需要建立客户端与服务端之间的连接。Oracle Net Service组件就是为了用于建立连接的,这个组件在安装Oracle时已经安装。
1)在服务器端有一个listener监听器,监听着来自客户端的连接请求
2)在客户端输入用户名、口令、网络服务名以发送连接请求
3)客户端查看本地的tnsnames.ora文件,将网络服务名映射为包含Oracle服务器地址监听端口和全局数据库名的连接描述符
4)客户端根据描述符定位监听器,并通过网络将连接信息发送给监听器
5)监听器查询监听配置文件listener.ora,找出将要连接到的服务器
6)客户端和服务器端开始通信
2、配置监听器的三种方式
1)netca
2)netmgr
3)手动修改配置文件$ORACLE_HOME/network/admin/listener.ora。
然后执行lsnrctl start listener1启动该监听器
3、监听启动和数据库实例启动的顺序
1)建议先启动监听器,再启动数据库实例。
2)如果选择先启动实例,再启动监听器则需要等待一段时间。或者修改listener.ora文件
4、客户端OraClient Lite上的配置
修改$/oracle/product/11.2/client_lite/network/admin/tnsnames.ora文件
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(port = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = orcl)
)
)
注意HOST处填写Oracle数据库的主机名。
二、控制文件管理
1、控制文件在启动时的作用
1)记录了数据库的名称、创建时间
2)记录了数据文件的名称、位置、联机、脱机状态
3)包含重做日志文件的名称、位置、归档信息
4)所有的表空间信息、当前的日志序号、最近检查点信息
2、查看控制文件信息
select name from v$controlfile;或者
select name,value from v$parameter where name=’control_files’;
3、查看控制文件内容,利用数据字典v$controlfile_record_section查看
select type,record_size,records_total,records_used from v$controlfile_reco
rd_section;
4、存储多重控制文件
1)进入数据库
alter system set
control_files=’/opt/oracle/oradata/orcl/control01.ctl’,
’/opt/oracle/oradata/orcl/control02.ctl’,
’/opt/oracle/oradata/orcl/control03.ctl’,
scope=spfile;
2)关闭数据库
shutdown immediate
3)将原本存在control01.ctl复制,生成control02.ctl和control03.ctl(注意路径应当预配置相同)
4)再次启动实例
startup
5、恢复控制文件
假如控制文件control01.ctl和control02.ctl损坏了,这时候可以通过control03.ctl恢复数据库。
alter system set control_files=’/opt/oracle/oradata/orcl/control03.ctl’ scope=spfile;
三、重做日志文件管理
1、起因:重做日志文件也成为联机重做日志文件,其作用是为了数据恢复。为了提高写数据的效率,并不是一有数据变化,就立即把数据写入到数据文件中。频繁的写入到读取磁盘的数据文件会使得系统效率变差,所以要等到数据缓冲区达到一定数据量的时候才进行写入。但是这种情况面临着一个问题,就是当数据还在缓冲区,没有写入到数据文件中时,服务器发生宕机,那么缓冲区的数据将会丢失。
解决:重做日志文件将发生变化的数据首先保存起来。
2、重做日志文件结构:
规定至少存在两个重做日志文件组,每个组中有一个或者多个日志组成员。当一个重做日志文件组写满日志以后会写到另一个组,循环使用日志文件组。
3、查看重做日志成员信息
select group#,sequence#,bytes,members,archived,status from v$log;或者
select group#,status,type,member from v$logfile;
4、创建重做日志文件组
首先在root用户下:
mkdir -p /backup/orcl/log/
使用oracle用户登陆oracle:
alter database add logfile group 4
(‘/opt/oracle/oradata/orcl/redo04a.log’,
/backup/orcl/log/redo04a.log’) size 10m;
删除日志文件组
alter database drop logfile group 4;
四、归档日志文件
1、Oracle数据库运行方式分为归档和非归档方式。顾名思义,在非归档模式下,日志成员切换会直接覆盖以前的重做日志文件;归档模式则会将这部分重做日志文件进行归档后再切换。但是归档模式会对数据库运行带来一定的性能问题,默认情况下,Oracle采用非归档模式
2、配置归档日志
1)查询当前归档模式
archive log list;
2)关闭数据库实例到mount状态
shutdown immediate;
startup mount;
3)设置归档模式
alter database archivelog;
五、数据字典
1、数据字典的含义:数据字典是Oracle存储关键信息的表和视图的集合。Oracle进程在sys用户模式中维护这些表和视图,也就是说数据字典的所有者为sys,这些字典数据存放于system表空间中。数据字典在安装Oracle时已经默认安装,没有数据字典Oracle无法正常工作
2、数据字典由数据字典表和数据字典视图组成。数据字典表的数据是Oracle系统存放的系统数据,为了方便区分,数据字典表名称采用’$’结尾;Oracle对这些数据字典表都分别建立了用户视图,方便查询。
1)数据字典视图
·静态数据字典视图:主要分为USER*、ALL和DBA_。
·常用的静态数据字典视图
user_tables :当前用户下的所有表的信息
user_indexes :当前用户下的所有索引
user_views :当前用户下的所有视图
user_objects :当前用户下的数据库对象(包括表、视图、触发器、索引、存储过程等)
user_users :当前用户的信息
all_objects :当前用户可以访问的所有表、过程等
2)动态数据字典视图--“v$视图”
这些动态数据字典视图会不断的更新变化,动态的显示当前数据库的活动,动态数据字典视图的信息都来自于内存和控制文件。
常用举例:
·select from v$fixed_table where name like ‘v$log%’;用于查询和日志文件相关的信息·select group#,members,archived,status from v$log;查询日志组信息·select from v$logfile;
查询重做日志文件信息