热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle数据库冷备恢复二例-mysql教程

例一:oracle数据库冷备迁移的步骤冷备是一种常用的数据库备份方式,它是在数据库关闭的情况下利用操作系统的拷贝命令备份完整的数据库文件集。冷备能保证在备份的时间点上数据库的完整性和一致性。假如开启了归档模式,并且能保证在最后一次冷备后的所有

例一:oracle数据库冷备迁移的步骤 冷备是一种常用的数据库备份方式,它是在数据库关闭的情况下利用操作系统的拷贝命令备份完整的数据库文件集。 冷备能保证在备份的时间点上数据库的完整性和一致性。假如开启了归档模式,并且能保证在最后一次冷备后的所有

例一:oracle数据库冷备迁移的步骤


冷备是一种常用的数据库备份方式,它是在数据库关闭的情况下利用操作系统的拷贝命令备份完整的数据库文件集。
冷备能保证在备份的时间点上数据库的完整性和一致性。假如开启了归档模式,并且能保证在最后一次冷备后的所有归档日志的完整性,
那么我们就能够将数据库恢复到冷备后的任何一个时间点上。下面将详细描述冷备的步骤:
1 收集数据库文件集信息
一个完整的数据库文件集包括:数据库启动参数文件,控制文件,数据文件,日志文件。可以通过下面的方式来得到文件的位置和
名称。
(1) 参数文件
9i以下版本 $ORACLE_BASEADMIN$ORACLE_SIDPFILEINIT.ORA
9i或以上版本 $ORACLE_HOMEDATABASEINIT[$ORACLE_SID].ORA 或者 $ORACLE_HOMEDATABASEspfile[$ORACLE_SID].ORA
9i或以上版本需要一份pfile文件(就是init[$ORACLE_SID].ora),因为spfile文件是不能直接用编辑器修改的;
(2) 控制文件
sql> show parameter control_files
(3) 数据文件
9i以下版本
sql> select file_name from dba_data_files;
9i或以上版本
sql> select file_name from dba_data_files;
select file_name from dba_temp_files;
(4) 日志文件
sql> select member from v$logfile;
2 关闭数据库
sqlplus user/pwd@link as sysdba
sql>shutdown immediate -- 必须保证数据库正常的关闭
3 复制文件集
4 在新的机器上进行恢复
(1) 安装数据库,必须保证和源数据库版本一致,不创建数据库
(2) 创建一个数据库服务,其中sid 要和源数据库保持一致
> oradim -new -sid $ORACLE_SID -startmode m
(3) 创建监听(可以用net manager ) ,并启动,监听中需指明oracle sid
(4) 将启动参数文件放入 $ORACLE_HOMEDATABASE下 ,9i 以下版本放在 $ORACLE_BASEadmin$ORACLE_SIDpfile
修改参数文件中的control_files 到控制文件所在的位置
修改 参数文件中所有需指明路径的参数,修改到你希望的系统位置,并保证指定的路径下有该文件或者文件夹的存在.
(5) 创建本地密码验证文件
> cd $ORACLE_HOMEdatabase
> orapwd file=pwd[$ORACLE_SID].ora password=sys entries=10
(6) 创建连接到本地库的连接串
(7) 启动数据库
(1) 启动数据库到mount 状态
> sqlplus /nolog
sql> connect sys/sys@link as sysdba -- link为创建的连接串
sql> startup mount
(2) 如果源数据库中数据文件所在的路径和当前数据库中数据文件所在的路径不同,需修改conctol file中指定数据文件
路径的信息(此修改不包括临时数据文件temp)
sql> alter database rename file
'old_file_dest1',
'old_file_dest2',
....
to
'new_file_dest1',
'new_file_dest2',
...
/
(3) 打开数据库
sql> alter database open;
(4) 创建新的temp文件
sql> alter tablespace temp add tempfile 'temp_file_name' size XXM;
(5) 删除旧的temp文件
sqlplus sys/sys@link as sysdba
sql> shutdown immediate
sql> startup mount
sql> alter database tempfile 'old_temp_file_name' drop;

sql> alter database open;


(6) 校验数据库的正确性

SQL> select * from v$recover_file; -- 如果没有内容就没有问题


注意在创建服务的时候指定启动模式为auto

oradim -new -sid sid -startmode a


例二:Windows上Oracle冷备过程


Oracle冷备,这里我说的是很特别的,是在Windows上面跑的Oracle。当前在9i和 10g上进行测试无误
1、备份
关闭原来的数据库,使用shutdown(如果共享模式的数据库可能报错,可以更改 dispatcher系统值,或者在tns内将dedicated加入连接串重新加载数据库即可关闭)。然后将oracle本机的所有服务停掉,注意这里应该停掉,否则可能造成冷备失败。

关闭后,将数据文件,包括控制文件等等都拷贝到需要恢复的机器,注意还要拷贝一个 PWD.ora文件需要拷贝,以防密码错误而无法启动。这个文件在ORACLE_HOME\database里面。

