oracle 备份

本小白日常oracle学习总结,若有错误望海涵,并希望大神能指点迷津
泵导备份前需要创建数据库备份的路径
创建directory 命名为dump_dir 映射到系统路径D盘下dump文件夹
Create or replace directory dump_dir as ‘D:/dump/’;
grant read,write on directory dump_dir to public;//给权限

directory
语法:Create or replace directory 名称 as ‘路径’;
创建后就会建立oracle与系统文件的一个通道,通向指向的系统路径。
dba_directories:可以用数据字典中的这个查询所有的directory

泵导(oracle 11g 以上支持泵导)
expdp system/panku@orcl directory = dump_dir dumpfile = hisemr.dp logfile = hisemr.log schemas = his,emr;

**

逻辑备份:

**导出表**
导出自己用户的表:`exp userid = 	his/vloveitit@orcl tables = (jzd) file = d:\jzd.dmp;`
导出其他用户的表:需要dba的权限:`exp userid = system/panku@orcl tables = (his.jzd) file = d:\jzd.dmp`
只导出表结构:`exp userid = 	his/vloveitit@orcl tables = (jzd) file = d:\jzd.dmp rows = n;`
在表数据量大的时候,可以使用`exp userid = 	his/vloveitit@orcl tables = (jzd) file = d:\jzd.dmp direct = y;`直接导出,速度较快,前提是字符集一致

导出方案(用户):
导出自己:exp his/vloveitit@orcl owner = his file = d:\his.dmp;
导出其他方案:exp system/panku@orcl owner = (system,his,emr) file = d:\his.dmp log = d:\log.log;(导出system、his、emr三个方案)
导出数据库:

exp userid = system/panku@orcl full = y  inctype = complete file = d:\x.dmp
 --inctype = complete可以不加,意义就是在下一次导入的时候检查上一次的数据库有什么新数据,直接增加新数据即可,下一次比较快;

定时备份
1、将配置文件放到D:/dump中
2、电脑管理-任务计划程序-创建任务
3、常规,不管用户是否登录都要运行,使用最高权限运行
4、触发器,每天执行,重复任务间隔例:一天两次为12小时
5、操作,选取配置文件,参数和起始于为配置文件路径

数据的冷备份
所谓的冷备份指的是归档备份:既数据库服务停止,专门去备份;
这样备份的内容是最完整的。
需要备份:
控制文件(大脑)可以通过“v c o n t r o l f i l e ” 数 据 字 典 找 到 ; 重 做 日 志 文 件 : “ v controlfile”数据字典找到; 重做日志文件:“v controlfilevlogfile”
数据文件(表空间)“v$datafile”
核心配置文件(pfile) :show parameter pfile 找到;

记录好以上所有文件的路径
关闭数据库服务(shutdown immediate)
拷贝出以上文件到指定备份文件目录
重启服务(startup)

数据库导入

注:导入之前需要先创建表空间(表空间和用户要和导入的数据的表空间名称一样)和用户(泵导入时自动创建用户)。

导入之前准备

--创建表空间(表空间名要和导入数据的表空间名一致) 
CREATE TABLESPACE Smart_Table(表空间名)  
DATAFILE 'Ftable.dat'(表空间物理文件名)  
SIZE 4000M REUSE(大小为4000m) AUTOEXTEND ON NEXT 50M Maxsize Unlimited(每次50m自动增加,最大到无限);

--查看表空间的详细信息
select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space
	from dba_data_files
	order by tablespace_name
--扩展表空间
ALTER TABLESPACE SMART_TABLE 
ADD DATAFILE 'E:\ORACLEDATA\ORCL\STABLE59.DAT' 
SIZE 400M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 4000M; --自动扩展每次10M 最大4000M(路径和创建的表空间一样,文件名不能起一样)
	
(2)创建用户(如果用的是泵导,可以不用提前创建表空间,普通导入的话必须提前创建好)
Create User HIS(用户名) Identified by vloveitit(口令密码) Default TableSpace Smart_Table(默认表空间);
角色权限 如:
Grant Connect,resource to HIS;
系统权限 如:
grant create any view,debug any procedure,unlimited tablespace to his
  1. 准备工作完成 开始导入

泵导:

impdp system/panku@orcl directory=dump_dir dumpFile= hisemr .DP logFile= hisemr .log schemas= his  , emr   

注:更名remap_schema= 原用户名 : 现用户名

逻辑恢复:

恢复表:
导入到自己的方案中:imp userid = his/vloveitit@orcl tables=(caozyxx) file = d:\xx.dmp
导入到别人的方案中:imp userid = system/panku@orcl tables=(caozyxx) file = d:\xx.dmp touser = emr;ps:导入到别人方案中,前提是该表不存在主外键的关系
导入表的结构:imp userid = his/vloveitit@orcl tables=(caozyxx) file = d:\xx.dmp rows = n;
如果表已存在可以只导入数据:imp userid = his/vloveitit@orcl tables=(caozyxx) file = d:\xx.dmp ignore = y;
恢复方案:
恢复自身方案:imp userid = his/vloveitit@orcl file = d:\e.dmp;
–重点
恢复其他方案:imp userid = system/panku@orcl file = d:\e.dmp fromuser = 原用户名 touser = 现用户名;
恢复数据库: imp userid = system/panku@orcl full = y file = d:\e.dmp;
注:导入之后编译无效对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值