当前位置:首页 » 编程语言 » sql语句数据库备份

sql语句数据库备份

发布时间: 2022-06-19 16:25:30

sql语句对数据库备份如何写

今天看到一篇关于ORCLE的逻辑备份,冷、热备份的帖子讲的挺好的,不过这篇文章是以ORACLE 7为例子,虽然现在已经有很好很强大的RMAN,但还是觉得有必要转过来,不能喜新厌旧嘛。

==================================================================================

Oracle数据库的备份与恢复

---- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7为例,来讲述一下数据库的备份和恢复。ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份。

---- 一、 导出/导入(Export/Import)

---- 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。

---- 1. 简单导出数据(Export)和导入数据(Import)

---- Oracle支持三种类型的输出:

---- (1)表方式(T方式),将指定表的数据导出。

---- (2)用户方式(U方式),将指定用户的所有对象及数据导出。

---- (3)全库方式(Full方式),将数据库中的所有对象导出。

---- 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

---- 2. 增量导出/导入

---- 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

---- 增量导出包括三个类型:

---- (1)“完全”增量导出(Complete)

---- 即备份整个数据库,比如:

---- $exp system/manager inctype=complete file=990702.dmp

---- (2) “增量型”增量导出

---- 备份上一次备份后改变的数据。比如:

---- $exp system/manager inctype=incremental file=990702.dmp

---- (3) “累计型”增量导出(Cumulative)

---- 累计型导出方式只是导出自上次“完全” 导出之后数据库中变化了的信息。比如:

---- $exp system/manager inctype=cumulative file=990702.dmp

---- 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。

---- 比如数据库的备份任务可作如下安排:

---- 星期一:完全导出(A)

---- 星期二:增量导出(B)

---- 星期三:增量导出(C)

---- 星期四:增量导出(D)

---- 星期五:累计导出(E)

---- 星期六:增量导出(F)

---- 星期日:增量导出(G)

---- 如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:

---- 第一步:用命令CREATE DATABASE重新生成数据库结构;

---- 第二步:创建一个足够大的附加回段。

---- 第三步:完全增量导入A:

---- $imp system./manager inctype= RECTORE FULL=Y FILE=A

---- 第四步:累计增量导入E:

---- $imp system/manager inctype= RECTORE FULL=Y FILE =E

---- 第五步:最近增量导入F:

---- $imp system/manager inctype=RESTORE FULL=Y FILE=F

---- 二、 冷备份

---- 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:

---- 1.是非常快速的备份方法(只需拷贝文件)

---- 2.容易归档(简单拷贝即可)

---- 3.容易恢复到某个时间点上(只需将文件再拷贝回去)

---- 4.能与归档方法相结合,作数据库“最新状态”的恢复。

---- 5.低度维护,高度安全。

---- 但冷备份也有如下不足:

---- 1.单独使用时,只能提供到“某一时间点上”的恢复。

---- 2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

---- 3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。

---- 4.不能按表或按用户恢复。

---- 如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

---- 1.所有数据文件

---- 2.所有控制文件

---- 3.所有联机REDO LOG文件

---- 4.Init.ora文件(可选)。

---- 值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的

---- 下面是做冷备份的完整例子:

---- (1) 关闭数据库$sqldba lmode=y

---- SQLDBA >connect internal;

---- SQLDBA >shutdown normal;

