1. 首页 > 数码 >

oracle如何备份sql语句?

oracle 通过sql语句备份数据库

oracle没有sql语句备份,只有exp导出或者RMAN备份,都不是sql,RMAN是标准的数据块备份,前提要求是数据库一定要开启归档,然后才可以进行RMAN备份,这个方法对数据量大的数据库可以使用,速度会比较快,具体方法可以从网上查,不是很难,但比较繁琐,还有一个exp导出,这个是直接将数据库内的表直接导出城dmp文件,具体的语法是

oracle如何备份sql语句?oracle如何备份sql语句?


oracle如何备份sql语句?


exp

user/password@DBSID

file=D:\备份目标文件夹\文件名.dmp

log=D:\备份目标文件夹\文件名.log

owner=用户名

上述语句是需要在cmd命令行下执行的,如果想导出哪个用户就可以导出哪个用户,只要能用sql语句连接到数据库就可以使用,不管在哪个机器

如何做Oraclel数据库数据备份

EXP和IMP是Oracle提供的一种逻辑备份工具。逻辑备份创建数据库对象的逻辑拷贝并存入一个二进制转储文件。这种逻辑备份需要在数据库启动的情况下使用, 其导出实质就是读取一个数据库记录集(甚至可以包括数据字典)并将这个记录集写入一个文件,这些记录的导出与其物理位置无关,导入实质就是读取转储文件并执行其中的命令。此备份方式是通过Oracle的实用工具export和import来实施的, export是把数据库中的数据导出,import是把export卸出的数据导入数据库中。通过此工具可以衍生出多种功能, 比如整个数据库的备份、表结构重建、数据的传输、用户的改变等等。

也可以采用专业的容灾备份软件对ORACLE数据进行备份。实时数据备份的软件现在很多,CDP容灾备份方案(备特佳备份软件)在RPO和RTO两项指标上优势明显,可以实现数据的实时备份,保障业务系统的连续性。有数据级和应用级两种容灾方案。

怎样备份oracle数据库里其中的一张表的完整数据包括约束等等

1.首先,确认oracle上用oracle红色标记的相关服务是否已经正常启动,如下图。

2.然后关闭百条PLSQL,让连接退出,确保断开到数据库的所有连接,如果数据库是连接到客户端,备份可能会有异常通知。

3.然后打开CMD命令提示窗口,输入备份数据库的命令。xp命令后面是用户名和密码,如下图。

4.要有耐心。当导出数据时,CMD窗口中会出现一个提示,表明数据库备份导出已经完成。

5.此时,在计算机中找到步骤4中设置的文件的保存路径。在下面的截图中,您将发现还有一个DMP文件,它是我们需要的备份文件,如下图。

oracle数据库如何备份与恢复

Oracle数据库的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的)。物理备份又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份。

冷备份是指在数据库关闭的情况下对数据文件、控制文件和重做日志文件进行拷贝。冷备份的优点是简单、快速、安全,缺点是需要停机维护,影响业务连续性。

热备份是指在数据库开启并处于归档模式下对数据文件进行拷贝。热备份的优点是不需要停机维护,不影响业务连续性,缺点是比较复杂、耗时、占用资源。

导入导出是指使用EXP/IMP或者数据泵技术将数据库中的对象或者数据导出到一个二进制文件中,并且可以将这个文件导入到另一个数据库中。导入导出的优点是灵活、方便、可移植,缺点是不能保证一致性、效率低、不能恢复系统对象。

oracle 如何备份一个表的数据 或者是将一个表中的数据插入到令一张新表里?

只空表结构\x0d\x0acreate table 新表名 as \x0d\x0aselect from 旧表名 where 11;\x0d\x0a\x0d\x0a表结构和数据\x0d\x0acreate table 新表名 as \x0d\x0aselect from 旧表名

Oracle数据库备份与恢复之二:SQLLoader

基本知识

Oracle 的 SQL LOADER 可以将外部格式化的文本数据加载到数据库表中 通常 与 SPOOL导出文本数据方法配合使用

命令格式

SQLLDR keyword=value [ keyword=value ……]

例 $ sqlldr user/pwd control=emp ctl data=emp dat bad=emp bad log=emp log

控制文件

SQLLOADER 根据控制文件可以找到需要加载的数据 并且分析和解释这些数据

控制文件由三个部分组成 具体参数参考帮助文档 全局选件 行 跳过的记录数等 INFILE 子句指定的输入数据 数据特性说明

ment ——注释

例load data infile

append ——除了 append外 还有 insert replace truncate等方式

into table emp fields terminated b y |

(no float external name char( )

age integer external

duty char( ) salary float external

upd_ts date( ) YYYYMMDDHH MISS )

begindata

|Mulder| | | |

|Scully| | | |

控制文件中infile选项跟sqlldr 命令行中data 选项含义相同 如使用infile 则表明数据在本控制文件以 begin data 开头的区域内 一些选项 FIELDS TERMINATED BY WHITESPACE FIELDS TERMINATED BY x FILLER_ FILLER // 指定某一列将不会被装载

DEPTNO ition( ) DNAME ition( ) // 指定列的位置SEQNO RECNUM //载入每行的行号

SKIP n // 指定导入时可以跳过多少行数据

数据文件

按控制文件数据格式定义的数据行集

例 |Tom| | | |

|Jerry| | | |

固定格式 可变格式 流记录格式

固定格式

当数据固定的格式(长度一样)时且是在文件中得到时 要用 INFILE fix n

load data

infile example dat fix

into table example

fields terminated b y optionally enclosed by

(col char( ) col char( )) example dat

cd fghi

lmn

pqrs

uvwx

可变格式

当数据是可变格式(长度不一样)时且是在文件中得到时 要用 INFILE var n 如

load data

