Oracle数据库备份与还原命令

合集下载

Oracle Rac备份恢复

Oracle Rac备份恢复

Oracle Rac备份恢复概述RAC 技术这两年热度不断提升,随着ORACLE推广力度不断加大以及时间的推移,RAC特性也在逐步被人所熟悉。

做为重要的数据库维护操作–备份恢复,本文将通过实际操作,演示RAC数据库环境中,MBA 实现RMAN备份与恢复。

首先要明确一点,通过RMAN创建备份集时,必须保证连接到的实例能够访问所有节点所生成的归档日志,否则会导致备份失败。

所以针对rac备份,MBA有一下2种情况。

∙各节点生成的归档文件放到共享存储上,这样自然可以确保每个节点都能够访问到,比如将归档存放到ORACLE的ASM或其它集群文件系统。

∙各节点生成的归档文件放在本地,创建共享目录作为MBA备份时使用的临时目录。

针对以上2种情况都需要开启数据库的归档模式,建立备份用户,并授予dba,sysdba的权限。

∙开启数据库归档模式(仅供参考)1) 关闭所有节点数据库实例[grid@node1 ~]$ srvctl stop database -d racdb2) 修改服务器配置参数SQL> startup mountSQL> alter system set cluster_database=false scope=spfile;注:cluster_database是用来确定数据库是否在rac环境的集群中。

如果cluster_database=true,那么对于rac数据库来说,无法在一个节点上mount exclusive数据库,也就无法更改archivelog模式。

SQL> shutdown immediate3) 开启归档模式SQL> startup mountSQL> alter database archivelog;SQL> alter database open;4) 恢复服务器配置参数SQL> alter system set cluster_database=true scope=spfile;SQL> shutdown immediate;5) 打开所有节点数据库实例[grid@node1 ~]$ srvctl start database -d racdb6) 检查归档日志是否已启用SQL> archive log list;数据库日志模式存档模式自动存档启用存档终点USE_DB_RECOVERY_FILE_DEST最早的联机日志序列98下一个存档日志序列99当前日志序列99创建备份使用的用户以及授权SQL> create user backup identified by backup;SQL> grant dba,sysdba to backup;1. 归档文件放到共享存储上1.1备份1.1.1编辑MarsServer.xml修改每个Oracle Agent端MarsServer.xml文件以下为MarsServer.xml文件内容<?xml version=”1.0″ encoding=”GB2312″?><MBA><ServerParameter><ServerName>192.168.50.106</ServerName><ServerPort>41001</ServerPort><LocalIP>192.168.50.158</LocalIP> <!–使用的是虚拟ip–><Log>6</Log><TemporaryPath></TemporaryPath><BindLocalIP>0</BindLocalIP><Encoding>GB18030</Encoding></ServerParameter><MarsOracleAgent><racdb><!– 1. 虚拟IP以及端口号,Host=,PORT=,这里例子是192.168.50.158,192.168.50.159,端口号是1521 –><!– 2. 数据库名,SERVICE_NAME = ,这里的例子是racdb–><JdbcUrl>(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.50.158)(PORT = 1521))(ADDRESS = (PROTOCOL =TCP)(HOST =192.168.50.159)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = racdb)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))</JdbcUrl><!–当前OracleAgent所在机器上的实例名,根据实际情况修改–><NodeInstanceName>racdb1</NodeInstanceName><!–其他机器上的实例名,可能是多个–><OtherNodeInstance><!–某一个具体的实例名–><NodeInstanceName>racdb2</NodeInstanceName></OtherNodeInstance></racdb><BlockSize>262144</BlockSize></MarsOracleAgent></MBA>注:汉字部分,为解释,配置文件不需要出现重启各个节点Oracle Agent服务#/usr/local/mba/scripts/MBAOracleAgent.sh restart1.1.2发送备份任务1)添加实例Racdb为公共实例名192.168.50.158 是虚IP2)以backup用户连接实例,发备份任务RMAN备份方式必须备份控制、日志和所有的表空间选择RMAN备份方式,勾选RAC选项备份成功1.2恢复1.2.1准备使用sqlplus工具连接数据库执行shutdown immediate命令。