---- (2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件

---- SQLDBA >! cp < file > <

; backup directory >

---- (3) 重启Oracle数据库

---- $sqldba lmode=y

---- SQLDBA >connect internal;

---- SQLDBA >startup;

---- 三、 热备份

---- 热备份是在数据库运行的情况下,采用archivelog mode方式备份数据的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

---- 1.数据文件一个表空间一个表空间地备份。

---- (1)设置表空间为备份状态

---- (2)备份表空间的数据文件

---- (3)恢复表空间为正常状态

---- 2.备份归档log文件。

---- (1)临时停止归档进程

---- (2)log下那些在archive redo log目标目录中的文件

---- (3)重新启动archive进程

---- (4)备份归档的redo log 文件

---- 3.用alter database backup controlfile命令来备份拷贝文件

---- 热备份的优点是:

---- 1.可在表空间或数据文件级备份,备份时间短。

---- 2.备份时数据库仍可使用。

---- 3.可达到秒级恢复(恢复到某一时间点上)。

---- 4.可对几乎所有数据库实体作恢复。

---- 5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。

---- 热备份的不足是:

---- 1.不能出错,否则后果严重。

---- 2.若热备份不成功,所得结果不可用于时间点的恢复。

---- 3.因难于维护,所以要特别仔细小心,不允许“以失败而告终”。

⑵ 请问用SQL语句实现对指定的数据库进行备份和还原的语句是怎么样的呢

请问,是对sqlserver库的么???
备份:
BACKUP
DATABASE
"mydb"
TO
DISK
='C:\mybak.db'
with
init
还原
use
master
RESTORE
DATABASE
"mydb"
FROM
DISK='C:\mybak.db';
use
mydb
[补充]
这两个命令都得指定一个文件名字啊..
你看我的例子都是'C:\mybak.db'
你指定了一个目录肯定不行的啊,还得要指定一个文件名字才成!!
这两个是sqlserver的自定义的存储过程,其实也能手工在sqlserver的企业管理器中看到,,
选中库,右键--所有任务--备份还原数据库那.
还不行就
给我信息吧...
这里补充我一般看不见的...

⑶ 怎么用SQL语句备份和恢复数据库

用SQL语句备份与恢复数据库的步骤:

  1. 备份: mysqlmp --quick --database ondemand1 --u root >bacqup.sql 这样就能把数据库中ondemand1的表全部备份出来。

  2. 其中参数的格式是:--,两横杠,不是我们常用的单横杠。

  3. quick是在数据比较多的时候,不用该参数的话,所有的数据都会先在内存缓存,接着才导出,这样会导致服务器运行减慢。

  4. --u 必须要加一个用户名,否则系统会提示你进不了ODBC数据库的。

  5. >backup.sql则是你备份数据库的目标文件名。

  6. 恢复:m1ysql -u root -p database_name d:db.bak,在WIN下,路径用path/filename.sql是不行的,那就用pathfilename.sql。

sql语句:

是对数据库进行操作的一种语言。结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

⑷ sql语句 sql server2000数据库备份

上述语句中的disk是指硬盘文件作为备份设备的意思,test备份设备的逻辑名称。
根据你所列语句的意思,是要将pubs这个数据库,按照之前定义的备份设备(test)上的描述进行备份,也就是备份到磁盘文件的这个路径d:\backup_base\100123.dat
语句应该没有问题,但执行完上述语句后,应该执行多一句:
exec
sp_dropdevice
'test'

⑸ 怎么用sql语句备份恢复sql2008数据库

SQL语句备份和恢复
SQL
Server:
备份命令:
BACKUP
DATABASE
test
TO
disk
=
'c:\test'
WITH
FORMAT,
NAME
=
'Full
Backup
of
MyNwind'
解释如下:
NAME
=
'Full
Backup
of
MyNwind'
--这个是备注,随便写。
还原命令:
USE
master
GO
RESTORE
DATABASE
test_wt
FROM
disk
=
'c:\test_wt'
GO
MySQL:
备份:
mysqlmp
-u
root
-p
database_name
>
d:\db.bak
恢复:
mysql
-u
root
-p
database_name
<
d:\db.bak
注意:在WIN下,路径用path/filename.sql是不行的,那就用path\filename.sql

⑹ 如何用SQL语句 直接 备份,还原SQL 2000数据库

备份数据库,例如:
BACKUP DATABASE Northwind
TO DISK = 'c:\Northwind.bak'

还原数据库,例如:
--返回由备份集内包含的数据库和日志文件列表组成的结果集
RESTORE FILELISTONLY
FROM DISK = 'c:\Northwind.bak'
--还原由BACKUP备份的数据库
RESTORE DATABASE Northwind
FROM DISK = 'c:\Northwind.bak'
--指定还原后的数据库物理文件名称及路径
RESTORE DATABASE TestDB
FROM DISK = 'c:\Northwind.bak'
WITH
MOVE 'Northwind' TO 'c:\test\testdb.mdf',
MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
MOVE 'logical_file_name' TO 'operating_system_file_name'
指定应将给定的 logical_file_name 移到 operating_system_file_name。
默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE
语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重
新定位数据库文件以避免与现有文件冲突。可以在不同的 MOVE 语句中指定
数据库内的每个逻辑文件。
--强制还原,加上REPLACE参数,则在现有数据库基础上强制还原。
RESTORE DATABASE TestDB
FROM DISK = 'c:\Northwind.bak'
WITH REPLACE,
MOVE 'Northwind' TO 'c:\test\testdb.mdf',
MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'

⑺ oracle 通过sql语句备份数据库

oracle没有sql语句备份,只有exp导出或者RMAN备份,都不是sql,RMAN是标准的数据块备份,前提要求是数据库一定要开启归档,然后才可以进行RMAN备份,这个方法对数据量大的数据库可以使用,速度会比较快,具体方法可以从网上查,不是很难,但比较繁琐,还有一个exp导出,这个是直接将数据库内的表直接导出城dmp文件,具体的语法是
exp
user/password@DBSID
file=D:\备份目标文件夹\文件名.dmp
log=D:\备份目标文件夹\文件名.log
owner=用户名
上述语句是需要在cmd命令行下执行的,如果想导出哪个用户就可以导出哪个用户,只要能用sql语句连接到数据库就可以使用,不管在哪个机器

热点内容
开源库编译管理员 发布:2025-02-06 09:39:14 浏览:913
脸书怎么注册安卓 发布:2025-02-06 09:36:47 浏览:380
车用安卓导航无线打不开什么原因 发布:2025-02-06 09:27:50 浏览:789
安卓与苹果如何互相传送文件 发布:2025-02-06 09:27:40 浏览:25
华为服务器盘符如何分配 发布:2025-02-06 09:26:41 浏览:559
传奇h5源码下载 发布:2025-02-06 09:26:06 浏览:77
编译uclibc 发布:2025-02-06 09:09:04 浏览:150
用gcc编译16位汇编 发布:2025-02-06 09:06:07 浏览:822
什么低端安卓手机不卡 发布:2025-02-06 09:03:32 浏览:13
我的世界服务器卡领地 发布:2025-02-06 08:50:45 浏览:255