infile example dat var

into table example

fields terminated b y optionally enclosed by

(col char( ) col char( )) example dat

hello cd world im

my name is

流记录格式 // Stream recored format load data infile xx dat str |

into table xx field terminated b y optionally enclosed by

(col char( ) col char( ))

example dat

hello ccd |

world bb |

坏文件

bad=emp bad坏文件包含那些被 SQLLoader拒绝的记录 被拒绝的记录可能是不符合要求的记录

日志文件及日志信息

log=emp log当 SQLLoader 开始执行后 它就自动建立 日志文件 日志文件包含有加载的总 结 加载中的错误信息等

高级选项

Conventional Path Load与Direct Path Load

Conventional path Load 通过常规通道方式上载

特点 mit always gen redo logs enforce all constraints fire insert triggers can load into cluster other user can make change

rows 每次提交的记录数

bindsize 每次提交记录的缓冲区

readsize 与 bindsize 成对使用 其中较小者会自动调整到较大者

sqlldr 先计算单条记录长度 乘以 rows 如小于 bindsize 不会试图扩张 rows以填充 bindsize 如超出 则以 bindsize 为准 命令为

$ sqlldr dbuser/oracle control=emp ctl log=emp log rows= bindsize=

Direct Path Load

通过直通方式上载 可以跳过数据库的相关逻辑 不进行 SQL解析 而直接将数 据导入到数据文件中

特点 se conditionly gen redo logs enforce PK UK NN not fire triggers can not load into cluster other user can not make change命令为

$ sqlldr dbuser/oracle control=emp ctl log=emp log direct=true

SPOOL导出文本数据方法

导入的数据文件可以用 SPOOL导出文本数据方法生成

SQLPLUS环境设置

SET NEWPAGE NONE HEADING OFF SPACE

PAGESIZE SET TRIMOUT ON TRIMSPOOL ON LINESIZE

注 LINESIZE 要稍微设置大些 免得数据被截断 它应和相应的 TRIMSPOOL结合使用防止导出的文本有太多的尾部空格

但是如果 LINESIZE 设置太大 会大大降低导出的速度 另外在 WINDOWS下导 出不要用 PLSQL导出 速度比较慢 直接用 MEND 下的 SQLPLUS命令 小化窗口执行 对于字段内包含很多回车换行符的应该给与过滤 形成比较规矩的文本 文件

通常情况下 我们使用 SPOOL方法 将数据库中的表导出为文本文件 如下述

set trimspool on

set linesize pagesize newpage heading off term off spool 路径+文件名

select col || ||col || ||col || ||col || …… from tablename

spool off

脚本

将表中数据记录导出为字段值用分隔符 | 分开的 dat文件

#!/bin/ksh

##################################################################

## 名称 unloadtable

## 功能 本 shell 用于将表中数据记录导出

## 导出为字段值用分隔符 | 分开的 dat文件

## 编者

## 日期

##################################################################

if [ $# ne ]

then echo usage unloadtable tablename username password

exit

fi

##准备工作

echo set heading off >/tmp/$l

echo set pagesize >>/tmp/$l

echo set linesize >>/tmp/$l

echo set feedback off >>/tmp/$l

echo set tab off >>/tmp/$l

echo select column_name|| from user_tab_columns where lower(table_name)= $ order by

column_id >> /tmp/$l

##产生 select 语句

echo set heading off >/tmp/$ sel

echo set pagesize >>/tmp/$ sel

echo set linesize >>/tmp/$ sel

echo set feedback off >>/tmp/$ sel

echo set tab off >>/tmp/$ sel

echo select >>/tmp/$ sel

echo `sqlplus s $ /$ < /tmp/$l` |sed s/ /|| | ||/g |sed s/||$//g |sed s/date/\ date\ /g

>>/tmp/$ sel

##生成 dat文件

#echo from $

/ >>/tmp/$ sel 由于 / 导致多执行一次 select

echo from $

>>/tmp/$ sel

sqlplus s $ /$ < /tmp/$ sel >$ _tmp dat

#awk {if(FNR!= ) print $ } $ _tmp dat >$ dat FNR 选项使得条记录选不出

awk {print $ } $ _tmp dat >$ dat

rm f $ _tmp dat

将数据导入到相应表中

#!/bin/ksh

##################################################################

## 名称 loadtable

## 功能 本 shell 用于将已经准备好的 dat数据文件导入相应的表中

## dat 文件各个字段值用分隔符 | 分开

## 编者

## 日期

##################################################################

if [ $# ne ]

then

echo usage loadtable tablename username password exit fi

##准备工作

echo set heading off >/tmp/$lsql

echo set pagesize >>/tmp/$lsql

echo set linesize >>/tmp/$lsql

echo set feedback off >>/tmp/$lsql

echo set tab off >>/tmp/$lsql

echo select column_name|| from user_tab_columns where lower(table_name)= $ order by

column_id >> /tmp/$lsql

##产生 ctl文件

echo load data >/tmp/$ ctl

echo infile >>/tmp/$ ctl

echo into table $ >>/tmp/$ ctl

echo fields terminated by | >>/tmp/$ ctl

echo `sqlplus s $ /$ < /tmp/$lsql` |sed s/ $/)/g |sed s/^/(/g >>/tmp/$ ctl

##开始导入数据

echo truncate table $ >/tmp/$ sql

sqlplus $ /$ < /tmp/$ sql

lishixinzhi/Article/program/Oracle/201311/17312

SQL怎样用SQL语句备份一张数据表

“AS 附近有语法错误”这个提示应该是SQL SERVER的,可见楼主是在SQL 里执行的,而create table ... as是ORACLE的语句,在SQL 里是不能执行的,SQL 里类似的就是

select into person_backup from person

SQL语言:

是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息