oracle 11g的备份与恢复

spool导入导出

--spool导出
spool 导出路径
--该语句可理解为获取emp表的ddl语句然后显示到dual(注意:get_ddl()内均需大写——建表
select dbms_metadata.get_ddl('TABLE','表名') from dual;
--数据插入(若列数据类型为number则书写格式为'||列名||')
select'insert into 表名 values('''||列名1||''','''||列名2||''',...,'''||列名n||''');' from 表名;
commit;
spool off

注意:需要使用set long设置显示大小
示例如下:
导出:
(1)win+r打开命令提示符,输入sqlplus登录,设置显示长度,关闭表头显示
在这里插入图片描述
(2)输入导出语句
在这里插入图片描述
在这里插入图片描述
(3)打开D:/1.sql文件删除一些空格,添加分号等操作,保证关键字可被识别即可。
导入:@导出文件路径
在命令提示符中输入@D:/1.sql(记得删除原来数据库中的dept表再进行导入)

传统导出exp

exp help=y——exp帮助

在这里插入图片描述
(1)导出scott的emp表

--exp 用户名/密码@数据库实例名 tables=表名 file=导出文件路径 log=日志文件路径
exp scott/123@orc tables=emp file=D:\2.dmp log=D:\2.log

运行效果如下:
在这里插入图片描述
在这里插入图片描述
(2)导出scott所有对象

--exp 用户名/密码@数据库实例名 owner=用户名 file=D:\3.dmp log=D:\3.log
exp scott/123@orc owner=scott file=D:\3.dmp log=D:\3.log

运行效果如下:
在这里插入图片描述
在这里插入图片描述
(3)导出数据库

/*exp 用户名/密码@数据库实例名 full=y file=d:\4.dmp log=d:\4.log
必须管理员用户才能进行该操作
*/
exp system/123@orc full=y file=d:\4.dmp log=d:\4.log

(4)导出其他用户表

--用户导出其他用户表
exp scott/scott@orcl tables=(test1.stu) file=d:\stu2.dmp log=d:\stu2.log
--管理员
exp system/sys@orcl tables=(test1.stu) file=d:\stu3.dmp log=d:\stu3.log

传统导入imp

imp help=y——imp帮助
在这里插入图片描述
(1)简单导入表

imp 用户名/密码@数据库实例名  file=文件路径 tables=表名

(2)导入指定用户

--从scott到test1(管理员操作)
imp 管理员账户/管理员密码@数据库实例名 file=文件路径 fromuser=scott touser=test1
--普通用户操作
imp 用户名/密码@数据库实例名 file=文件路径  fromuser=scott touser=test1 

(3)将整个文件导入数据库

imp 用户名/密码@数据库实例名 file=文件路径 ignore=y full=y

(4)将scott用户备份的表指定的导入到test1用户

imp 管理员账户/管理员密码 file=文件路径 fromuser=scott touser=test1 tables=(表名1,表名2)

oracle 11g的数据泵expdp/impdp

(1)在D盘新建dir文件夹,打开命令提示符登录sqlplus(管理员账户登录)创建目录:

create directory dir as 'D:\dir';

(2)授权读写目录权限给scott用户

grant read,write on directory dir to scott;

(3)导出scott表(退出sqlplus到cmd)

expdp scott/123@orc directory=dir dumpfile=1.dmp tables=emp

在这里插入图片描述

  • 只导出表结构不导出表数据需添加下列关键字
    content=metadata_only
    reuse_dumpfiles=y

(4)导入表(导入前记得先删除原emp表)

impdp scott/123@orc directory=dir dumpfile=1.dmp

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值