前提:
1.本地有Oracle 11g数据库,服务器上的数据库版本跟本地一样
2.本地有PL/SQL Developer 13工具
相关的概念:
1. 在Oracle数据库中, 一个 "用户" 就是 一个 "数据库"; 所谓的 "用户名" 就是 数据库的名字.
2. 在Oracle中有很重的 "权限" 概念, 普通的 增/删/改/查 等等都需要权限, 没权限就没法操作.
3. 在Oracle中, 每个 "用户" 都有对应的 "表空间" , 在创建 "用户" 的过程中, Oracle会分配一个默认的 "表空间" , 但是在工作中, 一般会自己创建一个 "表空间" , 然后将自己创建的 "用户" 放到自己创建的 "表空间" 中.
实例:
一. 服务器上面有一个 用户名 叫做 SCHOOL 的用户, 密码是 school123, 存在于名为 MYSCHOOL 的表空间里. 那么你在本地也得创建同样名字的一个用户,最好名字、密码和表空间都跟服务器上的一样.
具体步骤如下:
1. 连接服务器. 一般的话, 都得连上 v*n 才能连接到服务器.
① 首先连接v*n.
② 找到你 Oracle 安装目录下的这两个文件.
③ 将这个两个文件复制一份, 找一个文件夹存起来, 这是你自己本来的两个文件. 然后我们用编辑器打开对这两个文件进行修改.
④ 测试我们的配置是否成功, 能否连接远程的数据库, Win+R, 输入cmd, 进入命令窗口, 执行
tnsping 连接名
⑤ 运行 PL/SQL Developer 工具, 连接远程服务器上的数据库
⑥ 调整为下图的样子, 再点击确定按钮, 就可以连入到服务器的数据库了.
⑦ 进入之后, 大概就是下图这么个情况.
⑧ 点击左上角的 新建, 新建一个命令窗口, 可以执行一些命令, 查看我们想要知道的一些信息.
⑨ 点击 命令窗口 之后, 就是这个页面, 然后我们输入
select username,default_tablespace from dba_users;
可以查看存在的用户, 和用户存在的表空间
2. 导出数据. 要先看服务器上的数据库的一些权限是否拥有, 因为一般的情况下, Oracle是不会导出空表的, 所以我们得对该用户(也就是该数据库)做一些权限的操作.
① 同样在命令窗口,执行下面语句
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
② 这样做就导出这个库中已经存在的空表了, 但是如果你想导出你新建的空表, 那么你的修改一个权限; 修改了这个权限之后, 你之后创建的新的空表也可以导出来.
这个相当于是设置一个系统的参数, 你可以先执行下面这条语句查询一下系统参数是否true, 如果是true 我们就得改成false; 否则就不用改.
show parameter deferred_segment_creation;
如果要修改的话, 则在后面执行下面这条命令:
alter system set deferred_segment_creation=false;
③ 开始做导出数据的操作.
如图找到工具, 点击工具
点击导出表, 会出现类似下图的界面
下一步, 手动选中所有表, 点击导出按钮进行导出.在点了导出按钮的时候有一个程序执行窗口打开, 不要关掉, 导出完成后, 这个窗口会自动关掉.
④ 查看是否导出成功.
至此, 导出完全结束.
3. 导入数据.
① 我们得将之前我们修改的关于 Oracle 的两个配置文件修改回来, 否则无法连接我们本地的 Oracle
找到我们之前复制出来的 listener.ora 和 tnsnames.ora 这两个文件粘贴回去, 去替换掉我们之前做过修改的这两个文件.
② 打开 PL/SQL Developer 工具, 用sys账户登录, 这个账户是Oracle自带的, 如果你没改过的话, 那么用户名是: sys 密码是: sysdba
③ 然后同样选择新建命令窗口
④ 通过sys用户在本地建一个跟服务器一样的用户, 用户名/密码/表空间 都和服务器上的保持一致.
创建用户语句: create user AA identified by BBB;
其中 AA 是用户名, BBB 是密码
创建表空间语句: create tablespace CC datafile 'F:\devTools\oracle11g\oradata\orcl\CC_data.dbf' size 400M;
其中 CC 是表空间名, CC_data.dbf 是文件名, 可以随便取.
然后将该用户分配到该表空间:
分配表空间语句: alter user AA default tablespace CC;
其中 AA 是用户名, CC 是表空间
查看用户所在的表空间语句: select username,default_tablespace from dba_users;
如下图, 则说明分配成功.
⑤ 给新建的用户足够的权限, 否则新建的用户没有足够的权限不能够导入操作, 也不能进行普通的增/删/改/查.
找到之后,选中然后右键, 点击编辑
进入操作界面, 给该用户分配相应的权限
对象权限如图进行配置:
角色权限如图配置:
系统权限如图配置:
⑥ 当这些都配置好之后, 就可以用你本地新建的用户连接Oracle了.
打开 PL/SQL Developer 工具,连接该用户.
进入, 找到工具, 找到导入表(L). 然后进行导入操作, "导入可执行文件" 路径大概是这么个位置, 具体的要看你自己是安装到哪里的.
点击导入按钮, 开始导入数据库. 同样会弹出一个程序执行窗口, 不用管它, 导入完成之后, 它也会自动关掉.
同样我们点开日志, 进行观察, 当跟出现的内容跟下图类似时, 则说明导入成功.
4. 当然, 运行项目时, 可能还会有些问题, 因为有些视图可能会没有导出来, 这个解决方法的话, 你可以去服务器的数据库上找到对应的视图,然后导出为创建视图语句, 然后在本地执行就可以了.