2、恢复
在恢复的机器上面要安装相同版本的数据库,切记这是冷备,不是迁数据,尽量跟原来一样的环境。
新建一个相同的SID的数据库,sys、system密码尽量设置相同。
关闭数据库及系统服务,将数据拷贝到SID生成的数据目录处。同时可以将上面PWD文件拷贝到database里面覆盖。
启动oracle的服务,然后使用sysdba的用户进入。若发现启动不起来,代表文件地址跟原来存储位置不同,需要修改datafile。
改数据文件地址,如下:
alter database rename file 'D:\ORACLE\ORADATA\GLOBAL\SYSTEM01.DBF' to 'E:\oracle\oradata\global\SYSTEM01.DBF' ;
alter database rename file 'D:\ORACLE\ORADATA\GLOBAL\UNDOTBS01.DBF' to 'E:\oracle\oradata\global\UNDOTBS01.DBF' ;
alter database rename file 'D:\ORACLE\ORADATA\GLOBAL\CWMLITE01.DBF' to 'E:\oracle\oradata\global\CWMLITE01.DBF' ;
alter database rename file 'D:\ORACLE\ORADATA\GLOBAL\DRSYS01.DBF' to 'E:\oracle\oradata\global\DRSYS01.DBF' ;
alter database rename file 'D:\ORACLE\ORADATA\GLOBAL\EXAMPLE01.DBF' to 'E:\oracle\oradata\global\EXAMPLE01.DBF' ;
.........

修改Temp文件就比较麻烦了,要先创建,然后再改了之后,再删除改回。请看下面:
--1、--创建中转临时表空间
create temporary tablespace TEMP2 TEMPFILE 'E:\oracle\oradata\global\temp02.dbf' SIZE 100M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;
--2、--改变系统默认临时表空间 为刚刚创建的新临时表空间temp2
alter database default temporary tablespace temp2;
--3、--删除原来临时表空间temp
drop tablespace temp including contents and datafiles;
--4、--重新创建临时表空间temp
create temporary tablespace TEMP TEMPFILE 'E:\oracle\oradata\global\temp01.dbf' SIZE 100M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;
--5、 --重置系统默认临时表空间
alter database default temporary tablespace temp;
--6、删除中转临时表空间temp2
drop tablespace temp2 including contents and datafiles;


这就迁移完成了。然后再打开进行查看如果启动时候出现systmp文件错误等等,请重新备份再恢复。

在安装完成Oracle以后,按照规定,应该先扫描是否有INVALID的对象。

SQL> select owner, object_name, object_type, status from dba_objects where status = 'INVALID';
SQL> select count(*) from dba_objects where status = 'INVALID';

不过由于新安装的一般不会有上述这个问题。

完成上面的步骤后,为了避免版本的字符冲突,需要跑一下下面两个系统sql文件,我们就要按照下面步骤进行:

a、用dba角色登录
b、执行下面命令
SQL> STARTUP MIGRATE
SQL> SPOOL patch.log
SQL> @ORACLE_HOME\rdbms\admin\catpatch.sql
SQL> SPOOL OFF
C、关闭重启后执行下面脚本,即完成了数据库字符集重置。运行脚本utlrp.sql, 重新编译失效脚本

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql


附加:

1、临时文件是否备份?都可以。

不用啊,备份不备份都没有关系的,因为一段时间过后,oracle会释放临时表空间占据的空间。

感觉备份的那3个文件里面已经包含了对临时表空间的定义。
而临时表空间一般用来创建保存临时表数据,排序等等,似乎不会存储真正的物理数据文件。

临时表空间 重新创建就好 不需要备份

但查到很多人说,在未备份临时表空间文件,进行恢复后的数据库,不做排序等相关操作时不会有任何问题,但是做排序操作且排序不能在内存中完成时便会出错(,因为已经没有临时表空间文件了)??

临时表空间是会被大数据量的排序利用到.

没有就重新创建一个呗


2、 v$tablespace、v$datafile$tempfiledba_TABLESPACEs这四个视图各自都有一个TS#字段。前三个视图都可以在mount阶段时执行,后一个视图则只能在open阶段时执行。

执行alter database rename file...... to ...... ;语句后,为什么表空间和数据文件间的对应关系没有乱掉呢?比如,表空间A对应有数据文件a、b,执行该语句后,还是如此,而没有变成其他,例如,表空间A对应有数据文件c、d、e。就是因为执行该语句只是改变了v$datafile$tempfile视图中一行记录上的name字段值,即改变了数据文件的路径,而该行记录的TS#字段没有变,故而执行该语句后,一个数据文件通过v$datafile$tempfile视图上的TS#字段找到v$tablespace视图上的TS#字段值与其相等的数据行后,发现该数据行上tablespace_name字段值还是原来没有执行该语句前的值。

还有,dba_TABLESPACEs视图上的部分字段信息来自 v$tablespace

推荐阅读
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 如何更改电脑系统的自动校时服务器地址?
    本文介绍了如何通过注册表编辑器更改电脑系统的自动校时服务器地址。通过修改注册表中的数值数据或新建字符串数值的方式,可以将默认的时钟同步服务器地址更改为自己所需要的域名或IP地址。详细步骤包括双击时间区域,点击internet时间,勾选自动校正域名设置定时等操作。 ... [详细]
  • OCI连接MySQL_PLSQL Developer连接远程数据库OCI客户端安装方法
    本文介绍了使用OCI客户端连接MySQL和PLSQL Developer连接远程数据库的安装方法,避免了在本地安装Oracle数据库或类似的开发套件的麻烦,同时解决了PLSQL Dev连接远程Oracle时的配置问题。 ... [详细]
  • 使用chrome编辑器实现网页截图功能的方法
    本文介绍了在chrome浏览器中使用编辑器实现网页截图功能的方法。通过在地址栏中输入特定命令,打开控制台并调用命令面板,用户可以方便地进行网页截图操作。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
author-avatar
fffsssjjj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有