




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle 10g 数据库数据库 培训学习笔记培训学习笔记姓名:唐晓锋EMAIL:MSN:oracle_1.数据库备份. 数据库备份是对数据库的物理结构文件,包括数据文件,日志文件和控制文件的操作系统备份,这是物理的操作系统备份方法,这种备份方法对每一个数据库来说都是必需的。操作系统备份有完全数据库及部分数据库备份,其中,部分数据库备份在数据库恢复需要数据库前一段运行时产生归档的日志的支持完全数据库备份是对构成数据库的全部数据文件、在线日志文件和控制文件的一个操作系统备份。完全数据库备份在数据库正常关闭之后进行。在数据库关闭时,构成数据库的所有文件都关闭,文件的同步号与当前检验点号一致,不存
2、在不同步问题。利用这种备份方法,在拷贝回数据库备份文件后,不需要进行数据库恢复。完全数据库备份可以备份到任何类型的存储介质上。部分数据库备份也是物理文件的操作系统微备份。不同的是,部分数据库备份可以在数据库关闭时也可以数据库运行时进行。例如,对某一个表空间中全部数据库文件备份、单个数据文件备份或控制文件备份。 部分数据库备份由于数据库文件之间存在不同步,在备份文件拷回数据库时需要实施数据库恢复,所以这种方法只可以在归档模式下使用,使用归档日志进行数据库恢复。2.数据库备份与恢复的方法。 对于Oracle数据库,备份方法可以分为物理备份与逻辑备份。根据数据库的归档方式不同。物理备份又可以分为非归
3、档的操作系统备份、归档的操作系统备份。逻辑备份使用Export工具进行备份,用Import进行逻辑恢复。3.数据库归档方式。 数据库备份与恢复方法的确定与数据库归档方式有直接关系的关系。因为如果选择通过日志进行数 据库恢复的备份方法,则数据库必需运行在归档模式下,只有归档模式下才会产生归档日志,而只有产生归档日志,数据库才可能实施恢复。参数文件(parameter file): 设置内存各项参数,指定控制文件控制文件(control file): 指定数据文件,临时文件,重做日志文件及其他控制信息数据文件(data file): 存放数据库全部数据重做日志文件(redo log file):存
4、放所有事务日志归档文件(archive log file): 重做日志文件的截断备份口令文件(password file): 对通过网络进行管理的用户进行认证警告文件(alert file): 记录数据库文件运行中主要事件的命令与结果跟踪文件(trace file): 记载后台进程遇到的重大事件信息构成数据库的8种文件类型:Oracle 10g数据库备份与恢复1 .参数文件备份与恢复。参数文件备份与恢复。参数文件名及路径:参数文件名及路径:/u01/app/oracle/admin/oracle/pfile$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora 二进制配置
5、文件$ORACLE_HOME/dbs/init$ORACLE_SID.ora 文本配置文件spfile与pfile的相互生成SQLcreate pfile from spfile;SQLcreate spfile from pfile;spfile与pfile特点spfile:二进制存储,参数修改动态生效.pfile: 文本存储,易于查看修改,修改后重启生效.SQLstartup open pfile=/u01/app/oracle/initora10.ora指点备份的参数文件启动。如果参数文件没有备份而破坏了,可以到相同的服务器上拷贝一份pfile文件到破坏的服务器上。修改参数的值便可启动到
6、nomount下。需要修改的参数有:db_name,instance_name,db_domain,service_names,control_files,db_block_size,user_dump_dest,background_dump_dest等参数2. 控制文件控制文件备份与恢复备份与恢复(1) 控制文件概述控制文件概述每个oracle数据库必须至少有一个控制文件,用于记载数据库物理结构每个oracle数据库应该至少有两个控制文件相互镜像,并存储在不同磁盘上防止磁盘失效控制文件记载信息包括:数据库名称,数据文件名称和位置,重做日志名称和位置,表空间名称,当前日志序列号,检查点信息,
7、日志历史信息.在线备份控制文件。在线备份控制文件。SQLalter database backup controlfile to /u02/oracle/control.backup;SQLalter database backup controlfile to trace;命令运行结束后,在以下目录中检测跟踪文件:/u01/app/oracle/admin/ora10/udump/*.trc(2) 查询数据库控制文件查询数据库控制文件SQLselect name,block_size,file_size_blks from v$controlfile;查看所有控制文件及大小/u01/app/
8、oracle/oradata/ora10/control01.ctl/u01/app/oracle/oradata/ora10/control02.ctl/u01/app/oracle/oradata/ora10/control03.ctlSQL select value from v$parameter where name=control_files;查看所有控制文件SQLhost ls l /u01/app/oracle/oradata/ora10/control*(3) 修改数据库控制文件修改数据库控制文件* 新增/移动一个数据库控制文件SQLselect name from v$co
9、ntrolfile;SQL create pfile from spfile 生成初参文件SQL shutdown immediate$cp control03.ctl control04.ctl 新增一个控制文件$mv control03.ctl ./controlbak.ctl 移动/更名一个控制文件$vi init$ORACLE_SID.ora 修改初参文件SQL startup pfile=$ORACLE_HOME/dbs/init$ORACLE_SID.oraSQLselect name from v$controlfile;SQL create spfile from pfile;
10、* 所有控制文件被全部破坏的恢复$ cd /u01/app/oracle/oradata/ora10$ mv *.ctl . 模拟破坏控制文件$ cp /u01/app/oracle/oradata/ora10/* ./bak/备份数据文件和日志文件,以免重建控制文件失败时数据文件和日志文件也被潜在损坏.SQLstartup open 启动失败SQLstartup nomountSQLalter system set 重新指定控制文件2 control_files=/u01/app/oracle/oradata/ora10/newcontrolfile01,3 /u01/app/oracle/
11、oradata/ora10/newcontrolfile014 scope=spfile;SQLshutdown immediate; 重启生效SQLstartup nomount;SQLselect value from v$parameterwhere name=control_files; 查看新设定SQLhost ls l /u01/app/oracle/oradata/ora10/ 查看数据/日志文件SQLcreate controlfile database ora10 noresetlogs 重建控制文件2 logfile3 group 1 /u01/app/oracle/ora
12、data/ora10/redo01.log,4 group 2 /u01/app/oracle/oradata/ora10/redo02.log,4 group 3 /u01/app/oracle/oradata/ora10/redo03.log5 datafile6 /u01/app/oracle/oradata/ora10/system01.dbf,7 /u01/app/oracle/oradata/ora10/undotbs01.dbf,8 /u01/app/oracle/oradata/ora10/sysaux01.dbf,8 /u01/app/oracle/oradata/ora10
13、/users01.dbf,8 /u01/app/oracle/oradata/ora10/example01.dbf9 character set zhs16gbkSQLalter database open;SQLalter tablespace temp add tempfile 重新建立临时文件2 /u01/app/oracle/oradata/ora10/temp.dbf 以避免免排序报错3 size 10485760 reuse autoextend off; reuse指重用原OS文件SQLselect name from v$controlfile;SQLhost ls l /u
14、01/app/oracle/oradata/ora10 控制文件已生成4 .日志管理与归档方式每一个数据库实例至少有两个日志文件组,日志文件中记录全部的数据库修改信息,日志与Oracle的后台进程LGWR一起工作,当一个在线日志文件组被写满后,就发生日志却换。行成了数据库的归档日志文件,这时LGWR进程将日志信息写倒下一个在线日志文件组,当最后一个可用的在线日志文件的检查点到来时,又回到第一个组。 1.确认数据库的归档方式可以查询数据字典v$database;SQLselect dbid 标识号,name 数据库名,created 创建时间,log_mode 归档模式 from v$datab
15、ase;也可以使用sql*plus显示数据库归档模式:$sqlplus / as sysdbaSQLarchive log list; 2.数据库归档设置:第一步关闭 数据库:SQLshutdown immediate;第二步把数据库启动到mount状态下:SQLstartup mount;第三步修改数据库运行模式:SQLalter database archivelog;第四步打开数据库:SQLalter database open;也可以修改参数启动自动归档进程:将LOG_ARCHIVE_START设为TRUE在数据库归档完成后,如果发生了日志切换,则在规定的目录下会自动产生归档日志文件,
16、可以使用alter system switch logfile命令强制日志切换。然后可以查询数据库字典v$archived_log检测是否有归档日志产生。SQLselect recid,stamp,sequence#,first_change#,first_time,name from v$archived_log; 5.归档日志参数设置1,归档日志目录:log_archive_dest=/u01/app/oracle/ora10/arch12,归档日志文件存格式,参数log_archive_format用于设置日志 格式,可以使用%ORACLE_SID%、%T、%t、%S、%s、%r alt
17、er system set log_archive_format=%r-%t-%s.da Scope=spfile;3, 归档日志镜像目录 log_archive_duplex_dest=/u02/oracle/arch2(1) 重做日志文件概述* 记录数据库数据进行的所有修改操作,保证数据的一致性和安全性.* 数据库失败需要进行恢复时,能提供恢复所需的依据.* 每个数据库应有多个redolog文件, 按序循环轮流被使用进行日志记载,每个redolog文件称为一个日志组.一个例程至少需两组联机重做日志文件.多个日志组应分开放在不同磁盘上以均衡磁盘IO.* 为防止每个日志组文件本身失效, 应对每
18、个日志组文件进行至少一份镜像,每个日志组文件和其镜像文件称为其日志组的组员.两者应分开放在不同磁盘上以避免磁盘失效.(2) 查看重做日志文件RRSQL select * from v$log; 查看日志组的信息Group# Bytes Members Archived Status- - - - -1 52824400 1 NO Current2 52824400 1 NO Inactive3 52824400 1 NO Inactive日志组的状态:current: 使用状态,该日志组正在使用中active: 激活状态, 实例恢复时将需要该日志组inactive:非激活状态,实例恢复时不再需
19、要该日志组unused: 未使用状态,该日志组尚未记录过日志信息(新添加组)SQL select * from v$logfile; 查看日志组成员信息Group# Status Type Member- - - -1 online /u01/app/oracle/oradata/ora10/redo01.log2 stale online /u01/app/oracle/oradata/ora10/redo02.log3 stale online /u01/app/oracle/oradata/ora10/redo03.log日志组成员的状态:空白: 该文件是可用/活动的(但不一定是正在使用
20、中的,参考v$log)stale: 表示该文件内容不完全(系统特殊状态)invalid: 表明该文件暂不可访问(新添加镜像)deleted:表明该文件已不再使用(已删除)(3) 修改重做日志文件* 添加日志组(添加重做日志文件个数)SQLalter database ora10 add logfile group 4(/u01/app/oracle/oradata/ora10/redo04.log) size 5M;SQLselect * from v$log; 新添加组状态为unused.* 添加日志组成员(添加镜像文件)SQLalter database ora10 add logfile
21、 member/u01/app/oracle/oradata/redo01.log to group 1,/u01/app/oracle/oradata/redo02.log to group 2,/u01/app/oracle/oradata/redo03.log to group 3,/u01/app/oracle/oradata/redo03.log to group 4;SQLselect * from v$logfile; 新加镜像状态为invalid.SQLalter system switch logfile; 进行一次日志切换启用镜像.SQLselect * from v$lo
22、gfile; 再查新加镜像状态.* 删除日志组(削减重做日志文件个数)SQLalter database ora10 drop logfile group 4;SQLselect * from v$logfile;SQLselect * from v$log;SQLalter system switch logfile;inactive和unused状态的日志组才能删除, current和active状态的日志组不能删除.要删除current状态的日志组, 应先用logswitch将current状态的日志组转换为active状态,而要删除active状态的日志组,则需用checkpoint将
23、其转换为inactive状态,才能删除:SQLalter system checkpoint;* 删除日志组成员(删除镜像文件)SQLalter database ora10 drop logfile member/u01/app/oracle/oradata/redo01.log ,SQLselect * from v$log;SQLselect * from v$logfile;日志组中最后一个日志成员不能被删除;current日志组中任何成员都不能删除;其他情况下不能删组成员时,可用logswitch将日志组状态进行转换后才能删除.SQLalter system switch logfi
24、le;手工切换日志,以将log 3转变为非current状态.* 移动或重命名日志文件SQL alter system switch logfile;SQL shutdown immediateSQL host mv /u01/app/oracle/oradata/ora10/*.log /u01/appSQL startup mountSQL alter database rename file3 /u01/app/oracle/oradata/ora10/redo01.log ,4 /u01/app/oracle/oradata/ora10/redo02.log ,5 /u01/app/o
25、racle/oradata/ora10/redo03.log6 to7 /u01/app/redo01.log ,8 /u01/app/redo02.log ,9 /u01/app/redo03.log ;SQL alter database open;SQL alter system switch logfile;SQL select * from v$log;SQL select * from v$logfile;3. 数据文件(1) 数据文件概述* 每个oracle数据库必须至少有一个数据文件,用于存放数据库数据* 多个数据文件应分放在不同的磁盘上以提高存取速度system01.dbf:
26、记录系统运行信息,包含所有数据库字典,PL/SQL程序代码及其他系统信息.sysaux01.dbf:system文件的辅助文件,存放支持oracle系统活动的多种工具如LogMinerundotbs01.dbf:存放回退信息,即DML操作后的旧数据信息.users01.dbf:新建用户未指定存储空间时,默认数据存放在该文件中.example01.dbf:存放示例数据信息.2.物理备份数据库(2) 查看数据库数据文件SQLselect name,bytes from v$datafile; 查看数据文件及大小/u01/app/oracle/oradata/ora10/system01.dbf/u
27、01/app/oracle/oradata/ora10/undotbs01.dbf/u01/app/oracle/oradata/ora10/sysaux01.dbf/u01/app/oracle/oradata/ora10/users01.dbf/u01/app/oracle/oradata/ora10/example01.dbfSQLselect * from dba_data_files; 查看数据文件及大小SQLhost ls l /u01/app/oracle/oradata/ora10/*.dbf(3) 修改数据库数据文件* 移动/更名一个数据文件SQL shutdown imme
28、diate$ cd /u01/app/oracle/oradata/ora10$ mv example01.dbf ./example.dbfSQL startup mountSQL alter database ora10 rename file2 /u01/app/oracle/oradata/ora10/example01.dbf to3 /u01/app/oracle/oradata/example.dbf ;SQL alter database open;SQL select * from v$datafile;* 数据文件的扩大和缩小SQLcreate tablespace tes
29、t datafile 新建表空间及其所包含的数据文件/u01/app/oracle/oradata/test1.dbf size 5M;SQL host ls l /u01/app/oracle/oradata/test1.dbf 查数据文件大小SQL alter database datafile 设置数据文件自动扩充 /u01/app/oracle/oradata/test1.dbf autoextend on;SQL select autoextensible from dba_data_files 查看自动扩充标志where file_name=/u01/app/oracle/orad
30、ata/test1.dbf;SQL alter database datafile 手工扩充数据文件大小 /u01/app/oracle/oradata/test1.dbf resize 10M;SQL host ls l /u01/app/oracle/oradata/test1.dbfSQL alter database datafile 手工缩减数据文件大小 /u01/app/oracle/oradata/test1.dbf resize 7M;SQL host ls l /u01/app/oracle/oradata/test1.dbf* 数据文件的添加和删除A.添加数据文件到表空间S
31、QLalter tablespace test add datafile 新增数据文件/u01/app/oracle/oradata/test2.dbf size 5M;B.删除表空间中的所有数据文件SQLselect file_name,tablespace_name from dba_data_files;查询欲删的数据文件对应的表空间,是否包含多个数据文件SQLdrop tablespace test including contents;确定表空间所含所有数据文件均不需要,可直接删除表空间.SQLhost rm /u01/app/oracle/oradata/test.dbf删除数据文
32、件C.删除表空间中的部分数据文件SQLselect file_name,tablespace_name from dba_data_files;查询欲删的数据文件对应的表空间,是否包含多个数据文件SQLalter database ora10 datafile/u01/app/oracle/oradata/test2.dbf offline drop;若表空间中包含多个数据文件,且部分数据文件不能删掉,则欲删的数据文件先进行脱机处理. 此处drop不意味着该数据文件在数据库中已经删除,此时若在操作系统中直接删除该数据文件,则数据库将面临崩溃.SQLselect file_name,tables
33、pace_name,online_statusfrom dba_data_files;数据文件依然存在(状态recover),故不能直接删除该数据文件.只能通过删除表空间的方法删除表空间中所有数据文件SQLselect owner,segment_name,segment_typefrom dba_segments where tablespace_name=TEST;查看表空间中包含的所有数据文件内容,将表空间中其他数据文件中应保留的内容进行exp备份,之后删除整个表空间(此时该表空间中所有数据文件可删),之后再重建表空间及数据文件,将备份内容重新倒入.SQLhost rm /u01/app
34、/oracle/oradata/test2.dbf测试:若不按上步进行,违反警告直接删除脱机状态的数据文件,SQLshutdown immediate;SQLstartup open; 则数据库重启可能报错,启动失败,处理方法如下:SQLalter database ora10 datafile 归档模式下脱机指定数据文件/u01/app/oracle/oradata/test2.dbf offline;SQLalter database ora10 datafile 非归档模式下脱机指定数据文件/u01/app/oracle/oradata/test2.dbf offline drop;SQ
35、Lalter database open;SQLselect name,status from v$datafile;SQLdrop tablespace test including contents;ora10.2可用drop参数删数据文件,但存在限制:1.表空间中首个数据文件不能删除;2.被删除数据文件必须为空; 3.无法删除表空间中最后一个数据文件,除非删表空间本身.SQLcreate tablespace test2 datafile /u01/test01.dbf size 5M;SQLcreate tablespace test2 add datafile /u01/test02
36、.dbf size 5M;SQLcreate tablespace test2 add datafile /u01/test03.dbf size 5M;创建表空间并添加数据文件SQLalter tablespace test2 drop datafile /u01/test01.dbf删除表空间中第一个数据文件报错,不能进行.SQLalter database ora10 datafile /u01/test01.dbf offline;SQLcreate table mytest (i number) tablespace test2;将首个数据文件离线,再在表空间中建测试表,则表将被保存
37、在剩余两数据文件中SQLselect owner,segment_name,file_id from dba_extentswhere segment_name=mytest;SQLselect file_name,file_id from dba_data_files where file_id=?;查看测试表保存在哪个数据文件中,查到该数据文件号后再根据文件号查数据文件名SQLalter tablespace test2 drop datafile /u01/test02.dbf;删除表空间中已分配了空间的数据文件(非空)报错,不能进行.SQLalter tablespace test2
38、drop datafile /u01/test03.dbf;删除表空间中未分配空间的数据文件(为空),允许进行.1.完全数据库脱机备份 1)编写一个要备份的最新文件列表。必需备份数据库的三类文件,不得漏掉某_一类文件。可以查询dba_data_files确认数据库文件、v$logfile确认日志文件、v$controlfile确认控制文件。SQLselect file_name from dba_data_files; 查看数据文件及大小/u01/app/oracle/oradata/ora10/system01.dbf/u01/app/oracle/oradata/ora10/undotbs
39、01.dbf/u01/app/oracle/oradata/ora10/sysaux01.dbf/u01/app/oracle/oradata/ora10/users01.dbf/u01/app/oracle/oradata/ora10/example01.dbf关闭数据库后到操作系统下sqlhost cp /u01/app/oracle/oradata/ora10/*.dbf /u02/backupSQL select * from v$logfile; 查看日志组成员信息Group# Status Type Member- - - -1 online /u01/app/oracle/oradata/ora10/redo01.log2 stale online /u01/app/oracle/oradata/ora10/redo02.log3 stale online /u01/app/oracle/oradata/ora10/redo03.logsqlhost cp /u01/app/oracle/oradata/ora10/*.log /u02/backupSQLselect name,block_size,file_size_blks from v$controlfile;查看所有控制文件及大小/u01/app/o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论