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里定时任务里,添加一个定时任务,定时执行这个批处理文件,就实现了简单数据库备份。


目录
相关文章
|
4天前
|
SQL Oracle 安全
Oracle11g更改数据库名(详细教程)
Oracle11g更改数据库名(详细教程)
14 1
|
4天前
|
存储 NoSQL 关系型数据库
Percona XtraBackup是否支持MongoDB数据库备份?
【5月更文挑战第13天】Percona XtraBackup是否支持MongoDB数据库备份?
29 1
|
1天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
16 3
|
2天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之可以通过配置Oracle数据库的schema注册表来监测表结构的变化吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
10 1
|
4天前
|
存储 JSON 关系型数据库
Percona XtraBackup是否支持Elasticsearch数据库备份?
【5月更文挑战第13天】Percona XtraBackup是否支持Elasticsearch数据库备份?
9 1
|
4天前
|
NoSQL 关系型数据库 MySQL
Percona XtraBackup是否支持Redis数据库备份?
【5月更文挑战第13天】Percona XtraBackup是否支持Redis数据库备份?
9 2
|
4天前
|
存储 关系型数据库 MySQL
Percona XtraBackup是否支持PostgreSQL数据库备份?
【5月更文挑战第13天】Percona XtraBackup是否支持PostgreSQL数据库备份?
50 1
|
4天前
|
Oracle 关系型数据库 数据库
Oracle数据库协议适配器错误解决方法
Oracle数据库协议适配器错误解决方法
9 2
|
4天前
|
存储 Oracle 关系型数据库
实验三 Oracle数据库的创建和管理
实验三 Oracle数据库的创建和管理
14 1
|
4天前
|
SQL Oracle 关系型数据库
实验一 安装和使用Oracle数据库
实验一 安装和使用Oracle数据库
16 1