Oracle实践数据库笔记-12
Rehoni / 2018-04-08
数据库备份和恢复
-
需要数据库备份恢复的情况 PDF D17090
-
logmnr的使用
- 启动数据库补充日志
desc v$database 🆗 select supplementallog from v$database ---不太确定supplementallog alter database add supplemental log data;🆗
- 产生数据字典文件
- 设置数据字典文件的目的地(初始化参数)
- 产生数据字典文件
- 产生一个事务
- 添加需要分析的日志文件
- 启动分析
- 查询内容
---老师教程 ---自己跑一遍🆗 ---设置一下目录,得先在文件系统中创建好文件夹 show parameter utl_file_dir 🆗 ---重启生效shutdown immediate&startup , path1为之前在文件系统中创建好的文件夹路径 🆗 alter system set utl_file_dir ='path1' scope=spfile;🆗 ---再show一遍是没有的,重启才生效 execute dbms_logmnr_d.build(dictionary_filename=>'名字.ora',dictionary_location=>'path')🆗 ---产生数据文件 提交事务 select empno,ename,sal from emp;🆗 update emp set sal=5000 where empno=7934;🆗 commit;🆗 execute dbms_logmnr.add_logfile(LogFileName=>'path2',Options=>dbms_logmnr.new)🆗 ---如果是追加为.addfile select group\#,status from v$log;🆗 ---查询当前组 current select group\#,member from v$logfile;🆗 ---对应current编号的path2=>E:\APP\RES0LIYA\ORADATA\ORCL\REDO02.LOG execute dbms_logmnr.start_logmnr(DictFileName=>'path1')🆗 ---数据字典文件在此步之前创建好就行 ---报错,sysaux报错 ❗因为本身没有脱机所以没有碰到这个bug desc dbs_tablespaces select tablespacename,status from dbs_tablespaces ---发现sysaux脱机了,让它联机就ok desc v$logmnr_contents🆗 select TIMESTAMP,USERNAME,SQL_REDO from v$logmnr_contents🆗---一定要记得选加where where SEG_NAME='EMP' and OPERATION='UPDATE'🆗 ---调整时间格式 alter set session nls_date_format=''
- 启动数据库补充日志
-
备份类型
-
用户管理的备份
-
冷备份—关闭数据库的备份/一致性备份
- 文件列表
- shutdown
spool E:\app\luohaobackup\filelist.txt show parameter spfile select name from v$controlfile; select member from v$logfile; select name from v$datafile; select name from v$tempfile; ---检测一下是否为存档模式 archive log list ---如果是存档模式 ---开启归档模式 shutdown immediate startup mount ---正常startup 为open状态数据库打开,mount为装载数据库,nomount为实例启动 --- select name from v$archivelog spool off create table scott.cold(a varchar(20)); insert into scott.cold values('before backup'); select * from scott.cold; commit; shutdown immediate ---到文件系统中复制粘贴所有文件,路径可以在上边查到 ---.SPFILE文件,外部,没有shutdown不影响 ---.CTL控制文件,都是一样 ---.LOG日志文件 ---.DBF数据文件 ---.ARC归档文件 startup insert into scott.cold value('after backup'); select * from scott.cold; shutdown immediate ---新建一个log文件夹 放入.CTL和.LOG文件 startup cmd>dbca ---删除数据库orcl ---恢复 ❗ cmd>oradim -new -sid sales; ---把SPFILE放入E:\app\Res0liya\product\11.2.0\dbhome_1\database ---根据SPFILE的内容创建各种目录 select * from v$recoverfile recover database alter database open select * from scott.cold ---我的操作 cortana> net configuration assistant ---配置监听器 admin cmd> dbca ---傻瓜式创建完库luohao之后 ---net start 服务名 启动服务名 cmd> set oracle_sid=luohao cmd> sqlplus ---输入sys as sysdba 密码 sql> show parameter db_name;---luohao conn scott ---未解锁 解锁 alter user scott account unlock; alter user scott identified by tiger; conn scott/tiger
-
热备份 可以做全备份也可以做部分备份
- 归档模式
- 备份模式
select tablespace_name from dba_tables where table_name='COLD'; select file_name from dba_data_files where tablespace_name='USERS';---在文件系统中拷贝一份 select * from v$backup; ---单个表 alter tablespace users begin backup;---开启备份模式 select * from scott.cold; insert into scott.cold values('after hot backup'); commit; alter tablespace users offline; 第 1 行出现错误: ORA-01150: 无法防止写入 - 文件 4 设置了联机备份 ORA-01110: 数据文件 4: 'E:\APP\RES0LIYA\ORADATA\LUOHAO\USERS01.DBF' alter tablespace users end backup;---结束备份模式 alter tablespace users offline;---删除users01.dbf,拷贝原来的回去 alter tablespace users online; ORA-01113: 文件 4 需要介质恢复 ORA-01110: 数据文件 4: 'E:\APP\RES0LIYA\ORADATA\LUOHAO\USERS01.DBF' recover datafile 4;或者alter tablespace users ... alter tablespace users online; select * from scott.cold; ---多个表 alter database begin backup
-
-
服务器管理的备份 (RMAN)
-