Oracle数据备份(exp.exe)、恢复工具(imp.exe)使用方法

Oracle数据备份(exp.exe)、恢复工具(imp.exe)使用方法

Oracle 数据备份、恢复工具 (imp.exe 使用方法例子 :exp 命令格式 : EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN实例 : EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR或 TABLES=(T1: P1,T1: P2,假如 T1 是分区表 USERID 一定是命令行中的第一个参数。

重点字说明 (默认---------------------------------------------------USERID 用户名 /口令FULL 导出整个文件 (NBUFFER 数据缓冲区的大小OWNER 全部者用户名列表FILE 输出文件TABLES 表名列表COMPRESS 导入一个范围 (YRECORDLENGTH IO 记录的长度GRANTS 导出权限 (YINCTYPE 增量导出种类INDEXES 导出索引 (YRECORD 追踪增量导出 (YROWS 导出数据行 (YPARFILE 参数文件名CONSTRAINTS 导出限制 (YCONSISTENT 交错表一致性LOG 屏幕输出的日记文件STATISTICS 剖析对象 (ESTIMATEDIRECT 直接路径 (NTRIGGERS 导出触发器 (YFEEDBACK 显示每 x 行 (0 的进度FILESIZE 各转储文件的最大尺寸QUERY 选定导出表子集的子句以下重点字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据(N TABLESPACES 将传输的表空间列表imp 命令 :或许 , 能够经过输入 IMP 命令和各样自变量来控制“导入”依据不一样参数。

要指定参数 ,您能够使用重点字 :格式 : IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN实例 : IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT FULL=N或 TABLES=(T1: P1,T1: P2,假如 T1 是分区表USERID 一定是命令行中的第一个参数。

oracle恢复表数据的sql语句

oracle恢复表数据的sql语句

oracle恢复表数据的sql语句恢复表数据是在数据库中非常常见的操作,当我们需要恢复被误删除或者修改的表数据时,可以使用Oracle数据库提供的一些SQL 语句来完成。

下面列举了10个常用的Oracle恢复表数据的SQL语句。

1. 使用INSERT INTO语句恢复单条数据在Oracle中,可以使用INSERT INTO语句将备份的数据插入到目标表中,从而实现恢复。

例如:```INSERT INTO 表名(列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);```其中,表名为需要恢复数据的目标表,列1、列2、列3为目标表的列名,值1、值2、值3为备份数据中对应列的值。

2. 使用UPDATE语句恢复单条数据如果仅需要恢复某个或某几个列的数据,可以使用UPDATE语句来进行恢复。

例如:```UPDATE 表名 SET 列1 = 值1, 列2 = 值2, 列3 = 值3 WHERE 条件;```其中,表名为需要恢复数据的目标表,列1、列2、列3为目标表的列名,值1、值2、值3为备份数据中对应列的值,条件为恢复数据的条件。

3. 使用INSERT INTO SELECT语句批量恢复数据如果需要恢复多条数据,可以使用INSERT INTO SELECT语句来进行批量恢复。

例如:```INSERT INTO 表名 (列1, 列2, 列3, ...)SELECT 列1, 列2, 列3, ... FROM 备份表名 WHERE 条件;```其中,表名为需要恢复数据的目标表,列1、列2、列3为目标表的列名,备份表名为备份数据的表名,条件为恢复数据的条件。

4. 使用FLASHBACK TABLE语句恢复整个表如果表中的数据被误删除或修改,可以使用FLASHBACK TABLE语句将整个表恢复到某个时间点的状态。

例如:```FLASHBACK TABLE 表名 TO TIMESTAMP TO_TIMESTAMP('时间点', '日期格式');```其中,表名为需要恢复数据的表名,时间点为需要恢复到的具体时间,日期格式为时间的格式。

Oracle数据备份(exp.exe)、恢复工具(imp.exe)使用方法

Oracle数据备份(exp.exe)、恢复工具(imp.exe)使用方法

Oracle数据备份(exp.exe)、恢复工具(imp.exe)使用方法例子:exp svcm/svcm@zjzx owner=svcm rows=y indexes=n compress=n buffer=65536 file=d:\exp_svcm_20060323.dmp log=d:\imp_svcm_20060323.logimp sms/smssend@orazw fromuser=svcm touser=sms rows=y commit=y buffer=65536 file=d:\exp_svcm_20060323.dmp log=d:\imp_svcm_20060323.logexp 命令格式: EXP KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)或TABLES=(T1: P1,T1: P2),如果T1 是分区表USERID 必须是命令行中的第一个参数。

关键字说明(默认)---------------------------------------------------USERID 用户名/口令FULL 导出整个文件(N)BUFFER 数据缓冲区的大小OWNER 所有者用户名列表FILE 输出文件(EXPDAT.DMP)TABLES 表名列表COMPRESS 导入一个范围(Y)RECORDLENGTH IO 记录的长度GRANTS 导出权限(Y)INCTYPE 增量导出类型INDEXES 导出索引(Y)RECORD 跟踪增量导出(Y)ROWS 导出数据行(Y)PARFILE 参数文件名CONSTRAINTS 导出限制(Y)CONSISTENT 交叉表一致性LOG 屏幕输出的日志文件STATISTICS 分析对象(ESTIMATE)DIRECT 直接路径(N)TRIGGERS 导出触发器(Y)FEEDBACK 显示每x 行(0) 的进度FILESIZE 各转储文件的最大尺寸QUERY 选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据(N)TABLESPACES 将传输的表空间列表imp 命令:或者, 可以通过输入IMP 命令和各种自变量来控制“导入”按照不同参数。

备份oracle数据库表的方法

备份oracle数据库表的方法

备份oracle数据库表的方法备份Oracle数据库表是保证数据库数据安全的重要措施之一。

本文将介绍几种备份Oracle数据库表的方法,帮助用户选择适合自己的备份方式。

一、使用数据泵导出表数据数据泵是Oracle提供的一个强大的工具,可以将表数据导出为一个可移植的二进制文件。

使用数据泵导出表数据的步骤如下:1. 连接到数据库:使用SQL*Plus或SQL Developer等工具连接到Oracle数据库。

2. 导出表数据:运行以下命令导出表数据:```expdp username/password@connect_string tables=table_name directory=directory_name dumpfile=dumpfile_name.dmp```其中,username是数据库用户名,password是密码,connect_string是数据库连接字符串,table_name是要导出的表名,directory_name是存储导出文件的目录,dumpfile_name是导出文件的名称。

3. 导出结果:数据泵将会导出表数据,并保存在指定的目录中的导出文件中。

二、使用INSERT语句备份表数据除了使用数据泵,还可以使用INSERT语句将表数据备份到另一个表中。

这种方法适用于小型数据库,备份过程如下:1. 创建备份表:在同一个数据库中创建一个与原表结构相同的备份表。

```CREATE TABLE backup_table AS SELECT * FROM original_table WHERE 1=0;```2. 备份数据:运行以下命令将表数据备份到备份表中。

```INSERT INTO backup_table SELECT * FROM original_table;```注意,这个命令会将原表的所有数据复制到备份表中。

三、使用Oracle备份工具除了以上两种方法,还可以使用Oracle备份工具进行表数据备份。

使用NetBackup进行oracle备份和恢复

使用NetBackup进行oracle备份和恢复

使用NetBackup进行oracle备份和恢复一、环境介绍:这个实验都是在vmware workstation里完成的。

由于NetBackup7只能装在64位的系统上,所以这里采用了64位的rhel5.5系统,以及oracle 10gr2 for linux_x64的软件包。

数据库的数据文件存储在ASM中。

安装rhel、oracle、netbackup这里不提,可以参考网上其他博文。

NetBackup的服务端、客户端以及媒体服务器都在同一台主机上()。

在安装netbackup7过程中,数据库的agent不需要额外再单独安装,安装客户端以及服务器端时默认已经安装了,只需要以oracle身份执行oracle_links将rman和netbackup 结合在一块即可。

以下主要针对备份和恢复做详细描述。

二、备份:在备份之前要创建一个适用于oracle的策略,否则无法进行备份的。

至于如何创建策略,可以参考官方文档。

这里已经创建了一个策略orabak,此策略类型是oracle,如图所示:创建完成后在页面存在一个名为“Default-Application-Backup”的默认日程,可以在日程选项里进行新增、删除、更新日程等操作。

本次试验不进行策略设置,默认日程已经能够满足测试的。

注意:jnbSA程序是netbackup的管理窗口,而jbpSA是客户端进行备份、恢复、归档操作的窗口。

要进行oracle的备份,必须以oracle用户运行jbpSA命令,如图所示:登录成功后会看到如下画面:选中要备份的数据库实例,这里只有db01一个实例,然后点击右下角的Backup按钮,会弹出Netbackup for oracle backup向导画面:点击下一步:这里选择认证方式,有OS认证以及oralce认证,如果是OS认证,则NBU会以oracle身份运行相关命令,因为之前登录的用户就是oracle。

如果是oracle认证,则User Name必须是具有sysdba权限的数据库用户,一般就是sys用户:Net service name可选的。

Oracle 使用RMAN备份数据库文件和归档日志

Oracle 使用RMAN 备份数据库文件和归档日志当数据库打开时,可以使用RMAN BACKUP 命令备份如下对象:● 数据库● 表空间● 数据文件● 归档重做日志● 控制文件● 备份集在使用BACKUP 命令备份数据文件时,可以为其设置参数,定义备份段的文件名,文件数和每个输入文件的通道。

1.备份数据库如果备份操作是在数据库被安全关闭之后进行的,那么对整个数据库的备份是一致的;与之相对应,如果数据库是在打开状态下对整个数据库进行的备份,则该备份是非一致的。

非一致性备份整个数据库的操作步骤如下:(1)启动RMAN 并连接到目标数据库,输入BACKUP DATABASE 命令备份数据库。

在BACKUP 命令中可以指定FORMA T 参数,为RMAN 生成的每个备份片段指定一个惟一的名称,以及存储的位置。

C:\>rman target system/admin nocatalogRMAN> backup database format 'f:\oracle_backup\ora11g_%Y_%M_%D_%U.bak' maxsetsize=2G; 还可以为BACKUP 命令指定TAG 参数,为备份片段定义备份标签。

例如: RMAN>backup database tag='weekly_backup';(2)如果建立的是非一致性备份,那么必须在完成备份后对当前的联机重做日志进行归档,因为在使用备份恢复数据库需要使用当前重做日志中的重做记录。

RMAN>sql'alter system archive log current';(3)在RMAN 中执行LIST BACKUP OF DA TABASE 命令,查看建立的备份集与备份片段的信息。

RMAN> list backup of database;如果需要对整个数据库进行一致性备份,则首先需要关闭数据库,并启动数据库到MOUNT 状态。

orcal数据备份语句

orcal数据备份语句
Oracle数据库备份语句是保障数据库数据安全的重要手段。

以下是符合标题要求的Oracle数据备份语句,希望对您有所帮助。

1.全备份语句
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
2.增量备份语句
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG;
3.备份指定表空间
RMAN> BACKUP TABLESPACE users;
4.备份指定数据文件
RMAN> BACKUP DATAFILE 1;
5.增量备份指定表空间
RMAN> BACKUP INCREMENTAL LEVEL 1 TABLESPACE users;
6.备份指定控制文件
RMAN> BACKUP CURRENT CONTROLFILE;
7.备份指定归档日志
RMAN> BACKUP ARCHIVELOG ALL;
8.备份指定时间段内的归档日志
RMAN> BACKUP ARCHIVELOG FROM TIME 'SYSDATE-7' UNTIL TIME 'SYSDATE';
9.备份指定备份集
RMAN> BACKUP BACKUPSET 1;
10.备份指定备份集副本
RMAN> BACKUP BACKUPSET COPY 1;
以上是Oracle数据库备份语句的一些常见用法,不同的备份需求需要使用不同的备份语句。

备份后一定要及时验证备份是否成功,并将备份文件保存在安全可靠的地方,以免发生数据丢失情况。

oracle备份数据库的sql语句

oracle备份数据库的sql语句Oracle备份数据库使用两种SQL语句:用于全文档备份和备份特定表/表空间。

1. 全文档备份Oracle用RMAN来备份数据库,其常用语句如下:(1) 启动备份:startup nomount;(2) 配置RMAN:rman target sys/password;(3) 备份数据库:backup database;(4) 保留几天的备份:configure retention policy to recovery window of num_days;(5) 进行压缩:configure compression device physical backupset on;(6) 备份到网络存储:backup device type 'SBT_TAPE' format 'my_backup_%U.dbf' database include current controlfile;(7) 停止RMAN:shutdown immediate;(8) 退出RMAN:exit;2. 备份特定表/表空间如果要备份特定表或者表空间,可以使用如下SQL语句:(1) 备份某个表空间:expdp system/password directory='data_pump_dir' dumpfile='tablename.dmp' tablespaces=tablename;(2) 备份某个表:expdp system/password directory='data_pump_dir' dumpfile='tablename.dmp' table=tablename;(3) 获取备份存储的位置:select * from dba_directories;(4) 检查备份的完整性:impdp system/password directory='data_pump_dir' dumpfile='tablename.dmp' table=tablenamelogfile='check_dumpfile.log' full=y;。

orcle数据库备份语句

orcle数据库备份语句Oracle数据库备份是一项非常重要的任务,可以保障数据的安全性和完整性。

在进行数据库备份时,我们可以使用不同的语句和方法来完成备份操作。

以下是一些常用的Oracle数据库备份语句:1. 使用RMAN备份整个数据库:RMAN是Oracle推荐的备份工具,可以使用以下语句备份整个数据库:```RMAN> BACKUP DATABASE;```2. 使用RMAN备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```RMAN> BACKUP TABLESPACE tablespace_name;```3. 使用RMAN备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```RMAN> BACKUP DATAFILE 'datafile_path';4. 使用RMAN备份指定控制文件:控制文件是数据库的关键组成部分,可以使用以下语句备份控制文件:```RMAN> BACKUP CURRENT CONTROLFILE;```5. 使用RMAN备份归档日志:归档日志包含了数据库的所有更改记录,可以使用以下语句备份归档日志:```RMAN> BACKUP ARCHIVELOG ALL;```6. 使用EXPDP备份数据库:EXPDP是Oracle提供的数据泵工具,可以使用以下语句备份整个数据库:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp full=yes;7. 使用EXPDP备份指定表:如果只需要备份数据库中的特定表,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name;```8. 使用EXPDP备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tablespaces=tablespace_name;```9. 使用EXPDP备份指定用户:如果只需要备份数据库中的特定用户,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp schemas=user_name;```10. 使用EXPDP备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp filesperset=1 include=datafile:'datafile_path';```总结:以上是一些常用的Oracle数据库备份语句,通过使用不同的备份语句可以实现对整个数据库、指定表空间、指定数据文件、归档日志等的备份。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle数据库备份与还原命令
Oracle数据库备份与还原命令
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
对@可能要加转义字符,例如:
exp bdm/bdm6000\"@bdm\" file=/home/oracle/rds3000/xbdb_old20160119.dmp full=y
2 将数据库中system用户与sys用户的表导出

exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
exp bdm/bdm6000@bdm file=/home/oracle/rds3000/data/database/tbfac_dev.dmp
tables=(facinfo,deviceinfo);

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1)query=\" where filed1 like
'00%'\"

上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面 加上 compress=y 就可以了
数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
注意:
你要有足够的权限,权限不够它会提示你。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上
附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp

安装oracle9I
Szportdb\szportdb\szportdb
用sysdba 登录建立用户:szportdb 表空间可以自己设定,也可以Users
倒入数据库。

Imp szportdb/szportdb@szportdb full=y C:\szportdb.dmp ignore=

相关文档
最新文档