Oracle 10g 数据库的备份和还原

简介:
一、备份数据库

1.在图形工具中,如sqldeveloper,pl/sqldeveloper用以下这句查找空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

2.把第一步执行得到的结果当用sql语来再次执行
3.到oracle服务器上执行备份语句. 运行-cmd 执行下面命今
   exp 用户名/密码@数据库实例 file=备份文件存放路径 owner=用户名
 例: exp ezeip/123456@orcl file=d:\bak.dmp owner=MyDataBase

二、还原数据库

(如果已有数据库,则执行第1、2步)
--1.删除表空间
DROP TABLESPACE shjc INCLUDING CONTENTS AND DATAFILES;
--2.删除用户
DROP USER shjc CASCADE

--3.创建表空间
Create tablespace shjc datafile'c:\oracle\product\10.2.0\db_1\admin\orcl\dpdump\SHJC.DBF' size 500M autoextend on next 50M;
存放路径可以由脚本7来查看)
--4.创建用户
create user shjc identified by shjc123 default tablespace shjc;
--5.授权给用户
grant connect,resource,dba to shjc; 

--6.导入数据库(在cmd里执行)
--11g:IMPDP USERID='shjc/shjc123@orcl as sysdba' schemas=shjc directory=DATA_PUMP_DIR dumpfile=shjc.dmp logfile=shjc.log version=10.2.0.1.0
--10g:imp shjc/shjc123@orcl file=e:\shjc.dmp full=y  ignore=y          

--7.查看管理理员目录(DATA_PUMP_DIR)
select * from dba_directories;
--8.查看字符集
select * from V$NLS_PARAMETERS where parameter = 'NLS_CHARACTERSET' 

三、备用脚本

--1)查看用户的连接状况 
select username,sid,serial# from v$session 
--2)找到要删除用户的对应的sid,和serial,并删除  
alter system kill session '158,2009'; 
--3)查看session的状态来确定该session是否被kill 了!!status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。 
select saddr,sid,serial#,paddr,username,status from v$session where username is not null AND username = 'SHJC'    

四、综合脚本

 --查询所有表空间和物理文件存放路径

SELECT b.file_name AS 物理文件路径,
       b.tablespace_name AS 表空间名,
       b.bytes / 1024 / 1024 表空间大小MB,
       (b.bytes -SUM(nvl(a.bytes, 0))) / 1024 / 1024 使用表空间大小,
       substr((b.bytes -SUM(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率
FROM   dba_free_space a,
       dba_data_files b
WHERE  a.file_id = b.file_id
GROUP BY
       b.tablespace_name,
       b.file_name,
       b.bytes
ORDER BY
       b.tablespace_name

五、批处理文件+windows定时任务 自动备份数据库:

for /F "usebackq tokens=1,2 delims= " %%i IN (`date /t`) do set datapath=%%i
for /F "usebackq tokens=1,2 delims=: " %%i IN (`time /t`) do set datapath=%datapath%%%i%%j 
exp shjc/shjc123@orcl file=e:\%datapath:/=%.dmp owner=shjc

将上面的三行脚本复制到记事本,修改数据库链接相关参数后,另存为已批处理文件即可。备份数据库文件的命名是按时间来命名。
再在windows里定时任务里,添加一个定时任务,定时执行这个批处理文件,就实现了简单数据库备份。


目录
相关文章
|
17天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
64 11
|
1月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
1月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
112 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
51 3
|
23天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
54 7
|
1月前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
31 5
|
1月前
|
数据库
【赵渝强老师】数据库的备份方式
备份数据库是指将数据库中的数据及相关信息保存起来,以便在系统故障时恢复。备份对象不仅限于数据本身,还包括数据库对象、用户权限等。根据备份策略、类型和模式的不同,可分为整体/部分备份、完全/增量备份、一致/非一致备份。文中还附有相关视频讲解。
|
4天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
18 3

推荐镜像

更多