一、oracle网络配置
Oracle安装完成后,服务器和客户端都需要进行网络配置才能连接,服务端配置监听,客户端配置网络服务名。
服务端通过配置文件“listener.ora”设置端口、地址、监听协议、全集数据库名称;客户端通过配置文件“tnsnames.ora”设置和服务端相同的参数,并使用sqlplus等客户端工具(sqlplus或者开发语言中oracle连接出驱动器)进行连接。
1.监听器配置(服务器端)
(1)lsnrctl命令行格式:
lsnrctl { start | stop |status | reload | set | show | help | version | change_password}
(2)监听器修改(注:需将主机IP和域名提前添加到/etc/hosts文件)
su - oracle //切换用户为oracle
vim /opt/oracle/product/11.2/db_1/network/admin/listener.ora //编辑监听端配置文件
LISTENER = //监听器名称
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(HOST = oracle.hiahia.org)(PORT = 1522))
)
)
解析:
PROTOCOL //通信协议
HOST //服务器主机名或IP
PORT //监听端口号
(3)将实例的服务描述添加到listener.ora中
SID_LIST_LISTENER = //格式:SID_LIST_监听名
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl) //实例名
(ORACLE_HOME = /opt/oracle/product/11.2/db_1) //标识服务的Oracle 主目录位置
(GLOBAL_DBNAME = abc) //全局数据库名称。在这里仅表示对外的网络连接名称,可以任意设置
)
)
su - oracle //切换到oracle用户
lsnrctl start listener //开启监听
2.网络服务器名配置(客户端)
vim /opt/oracle/product/11.2/db_1/network/admin/tnsnames.ora
验证
sqlplus sys@orcl as sysdba //@后加实例名表示连接到指定的实例
二、管理控制文件
1.作用
数据库创建的时候自动生成的二进制文件,其中记录了数据库的状态信息
其它任何用户都无法修改控制文件,只有数据库运行过程中,数据库实例可以修改控制文件中的信息
2.控制文件记录内容
数据库创建的时间及名称、一个控制文件只能属于一个数据库
数据文件的名称、位置、联机、脱机等状态信息
重做日志文件的名称、位置及归档信息
所有表空间的信息;当前日志序列号;最近检查点
3.获得控制文件的信息
方法一:
sqlplus sys as sysdba
SQL> SELECT name FROM V$CONTROLFILE;
SQL> quit;
方式二:
sqlplus sys as sysdba
SQL> SELECT name,value FROM V$PARAMETER WHEREname='control_files';
SQL> quit;
4.控制文件多路复用(控制文件存储多份)
(1)文件存储目录新建
mkdir /backup
chownoracle:oinstall /backup
(2)登陆数据库,修改control_files参数
sqlplus sys as sysdba
SQL > alter system set control_files = '/opt/oracle/oradata/orcl/control01.ctl','/opt/oracle/flash_reco
very_area/orcl/control02.ctl','/backup/control03.ctl' SCOPE=SPFILE;
SQL> shutdown immediate; //关闭数据库
SQL> quit;
cp /opt/oracle/oradata/orcl/control01.ctl /backup/control03.ctl
sqlplus sys as sysdba
SQL > startup;
SQL> select name from v$controlfile; //验证是否增加新的控制文件
5.控制文件备份
(1)什么时候备份控制文件?
在数据文件或日志文件位置信息发生变化时(如新增数据文件到表空间等),对控制文件进行备份
(2)如何备份?
SQL> ALTER DATABASEBACKUP CONTROLFILE TO '/backup/control.bkp'; //备份为二进制文件
(3)如何恢复?
6.使用Oracle 数据库的搭建流程
服务端:
客户端:
三、管理重做日志文件
1.作用
重做日志也称为联机重做日志
记录对数据库进行的更改
应多路复用以避免文件丢失
日志写进程的写入时间为:
事务提交时
日志缓冲区三分之一已满时
每隔3秒
在DBWn写入之前
注:oracle规定:1db重做日志组>=2,组内至少一个以上的成员(文件)
2.读取重做日志文件信息
SQL> SELECT group#,sequence#,bytes,members,archived,statusfrom V$LOG;
SQL> SELECT group#, status,type,member FROM V$LOGFILE;
3.重做日志文件多路复用(重做日志文件存储多份)
为了提高磁盘效率和防止重做日志文件的损坏,Oracle引入了一种重做日志结构
(1)创建重做日志文件组
SQL> ALTER DATABASE [database_name] ADD LOGFILE [GROUPgroup_number] Filename [SIZE size_integer [K\M]] [REUSE]
SQL> ALTER DATABASE ADD LOGFILE ('/opt/oracle/oradata/orcl/redo04a.log','/backup/redo04b.log')size 10M; //Oracle会为这个重做日志组自动生成一个组号,即在原有日志组号的基础上加1
(2)删除重做日志文件组
SQL> ALTER DATABASE DROP LOGFILE GROUP group_number;
SQL> ALTER DATABASE DROP LOGFILE GROUP 4;
注:
当前日志组不可删除
要删除当前日志组需要先对当前日志组进行切换
使用命令为alter system switch logfile;
活动的日志组不可删除
没有归档的日志组不可删除(前提是已运行在归档模式下)
(3)添加重做日志文件
SQL> alter database add logfile member '/backup/redo01b.log'to group 1; //日志文件组1添加新成员
(4)删除重做日志文件
SQL> alter database drop logfile member '/backup/redo01b.log'; //日志文件组1中删除/bakup/redo01b.log成员
注:
不能删除当前组的成员
如要删除则先执行强制性切换重做日志的命令:ALTER SYSTEM SWITCH LOGFILE;
活动的日志成员不可删除
没有归档的日志成员不可删除(前提是已运行在归档模式下)
当日志组中只有一个成员
4.检查点事件
(1)启动时间
每隔三秒(或更加频繁)
发生日志切换
立即选项关闭例程时
手动请求
(2)作用
使用检查点信息更新数据文件标题
使用检查点信息更新控制文件
在完成检查点向DBWn发出信号
a.日志切换就是停止写当前日志组,转而写另一个新的日志组,oracle支持手动切换和自动切换,当发生日志切换,触发ckpiont进程,将数据写入文件
b.检查点是一个事件,用于减少实例恢复的时间。当检查点发生时,会触发DBWR进程,把数据从SGA中写入到数据,同时检查点进程会更新控制文件和数据文件头部,保证数据的一致。总结:将内存中的数据写到硬盘文件中
c.检查点越频繁,实例恢复时间越短
5.日志切换
当前联机重做日志组已满时,LGWR 开始向下一个组写入
当最后一个可用联机重做日志文件已满时,LGWR 返回到第一个联机重做日志组并再次开始写入
四、管理归档日志文件
1.归档进程
可选的后台进程
为数据库设置ARCHIVELOG(归档)模式时会自动归档联机重做日志文件
保留对数据库所有更改的记录
2.归档日志文件
数据库在允许覆盖重做日志信息之前生成联机重做日志组的副本,这些副本又称为“归档日志”
(1)oracle数据库有两张运行方式
归档模式:日志切换后ARCH进程会对已经写满的重做日志文件进行归档,保存数据库做数据库做的所有更改,好处是即使数据文件损坏,也可恢复;缺点,启用后降低系统性能
非归档模式:日志在切换后直接覆盖以前日志,不产生归档日志
oracle默认使用非归档模式,在性能要求不苛刻的情况建议使用归档模式,确保数据的安全,且修改归档日志文件的位置和限制归档文件的大小
3.配置数据库归档日志步骤
查询数据库归档方式,确定当前不处于归档方式
关闭数据库并启动数据库到MOUNT状态
将数据库设置位归档模式,并验证
SQL>archive log list;
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
五、数据字典
1.数据字典的含义
数据字典是oracle存储关键信息的表和视图的集合
所有者sys用户,存放在SYSTEM表空间中
数据字典描述了实际数据是如何组织的,如一个表的创建者、创建时间、用户访问权限等
数据字典通常在oracle的安装和创建数据时创建,是oracle数据系统工作的基础,能查看,不能修改
2.数据字典的结构
数据字典分为:数据字典表和数据字典视图。数据字典不可以直接访问,视图可以访问
数据字典视图:静态性能视图和动态性能视图
静态视图分为三类:user_*(用户),ALL_*(所有),DBA_*(DBA所有)
动态视图:主要是v$视图,动态更新,反映当前实例和数据库运行状态。一般用于监控和维护数据
注:V$是动态性能视图,存在于controlfile中,数据库在mount状态下可以查询;dba是静态视图,存在于数据库中,只能在open时查询