1.首先:oracle实验第一种:手工联机全库备份,备份周期:每周做全库备份,每天做增量备份。
第一步:开启归档模式后,做全库备份第二步:查看数据文件的所有信息,因为生产环境中不一定在一个目录下的第三步:cp数据文件第四步:结束备份,模拟故障第五步:恢复第二种自动化数据库备份RMAN(生产环境中常用的备份方式)选择RMAN备份的理由:①RMAN操作简单,自动化功能强②RMAN可以忽略备份后未发生改变的block,即做增量备份不管什么备份,必须在归档模式下.所以先开归档。
第一步:开启归档模式,用rman连接本地数据库第二步:用RMAN开始备份第三步:创建表模拟故障,数据库不能打开了第三步:恢复,先在RMAN 中restore恢复到备份时间点,再recover database,查日志恢复到当前。
所有的备份恢复信息都存放在控制文件中。
2.保证数据完整性的手段?Oracle数据库的完整性有三个:实体完整性、参考完整性和自定义完整性。
它的实现是通过5五个约束来完成的。
五个约束如下:主键primary key非空not null唯一unique检查check外键foreign key3.undo空间不够用怎么办(磁盘没空间)undo表空间不断扩大问题的原因:1有较大的事务量让oracle undo 自动扩展,产生过度占有磁盘空间的情况。
2有较大事务没有收缩或者没有提交所导致。
解决方法:第一步:查看还原表空间所在磁盘是否使用率过高,及linux 系统哪个磁盘处于比较空闲的状态第二步:在oracle 数据库中查看所有表空间的占用率;查询undo表空间的路径。
第三步:检查还原表空间的segment的状态的信息第四步:创建新的还原表空间第五步:.在oracle数据库中把默认的还原表空间切换成新建的还原表空间undotbs2第六步:验证当前数据库使用的还原表空间是否为新建的还原表空间第七步:等待旧的还原表空间所有的数据变成脱机状态(undo segment offline): 当undotbs1对应的回滚段均为offline 时即可删除之前的undo表空间了。
第八步:再次查看系统磁盘空间4.迁移数据数据迁移适用情况:①库从一个平台迁移到另一个平台②库升级数据迁移的类型:①表的迁移②用户的迁移③表空间的迁移exp/imp 导入导出数据。
注意:原始库和最终库的字符集必须一样现在我的实验是迁移表(即导入导出表)第一步:以scott用户创建的t1表第二步:导出表第三步:在另一台服务器上,导入表5.服务器品牌,存储品牌服务器品牌:戴尔服务器R410戴尔PowerEdge M520Cisco UCS C240 M3 2U机架式服务器曙光TC4600Oracle 推出的SuperClusterT5-8IBM System Storage DS3500IBM System x3650 M4存储服务器:浪潮英信SA5212H2IBM System x3620 M36.优化手段*********常用的优化分析工具有AWR和OEM⑴Sql语句的优化:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及列上建立索引2.应尽量避免在where 子句中使用or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描3.任何地方都不要使用select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段4.索引并不是越多越好,索引固然可以提高相应的select 的效率,但同时也降低了insert 及update 的效率,因为insert 或update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。
一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要5. A. 字符级的比较: 当前被执行的语句和共享池中的语句必须完全相同.B. 两个语句所指的对象必须完全相同C两个sql语句中必须使用相同的绑定变量D.选择最有效率的表名顺序G.使用decode函数例如:select count(decode(性别,男,1,null)),count(decode(性别,女,1,null)) from 表H.用truncate 替换delete,尽量多的使用commitI用union/union all 替换or(适用于索引列)⑵选择合适的ORACLE优化器a.RULE (基于规则)b. COST (基于成本)c. CHOOSE (选择性)ALL_ROWS:是一种基于成本的优化器,它将选择一种在最短时间内返回所有数据的执行计划⑶缓冲区高速缓存的调整用户进程所存取的所有数据都是经过缓冲区高速缓存来存取,所以该部分的命中率,对性能至关重要,库缓冲区中包含私用和共享SQL和PL/SQL区,通过比较库缓冲区的命中率决定它的大小。
7,你编写过什么样的存储过程,触发器自己写的门店订货系统存储过程:create or replace procedure pro_dd(dd_hh in varchar2,dd_dh in varchar2,dd_sl in int)asvar_ddje int:=0;var_ddsl int:=0;beginif dd_hh in (select hh from kucun) thenif dd_sl <= (select kcsl from kucun where dd_hh=(select hh from kucun))update xiaoshou set ddsl=ddsl+dd_sl where dd_hh=hh;dbms_output.put_line('dingdian chenggong!');update kucun set kcsl=kcsl-ddsl where dd_hh=hh;dbms_output.put_line('dingdanchenggong!');commit;else dbms_output.put_line('mei you huo le');rollback;else dbms_output.put_line('mei you gai lei huo wu');rollback;end if;end if;end;/触发器实例是上课的实例执行过程如下:8.你编写过什么样的脚本查看表空间的名称及大小的脚本9.监控到内存突然突增10G,怎么解决问题分析:可能有很多很长时间占用数据库的操作,或者打开的连接一直没有关或者是执行一个特别大的sql语句,10.大表的维护方法***********在网上查的(1)分区处理; 分区就是将大数据量表分割成相对较小、可独立管理的部分(2)分表处理:分表处理就是将大数据量表分解为工作表和历史表来处理。
工作表:用于存放本年度数据;历史表:用于存放历史数据。
每年将转结后的工作表数据导入历史表中,并对工作表进行清空。
11.内存结构Oracle内存结构有两部分内存区域组成:❝System Global Area (SGA):oracle启动时自动分配,SGA为oracle实例的基本组件,内容共享❝Program Global Area (PGA):为server process进程分配内存,不属于oracle实例的基本组件,内容独占12.锁问题的解决方法(网上搜的)"ORA-00054: 资源正忙, 但指定以NOWAIT 方式获取资源, 或者超时失效"的快速解决方法今天在导一个临时表的数据,导出完成后准备清空数据,执行truncate命令时,遇到如下问题:ORA-00054: 资源正忙, 但指定以NOWAIT 方式获取资源, 或者超时失效解决方法如下:=========================================================SQL> select session_id from v$locked_object;SESSION_ID----------56SQL> SELECT sid, serial#, username, osuser FROM v$session where sid = 142;SID SERIAL# USERNAME OSUSER---------- ---------- ------------------------------ ------------------------------56 2088 ghb fySQL> ALTER SYSTEM KILL SESSION '56,2088';System altered执行完上述命令后,提示会话断开。
重新连接数据库,然后执行truncate操作,成功!查询锁方法以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句:select ername,t2.sid,t2.serial#,t2.logon_time fromv$locked_object t1,v$session t2 where t1.session_id=t2.sidorder by t2.logon_time如果有长期出现的一列,可能是没有释放的锁。
13.索引的建立条件(网上搜的)一、位图索引的使用1、在基数小的字段上利用位图索引可以提高查询的效率2、在Where限制条件中,若多次采用AND或者OR条件时,也建议采用位图索引3、需要用到NULL作为查询的限制条件。
因为标准查询一般情况下,会忽略所有的NULL值列二、创建索引的限制条件1、不要对一些记录内容比较少的表建立索引。
无论是表上的,还是字段上,都不要建立索引。
2、若表中内容比较大,但这个表基本上不怎么查询时,则只需在表上建立索引,而不需要在字段上建立索引。
3、在一些NULL字段上,如果该字段经常作为查询条件则需要建索引,且建议建位图索引三、多表连接查询的索引设计多表关联利用Join语句关联查询时,为了提高数据库的查询效率,用来关联的字段,最好能够建立索引。
四、在更新速度与查询速度间寻求平衡点一般来说,当某个表多数用来查询、更新比较不则要多多采用索引。
当某个表记录更新居主导,查询比较少则不要建立太多的索引。
在实际工作中,若某个表频繁的被视图所调用,则最好就好设置比较多的索引。
14.监控方法*******第一种:使用监控工具AWR进行监控分析监控内容有:①TOP SESSION信息②SESSION等待事件③性能消耗靠前的SQL信息④等待事件活动信息DB Time不包括Oracle后台进程消耗的时间。