oracle数据库备份

来源:互联网 发布:python 打包发布 编辑:程序博客网 时间:2024/05/22 14:34
数据库的备份操作是在整个项目运行中最重要的工作之一。
一、数据的导出和导入
数据的导出和导入是针对于一个用户的备份操作,可以按照如下的方式完成:
1、  数据的导出
在硬盘上建立一个文件夹:E:\backup;

输入exp指令;

输入用户名和密码;

设置导出文件的名称:导出文件: EXPDAT.DMP;


直接回车就行:


成功导出:



2、  数据的导入
先将表删除干净;


确定所有的表已经被删除:


进入到导出文件所在的文件夹之中:E:\backup;
输入imp指令;
输入用户名和密码;
导入整个导出文件 (yes/no): no > yes

如下图:



总结上述方法:

但是以上的操作只是做为一个演示,因为这种备份操作本身只适合数据量小的情况,如果数据量较大的话,这种操作是会损耗性能的,而且时间也会很长,要想解决大数据量的问题只能对数据分区操作。


二、数据表的冷备份

在数据操作之中,有可能有些用户不会进行事务的提交,那么在这种情况下很可能无法进行完整的备份操作,而所谓的冷备份指的就是在闭数据库实例的情况下进行数据库备份操作的实现。

如果要进行冷备份,则需要备份出数据库中的一些几个核心内容:

  • 控制文件,指的是控制整个Oracle数据库的实例服务的核心文件,直接通过”v$controlfile”找到;
  • 重做日志文件,可以进行数据的灾难恢复,直接通过”v$logfile”找到;
  • 数据文件,表空间文件,通过”v$datafile”和”v$tablespace”找到;
  • 核心操作的配置文件(pfile),通过”SHOW PARAMETER pfile”找到;

从实际的Oracle的部署来讲,所有的文件为了达到IO的平衡操作,要分别保存在不同的硬盘上。

确定了要备份的文件之后,下面按照如下的步骤查找:

1、  使用超级管理员登录

SQL> CONN sys/change_on_install AS SYSDBA;
已连接。
SQL> show user;
USER 为 "SYS"2、  查找所有的控制文件目录

2、  查找所有的控制文件目录

SQL> set linesize 500
SQL> select * from v$controlfile;

3、  备份重做日志文件

SQL> select * from v$logfile;

4、  查找表空间文件

SELECT * FROM v$tablespace;
SELECT * FROM v$datafile;

5、  找到pfile文件

SQL> show parameter pfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      F:\ORACLEINTALL\INTALL1\PRODUC
                                                 T\11.2.0\DBHOME_1\DATABASE\SPF
                                                 ILEORACLE.ORA

6、  关闭数据库实例

SQL> SHUTDOWN IMMEDIATE;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。


7、  将所有查找到的数据备份到磁盘上;

8、  启动数据库实例
STARTUP;

SQL> startup;
ORACLE 例程已经启动。


Total System Global Area 1486495744 bytes
Fixed Size                  2175888 bytes
Variable Size             973081712 bytes
Database Buffers          503316480 bytes
Redo Buffers                7921664 bytes
数据库装载完毕。
数据库已经打开。


0 0
原创粉丝点击