oracle sql 导入mysql数据库备份_使用PL/SQL连接oracle数据库,并将数据进行导出备份和导入恢复...

使用PL/SQL连接oracle数据库,并将数据进行导出备份和导入恢复

这种操作百度一搜一大片,今天整理以前做的项目时自己备份了一下数据库,试着将数据进行导出备份和导入恢复了一下;下面是操作过程;

1 开启服务

42f282aa0b7b38c4d65aae76d58637eb.png

2 配置监听

找到下面文件:

8f56a6d914e5b28f9265de84a6d38e43.png

记事本打开

9013d039ee5cc046140ba38efcba1b3d.png

a0609fb82d08fe2260a7ab251f1860b7.png

127f7ec58343b0d56025837a3f96ba48.png

在导航器的下拉菜单中选择:将数据库添加到树,

23d3bc08c0914cca0b45c0c4dc78200a.png

然后点击确定

1f709dd01a88fd07c49b5e1fb6171902.png

24ddb64d1ba5983f6fbbfbffca4ecea6.png

然后使用PL/SQL就可以登录了;

3 建立新表空间和新用户

使用system用户登录;执行如下sql语句建立表空间和新用户,以及给用户授权

0f3f30de955f15747cf1ab0be7675643.png

建立表空间

Createtablespacemyyyjc datafile'D:\app\Administrator\oradata\sunlichengdata\myyyjc.dbf'size10m autoextendon;

删除表空间

--Drop tablespace myyyjc including contents and datafiles cascade constraints;

建立新用户

createuserslc identifiedbyslc defaulttablespacemyyyjc;

授权

grantconnect,resourcetoslc;

grantdbatoslc;

吊销授权

--Revoke dba from slc;

4 导出原数据库结构和数据

然后,以老用户yyjc登录系统导出数据库结构和数据;

b44737f4e765abe0229172cee1e77886.png

工具à导出用户对象(U)

此步骤导出的是sql文件---建表语句(包括存储结构)。

251acc1a96b4a42a55d862a4240a081f.png

314fac1824e6d0a0d3c515964bc37d4a.png

02892f63aeb396450a19453a82b88e0c.png

工具à导出表;

cfc3b755ef389b6c29befcece3f3d617.png

此步骤导出的是dmp文件---表结构及数据;

这里PL/SQL工具包含三种方式导出Oracle表结构及数据,三种方式分别为:Oracle Export 、SQL Inserts、PL/SQL Developer 其中Oracle Export导出的.dmp是二进制文件,可跨平台,还能包含权限,效率不错,用的最为广泛。

64d8b7d016904e435ce03cb19717869b.png

bec577eebeab708199ca8fb74baf6dfd.png

5 导入原数据库结构和数据到新表空间

为了检验,导出的这两个文件是否能用,使用新用户登录,将数据导入到新表空间试试;

373c1971adfbc562c51e2a8d6a4693ea.png

工具à导入表;

79134ab56a3ed72eb6f489a0624d09f9.png

工具à导入表;

e7e927ca90162ee580295aff324f8641.png

我导入表结构时,没反应,可能是因为.sql文件中包含了有大字段(blob,clob,long),不能导出。不过我继续导入.dmp文件后,表和数据都导进去了;

e6cd087333ba8ce0b98963b29fb51d3c.png

查了一下:http://www.cnblogs.com/wuhuacong/archive/2012/03/09/2387680.html

以上值得注意的是,我们导出Oracle对象和数据的时候,默认还是原来Oracle数据库的表空间和数据库用户名称的,如果我们想要在新的数据库服务器中指定不同的表空间和数据库用户对象,那么我们就需要替换生成的sql脚本,并在第一步指定合理的表空间和数据库用户;也许也有可能是表空间不同的原因,但是数据是导进去了的,说明导出的备份数据是能用的;

PS:可以用下面sql(查某个数据库所有表的所有记录)检验一下两次的记录数是不是一样的哦:

use information_schema;

SELECT SUM(t.rows) total

from (

select table_name name,table_rows rows from tables

where TABLE_SCHEMA = '数据库名'

order by table_rows desc) as t ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值