加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 16:42:48 所属栏目:百科 来源:网络整理
导读:一、备份数据库 1.在图形工具中,如sqldeveloper,pl/sqldeveloper用以下这句查找空表 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 2.把第一步执行得到的结果当用sql语来再次执行 3.到oracle服务器上执行备
一、备份数据库
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:oracleproduct10.2.0db_1adminorcldpdumpSHJC.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,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里定时任务里,添加一个定时任务,定时执行这个批处理文件,就实现了简单数据库备份。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读