重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
有很多:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了马山免费建站欢迎大家使用!
1.冷备份,停掉数据库,然后备份文件系统
2.热备份,不同的版本使用的流程和命令不太一样
3.rman备份,利用rman工具备份数据库或者归档日志
4.导出、导出,就是用exp和imp命令进行备份。
具体的可以看看这个链接,google或者百度一下,也可以
昨天碰到一客户,数据库使用的是WIN2008+RAC+ASM。由于EMC存储问题,导致ASM实例出问题,读不出数据,进而导致RAC出问题。折腾了2个小时,终于将ASM实例启动,将RAC转换成单节点。可悲的是,ASM磁盘组读取错误:select 表格出错,exp、expdp出错,rman拷贝出错。赶到客户现场,继续折腾,终于修复错误。简要步骤如下 1、同一主机下面建另一实例,用于运行DBMS_FILE_TRANSFER 2、在该实例上运行DBMS_FILE_TRANSFER,拷贝数据文件,控制文件,日志文件 引用 CREATE DIRECTORY source_dir AS '+DATADG/ORADATA'; CREATE DIRECTORY dest_dir AS '/tmp';BEGIN DBMS_FILE_TRANSFER.COPY_FILE( source_directory_object = 'source_dir', source_file_name = 'user01.dbf', destination_directory_object = 'dest_dir', destination_file_name = 'user01.dbf'); END; /二是使用ASM提供的ftp特性 1、同一主机下面建另一实例,用于传输ftp 2、用ftp传输相关文件附:DBMS_FILE_TRANSFER使用限制 # The user must have read privilege on the source directory object and write privilege on the destination directory object. # The procedure converts directory object names to uppercase unless they are surrounded by double quotes. # Files to be copied must be multiples of 512 bytes in size. # Files to be copied must be equal to or less than 2 terabytes in size. # File transfers are not transactional. # Files are copied as binary, so no character conversions are performed. # File copies can be monitored using the V$SESSION_LONGOPS view ++++++++++++++++++++++++++ 据一同事反映,Oracle 11g提供了ASM cp命令,允许在ASM磁盘组和操作系统文件之间互相拷贝。
1. 复制旧的数据库文件
(1) 用SQLPlus连接数据库:sqlplus 用户名/密码 as sysdba
(2) 关闭DB :shutdown immediate;
(3) 复制文件到其他地方存储实现备份
1)复制三个文件夹admin;oradata(datafile, controlfile,redo【注:数据文件, 控制文件,redo】);flash_recovery_area三个文件夹。2)dbhome_1下的内容database(PWDfile、pfile);dbs(spfile);NETWORK/ADMIN(listener.ora、tnsnames.ora)。
2. Oracle重新建库恢复
(1)创建一个和原来一样的数据库。(安装路径和数据库名必须和原来一致)
(2)停止数据库shutdown immediate;
(3)复制安装目录下的admin、oradata、flash_recovery_area覆盖,复制database(PWDfile、pfile) 覆盖
(4)启动数据库 startup;
备注:
无归档模式:将备份文件拷贝回原来的目录即可,然后启动数据库。
归档模式:
①将数据文件、控制文件拷贝回原来目录
②SQLstartup mount;
SQLrecover database using backup controlfile;
③将相应的归档日志和联机日志拖到CMD命令窗口进行跑日志。
④SQLalter database open resetlogs;
3. 软件重装恢复
此时,操作系统重装,如果做冷备恢复,要保证相同操作系统,相同的数据库版本。形势如同异机恢复。
A、不创建实例:(源机上的数据库名字为orcl)
(1) 恢复oradata/orcl目录
在目标机上的oradata目录下建立orcl文件夹,然后进行数据覆盖。
包括数据文件、参数文件、控制文件、日志文件、pwd文件,放在与原系统相同的目录。如果目录有所改变,则需要另外建立控制文件,修改pfile。 (2) 恢复admin/orcl目录在目标机上的admin目录下建立orcl文件夹,然后在orcl里面再建立adump、bdump、cdump、udump、dpdump、pfile六个文件夹
(3) 建立服务把源机的密码文件拷贝到目标机的database目录下。使用oradim命令在cmd下oradim -new -sid orcl 表示建立一个服务,sid为orcl(最好名字和源机备份的数据库名字一致,就不需要重建密码文件)。如果是在linux下,不需要此步。 (4) 重建创建参数文件、控制文件拷贝源机的pfile到目标机的一个目录下,修改pfile里面相关文件的路径。然后通过SQLcreate spfile from pfile=‘文件路径'来创建参数文件。重建控制文件命令:SQLalter database backup controlfile to trace; 然后会在udump文件夹下产生一个追踪文件,打开文件找到如下一段,复制到文本中,修改相应路径然后保存为:createctl.sql文件(sql脚本文件),复制到目标机上。注意:SQLalter database backup controlfile to trace as 'F:/DB_RECOVERY/CONTROL_FILE_TRACE.TXT';复制的原始导出txt中的,相应代码片段如下: View Code
(5) 数据库设置SID和启动服务
12345678 c:\set ORACLE_SID=orclc:\sqlplus "/as sysdba" SQLcreate spfile from pfile='c:\pfile.txt';SQL@c:\createctl.sql;SQLshutdown immediate;SQLstartup;SQLalter database open resetlogs;
备注:
如果(4)、(5)不好用,可以用下面的方法修改这些路径不一致的问题(反正笔者电脑上冷备份恢复时,上面的两个步骤就不好用):
1)SQL下执行如下语句,恢复控制文件
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
2)修改日志、DBF的路径
修改oracle_home\oradata\orcl下及相关文件的路径
(6) TNSNAMES设置在network\admin下的tnsnames.ora中添加如下片段
123456789 ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))
(7) 建立监听用net configuration为orcl实例新建监听 至此,冷备份恢复成功。即使你现在用oem打开数据库时发现提示找不到sid ,但实际上你已经成功了,此时只需要重启一下的你的服务器就可以。
B、创建实例方式(实例SID与源机数据库SID一致)
(1) 替换和覆盖oradata\orcl目录删除目标机的oradata\orcl底下的所有文件,把源机的所有data文件、redo文件拷贝到此目录下
(2) 密码文件覆盖删除目标机的密码文件,拷贝源机密码文件到目标机下。
(3) 控制文件恢复在源机上重建目标机的控制文件:SQLalter database backup controlfile to trace;然后会在udump文件夹下产生一个追踪文件,打开文件找到上面那段,复制到文本中,修改相应路径然后保存为:createctl.sql文件(sql脚本文件),复制到目标机上。
复制代码代码如下:
12345 c:\sqlplus "/as sysdba"SQL@c:\createctl.sql;SQLshutdown immediate;SQLstartup;SQLalter database open resetlogs;
(4) 在network\admin下的tnsnames.ora中添加如下片段
复制代码代码如下:
123456789 ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))
(5) 用net configuration为orcl实例新建监听
若是初学Linux的话建议看看《Linux就该这么学》这本书。
Oracle数据库备份方式
Oracle的内核提供数据库的备份和恢复机制,SQL*DBA按表空间进行数据的备份和恢复。Oracle提供两种方式:备份恢复和向前滚动,保证意外故障恢复数据库的一致性和完整性。
1. 备份恢复方式
对数据库的某个一致状态建立副本,并储存在介质上脱机保存,以此作为数据库恢复的基础。现以Oracle实用程序Export/Import来介绍备份恢复方式。
Export/Import是Oracle提供的两个互补性程序,即卸载和装载。它们既完成数据库与操作系统文件的互为转载,同时可以有效地回收数据库的碎片,提供不同版本间Oracle 数据传送的手段,进行不同用户间的数据传送。
Export数据卸载,将数据从Oracle写到指定的操作系统文件进行备份。卸载的对象、内容与数量有三种模式:TABLE MODE(表模式)、USER MODE(用户模式)、FULL DATABASEM ODE(所有数据库模式)。使用方式既可用交互方式,也可采用命令行方式,以"关键字=值" 将所需信息在命令行中逐一描述来进行卸载。Export要求用户具有CONNECT或DBA特权。
Import与Export互逆,将操作系统文件重新装载至Oracle数据库中,使用方式如Expo rt。使用者要求具有CONNECT和RESOURCE特权,且可选择部分或全部装入。
Export/Import非常方便,系统开销小,它的限制是输出的操作系统文件采用专门的压缩方式存放,仅提供给Import使用。
也可采用SQL*PLUS和SQL*LOADER实用工具进行备份。使用SQL*PLUS的SPOOL命令通过脱机定向输出,使用PLUS格式化结果,形成指定格式的ASCII文件,需要时可用SQL*LOADER 进行加载。它的方便之处是ASCII文件可以编辑,可方便地加载至其他数据库(如FoxPro、 Sybase中)。
2. 向前滚动方式
Oracle提供向前滚动方式,使建立备份后成功的事务不会丢失。恢复的基础是数据库的某个一致性状态(即方式1完成的备份恢复),恢复的依据是存档的重作记录文件。启动重作记录文件方法如下:
(1) 启动Oracle;
(2) 连接Oracle:CONNECT SYSTEM/PASSWORD;
(3) 启动ARCHIVE LOG。
出现介质故障时,可用SQL*DBA的RECOVER命令,利用存档的重作记录文件恢复一个或多个表空间。RECOVER命令对DATABASE或TABLASPACE进行恢复。前者要求SQL*DBA START UP已被排斥方式装载且未被打开;后者对无活跃回退段的表空间执行脱机,要求数据库已装载且被打开。
由于向前滚动方式恢复的依据是存档的重作记录文件,因而系统开销大,但恢复的是建立备份以后的成功事务,所以恢复的程度更高、更完备。
IT JOB
Oracle的数据备份主要有冷备、热备和数据导出。针对不同的数据安全要求,可以采用不同的备份方式,目前生产系统比较常用的是热备份,安全性较高。
下面是种方式的优缺点介绍:
冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。
优点:能简单快速地备份。能简单快速地恢复。执行简单。
缺点:必须关闭数据库,只能恢复备份时的状态。
热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。
优点:备份时数据库可以是打开的。热备份可以恢复到数据库的某一时点。
缺点:执行相对比较复杂。由于数据库不间断运行,热备份可能造成CPU、I/O过载,应在数据库不太忙时进行。
冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而export备份的是数据库对象,因此被称为逻辑备份。
优点:能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。
缺点:只能恢复到导出时的状态。export并不是冷备份和热备份的替代工具。
冷、热备份可保护介质失效。export备份可保护用户或应用错误。
1、数据量不大的话,比如整体小于10G,你可以在主机访问量小时或者shutdown时将oracle打包。例如:tar zcf /opt/u02.gz /u02,然后将u02.gz文件scp到备机。
2、如果数据量很大,你可以用rsync同步到备机
3、配置主备无密码互访
4、添加计划任务
crontab -e
0 4 * * * /opt/rsync_ora.sh;
rsync_ora.sh内容:
#!/bin/sh
rsync -av '-e ssh -p 22' /u02/oracle oracle@172.16.1.2:/u02
rsync -av '-e ssh -p 22' /data1/oracle oracle@172.16.1.2:/data1